终端命令执行服务器

Terminal MCP Server 是一个支持远程和本地命令执行的服务器,提供强大的SSH功能,使AI模型或其他应用能够安全地在远程主机或本地执行命令。

  • by ptbsare
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 ptbsare/terminal-mcp-server

使用说明

终端MCP服务器

简体中文

终端MCP服务器是一个模型上下文协议(MCP)服务器,旨在促进远程和本地命令执行,具有强大的SSH功能。它允许您的AI模型或其他应用程序通过SSH或本地在远程主机上安全地执行命令,提供了一种与各种系统交互的强大方式。

亮点

  • 安全SSH命令执行:使用SSH在远程服务器上安全地执行命令,并支持SSH别名配置文件解析。自动解析您的 ~/.ssh/config 该文件用于检索连接详细信息,如HostName、User、IdentityFile、Passphrase和Port,简化了SSH管理。
  • 本地命令执行:直接在运行MCP服务器的本地计算机上运行命令。
  • 带超时的会话管理:维护具有可配置超时的持久SSH会话,以实现高效的命令执行和资源管理。
  • 环境变量支持:将环境变量传递给远程和本地命令。
  • 本地命令的默认目录:配置a DEFAULT_DIR 环境变量,用于指定本地命令执行的起始目录。

特性

  • 远程命令执行:通过SSH连接到远程主机并执行指定的命令。
  • 本地命令执行:在本地计算机上执行命令。
  • SSH配置解析:阅读和解释 ~/.ssh/config 简化连接设置。
  • 连接池:重用现有的SSH连接以最小化开销。
  • 错误处理和检索:实现连接尝试的重试机制和强大的错误报告。

用法

安装

  1. 克隆存储库:
    git clone https://github.com/ptbsare/terminal-mcp-server.git
    cd terminal-mcp-server
    
  2. 安装依赖项:
    npm install
    
  3. 构建项目:
    npm run build
    

运行服务器

要启动MCP服务器,请执行以下操作:

npm start

服务器将监听传入的MCP请求。

SSH配置

确保SSH配置(~/.ssh/config)已为您要连接的主机正确设置。服务器将自动解析此文件。

示例 ~/.ssh/config:

Host my_remote_server
  HostName your_remote_server_ip_or_hostname
  User your_username
  IdentityFile ~/.ssh/id_rsa
  Port 22
  # Passphrase your_passphrase (uncomment and set if your key is encrypted)

与Claude(或其他AI模型)一起使用

要将此MCP服务器与Claude集成,您需要配置Claude以连接到本地MCP服务器。

  1. 启动终端MCP服务器 如上所述。

  2. 配置Claude:在Claude环境中,通常会添加指向此MCP服务器的工具定义。具体的配置步骤取决于您正在使用的Claude接口或API。

    为了为Claude配置MCP服务器,您通常会创建一个JSON文件(例如。, mcp_server.json)具有以下结构:

    {
      "mcpServers": {
        "terminal-mcp-server": {
          "command": "npm",
          "args": [
            "--prefix",
            "/path/to/terminal-mcp-server",
            "run",
            "start"
          ]
        }
      }
    }
    

    此服务器提供了一个工具: execute_command.

    工具: execute_command

    • 描述:通过SSH或本地在远程主机上执行shell命令。
    • 参数:
      • command (string,必填):要执行的shell命令。
      • host (string,可选):您的SSH主机别名 ~/.ssh/config 在上执行命令。如果没有提供,则将在本地执行该命令。
      • env (object,可选):为命令执行设置的环境变量。键和值应该是字符串。

    将此JSON内容另存为 mcp_server.json (或任何其他名称)并将其提供给Claude的MCP配置。提供此配置的确切方法取决于您的Claude环境(例如,通过特定的UI、API调用或配置文件)。

本地命令默认目录

您可以设置环境变量 DEFAULT_DIR 在开始之前 terminal-mcp-server 指定本地命令的默认工作目录。

例子:

DEFAULT_DIR="/workdir" npm start

这将使通过MCP服务器执行的所有本地命令在 /workdir 除非被明确覆盖。