资讯动态

运维养龙虾--用腾讯workbuddy把ssh-mcp-server的endpoint改到TaoToken实现MCP远程执行SSH命令

发布时间:2026/10/18 10:08:49 来源:尧图企业网站定制
1. 运维养龙虾workbuddy 里 ssh-mcp-server 的 endpoint 为什么要改到 TaoToken先说清楚这篇在解决什么问题。ssh-mcp-server 是一个基于 MCPModel Context Protocol的桥接服务它让 AI 助手可以通过标准化接口在远程服务器上执行 SSH 命令、上传下载文件而不用把 SSH 凭据直接交给模型。腾讯 workbuddy 作为支持 MCP 协议的客户端可以把这个 server 挂进来用自然语言驱动远程运维。听起来很顺但真正落地时会卡在一个地方MCP 服务本身要调用大模型来理解你的指令、生成命令、组织回显而默认的模型 endpoint 往往不是你能稳定控制的。我这次的目标很具体在 workbuddy 里部署 ssh-mcp-server用 npx 启动 MCP 服务然后把它的模型 endpoint 和鉴权参数改到 TaoToken最后用一次远程命令执行加日志回显验证整条链路通不通。适合谁看适合已经在用 workbuddy 或类似 MCP 客户端、手里有 Linux 服务器、想让 AI 帮你跑df -h、uptime、free -m这类日常巡检命令的运维同学。如果你还没配过 MCP也没关系下面每一步都给可复制的片段。核心检索词先摆出来workbuddy 配置 ssh-mcp-server、MCP 远程执行 SSH 命令、npx 启动 MCP 服务、TaoToken endpoint 接入。这四个词贯穿全文你照着搜也能找到对应资料。为什么要把 endpoint 改到 TaoToken因为 MCP 服务在运行时需要调用一个兼容 OpenAI 或 Anthropic 协议的模型接口来完成意图解析和命令生成。TaoToken 提供的就是这样一个统一入口Base URL 是https://taotoken.net/api你拿到 API Key 后把 MCP 配置里的模型地址指过去鉴权头带上 Key模型 ID 填对整条链路就通了。这样做的好处是模型调用走一个你能管理的入口SSH 凭据仍然留在本地 ssh-mcp-server 进程里两边职责清晰。需要提前说明的是ssh-mcp-server 本身负责的是 SSH 连接和命令执行它不负责模型推理模型推理那部分由 workbuddy 或你配置的 MCP 客户端发起。所以“把 endpoint 改到 TaoToken”这个动作实际发生在 MCP 客户端的模型配置层而不是 ssh-mcp-server 的 SSH 参数里。这一点很多人第一次会搞混我下面会用配置片段把两层拆开讲。2. TaoToken 前置准备拿 Key、认 endpoint、选模型 ID在动 workbuddy 的配置文件之前先把 TaoToken 侧的东西准备好。这一步不复杂但顺序不能乱否则后面 401 报错会让你来回排查。第一件事是拿 API Key。打开https://taotoken.net/api-keys登录后创建一个新的 Key。建议按用途命名比如workbuddy-ssh-mcp这样以后要轮换或吊销时一眼能认出来。创建完立刻复制页面刷新后通常不再完整显示。这个 Key 就是后面配置里Authorization: Bearer后面那串。第二件事是确认 Base URL。TaoToken 的 API 入口是https://taotoken.net/api注意这里不要加多余的路径后缀也不要带 UTM 参数。很多 MCP 客户端在拼接/v1/chat/completions时会自己补你只需要填到/api这一层。如果你填成https://taotoken.net/api/v1有些客户端会拼成/api/v1/v1/chat/completions直接 404。第三件事是选模型 ID。TaoToken 支持多种模型具体可用列表可以在https://taotoken.net/models或模型对话页面里看到。对于 ssh-mcp-server 这种场景我建议选一个指令遵循能力稳、对 JSON 输出友好的模型因为 MCP 工具调用需要模型返回结构化的 tool call。你可以先在https://taotoken.net/chat里用一句话测试比如“帮我生成一条查看磁盘使用率的 Linux 命令”看它返回是否干净。这里给一个对照表把三个关键参数和常见填错方式列出来参数正确值常见错误后果Base URLhttps://taotoken.net/api多写/v1或带 UTM404 或路径重复API Keysk-开头的一串复制时带空格或换行401 UnauthorizedModel ID以模型页实际为准凭记忆写错大小写400 model not found如果你打算长期跑编码类或 Agent 类任务可以顺带看一下 Coding Plan 页面https://taotoken.net/coding-plan它针对持续编码场景有更合适的额度安排。不过本篇聚焦的是 SSH 远程执行先用按量 Key 跑通即可。还有一点要提醒不要把 API Key 直接写进会提交到 Git 的配置文件里。workbuddy 的 MCP 配置通常在本地用户目录下但如果你用 dotfiles 管理记得把 Key 抽成环境变量或者至少加进.gitignore。我后面给的片段会用占位符你替换成自己的真实值。3. 可复制配置workbuddy 侧 MCP 片段与 endpoint 改写这一节是全文的核心给你可以直接抄的配置。分两层一层是 ssh-mcp-server 的 MCP 注册片段一层是模型 endpoint 指向 TaoToken 的设置。两层放在同一个配置文件里但字段不同别混。先看 ssh-mcp-server 的注册片段。workbuddy 的 MCP 配置一般是一个 JSON 文件结构是mcpServers下面挂各个 server。下面这段是带黑名单的密码认证版本你可以直接改 host、port、username、password{ mcpServers: { ssh-mcp-server: { command: npx, args: [ -y, fangjunjie/ssh-mcp-server, --host, 192.168.44.129, --port, 22, --username, root, --password, pwd123456, --blacklist, ^rm .*,^shutdown.*,^reboot.* ] } } }注意 args 数组里每个参数和它的值必须是独立元素不能写成--host 192.168.44.129这种合并形式否则 npx 会把整串当成一个未知参数server 起不来。这是官方文档里特别强调的我实测也确实如此。接下来是模型 endpoint 部分。workbuddy 的模型配置字段名可能因版本不同略有差异但核心三件套是 Base URL、API Key、Model ID。下面给一个 settings 风格的片段路径按你本地实际配置文件来通常是~/.workbuddy/settings.json或类似位置{ model: { provider: openai-compatible, baseUrl: https://taotoken.net/api, apiKey: sk-你的TaoToken密钥, modelId: 你的模型ID, headers: { Authorization: Bearer sk-你的TaoToken密钥 } } }如果你用的是 TOML 风格的配置等价写法是这样[model] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model_id 你的模型ID三件套必须齐全Base URL 指向https://taotoken.net/apiKey 用你在 api-keys 页面创建的那串Model ID 填模型页里确认过的值。少任何一个MCP 工具调用都会在模型这一步断掉。如果你用的是 Claude Code 或类似支持 Anthropic 协议的客户端配置字段会换成ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY值同样指向 TaoToken。Claude Code 的接入文档在https://taotoken.net/doc里有更细的说明这里不展开但思路一致把模型入口统一到 TaoToken。配置改完后重启 workbuddy让 MCP server 重新加载。你可以在 workbuddy 的 MCP 面板里看到ssh-mcp-server是否处于 connected 状态。如果显示 failed先别急着改 SSH 参数多半是 npx 拉包或模型配置的问题下一节会讲怎么验证。4. 验证请求一次远程命令执行与日志回显配置写完不算通得跑一次真实请求。我用的验证指令是让 AI 登录目标机查看磁盘使用率和负载输出 Markdown。这条指令同时覆盖了 SSH 连接、命令执行、结果回显三个环节。在 workbuddy 对话框里输入类似这样的话“登录 192.168.44.129查看磁盘使用率和负载情况输出为 md 格式”。如果链路正常你会看到 workbuddy 先调用 ssh-mcp-server 的execute-command工具然后在远程机器上跑命令最后把结果整理成报告。我实测下来一次成功的回显大概长这样服务器状态报告 主机地址192.168.44.129 系统运行时长已运行 1 天 12 小时 24 分钟 登录用户数4 人 一、系统负载 1 分钟平均负载0.27 5 分钟平均负载0.13 15 分钟平均负载0.12 CPU 核心数2 二、磁盘使用情况 /dev/mapper/rlm_rocky-root 35G 4.7G 31G 14% / /dev/nvme0n1p1 960M 217M 744M 23% /boot看到这段回显说明三件事都成了SSH 连上了命令执行了模型通过 TaoToken 把结果组织成了可读报告。如果只看到工具调用但没有结果或者结果里出现reading choices之类的报错那就是模型响应解析出了问题去下一节对照排查。你还可以用list-servers工具先确认 server 认到了哪些连接。调用参数是空的{ tool: list-servers, params: {} }返回应该是一个数组列出 name、host、port、username。如果这里返回空说明 ssh-mcp-server 的 args 没被正确解析回去检查 args 数组格式。对于带超时的命令比如ping或tail -f记得在调用时加timeout参数单位毫秒默认 30000。例如{ tool: execute-command, params: { cmdString: ping -c 10 127.0.0.1, connectionName: prod, timeout: 5000 } }这样即使命令阻塞也不会把整个 MCP 会话挂死。验证阶段建议先用短命令确认通了再上复杂指令。5. 本篇常见错排查401、local proxy failed、reading choices、OAuth这一节按真实报错来。你在配 workbuddy ssh-mcp-server TaoToken 的过程中大概率会碰到下面几类问题我按现象、原因、处理顺序列出来。第一类401 Unauthorized。这个几乎都是 Key 的问题。检查三处Key 是否复制完整、是否带了多余空格或换行、Authorization头是否写成Bearer sk-xxx。如果你把 Key 放在环境变量里确认 workbuddy 启动时能读到。还有一种情况是 Key 被吊销了去https://taotoken.net/api-keys看一眼状态。第二类local proxy failed。这个报错通常出现在客户端尝试走本地代理但代理没起来的时候。处理方式是检查你的网络配置确认没有残留的代理环境变量比如HTTP_PROXY、HTTPS_PROXY。如果你确实需要代理确保代理地址和端口正确并且 ssh-mcp-server 的--socksProxy参数格式是socks://user:passwordhost:port。注意这个参数只影响 SSH 连接不影响模型调用。第三类reading choices 相关报错。这通常意味着模型返回的 JSON 结构不符合客户端预期客户端在解析choices字段时失败了。原因可能是 Model ID 填错或者 Base URL 多写了/v1导致请求打到了错误路径。回去确认 Base URL 是https://taotoken.net/apiModel ID 和模型页一致。如果还不行换一个指令遵循更稳的模型再试。第四类OAuth 相关报错。有些 MCP 客户端默认走 OAuth 流程但 TaoToken 的 API Key 是 Bearer 鉴权两者不匹配。你需要在客户端里把鉴权方式切成 API Key而不是 OAuth。如果客户端同时支持两种确认当前选中的是 Key 模式。第五类npx 拉包失败。现象是 MCP server 一直起不来日志里出现npm ERR。这通常是网络或缓存问题。可以先在终端手动跑一次npx -y fangjunjie/ssh-mcp-server --help看能否正常拉取。如果手动能跑通workbuddy 里却不行检查 workbuddy 启动时的 PATH 是否包含 node 和 npx。排查顺序建议先确认模型三件套Base URL、Key、Model ID再确认 ssh-mcp-server 的 args 格式最后确认网络和代理。大部分问题在前两步就能定位。6. 语义一致 CTA把这条链路用起来链路跑通之后你可以做的事情就多了。日常巡检、日志抓取、磁盘清理前的确认都可以通过 workbuddy 加 ssh-mcp-server 来完成模型调用走 TaoTokenSSH 凭据留在本地。如果你在排障或接入阶段卡住了先去https://taotoken.net/api-keys确认 Key 状态再翻https://taotoken.net/doc里的接入文档大部分配置问题那里都有对照说明。想先验证模型响应是否正常可以直接在https://taotoken.net/chat里发一条指令看返回结构干不干净。如果你打算把这条链路长期用于编码或 Agent 类任务https://taotoken.net/coding-plan里有针对持续调用的安排可以按需了解。最后给一个实用技巧把常用的 SSH 连接写成~/.ssh/config里的 Host 别名然后 ssh-mcp-server 的 args 里只写--host myserver这样密码和私钥都不用出现在 MCP 配置里轮换时也只改一处。配合--whitelist限制可执行命令范围比如只允许^ls、^cat、^df、^uptime安全性会好很多。命令白名单和黑名单同时存在时先过白名单再过黑名单两条都通过才执行这个顺序别记反。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑