模型上下文协议 (MCP)

简介

本章节主要介绍如何在 Claude Code 中设置 MCP。

模型上下文协议 (MCP) 是一个开放协议,使 LLM 能够访问外部工具和数据源。有关 MCP 的更多详细信息,请参阅 MCP 文档

警告

使用第三方 MCP 服务器需要您自担风险。确保您信任 MCP 服务器,在使用与互联网通信的 MCP 服务器时要特别小心,因为这些可能会使您面临提示注入风险。

配置 MCP 服务器

  1. 添加 MCP stdio 服务器

    # 基本语法
    claude mcp add <name> <command> [args...]
    # 示例:添加本地服务器
    claude mcp add my-server -e API_KEY=123 -- /path/to/server arg1 arg2
  2. 添加 MCP SSE 服务器

    # 基本语法
    claude mcp add --transport sse <name> <url>
    # 示例:添加 SSE 服务器
    claude mcp add --transport sse sse-server https://example.com/sse-endpoint
    # 示例:添加带有自定义标头的 SSE 服务器
    claude mcp add --transport sse api-server https://api.example.com/mcp -e X-API-Key=your-key
  3. 添加 MCP HTTP 服务器

    # 基本语法
    claude mcp add --transport http <name> <url>
    # 示例:添加可流式传输的 HTTP 服务器
    claude mcp add --transport http http-server https://example.com/mcp
    # 示例:添加带有身份验证标头的 HTTP 服务器
    claude mcp add --transport http secure-server https://api.example.com/mcp -e Authorization="Bearer your-token"
  4. 管理您的 MCP 服务器

    # 列出所有已配置的服务器
    claude mcp list
    # 获取特定服务器的详细信息
    claude mcp get my-server
    # 删除服务器
    claude mcp remove my-server

提示

  • 使用 -s--scope 标志指定配置存储位置:
    • local(默认):仅在当前项目中对您可用(在旧版本中称为 project
    • project:通过 .mcp.json 文件与项目中的每个人共享
    • user:在所有项目中对您可用(在旧版本中称为 global
  • 使用 -e--env 标志设置环境变量(例如,-e KEY=value
  • 使用 MCP_TIMEOUT 环境变量配置 MCP 服务器启动超时(例如,MCP_TIMEOUT=10000 claude 设置 10 秒超时)
  • 随时使用 Claude Code 中的 /mcp 命令检查 MCP 服务器状态

MCP 服务器作用域

  1. 作用域层次结构和优先级

    MCP 服务器配置遵循清晰的优先级层次结构:

    1. 本地作用域(最高优先级)
    2. 项目作用域
    3. 用户作用域(最低优先级)

    当同名服务器存在于多个作用域时,系统会优先选择较高优先级的配置。

  2. 本地作用域

    本地作用域是默认配置级别,存储在您的项目特定用户设置中。

    # 添加本地作用域服务器(默认)
    claude mcp add my-private-server /path/to/server
    # 显式指定本地作用域
    claude mcp add my-private-server -s local /path/to/server
  3. 项目作用域

    项目作用域通过 .mcp.json 文件实现团队协作:

    # 添加项目作用域服务器
    claude mcp add shared-server -s project /path/to/server

    生成的 .mcp.json 文件格式:

    {
    "mcpServers": {
    "shared-server": {
    "command": "/path/to/server",
    "args": [],
    "env": {}
    }
    }
    }
  4. 用户作用域

    用户作用域提供跨项目访问能力:

    # 添加用户作用域服务器
    claude mcp add my-user-server -s user /path/to/server

提示

选择作用域的建议:

  • 本地作用域:个人服务器、实验配置或敏感凭据
  • 项目作用域:团队共享服务器、项目特定工具
  • 用户作用域:跨项目工具、个人实用程序

远程 MCP 服务器身份验证

  1. 添加需要身份验证的远程服务器

    # 添加需要 OAuth SSE HTTP 服务器
    claude mcp add --transport sse github-server https://api.github.com/mcp
  2. 使用 /mcp 命令进行身份验证

    在 Claude Code 中使用 /mcp 命令:

    > /mcp

    这将打开交互式菜单,您可以:

    • 查看服务器连接状态
    • 进行 OAuth 身份验证
    • 清除现有身份验证
    • 查看服务器功能
  3. 完成 OAuth 流程

    1. 您的浏览器会自动打开到 OAuth 提供商
    2. 在浏览器中完成身份验证
    3. Claude Code 接收并安全存储访问令牌
    4. 服务器连接变为活动状态

提示

  • 身份验证令牌安全存储并自动刷新
  • 使用 /mcp 菜单中的”清除身份验证”来撤销访问
  • 如果浏览器没有自动打开,请复制提供的 URL

Postgres MCP 服务器连接

  1. 添加 Postgres MCP 服务器

    claude mcp add postgres-server /path/to/postgres-mcp-server --connection-string "postgresql://user:pass@localhost:5432/mydb"
  2. 使用 Claude 查询数据库

    > describe the schema of our users table
    > what are the most recent orders in the system?
    > show me the relationship between customers and invoices

提示

  • Postgres MCP 服务器提供只读访问
  • Claude 可以帮助探索数据库结构
  • 使用最小权限的连接凭据

JSON 配置添加 MCP 服务器

  1. 从 JSON 添加服务器

    # 基本语法
    claude mcp add-json <name> '<json>'
    # 示例:添加 stdio 服务器
    claude mcp add-json weather-api '{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'
  2. 验证服务器添加

    claude mcp get weather-api

Claude Desktop 导入

  1. 从 Claude Desktop 导入服务器

    claude mcp add-from-claude-desktop
  2. 选择要导入的服务器

    运行命令后,通过交互式对话框选择服务器。

  3. 验证导入结果

    claude mcp list

提示

  • 仅支持 macOS 和 WSL
  • 使用 -s global 添加到全局配置
  • 同名服务器会获得数字后缀

Claude Code 作为 MCP 服务器

  1. 启动 MCP 服务器模式

    claude mcp serve
  2. 客户端配置示例

    {
    "command": "claude",
    "args": ["mcp", "serve"],
    "env": {}
    }

MCP 资源使用

  1. 列出可用资源

    在提示中输入 @ 查看可用资源。

  2. 引用特定资源

    > Can you analyze @github:issue://123 and suggest a fix?
    > Please review the API documentation at @docs:file://api/authentication
  3. 多资源引用

    > Compare @postgres:schema://users with @docs:file://database/user-model

MCP 提示命令

  1. 查看可用提示

    输入 / 查看所有命令,包括 MCP 提示命令。

  2. 执行提示命令

    > /mcp__github__list_prs
    > /mcp__github__pr_review 456
    > /mcp__jira__create_issue "Bug in login flow" high

提示

  • MCP 提示从服务器动态发现
  • 参数根据提示定义解析
  • 提示结果直接注入对话
  • 服务器和提示名称已标准化