返回市场
终端-MCP服务器

终端-MCP服务器

作者:weidwonder24 星标更新:2025-09-17

项目介绍

终端MCP服务器

smithery徽章

注意事项

当前项目已经不在维护。我建议大家用更先进的终端MCP工具 Desktop Commander

中文文档

终端MCP服务器是一个模型上下文协议(MCP)服务器,允许在本地或远程主机上执行命令。它提供了一个简单而强大的接口,使AI模型和其他应用程序能够执行系统命令,这些命令可以在本地机器上运行,也可以通过SSH在远程主机上运行。

特性

  • 本地命令执行:直接在本地机器上执行命令
  • 远程命令执行:通过SSH在远程主机上执行命令
  • 会话持久化:支持持久会话,重复使用相同的终端环境指定的时间(默认20分钟)
  • 环境变量:为命令设置自定义环境变量
  • 多种连接方式:通过stdio或SSE(服务器发送事件)进行连接

安装

通过Smithery安装

要通过Smithery自动安装terminal-mcp-server:

npx -y @smithery/cli install @weidwonder/terminal-mcp-server --client claude

手动安装

# 克隆仓库
git clone https://github.com/weidwonder/terminal-mcp-server.git
cd terminal-mcp-server

# 安装依赖
npm install

# 构建项目
npm run build

使用方法

启动服务器

# 使用stdio模式启动服务器(默认模式)
npm start

# 或者直接运行构建文件
node build/index.js

在SSE模式下启动服务器

SSE(服务器发送事件)模式允许您通过HTTP远程连接到服务器。

# 在SSE模式下启动服务器
npm run start:sse

# 或者直接运行带有SSE标志的构建文件
node build/index.js --sse

您可以使用以下命令行选项来自定义SSE服务器:

选项描述默认值
--port-p监听的端口8080
--endpoint-e端点路径/sse
--host-h绑定的主机localhost

带有自定义选项的例子:

# 在端口3000上启动SSE服务器,端点为/mcp,并绑定到所有接口
node build/index.js --sse --port 3000 --endpoint /mcp --host 0.0.0.0

这将启动服务器并监听http://0.0.0.0:3000/mcp上的SSE连接。

使用MCP Inspector测试

# 启动MCP Inspector工具
npm run inspector

execute_command工具

execute_command工具是Terminal MCP Server提供的核心功能,用于在本地或远程主机上执行命令。

参数

参数类型必需描述
commandstring要执行的命令
hoststring要连接的远程主机。如果没有提供,则命令将在本地执行
usernamestring当指定了host时必需SSH连接的用户名
sessionstring会话名称,默认为"default"。相同的会话名称将在20分钟内重复使用相同的终端环境
envobject环境变量,默认为空对象

示例

在本地执行命令

{
  "command": "ls -la",
  "session": "my-local-session",
  "env": {
    "NODE_ENV": "development"
  }
}

在远程主机上执行命令

{
  "host": "example.com",
  "username": "user",
  "command": "ls -la",
  "session": "my-remote-session",
  "env": {
    "NODE_ENV": "production"
  }
}

配置AI助手

使用Roo Code配置

  1. 打开VSCode并安装Roo Code扩展
  2. 打开Roo Code设置文件:~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
  3. 添加以下配置:

对于stdio模式(本地连接)

{
  "mcpServers": {
    "terminal-mcp": {
      "command": "node",
      "args": ["/path/to/terminal-mcp-server/build/index.js"],
      "env": {}
    }
  }
}

对于SSE模式(远程连接)

{
  "mcpServers": {
    "terminal-mcp-sse": {
      "url": "http://localhost:8080/sse",
      "headers": {}
    }
  }
}

请根据实际情况替换localhost:8080/sse中的服务器地址、端口和端点。

使用Cline配置

  1. 打开Cline设置文件:~/.cline/config.json
  2. 添加以下配置:

对于stdio模式(本地连接)

{
  "mcpServers": {
    "terminal-mcp": {
      "command": "node",
      "args": ["/path/to/terminal-mcp-server/build/index.js"],
      "env": {}
    }
  }
}

对于SSE模式(远程连接)

{
  "mcpServers": {
    "terminal-mcp-sse": {
      "url": "http://localhost:8080/sse",
      "headers": {}
    }
  }
}

使用Claude Desktop配置

  1. 打开Claude Desktop设置文件:~/Library/Application Support/Claude/claude_desktop_config.json
  2. 添加以下配置:

对于stdio模式(本地连接)

{
  "mcpServers": {
    "terminal-mcp": {
      "command": "node",
      "args": ["/path/to/terminal-mcp-server/build/index.js"],
      "env": {}
    }
  }
}

对于SSE模式(远程连接)

{
  "mcpServers": {
    "terminal-mcp-sse": {
      "url": "http://localhost:8080/sse",
      "headers": {}
    }
  }
}

最佳实践

命令执行

  • 在运行命令之前,最好确定系统类型(Mac、Linux等)
  • 使用全路径以避免路径相关问题
  • 对于需要保持环境的命令序列,使用&&连接多个命令
  • 对于长时间运行的命令,考虑使用nohupscreen/tmux

SSH连接

  • 确保已设置基于密钥的身份验证
  • 如果连接失败,请检查密钥文件是否存在(默认路径:~/.ssh/id_rsa
  • 确保远程主机上的SSH服务正在运行

会话管理

  • 使用会话参数来维持相关命令之间的环境
  • 对于需要特定环境的操作,使用相同的会话名称
  • 注意会话将在20分钟后自动关闭

错误处理

  • 命令执行结果包括stdout和stderr
  • 检查stderr以确定命令是否成功执行
  • 对于复杂操作,添加验证步骤以确保成功

重要说明

  • 对于远程命令执行,必须提前设置基于密钥的身份验证
  • 对于本地命令执行,命令将以启动服务器的用户身份运行
  • 会话超时时间为20分钟,之后连接将自动关闭