终端MCP服务器是一个模型上下文协议(MCP)服务器,旨在促进远程和本地命令执行,并具有强大的SSH功能。它允许您的AI模型或其他应用程序通过SSH或本地安全地在远程主机上执行命令,提供了一种与各种系统交互的强大方式。
~/.ssh/config文件以获取连接详情如HostName、User、IdentityFile、Passphrase和Port,简化SSH管理。DEFAULT_DIR环境变量来指定本地命令执行的起始目录。~/.ssh/config以简化连接设置。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/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 (取消注释并设置如果您的密钥是加密的)
要将此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
command(字符串,必需):要执行的shell命令。host(字符串,可选):从您的~/.ssh/config中指定的SSH主机别名,用于执行命令。如果没有提供,则命令将在本地执行。env(对象,可选):为命令执行设置的环境变量。键和值应为字符串。将此JSON内容保存为mcp_server.json(或任何其他名称),并将其提供给Claude的MCP配置。提供此配置的确切方法取决于您的Claude环境(例如,通过特定UI、API调用或配置文件)。
您可以在启动terminal-mcp-server之前设置环境变量DEFAULT_DIR,以指定本地命令执行的默认工作目录。
示例:
DEFAULT_DIR="/workdir" npm start
这将使所有通过MCP服务器执行的本地命令都从/workdir开始,除非明确覆盖。