名称:mcp-management 描述:管理Model Context Protocol (MCP) 服务器 - 从配置的MCP服务器发现、分析和执行工具/提示/资源。使用场景包括处理MCP集成、需要发现可用MCP能力、为特定任务过滤MCP工具、以编程方式执行MCP工具、访问MCP提示/资源或实现MCP客户端功能。支持智能工具选择、多服务器管理和上下文高效的能力发现。
MCP管理
技能用于管理和与Model Context Protocol (MCP) 服务器交互。
概述
MCP是一种开放协议,使AI代理能够连接外部工具和数据源。此技能提供脚本和实用程序,从配置的服务器发现、分析和执行MCP能力,而不污染主上下文窗口。
主要优点:
- 渐进式披露MCP能力(仅加载所需内容)
- 基于任务需求的智能工具/提示/资源选择
- 从单个配置文件进行多服务器管理
- 上下文高效:子代理处理MCP发现和执行
- 持久化工具目录:自动将发现的工具保存到JSON以供快速参考
何时使用此技能
使用此技能当:
- 发现MCP能力:需要列出配置服务器中的可用工具/提示/资源
- 基于任务的工具选择:分析哪些MCP工具与特定任务相关
- 执行MCP工具:以编程方式调用MCP工具,正确处理参数
- MCP集成:构建或调试MCP客户端实现
- 上下文管理:通过将MCP操作委托给子代理避免上下文污染
核心能力
1. 配置管理
MCP服务器配置在.claude/.mcp.json中。
Gemini CLI集成(推荐):创建到.gemini/settings.json的符号链接:
mkdir -p .gemini && ln -sf .claude/.mcp.json .gemini/settings.json
参见references/configuration.md和references/gemini-cli-integration.md。
GEMINI.md响应格式:项目根目录包含GEMINI.md,Gemini CLI自动加载以强制执行结构化JSON响应:
{"server":"name","tool":"name","success":true,"result":<data>,"error":null}
这确保可解析、一致的输出,而不是不可预测的自然语言。文件定义:
- 强制仅JSON响应格式(无markdown,无解释)
- 最大500字符响应
- 错误处理结构
- 可用MCP服务器参考
优点:可编程解析的输出、一致错误报告、DRY配置(格式定义一次)、上下文高效(Gemini CLI自动加载)。
2. 能力发现
npx tsx scripts/cli.ts list-tools # 保存到assets/tools.json
npx tsx scripts/cli.ts list-prompts
npx tsx scripts/cli.ts list-resources
从多个服务器聚合能力,并标识服务器。
3. 智能工具分析
LLM直接分析assets/tools.json - 优于关键字匹配算法。
4. 工具执行
主要:Gemini CLI(如果可用)
# 重要:使用stdin管道,而非-p标志(已弃用,跳过MCP初始化)
echo "Take a screenshot of https://example.com" | gemini -y -m gemini-2.5-flash
次要:直接脚本
npx tsx scripts/cli.ts call-tool memory create_entities '{"entities":[...]}'
回退:mcp-manager子代理
参见references/gemini-cli-integration.md获取完整示例。
实现模式
模式1:Gemini CLI自动执行(主要)
使用Gemini CLI进行自动工具发现和执行。Gemini CLI从项目根目录自动加载GEMINI.md以强制执行结构化JSON响应。
快速示例:
# 重要:使用stdin管道,而非-p标志(已弃用,跳过MCP初始化)
# 添加“Return JSON only per GEMINI.md instructions”以强制执行结构化输出
echo "Take a screenshot of https://example.com. Return JSON only per GEMINI.md instructions." | gemini -y -m gemini-2.5-flash
预期输出:
{"server":"puppeteer","tool":"screenshot","success":true,"result":"screenshot.png","error":null}
优点:
- 自动工具发现
- 结构化JSON响应(可被Claude解析)
- GEMINI.md自动加载以保持格式一致
- 比子代理协调更快
- 无自然语言歧义
参见references/gemini-cli-integration.md获取完整指南。
模式2:基于子代理的执行(回退)
当Gemini CLI不可用时使用mcp-manager代理。子代理发现工具、选择相关工具、执行任务并报告回来。
优点:主上下文保持清洁,仅加载所需工具定义。
模式3:LLM驱动的工具选择
LLM读取assets/tools.json,使用上下文理解、同义词和意图识别智能选择相关工具。
模式4:多服务器协调
跨多个服务器协调工具。每个工具知道其源服务器以进行正确路由。
脚本参考
scripts/mcp-client.ts
核心MCP客户端管理器类。处理:
- 从
.claude/.mcp.json加载配置 - 连接到多个MCP服务器
- 列出所有服务器中的工具/提示/资源
- 执行工具并正确处理错误
- 连接生命周期管理
scripts/cli.ts
MCP操作的命令行接口。命令:
list-tools- 显示所有工具并保存到assets/tools.jsonlist-prompts- 显示所有提示list-resources- 显示所有资源call-tool <server> <tool> <json>- 执行一个工具
注意:list-tools将完整工具目录持久化到assets/tools.json,包含完整模式以供快速参考、离线浏览和版本控制。
快速开始
方法1:Gemini CLI(推荐)
npm install -g gemini-cli
mkdir -p .gemini && ln -sf .claude/.mcp.json .gemini/settings.json
# 重要:使用stdin管道,而非-p标志(已弃用,跳过MCP初始化)
# GEMINI.md自动加载以强制执行JSON响应
echo "Take a screenshot of https://example.com. Return JSON only per GEMINI.md instructions." | gemini -y -m gemini-2.5-flash
返回结构化JSON:{"server":"puppeteer","tool":"screenshot","success":true,"result":"screenshot.png","error":null}
方法2:脚本
cd .claude/skills/mcp-management/scripts && npm install
npx tsx cli.ts list-tools # 保存到assets/tools.json
npx tsx cli.ts call-tool memory create_entities '{"entities":[...]}'
方法3:mcp-manager子代理
参见references/gemini-cli-integration.md获取完整指南。
技术细节
参见references/mcp-protocol.md获取:
- JSON-RPC协议细节
- 消息类型和格式
- 错误代码和处理
- 传输机制(stdio、HTTP+SSE)
- 最佳实践
集成策略
执行优先级
-
Gemini CLI(主要):快速、自动、智能工具选择
- 检查:
command -v gemini - 执行:
echo "<task>" | gemini -y -m gemini-2.5-flash - 重要:使用stdin管道,而非
-p标志(已弃用,跳过MCP初始化) - 最佳用于:所有任务当可用时
- 检查:
-
直接CLI脚本(次要):手动工具指定
- 使用当:需要特定工具/服务器控制
- 执行:
npx tsx scripts/cli.ts call-tool <server> <tool> <args>
-
mcp-manager子代理(回退):上下文高效委托
- 使用当:Gemini不可用或失败时
- 保持主上下文清洁
与代理集成
mcp-manager代理使用此技能来:
- 首先检查Gemini CLI可用性
- 如果可用则通过
gemini命令执行 - 回退到直接脚本执行
- 发现MCP能力而不加载到主上下文
- 报告结果回主代理
这保持主代理上下文清洁,并实现高效的MCP集成。