SuperAPI AI 工具集

mcp-config

智能体与模型

查看项目

更新于 10-15 16:15

技能介绍

用途

mcp-config 是一个用于在 Claude Code 中正确配置 MCP(Model Context Protocol)服务器的技能。它的核心目标是确保 MCP 服务器被配置在正确的位置和范围内,以免在所有会话中加载不必要的 MCP,造成上下文空间浪费。

主要能力

该技能覆盖以下工作内容:

  • 新增 MCP 服务器到项目。
  • 移除或禁用 MCP 服务器。
  • 排查 MCP 在不该加载时被加载的问题。
  • 清理 MCP 配置。
  • 理解某个 MCP 为什么加载或不加载。

使用方式

技能给出了可直接照做的触发示例,例如:

  • 添加 pencil MCP 到当前项目
  • 从所有项目中移除 shadcn-studio-mcp
  • 检查当前的 MCP 配置
  • 清理全局 MCP 配置

配置流程包括四个步骤:检查当前 MCP 状态、将 MCP 添加到当前项目、移除 MCP 配置、清理 settings.json。技能提供了对应的检查与清理命令,例如查看用户级与项目级配置:

# Check user-level configuration
cat ~/.claude.json | grep -A 20 '"mcpServers"' | head -25

# Check project-level configuration
cat .mcp.json 2>/dev/null || echo "No project .mcp.json found"

# Check settings.json (should NOT have MCP config)
cat ~/.claude/settings.json | grep -A 5 '"permissions"'

项目级 .mcp.json 的推荐结构示例:

{
  "mcpServers": {
    "server-name": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "package-name"],
      "env": {
        "API_KEY": "your-key-here"
      }
    }
  }
}

技能还给出了使用 Python 脚本移除全局配置和项目配置中 MCP 的示例代码,以及清理 settings.json 中 MCP 相关 permissions 的代码。

清理全局与 settings.json、并创建项目级配置的完整示例命令:

# 1. Clean up global config
python3 << 'EOF'
import json
with open('/Users/likai/.claude.json', 'r') as f:
    data = json.load(f)
data['mcpServers'] = {}
with open('/Users/likai/.claude.json', 'w') as f:
    json.dump(data, f, indent=2)
print("✓ Cleaned global mcpServers")
EOF

# 2. Clean up settings.json
python3 << 'EOF'
import json
with open('/Users/likai/.claude/settings.json', 'r') as f:
    data = json.load(f)
if 'permissions' in data:
    del data['permissions']
with open('/Users/likai/.claude/settings.json', 'w') as f:
    json.dump(data, f, indent=2)
print("✓ Cleaned settings.json permissions")
EOF

# 3. Create project-level config
cat > .mcp.json << 'EOF'
{
  "mcpServers": {
    "your-mcp-name": {
      "type": "stdio",
      "command": "your-command",
      "args": [],
      "env": {}
    }
  }
}
EOF
echo "✓ Created project .mcp.json"

# 4. Restart Claude Code
echo "⚠️  Please restart Claude Code for changes to take effect"

技能文档中还列出了常见 MCP 服务器的配置示例,包括 Pencil(设计工具)、Shadcn Studio 与 Unsplash:

{
  "mcpServers": {
    "pencil": {
      "command": "/Users/likai/.vscode/extensions/highagency.pencildev-0.6.29/out/mcp-server-darwin-arm64",
      "args": ["--app", "visual_studio_code"],
      "env": {},
      "type": "stdio"
    }
  }
}
{
  "mcpServers": {
    "shadcn-studio-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "shadcn-studio-mcp",
        "API_KEY=your-api-key",
        "EMAIL=your-email"
      ],
      "env": {}
    }
  }
}
{
  "mcpServers": {
    "unsplash": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@microlee666/unsplash-mcp-server"],
      "env": {
        "UNSPLASH_ACCESS_KEY": "your-access-key"
      }
    }
  }
}

关键概念

文档强调只有两个位置是有效的 MCP 配置位置:

  • 用户/本地范围:~/.claude.json,位于 mcpServers 字段(对所有项目全局生效),或位于特定项目路径下(用户配置中的项目专属配置)。
  • 项目范围:项目根目录的 .mcp.json,可纳入源码控制,只影响当前项目。

重要规则:不要在 ~/.claude.json 的全局 mcpServers 中配置 MCP,因为这会在所有会话中加载并浪费上下文空间;应在项目级 .mcp.json 中配置;避免用 settings.json 控制 MCP,因为 permissions.allow 字段可能覆盖 disabled 设置并造成混乱。

配置优先级

Claude Code 加载 MCP 时遵循以下优先级:

  1. 项目级 .mcp.json(最高优先级)
  2. 用户级 ~/.claude.json 项目专属配置
  3. 用户级 ~/.claude.json 全局 mcpServers

settings.json 的 permissions 可以覆盖以上所有配置。建议只使用项目级 .mcp.json,以避免混乱。

排查常见问题

  • MCP 在所有会话中加载:原因是配置在 ~/.claude.json 全局 mcpServers;解决办法是从全局配置移除、改为添加到项目级 .mcp.json、重启 Claude Code 会话。
  • MCP 设置了 "disabled": true 仍无法禁用:原因是 settings.json 中的 permissions.allow 覆盖了 disabled 设置;解决办法是移除 settings.json permissions 中的 MCP 项,若为空则删除整个 permissions 块,重启会话。
  • MCP 配置冲突:原因是多个位置配置了不同设置;解决办法是检查 ~/.claude.json、.mcp.json、settings.json 三个位置,只保留一处(优先 .mcp.json),移除其他位置。
  • 找不到 MCP 配置在哪里:文档提供了诊断命令,分别检查全局配置、项目配置、用户 settings、项目 settings。

最佳实践

  • 始终使用项目级 .mcp.json 配置项目专属 MCP。
  • 保持 ~/.claude.json 全局 mcpServers 为空,避免上下文污染。
  • 避免在 settings.json 中配置 MCP,必要时只用于 permissions。
  • 配置变更后重启 Claude Code 以确保生效。
  • 将 .mcp.json 纳入源码控制,让团队成员获得相同 MCP。
  • 不要使用 disabled: true,直接彻底移除 MCP 配置。
  • 不要混用多个配置位置,选定一处并保持一致。

适用场景与限制

适用于管理 Claude Code 中 MCP 服务器的配置、清理与排查。文档范围集中在 Claude Code 的配置文件位置、优先级与排查方法;对于其他客户端或平台的 MCP 配置方式,资料未提供。