Files
freedak f7a720204a Update: 将子项目从 submodule 转为完整内容
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用
- 添加所有子项目的完整源代码
- 保留原始 .git 为 .git.bak 备份
2026-07-04 19:20:46 +08:00

106 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MCP 与技能
NomiFun 有两种容易混淆的扩展机制:
- **MCP server** 是外部工具服务器,通过 stdio、HTTP 或 SSE 暴露可调用工具。
- **技能** 是 markdown/文件夹知识包,告诉 agent 如何完成某个工作流;它不是常驻工具服务器。
当前页面:
| 能力 | 页面 |
| --- | --- |
| MCP server | `/mcp` |
| 技能 | `/assistants?tab=skills` |
| 助手 | `/assistants?tab=assistants` |
| 对外能力暴露 | `/open-capabilities` |
旧 Settings URL 会重定向到这些页面。
## MCP Server
打开 `/mcp` 可以新增、导入、测试、启用/禁用和同步 MCP server。
![MCP 页面](../images/mcp-01-capabilities.png)
每条 server 记录包含:
- 名称;
- transport`stdio``http``sse`
- stdio 的 command / args / env,或 HTTP/SSE 的 URL
- 从其他 agent 配置导入时保留的 raw JSON
- enabled 状态;
- 最近一次连接测试结果。
连接测试会启动临时 MCP client,完成握手、列出工具并持久化结果。失败码覆盖命令
不存在、权限、超时、HTTP、RPC 和协议错误。
需要 OAuth 的 HTTP/SSE server 走 `/api/mcp/oauth/*` 流程。
## 导入和同步 Agent 配置
`GET /api/mcp/agent-configs` 会探测已支持本地 agent CLI 的 MCP 配置。UI 可把探测到
的 server 导入 NomiFun,也可在 adapter 支持写入时把 NomiFun 的 MCP 列表同步回选中的
agent 配置。
这只是配置管理。某次会话最终能看到哪些 MCP server,仍由该会话的选择决定。
## 每会话选择
全局启用 MCP server 只是让它可用,不会自动注入每个 agent。会话启动时最终 MCP 列表来自:
- 全局 enabled server
- 该会话选择的 server
- 当前能力集需要的 builtin bridge server。
最终列表会进入 agent session start payload。
## MCP API
| 操作 | Endpoint |
| --- | --- |
| 列表 / 创建 | `GET`, `POST /api/mcp/servers` |
| 批量导入 | `POST /api/mcp/servers/import` |
| 获取 / 更新 / 删除 | `GET`, `PUT`, `DELETE /api/mcp/servers/{id}` |
| 启用切换 | `POST /api/mcp/servers/{id}/toggle` |
| 连接测试 | `POST /api/mcp/test-connection` |
| 探测 agent 配置 | `GET /api/mcp/agent-configs` |
| OAuth | `POST /api/mcp/oauth/check-status`, `/login`, `/logout`; `GET /api/mcp/oauth/authenticated` |
## 技能
打开 `/assistants?tab=skills`
![技能页](../images/mcp-03-skills.png)
技能可以是单个 markdown 文件,也可以是包含 `SKILL.md` 的目录。
| 来源 | 含义 |
| --- | --- |
| Builtin | 随应用发布;部分会自动注入。 |
| Custom | 用户导入或放入配置目录。 |
| Extension | 已安装扩展提供。 |
技能可打标签、导入、导出/符号链接、扫描外部目录,也可按某个 agent 后端进行
materialize。
## 技能 API
| 操作 | Endpoint |
| --- | --- |
| 列表 | `GET /api/skills` |
| 自动注入 builtin 列表 | `GET /api/skills/builtin-auto` |
| 标签 | `PUT /api/skills/{name}/tags` |
| 信息 / 路径 | `POST /api/skills/info`, `GET /api/skills/paths` |
| 导入 / 导出 / 删除 | `POST /api/skills/import`, `POST /api/skills/import-symlink`, `POST /api/skills/export-symlink`, `DELETE /api/skills/{name}` |
| 扫描 / 探测路径 | `POST /api/skills/scan`, `GET /api/skills/detect-paths`, `GET /api/skills/detect-external` |
| 为 agent materialize | `POST /api/skills/materialize-for-agent` |
| 助手规则/技能文件 | `/api/skills/assistant-rule/*`, `/api/skills/assistant-skill/*` |
| 外部路径 | `GET`, `POST`, `DELETE /api/skills/external-paths` |
| 技能市场 | `POST /api/skills/market/enable`, `POST /api/skills/market/disable` |
## 相关
- [助手](./assistants.zh.md)
- [远程能力 API](./remote-capability-api.zh.md)
- [终端](./terminal.zh.md)