模型上下文协议服务器配置

Claude的模型上下文协议(MCP)服务器配置,提供GitHub集成、语义记忆、浏览器自动化等外部工具访问能力,适用于AI开发增强场景。

  • by aporb
  • Shell
  • 本地部署
  • 更新于
在 GitHub 查看 aporb/claude-mcp-server-toolkit

使用说明

Claude MCP服务器配置

此目录包含Claude的模型上下文协议(MCP)服务器的配置和管理脚本。

概述

MCP服务器通过提供对外部工具和资源的访问来增强Claude的能力。此设置包括:

  • GitHub MCP服务器:与GitHub存储库集成
  • Context7 MCP服务器:语义记忆能力
  • 浏览器工具MCP服务器:Web交互工具
  • 木偶MCP服务器:自动浏览器控制
  • 存储库MCP服务器:持久内存存储
  • 知识图谱MCP服务器:结构化知识表示

全球MCP服务器集成

配置路径

每个平台都有特定的MCP配置位置:

  1. 克劳德代码:

    • Linux/macOS: ~/.config/claude-code/mcp.json
    • 窗户: %APPDATA%/Claude Code/mcp.json
  2. 克劳德桌面:

    • Linux/macOS: ~/.config/claude/claude_desktop_config.json
    • 窗户: %APPDATA%/Claude/claude_desktop_config.json
  3. Cline.bot:

    • 所有平台: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

标准配置格式

所有平台都使用一个通用的JSON结构:

{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
      }
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "${HOME}/Desktop", "${HOME}/Downloads"]
    },
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    },
    "browser-tools": {
      "command": "npx",
      "args": ["@agentdeskai/browser-tools-mcp@latest"]
    },
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    },
    "puppeteer": {
      "command": "npx",
      "args": ["-y", "puppeteer-mcp-server"]
    },
    "sequential-thinking": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
    }
  },
  "security": {
    "allowAllMCPToolPermissions": false,
    "requireToolApproval": true,
    "fileSystemAccess": {
      "allowedPaths": ["${HOME}/Desktop", "${HOME}/Downloads", "${HOME}/Documents"],
      "disallowedPaths": ["${HOME}/.ssh", "${HOME}/.config", "${HOME}/.aws"]
    }
  }
}

全球安装

  1. 安装所需依赖项:

    # Install Node.js dependencies
    npm install -g @modelcontextprotocol/server-filesystem @modelcontextprotocol/server-memory @agentdeskai/browser-tools-mcp@latest @upstash/context7-mcp@latest puppeteer-mcp-server @modelcontextprotocol/server-sequential-thinking
    
    # Pull Docker images
    docker pull ghcr.io/github/github-mcp-server
    
  2. 配置环境变量: 创建一个 .env 主目录中的文件:

    # GitHub integration
    export GITHUB_PERSONAL_ACCESS_TOKEN="your_token_here"
    
    # Other platform-specific tokens
    export CONFLUENCE_API_TOKEN="your_token_here"
    export JIRA_API_TOKEN="your_token_here"
    
  3. 运行配置脚本:

    # Configure all platforms
    bash scripts/configure-claude-code.sh
    bash scripts/configure-claude-desktop.sh
    bash scripts/configure-vscode-cline.sh
    

安全最佳实践

  1. 文件权限:

    # Set restrictive permissions on config files
    chmod 600 ~/.config/claude-code/mcp.json
    chmod 600 ~/.config/claude/claude_desktop_config.json
    chmod 600 ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
    
  2. 环境变量:

    • 将敏感令牌存储在环境变量中
    • 为不同平台使用单独的令牌
    • 定期轮换代币
    • 从不将令牌提交到版本控制
  3. 访问控制:

    • 配置allowedPaths以限制文件系统访问
    • 为敏感操作启用requireToolApproval
    • 默认情况下,使用allowAllMCPToolPermissions=false
    • 定期审核服务器权限

健康检查

跨平台验证MCP服务器状态:

# Check Claude Code servers
claude mcp list

# Check Claude Desktop
bash scripts/health-check.sh

# Check Cline.bot
code --list-extensions | grep claude

故障排除

  1. 服务器连接问题:

    # Check if servers are running
    ps aux | grep mcp
    docker ps | grep mcp
    
  2. 权限错误:

    # Fix config file permissions
    chmod 600 ~/.config/claude*/mcp*.json
    
  3. 缺少的依赖:

    # Reinstall Node.js packages
    npm install -g @modelcontextprotocol/server-filesystem @modelcontextprotocol/server-memory
    
    # Rebuild Docker images
    docker pull ghcr.io/github/github-mcp-server
    
  4. 日志分析:

    # View server logs
    cat ~/.config/claude/logs/mcp-servers.log
    

跨平台兼容性

  1. 路径格式:

    • 使用${HOME}作为用户主目录
    • 即使在Windows上也要使用正斜杠(/)
    • 将环境变量用于系统路径
  2. 服务器命令:

    • 将npx用于Node.js服务器
    • 对容器化服务器使用docker run--rm
    • 设置适当的环境变量
  3. 配置同步:

    • 使用scripts/sync-env-to-config.sh同步设置
    • 保持一致的安全设置
    • 保持服务器版本一致

全局MCP配置

MCP服务器可以跨不同平台进行全局配置,以确保功能一致:

克劳德代码全局配置

  1. 位置: ~/.config/claude-code/mcp.json (Linux/macOS)或 %APPDATA%/Claude Code/mcp.json (Windows)
  2. 配置:
    bash scripts/configure-claude-code.sh
    
    这将为所有Claude Code工作区在全球范围内设置MCP服务器。

Claude桌面配置

  1. 位置:
    • Linux/macOS: ~/.config/claude/claude_desktop_config.json
    • 窗户: %APPDATA%/Claude/claude_desktop_config.json
  2. 配置:
    bash scripts/configure-claude-desktop.sh
    
    这启用了Claude Desktop应用程序中的MCP功能。

Cline.bot全局配置

  1. 位置: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  2. 配置:
    bash scripts/configure-vscode-cline.sh
    
    这将使用Cline为所有VS Code工作区设置全局MCP设置。

常见配置选项

所有平台都支持这些核心MCP服务器:

  1. GitHub集成:

    {
      "github": {
        "command": "docker",
        "args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "your_token_here"
        }
      }
    }
    
  2. 文件系统访问:

    {
      "filesystem": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", "path1", "path2"]
      }
    }
    
  3. 内存管理:

    {
      "memory": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-memory"]
      }
    }
    

安全考虑

全局配置MCP时:

  1. 文件权限:

    • 配置文件应具有600个权限(仅限用户读/写)
    • 环境文件也应采取类似的保护措施
  2. 许可证管理:

    • 将令牌存储在环境变量中
    • 如果需要,为不同的平台使用单独的令牌
    • 定期轮换代币
  3. 访问控制:

    • 限制文件系统对必要目录的访问
    • 配置外部API访问的允许列表
    • 在需要时启用工具批准要求

目录结构

[PROJECT_ROOT]/
├── README.md                # Main documentation
├── product-docs/            # Product & project management documents
├── config/                  # Configuration files
│   └── config.sh            # Environment variables
├── data/                    # Persistent data storage
│   ├── memory-bank/         # Memory Bank MCP data
│   └── knowledge-graph/     # Knowledge Graph MCP data
├── logs/                    # Log files
├── scripts/                 # Utility scripts
│   ├── health-check.sh      # Server health check
│   ├── security-audit.sh    # Security audit script
│   ├── maintenance.sh       # Maintenance tasks
│   └── cleanup.sh           # Cleanup script
└── vscode-integration/      # VS Code integration files
    └── start-servers.sh     # VS Code startup script

快速开始

  1. 设置环境变量: 复制 .env.template 向 .env 并使用您的凭据进行编辑。这 GITHUB_PERSONAL_ACCESS_TOKEN 是必需的。
cp .env.template .env
nano .env
  1. 运行安装脚本: 这将检查需求、设置权限并准备环境。
bash setup.sh
  1. 构建内存库Docker镜像:
bash scripts/build-memory-bank.sh
  1. 启动MCP服务器: 此命令将向Claude注册所有MCP服务器。它被设计为在后台运行,例如,作为VS Code任务。
bash vscode-integration/start-servers.sh

测试

该项目包括一个全面的测试套件,以确保脚本的可靠性和正确性。该套件包括单元、集成和端到端测试。

要运行所有测试,请从项目根目录执行以下命令:

bash tests/run_tests.sh

VS代码集成

自动设置

创建一个 .vscode/tasks.json 项目目录中的文件:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Start MCP Servers",
      "type": "shell",
      "command": "bash ${workspaceFolder}/vscode-integration/start-servers.sh",
      "isBackground": true,
      "problemMatcher": [],
      "presentation": {
        "reveal": "never",
        "panel": "dedicated",
        "showReuseMessage": false
      },
      "runOptions": {
        "runOn": "folderOpen"
      }
    }
  ]
}

当VS Code打开时,这将自动启动MCP服务器。

运作原理

VS代码集成:

  1. 使用锁文件机制来防止重复的服务器实例
  2. 确保在VS代码关闭时进行适当的清理
  3. 在VS代码重启过程中维护服务器注册
  4. 记录所有活动以进行故障排除

可用的MCP服务器

GitHub MCP服务器

  • 目的:与GitHub存储库交互
  • 状态: ✅ 工作中 -使用正确的stdio参数修复
  • 配置:使用Docker容器连接器脚本
  • 需求:Docker、GitHub个人访问令牌
  • 连接方式:
    • 使用现有的Docker容器 ghcr.io/github/github-mcp-server
    • 连接器脚本: scripts/github-mcp-connector.sh
    • 容器ID:自动检测到正在运行的容器

Context7 MCP服务器

  • 目的:语义记忆能力
  • 命令:
    claude mcp add "context7-mcp-server" "npx" "@upstash/context7-mcp@latest"
    
  • 需求:Node.js、npm

浏览器工具MCP服务器

  • 目的:Web交互工具
  • 命令:
    claude mcp add "browser-tools-mcp-server" "npx" "@agentdeskai/browser-tools-mcp@latest"
    
  • 需求:Node.js、npm

木偶MCP服务器

  • 目的:自动浏览器控制
  • 命令:
    claude mcp add "puppeteer-mcp-server" "npx" "puppeteer-mcp-server"
    
  • 需求:Node.js、npm

存储库MCP服务器

  • 目的:持久内存存储
  • 状态: ✅ 工作中 -已修复以防止多个容器
  • 配置:使用带有--rm标志的Docker连接器脚本
  • 需求:Docker,内存库mcp:本地Docker镜像
  • 连接方式:
    • 用途 docker run -i --rm 用于清洁的一次性容器
    • 连接器脚本: scripts/memory-bank-connector.sh
    • 构建图像: bash scripts/build-memory-bank.sh

知识图谱MCP服务器

  • 状态:当前不可用(在npm注册表中找不到包)
  • 目的:结构化知识表示
  • 备注:在工作包可用之前,此服务器将被禁用

安全考虑

此设置包括几个安全功能:

  1. 环境变量保护:

    • 存储在受保护配置文件中的敏感数据
    • 建议权限: chmod 600 config/config.sh
  2. 锁定文件机制:

    • 防止重复的服务器实例
    • 确保终止时进行适当的清理
  3. 安全审计脚本:

    • 检查暴露的秘密
    • 验证文件权限是否正确
    • 验证令牌
    • 查看自动审批设置

使用以下命令运行安全审核:

bash scripts/security-audit.sh

维护

维护脚本处理:

  • 更新Docker镜像
  • 更新Node.js包
  • 清理Docker资源
  • 备份MCP配置
  • 日志轮转

使用以下方式运行维护:

bash scripts/maintenance.sh

故障排除

常见问题的快速修复

GitHub MCP服务器连接失败

症状: ✘ failed Claude Code中github mcp服务器的状态

解决方案:

  1. 检查Docker容器是否正在运行:
    docker ps | grep github-mcp-server
    
  2. 更新连接器脚本中的容器ID:
    # Find container ID
    CONTAINER_ID=$(docker ps --filter ancestor=ghcr.io/github/github-mcp-server --format "{{.ID}}")
    # Update script
    sed -i '' "s/CONTAINER_ID=\".*\"/CONTAINER_ID=\"$CONTAINER_ID\"/" scripts/github-mcp-connector.sh
    
  3. 测试连接器:
    echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | bash scripts/github-mcp-connector.sh
    

内存库多容器问题

症状:多个 memory-bank-mcp:local 集装箱 docker ps -a

解决方案:

  1. 清理旧容器:
    docker rm $(docker ps -aq --filter ancestor=memory-bank-mcp:local --filter status=exited)
    
  2. 更新的连接器脚本现在使用 --rm 标记以防止此问题

一般故障排除

如果您遇到其他问题:

  1. 检查设置的运行状况:

    bash scripts/health-check.sh
    
  2. 查看日志:

    cat logs/startup.log
    
  3. 验证MCP服务器注册:

    claude mcp list
    
  4. 检查是否有过时的锁文件:

    ls -la vscode-integration/.server-lock
    
  5. 重新启动服务器:

    bash scripts/cleanup.sh
    bash vscode-integration/start-servers.sh
    

克劳德代码与临床差异

如果MCP服务器在Cline/VS代码中工作,但在Claude代码中不工作:

  • 检查stdio参数:确保连接器脚本通过 stdio MCP服务器的参数
  • 验证JSON-RPC协议:使用手动JSON-RPC消息进行测试
  • 容器法:Claude Code可能需要与VS Code扩展不同的连接方法

清理

要删除所有MCP服务器配置:

bash scripts/cleanup.sh

需求

  • 码头工人:适用于GitHub MCP服务器和内存库MCP服务器
  • Node.js和npm:适用于Context7、浏览器工具、Puppeter和知识图谱MCP服务器
  • 卷曲:用于健康检查和网络连接测试
  • VS代码:用于自动化启动集成

配置

GitHub令牌设置

  1. 前往GitHub设置>开发者设置>个人访问令牌
  2. 生成具有适当权限的新令牌
  3. 更新 .env 使用您的令牌:
    export GITHUB_PERSONAL_ACCESS_TOKEN="your_actual_token_here"
    

存储体设置

存储库MCP服务器将数据存储在 data/memory-bank/。此目录会自动创建并挂载到Docker容器中。

知识图谱设置

知识图谱MCP服务器使用存储在 data/knowledge-graph/kg.db.

常见问题

Docker未运行

如果你看到“Docker未运行”错误:

# Start Docker Desktop
open -a Docker

权限不足

如果您遇到权限错误:

chmod +x scripts/*.sh vscode-integration/start-servers.sh
chmod 600 config/config.sh

找不到Node.js

如果未安装Node.js:

brew install node

MCP服务器未注册

检查Claude CLI是否已正确安装和配置:

claude mcp list

支持

有关特定MCP服务器的问题,请参阅其各自的文档: