Back to MCP directory
publicPublicdnsLocal runtime

ssh-connect-mcp-server

一个基于SSH协议的MCP服务器项目,提供连接管理、命令执行和文件传输等功能,支持环境变量配置和多种认证方式。

article

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 服务器:

  1. 对于 Cline:
./install_ssh_mcp.py
  1. 对于 Claude Desktop:
./install_ssh_mcp_claude.py

这些脚本会执行以下操作:

  1. 检测配置文件的位置。
  2. 提示输入 SSH 连接参数。
  3. 更新配置文件中的 SSH MCP 服务器配置。

手动安装

在 Claude Desktop 上

提供了一个示例 Claude Desktop 配置文件 claude-desktop-config-example.json,展示了如何在 Claude Desktop 中配置 SSH MCP 服务器。 要将 SSH MCP 服务器安装到 Claude Desktop,可按以下步骤操作:

  1. 找到您的 Claude Desktop 配置文件:
    • 在 macOS 上:~/Library/Application\ 支持/Claude/claude_desktop_config.json
    • 在 Windows 上:%APPDATA%/Claude/claude_desktop_config.json
  2. 将 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": []
    }
  }
}
  1. 重新启动 Claude Desktop 以应用更改。

⚠️ 重要提示

请将占位符值替换为您的实际 SSH 连接信息。

📚 详细文档

开发

构建与发布

要准备分发包,可按以下步骤操作:

  1. 同步依赖项并更新锁定文件:
uv sync
  1. 构建包发行版本:
uv build

这将在 dist/ 目录下创建源代码和轮文件。 3. 发布到 PyPI:

uv publish

⚠️ 重要提示

您需要通过环境变量或命令行标志设置 PyPI 凭据:

  • 令牌:--tokenUV_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 开始调试。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client