mcp-tools · git:20260829.9b78830 · 2026-08-29 · sha256 12ebd720846d1940
mcp-tools git:20260829.9b78830C
Immutable. This exact content is served forever at /api/v1/blob/12ebd720846d1940.
---
title: MCP 工具参考
id: mcp-tools
type: skill
tags: [mcp, 工具, 集成, server, 工作流]
---
# MCP 工具参考
> 通过 `skill_read mcp-tools` 加载本文档。WorkAgent 设计工作流时按需查阅。
## 原理
Nuphus 通过 MCP (Model Context Protocol) 连接外部工具。每个 MCP server 暴露一组 `tools`,可在工作流中用 `do.mcp` 步骤调用(V2 格式,与内置工具同级别):
```json
{ "id": "search", "name": "搜问题",
"do": { "mcp": { "server": "github", "tool": "search_issues",
"with": { "query": "repo:nuphus bug", "limit": 5 } } },
"capture": "issues" }
```
- `server`:`plugin/mcp/servers.yaml` 中的 key
- `tool`:MCP 工具名
- `with`:工具参数(支持 `{{var}}` 模板)
- `capture`:**字符串**,输出存入变量(V2 规范,无 `as_type` 对象格式)
## 工具发现
servers.yaml 配置了新 server 但不确定其工具签名时,运行时自省:
```json
{ "id": "list", "name": "列工具",
"do": { "mcp": { "server": "github", "tool": "tools/list", "with": {} } },
"capture": "tools" }
```
`{{tools}}` 含完整工具名与 inputSchema。
## 已配置的 Server
以下列表来自 `plugin/mcp/servers.yaml`。配置变更后需同步更新本文档。
> 暂无已配置的 MCP server。在 `plugin/mcp/servers.yaml` 配置后更新本段。
## 常用 Server 速查
| Server | 环境变量 | 常用工具 |
|--------|---------|---------|
| GitHub `@modelcontextprotocol/server-github` | `GITHUB_PERSONAL_ACCESS_TOKEN` | `search_repositories` / `search_issues` / `create_issue` / `get_file_contents` |
| Postgres `@modelcontextprotocol/server-postgres` | `DATABASE_URL` | `query`(执行 SQL) |
| Slack `@modelcontextprotocol/server-slack` | `SLACK_BOT_TOKEN` | `send_message` / `list_channels` / `get_channel_history` |
| Filesystem `@modelcontextprotocol/server-filesystem` | 参数 `--directory <允许目录>` | `read_file` / `write_file` / `list_directory` / `search_files` |
## 设计原则
- **MCP 优先于 GUI**:目标软件有 MCP server 时优先走 `do.mcp`,更快更稳且不依赖布局解析
- **MCP 优先于 system_shell**:MCP 返回结构化 JSON,比 CLI 文本解析可靠
- **降级路径**:MCP server 不可用时降级到 system_shell 调用对应 CLI
- **MCP 调用超时/失败**:用 `on_error`(retry / allow_codes)控制,勿用死循环重试