README
🚀 SSH 连接 MCP 服务器
这是一个用于 SSH 连接和文件操作的 MCP 服务器,项目中的所有代码均由生成式 AI 创建。
✨ 主要特性
该服务器实现了几种与 SSH 相关的工具,具体如下:
- connect:连接到 SSH 服务器。
- 可选参数:host、port、username、password、key_path、key_passphrase。
- 返回连接状态。
- disconnect:断开与 SSH 服务器的连接。
- 不需要任何参数。
- 返回断开状态。
- execute:在 SSH 服务器上执行命令。
- 必填参数:command(字符串)。
- 可选参数:timeout(整数,秒,默认值为 60)。
- 返回命令输出(stdout 和 stderr)和退出状态。
- upload:将文件上传到 SSH 服务器。
- 必填参数:local_path、remote_path。
- 返回上传状态。
- download:从 SSH 服务器下载文件。
- 必填参数:remote_path、local_path。
- 返回下载状态。
- list_files:列出 SSH 服务器上的文件。
- 必填参数:path。
- 返回文件列表,包括类型和大小信息。
📦 安装指南
自动安装
有两个 Python 脚本可用于自动安装 SSH MCP 服务器:
- 对于 Cline:
./install_ssh_mcp.py
- 对于 Claude Desktop:
./install_ssh_mcp_claude.py
这些脚本会执行以下操作:
- 检测配置文件的位置。
- 提示输入 SSH 连接参数。
- 更新配置文件中的 SSH MCP 服务器配置。
手动安装
在 Claude Desktop 上
提供了一个示例 Claude Desktop 配置文件 claude-desktop-config-example.json,展示了如何在 Claude Desktop 中配置 SSH MCP 服务器。
要将 SSH MCP 服务器安装到 Claude Desktop,可按以下步骤操作:
- 找到您的 Claude Desktop 配置文件:
- 在 macOS 上:
~/Library/Application\ 支持/Claude/claude_desktop_config.json - 在 Windows 上:
%APPDATA%/Claude/claude_desktop_config.json
- 在 macOS 上:
- 将 SSH MCP 服务器配置添加到
mcpServers对象中:
{
"mcpServers": {
"ssh-connect": {
"command": "uv",
"args": [
"--directory",
"/path/to/ssh-connect",
"run",
"ssh-connect"
],
"env": {
"SSH_HOST": "example.com",
"SSH_PORT": "22",
"SSH_USERNAME": "username",
"SSH_PASSWORD": "password",
"SSH_KEY_PATH": "/path/to/private_key",
"SSH_KEY_PASSPHRASE": "key_passphrase"
},
"disabled": false,
"autoApprove": []
}
}
}
- 重新启动 Claude Desktop 以应用更改。
⚠️ 重要提示
请将占位符值替换为您的实际 SSH 连接信息。
📚 详细文档
开发
构建与发布
要准备分发包,可按以下步骤操作:
- 同步依赖项并更新锁定文件:
uv sync
- 构建包发行版本:
uv build
这将在 dist/ 目录下创建源代码和轮文件。
3. 发布到 PyPI:
uv publish
⚠️ 重要提示
您需要通过环境变量或命令行标志设置 PyPI 凭据:
- 令牌:
--token或UV_PUBLISH_TOKEN- 或者用户名/密码:
--username/UV_PUBLISH_USERNAME和--password/UV_PUBLISH_PASSWORD
测试
在 tests 目录下提供了一个测试脚本来验证 SSH MCP 服务器是否正常工作:
python tests/test_ssh_connect.py
该测试脚本使用 unittest 和 mocking 来测试 SSH MCP 服务器的基本功能,而无需实际连接到 SSH 服务器。
调试
由于 MCP 服务器通过标准输入输出运行,调试可能会比较困难。为了获得最佳的调试体验,我们强烈推荐使用 MCP Inspector。 您可以使用以下命令启动 MCP Inspector:
npx @modelcontextprotocol/inspector uv --directory /path/to/ssh-connect run ssh-connect
启动后,Inspector 会显示一个 URL,您可以在浏览器中访问该 URL 开始调试。
微信扫一扫