使用说明
终端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连接以最小化开销。
- 错误处理和检索:实现连接尝试的重试机制和强大的错误报告。
用法
安装
- 克隆存储库:
git clone https://github.com/ptbsare/terminal-mcp-server.git cd terminal-mcp-server - 安装依赖项:
npm install - 构建项目:
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服务器。
-
启动终端MCP服务器 如上所述。
-
配置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 除非被明确覆盖。