使用说明
MCP远程服务器
一种模型上下文协议(MCP)服务器,使Cursor IDE能够在远程服务器上执行SSH命令并管理Google Cloud Platform(GCE)实例。此服务器提供了Cursor和远程基础架构之间的无缝集成。
特性
- 🔐 SSH命令执行:通过SSH在远程服务器上运行命令
- ☁️ GCE实例管理:启动和停止Google云计算引擎实例
- 🔄 连接池:重用SSH连接以提高性能
- 📝 SSH配置集成:使用您现有的
~/.ssh/config用于主机配置 - 🚀 MCP协议:完全支持模型上下文协议v2025-06-18
先决条件
- 已安装Node.js 16+
- 配置到远程服务器的SSH访问
- 谷歌云平台凭据(用于GCE功能)
- 已安装游标IDE
安装
-
克隆或导航到存储库:
cd mcp-remote -
安装依赖项:
npm install -
启动MCP服务器:
node src/index.js服务器将于启动
http://localhost:3000默认情况下。
配置
1.SSH配置
首先,您需要在中配置SSH连接 ~/.ssh/config。服务器始终使用主机别名 dev 无论您在提示中指定什么。
创建或编辑 ~/.ssh/config:
Host dev
HostName your-server.example.com
User your-username
Port 22
IdentityFile ~/.ssh/id_rsa
# Optional: Add additional SSH options
# ServerAliveInterval 60
# ServerAliveCountMax 3
# StrictHostKeyChecking no
# UserKnownHostsFile ~/.ssh/known_hosts
AWS EC2示例:
Host dev
HostName ec2-12-34-56-78.compute-1.amazonaws.com
User ubuntu
Port 22
IdentityFile ~/.ssh/my-aws-key.pem
Google Cloud示例:
Host dev
HostName 34.123.45.67
User root
Port 22
IdentityFile ~/.ssh/gcp-key.pem
重要提示:
- 主机别名 必须 被命名
dev(全部小写) - 服务器将 总是 连接到
dev无论您在提示中指定了哪个主机 - 确保您的SSH密钥具有适当的权限:
chmod 600 ~/.ssh/id_rsa
2.光标MCP配置
通过编辑配置Cursor以连接到MCP服务器 ~/.cursor/mcp.json:
{
"mcpServers": {
"local-mcp": {
"name": "Local MCP",
"url": "http://localhost:3000",
"description": "Runs SSH commands and manages GCE instances",
"apiKeyHeader": "x-api-key",
"apiKeyValue": "8BOe6KshR5Eq0otTSjSGMEf5P1edKcq"
}
}
}
配置字段:
name:在游标中显示MCP服务器的名称url:MCP服务器运行的URL(默认值:http://localhost:3000)description:服务器功能的描述apiKeyHeader:API身份验证的标头名称(当前可选)apiKeyValue:用于身份验证的API密钥值(当前可选)
修改后 mcp.json:
- 保存文件
- 重新启动游标IDE
- MCP服务器应出现在Cursor的工具列表中
3.环境变量(可选)
您可以设置环境变量来自定义行为:
# SSH Configuration (optional - defaults to ~/.ssh/id_rsa)
export SSH_USERNAME=your-username
export SSH_PRIVATE_KEY_PATH=~/.ssh/custom_key
# Server Configuration
export PORT=3000
# GCP Configuration (for GCE features)
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/gcp-credentials.json
用法
启动服务器
# Start the server
node src/index.js
# Or with custom port
PORT=8080 node src/index.js
服务器将输出:
MCP server running on http://localhost:3000
Ready to accept MCP connections from Cursor
在Cursor IDE中使用
配置后,您可以直接在Cursor中使用MCP工具:
-
运行SSH命令:
- 询问Cursor:“检查server1.example.com上的磁盘使用情况”
- 服务器将自动连接到
dev并执行该命令 - 示例:“运行
df -h在我的远程服务器上”
-
管理GCE实例:
- 询问Cursor:“在项目my-project中启动实例my-vm,区域us-central1-a”
- 询问Cursor:“在项目my-project中停止实例my-vm,区域us-central1-a”
可用工具
-
运行命令
- 在远程服务器上执行SSH命令
- 始终连接到
dev从~/.ssh/config - 参数:
host:忽略(总是使用dev)cmdKey:要执行的命令(例如。,df -h,ls -la)
-
start_instance
- 启动GCE实例
- 参数:
project:GCP项目IDzone:GCE区(例如。,us-central1-a)instance:实例名称
-
停止立场
- 停止GCE实例
- 参数:
project:GCP项目IDzone:GCE区instance:实例名称
建筑
连接池
服务器维护一个SSH连接池以提高性能:
- 跨多个命令重用连接
- 使用keepalive设置保持连接活动
- 连接错误时自动清理
SSH配置集成
服务器从读取连接详细信息 ~/.ssh/config:
- 主机名、端口、用户名和身份文件
- 支持所有标准SSH配置选项
- 手柄
~文件路径的扩展 - 支持多个IdentityFile条目(使用第一个)
故障排除
服务器无法启动
-
检查端口是否已在使用中:
lsof -i :3000 -
检查Node.js版本:
node --version # Should be 16+
游标无法连接
-
验证服务器是否正在运行:
curl http://localhost:3000 -
检查
~/.cursor/mcp.json语法:- 确保JSON有效
- 验证URL是否与您的服务器匹配
-
重新启动游标IDE 修改后
mcp.json
SSH连接问题
-
手动测试SSH连接:
ssh dev -
验证SSH配置:
ssh -F ~/.ssh/config dev -
检查SSH密钥权限:
ls -la ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa -
验证主机别名是否存在:
grep -A 5 "^Host dev" ~/.ssh/config
命令未执行
- 检查服务器日志 用于错误消息
- 验证
dev主机配置正确 在~/.ssh/config - 检查SSH密钥是否具有访问权限 到远程服务器
发展
项目结构
mcp-remote/
├── src/
│ ├── index.js # Main MCP server
│ ├── ssh.js # SSH connection handling
│ └── gcp.js # GCP instance management
├── package.json
├── README.md
└── .gitignore
添加新工具
要添加新的MCP工具:
- 将工具定义添加到
tools数组insrc/index.js - 在中添加处理程序
tools/call案件 - 在相应模块中实现功能
测试
# Test SSH connection
node -e "const {runRemoteCommand} = require('./src/ssh'); runRemoteCommand({host: 'dev', command: 'echo test'}).then(r => console.log(r));"
# Test MCP server
curl -X POST http://localhost:3000 \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-06-18"},"id":1}'
安全考虑
- 服务器运行在
localhost:3000默认情况下(不暴露于网络) - 从以下位置读取SSH凭据
~/.ssh/config(标准SSH安全) - API密钥身份验证可用,但当前是可选的
- 考虑对敏感数据使用环境变量
许可证
[在此处添加您的许可证]
贡献
欢迎投稿!请随时提交拉取请求。
支持
对于问题和疑问:
- 检查故障排除部分
- 查看服务器日志中的错误消息
- 确保SSH配置正确
备注:服务器始终连接到 dev SSH配置中的主机别名,而不管您在提示中指定的主机是什么。确保 dev 已在中正确配置 ~/.ssh/config.
