关于 mcp-management
mcp-management 是一项用于管理 Claude Code 项目中 MCP 服务的技能,介绍运行时控制、远程服务 OAuth、动态工具发现、配置范围和故障排查。
主要功能
- 01运行时查看与控制服务
- 02远程服务的 OAuth 2.1
- 03动态发现工具与资源
- 04项目、用户和插件级配置
- 05连接与 OAuth 故障排查
适用场景
- 01查看已配置服务并启用或停用
- 02配置远程 MCP 服务的 OAuth 访问
- 03服务能力变化时刷新工具列表
- 04诊断连接和授权问题
MCP 相关
该技能介绍在 Claude Code 中配置和运行 MCP 服务,包括本地 stdio 与远程 HTTP+SSE 传输方式,并说明服务状态、OAuth 和动态发现机制。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ laurigates/ claude-plugins --skill mcp-management安装后在 Claude Code 中输入/mcp-management确认已加载。
附带文件REFERENCE.md
详细介绍
MCP 服务管理
关于如何按项目管理 Model Context Protocol(MCP)服务的专业知识,支持运行时管理、OAuth 远程服务和动态服务发现。
服务配置示例、OAuth 深入解析、动态发现详情、故障排查脚本和完整的配置模式示例,请参阅 REFERENCE.md。
何时使用此技能
| 在以下情况下使用此技能…… | 在以下情况下改用 configure-mcp…… |
|---|---|
| 了解 MCP 架构和概念 | 为新项目设置 .mcp.json |
| 在运行时管理服务(启用/禁用) | 交互式安装新服务 |
| 设置 OAuth 远程 MCP 服务 | 对 MCP 配置运行合规性检查 |
| 排查连接失败问题 | 从注册表添加特定服务 |
实现 list_changed 动态发现 | 生成项目标准报告 |
MCP 架构概述
MCP 通过两种传输类型将 Claude Code 连接到外部工具和数据源:
| 传输方式 | 用途 | 身份验证 | 配置 |
|---|---|---|---|
| Stdio(本地) | 通过 npx、bunx、uvx、go run 启动的基于命令的服务 | 无需 | .mcp.json |
| HTTP+SSE(远程) | 托管在外部的基于 URL 的服务 | OAuth 2.1 | 带有 url 字段的 .mcp.json |
本地服务声明 command 和 args;远程服务声明 url 和
headers(包含 ${VAR_NAME} 令牌引用,绝不硬编码)。请参阅
REFERENCE.md → 服务配置示例。
运行时服务管理
/mcp 命令(Claude Code 2.1.50+)
无需编辑配置文件即可管理服务:
| 命令 | 描述 |
|---|---|
/mcp | 列出所有已配置的 MCP 服务及其连接状态 |
/mcp enable <server> | 为当前会话启用服务 |
/mcp disable <server> | 为当前会话禁用服务(仅限当前会话) |
注意:启用和禁用仅对当前会话生效。要永久更改,请编辑 .mcp.json。
检查服务状态
jq -r '.mcpServers | keys[]' .mcp.json # List configured servers
jq '.mcpServers.context7' .mcp.json # Verify a server's config
OAuth 远程服务(2.1.50+)
远程 HTTP+SSE 服务使用 OAuth 2.1:Claude Code 会从
/.well-known/oauth-authorization-server 发现元数据(按 URL 缓存),用户在浏览器中授权一次;当工具需要更高权限范围时,升级身份验证会再次提示用户。要刷新过期的 OAuth 配置,请先执行 /mcp disable,再对该服务执行 /mcp enable。完整流程、升级身份验证详情和缓存行为请参阅
REFERENCE.md → OAuth 支持。
动态工具发现(list_changed)
声明了 {"tools": {"listChanged": true}} 的服务会在其工具集发生变化时推送
notifications/tools/list_changed,Claude Code 会无需重启会话即可刷新该服务的工具——这对提供特定于项目上下文的工具的服务很有用。resources 和
prompts 也采用相同模式。订阅会自动进行;无需客户端配置。请参阅
REFERENCE.md → 动态工具发现。
故障排查
常见故障模式及相应的诊断脚本(服务无法连接、缺少环境变量、OAuth 问题、SDK MCP 竞态条件)请参阅 REFERENCE.md → 故障排查脚本。 OAuth 快速排查:
| 症状 | 可能原因 | 操作 |
|---|---|---|
| 授权提示反复出现 | 令牌未持久化 | 检查令牌存储权限 |
| 升级身份验证陷入循环 | 权限范围不匹配 | 撤销授权并重新授权 |
| 发现失败 | 服务已停机或 URL 错误 | 验证服务 URL 和连接情况 |
| 缓存过期 | 服务更改了 OAuth 配置 | 禁用并重新启用服务以刷新 |
配置模式
三种作用域,每种都在 REFERENCE.md → 配置模式 中提供了 .mcp.json / settings.json / plugin.json 示例:
- 项目级(推荐)——在项目根目录放置
.mcp.json;个人配置可将其加入.gitignore,团队配置则可纳入版本控制。 - 用户级(个人)——使用
~/.claude/settings.json配置随处可用的服务。 - 插件级——在
plugin.json中声明(或通过"mcpServers": "./.mcp.json"引用)。
添加后的审批关卡(项目级)
新添加的项目 .mcp.json 服务需要用户一次性审批后,其工具才能在当前会话中调用——这是预期行为,并非错误。写入配置后,claude mcp list 会立即将该服务显示为 ⏸ Pending approval (run 'claude' to approve),在用户通过 /mcp 命令批准或重启 CLI 会话之前,该服务都无法调用——这两项操作只能由用户执行,Agent 无法代劳。因此,写入项目 .mcp.json 条目后,应主动告知用户需要进行一次性审批(通过 /mcp 或重启会话),新服务的工具才会变为可用,不要等到检查状态时发现审批关卡后再在流程中途询问。
Agent 式优化
| 上下文 | 命令 |
|---|---|
| 快速检查状态 | jq -c '.mcpServers | keys' .mcp.json 2>/dev/null |
| 验证 JSON | jq empty .mcp.json 2>&1 |
| 列出所需环境变量 | jq -r '.mcpServers[] | .env // {} | keys[]' .mcp.json 2>/dev/null | sort -u |
| 检查特定服务 | jq -e '.mcpServers.context7' .mcp.json >/dev/null 2>&1 && echo "installed" |
| 查找插件中的服务 | find . -name '.mcp.json' -maxdepth 2 |
快速参考
按传输方式划分的服务类型
| 类型 | 使用场景 | 示例 |
|---|---|---|
command(stdio) | 本地工具,无需身份验证 | bunx、npx、uvx、go run |
url(HTTP+SSE) | 远程托管服务,需要 OAuth | https://... |
关键文件
| 文件 | 用途 |
|---|---|
.mcp.json | 项目级 MCP 服务配置(可与团队共享) |
~/.claude/settings.json | 用户级 MCP 服务配置(个人) |
plugin.json | 插件级 MCP 服务声明 |