skill_id: mcp-management name: MCP 服务器管理 description: 管理外部 MCP 服务器连接以扩展 Thoth 的能力 version: 1.0.0 author: Thoth 团队 required_tools:
- list_mcp_servers
- add_mcp_server
- update_mcp_server
- remove_mcp_server
- toggle_mcp_server
- test_mcp_connection tags:
- management
- mcp
- configuration
- tools
MCP 服务器管理技能
概述
本技能提供对外部 MCP(模型上下文协议)服务器的全面管理,这些服务器可以通过额外的工具和资源来扩展 Thoth 的能力。
什么是 MCP?
MCP(模型上下文协议)是一种标准协议,允许 AI 助手连接到外部工具服务器。通过添加 MCP 服务器,您可以:
- 访问额外的工具(文件系统、数据库、API 等)
- 与外部服务集成
- 无需修改核心代码即可扩展 Thoth 的能力
- 连接到您或他人构建的自定义工具服务器
核心功能
1. 列出 MCP 服务器
查看所有已配置的外部 MCP 服务器、其连接状态和工具数量。
示例:
你能告诉我配置了哪些 MCP 服务器吗?
2. 添加 MCP 服务器
使用 stdio、HTTP 或 SSE 传输方式添加新的外部 MCP 服务器。
stdio 传输示例:
添加一个名为 "my-filesystem" 的 MCP 服务器,配置如下:
- 传输方式:stdio
- 命令:npx
- 参数:["-y", "@modelcontextprotocol/server-filesystem", "/path/to/folder"]
- 启用:true
- 自动附加:true
SSE 传输示例:
添加一个名为 "remote-analysis" 的 MCP 服务器,配置如下:
- 传输方式:sse
- URL:http://localhost:8080/mcp
- 启用:true
- 自动附加:false
3. 更新 MCP 服务器
修改现有服务器的配置。
示例:
更新 "my-filesystem" 服务器以启用自动附加
4. 移除 MCP 服务器
从配置中移除服务器(断开连接并分离工具)。
示例:
移除 "remote-analysis" MCP 服务器
5. 切换 MCP 服务器状态
启用或禁用服务器而不移除它。
示例:
禁用 "my-filesystem" 服务器
6. 测试连接
测试与已配置 MCP 服务器的连接性。
示例:
测试与 "my-filesystem" 服务器的连接
配置文件
所有 MCP 服务器都存储在 vault/thoth/_thoth/mcps.json 中。该文件作为单一事实来源,并受到监控以检测更改(已启用热重载)。
文件格式
{
"version": "1.0.0",
"mcpServers": {
"server-id": {
"name": "服务器名称",
"enabled": true,
"transport": "stdio|http|sse",
"command": "stdio 的命令",
"args": ["参数1", "参数2"],
"url": "http 或 sse 的 URL",
"env": {"环境变量": "值"},
"autoAttach": true,
"timeout": 30
}
}
}
传输类型
stdio(标准输入/输出)
最适合通过 stdin/stdout 进行通信的本地命令行工具。
必填字段: command, args
示例: 基于 npx 的 MCP 服务器
HTTP
最适合基于 HTTP 的 REST API。
必填字段: url
示例: http://localhost:8080/mcp
SSE(服务器发送事件)
最适合流式响应和实时更新。
必填字段: url
示例: http://localhost:8080/mcp
自动附加行为
当 autoAttach: true 时:
- 来自服务器的工具会自动附加到所有 Letta 代理
- 新代理会自动获得这些工具
- 禁用服务器会从代理中分离工具
当 autoAttach: false 时:
- 工具可用但不会自动附加
- 适用于您希望选择性使用其工具的服务器
热重载
系统监视 mcps.json 的更改并自动:
- 添加新服务器时连接它们
- 配置更改时重新连接服务器
- 移除或禁用服务器时断开连接
- 与 Letta 代理同步工具附加状态
您可以手动编辑文件或使用提供的工具。
常见 MCP 服务器
文件系统访问
{
"filesystem": {
"name": "文件系统服务器",
"enabled": true,
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"],
"autoAttach": true,
"timeout": 30
}
}
SQLite 数据库
{
"sqlite": {
"name": "SQLite 数据库",
"enabled": true,
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sqlite", "--db-path", "./data.db"],
"autoAttach": true,
"timeout": 30
}
}
GitHub 集成
{
"github": {
"name": "GitHub 服务器",
"enabled": true,
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {"GITHUB_TOKEN": "您的令牌"},
"autoAttach": false,
"timeout": 30
}
}
最佳实践
- 初始禁用:以
enabled: false添加新服务器,并在启用前进行测试 - 测试连接:在完全配置前始终测试连接性
- 明智使用自动附加:仅自动附加广泛有用的工具
- 设置适当的超时:根据服务器响应时间进行调整
- 保护凭证:对敏感数据使用环境变量
- 记录自定义服务器:为自定义 MCP 服务器添加清晰的描述
故障排除
服务器无法连接
- 检查命令/URL 是否正确
- 验证服务器是否已安装且可访问
- 检查日志中的连接错误
- 使用更长的超时时间进行测试
工具未出现
- 确保服务器已启用
- 检查
autoAttach设置 - 验证服务器连接状态
- 检查 Letta 代理工具列表
配置未更新
- 等待 2-3 秒以进行热重载
- 检查
mcps.json的文件权限 - 验证 JSON 语法是否有效
- 检查服务器日志中的错误
相关技能
- settings-management:管理 Thoth 核心设置
- skill-creation-workshop:创建自定义技能