# 通过 MCP 配置接入外部工具

## 使用场景

如果你希望把外部服务或外部进程提供的能力接入 Jarvis，并作为工具使用，可以通过配置文件里的 `mcp` 项进行注册。这个方式适合接入你自己维护的 MCP 服务，或者第三方提供的 MCP 工具服务。

## 操作步骤

1. 打开 Jarvis 全局配置文件：`~/.jarvis/config.yaml`。
2. 添加或修改 `mcp` 配置项。它是一个数组，每一项代表一条 MCP 连接配置。
3. 先确认你要接入的服务属于哪种方式，例如：
   - 本地命令启动型
   - 基于 URL 的远程服务型
4. 按服务类型填写必要字段。至少要有：
   - 名称
   - 类型
   - 是否启用
   - 该类型要求的连接参数
5. 示例一：本地命令启动型

   ```yaml
   mcp:
     - name: local-mcp
       type: stdio
       enabled: true
       command: python
       args:
         - /path/to/your_mcp_server.py
   ```

6. 示例二：远程服务型

   ```yaml
   mcp:
     - name: remote-mcp
       type: sse
       enabled: true
       url: http://127.0.0.1:8081/sse
   ```

7. 保存配置文件。
8. 重新启动会话，让 Jarvis 重新读取 MCP 配置。
9. 启动后检查这些外部工具是否已经出现在当前可用工具中。

## 你会看到的提示与反馈

- 如果某条 MCP 配置被显式关闭，系统会直接跳过，不会注册这条能力。
- 如果配置缺少必要字段，例如缺少类型、缺少命令或缺少地址，系统会给出警告。
- 如果连接成功且外部端返回了工具列表，这些工具会被注册成当前可用工具。
- 除了工具调用外，系统还可能额外注册资源列表和资源读取能力。
- 如果远端返回空工具列表，系统会给出警告，而不是假装接入成功。

## 注意事项

- 配置项名称是 `mcp`。
- 不同连接类型需要的字段不同，写配置前先确认目标服务支持哪种接法。
- 如果配置文件里已经明确写了 `mcp`，系统会优先按配置加载，而不是优先扫描本地 MCP 目录。
- 即使接入成功，这些工具后续仍可能被 `tool_group`、白名单或黑名单过滤。
