UP | HOME

快速入门

Table of Contents

将 MCP 服务器添加到 Claude Code,验证连接,并在磁盘上找到配置

本指南将引导通过 Claude Code CLI 端到端地连接一个 MCP 服务器

完成后,将拥有一个已连接且响应的服务器

了解其配置在磁盘上的位置,并知道如何修复最常见的连接错误

开始之前

确保拥有:

  • 已安装并验证了 Claude Code
  • 在项目目录中打开的终端。任何目录都可以,包括空目录

添加并验证服务器

下面的示例连接到 Claude Code 文档 MCP 服务器,这是一个托管服务器,具有对 Claude Code 文档的全文搜索功能。它不需要身份验证或任何特殊配置,因此它很适合作为第一个服务器来测试设置流程

所有服务器的步骤都相同:添加它、检查连接状态,然后在会话中使用它,最后可选择清理步骤

某些服务器会添加一个步骤,例如浏览器登录

有关更多要连接的服务器,请浏览 Anthropic 目录

https://code.claude.com/docs/zh-CN/mcp#find-and-build-mcp-servers
  1. 添加 MCP 服务器,向 Claude Code 注册服务器。在您的终端中运行此命令,而不是在 claude 会话内:在启动对话之前配置服务器

    claude mcp add --transport http claude-code-docs https://code.claude.com/docs/mcp
    
    • claude mcp add:向 Claude Code 注册服务器
    • –transport http:服务器托管在 URL 上,而不是作为本地进程运行
    • claude-code-docs:创建的名称。将同一服务器称为 docs 会完全相同
      • Claude Code 使用您选择的任何名称来标记 Claude 输出中的服务器工具,并在 claude mcp remove 等命令中引用服务器
    • https://code.claude.com/docs/mcp%EF%BC%9A%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%89%98%E7%AE%A1%E7%9A%84 URL

      该命令打印一个确认信息,如 Added HTTP MCP server claude-code-docs with URL: https://code.claude.com/docs/mcp to local config
      
      local config 部分意味着服务器已注册给您,在此项目中
      
      如果在不同的项目中启动 Claude Code,此服务器在那里不活跃
      
      要为所有项目注册一次服务器,请在用户范围内添加它,详见 更改服务器范围
      
      https://code.claude.com/docs/zh-CN/mcp-quickstart#change-server-scope
      
  2. 检查连接状态,确认服务器出现在您的服务器列表中并检查其状态:

    claude mcp list
    
    • 服务器显示状态指示器:

      状态 含义
      ✓ Connected 准备就绪。这是您应该为 claude-code-docs 看到的
      ! Connected · tools fetch failed 服务器已连接但无法列出其工具。运行 claude mcp get <name> 以获取错误详情
      ! Needs authentication 服务器可以访问但需要浏览器登录,或使用 –header 传递的令牌。请参阅连接需要登录的服务器
      ✗ Failed to connect 服务器没有响应。请参阅故障排除
      ✗ Connection error 连接尝试抛出错误。请参阅故障排除
      ⏸P Pending approval 您尚未批准的项目范围服务器。请参阅直接编辑 .mcp.json
  3. 使用服务器

    claude
    
    Use the claude-code-docs server to look up what MCP_TIMEOUT does
    
    通常不需要在提示中命名服务器,因为 Claude 会自动选择相关工具
    
    在这里命名它可以保证演示通过新服务器而不是另一个工具(如网络获取)进行,该工具可以回答相同的问题
    
    • Claude 第一次调用服务器时,它会要求使用新工具的权限。批准它以继续
    • Claude 输出中的工具调用标有服务器名称,这是您确认答案来自 MCP 服务器而不是 Claude 内置知识的方式
  4. 删除服务器,此步骤是可选的。完成实验后,可以删除服务器:

    claude mcp remove claude-code-docs
    
    每个已连接的服务器在 Claude 的上下文窗口 中占用一些空间,因为其工具名称和服务器说明加载到每个会话中
    
    删除您不再使用的服务器可以保持该空间空闲
    

服务器保存位置

claude mcp add 命令将服务器的详细信息写入配置文件:

  • 默认情况下,它在 local 范围内注册服务器:仅限私有,仅在当前项目中活跃
  • 传递 –scope user 以为所有项目注册一次
  • –scope project 以与队友共享
claude mcp add 在每个 shell 中的工作方式相同,包括 PowerShell 和命令提示符

在 claude 会话内,使用 /mcp 命令检查和管理已添加的服务器

还有其他方式添加服务器,每种都在本页后面介绍:

  • 添加本地服务器:在自己本地机器上运行程序而不是连接到 URL
  • 直接编辑 .mcp.json:自己编写 JSON 条目而不是使用命令
  • 连接需要登录的服务器:添加需要浏览器登录才能使其工具工作的托管服务器

在磁盘上找到配置

claude mcp add 命令将服务器写入三个范围之一,根据 –scope 标志存储在两个文件中

不需要直接编辑这些文件,但知道它们的位置有助于调试和版本控制
范围 文件 可用于
local ~/.claude.json,在此项目的条目下 仅您,仅此项目。默认值
project 项目根目录中的 . mcp.json 克隆项目的所有人
user ~/.claude.json,在顶级 mcpServers 键下 仅您,所有项目
在 Windows 上,~/.claude.json 解析为 %USERPROFILE%\.claude.json,通常为 C:\Users\YourName\.claude.json

如果设置了 CLAUDE_CONFIG_DIR,Claude Code 会从该目录内读取 .claude.json

运行 claude mcp get claude-code-docs 以查看哪个范围保存服务器的定义

有关当同一服务器在多个范围中定义时范围如何交互,请参阅 MCP 安装范围

https://code.claude.com/docs/zh-CN/mcp#mcp-installation-scopes

更改服务器范围

服务器的范围在添加时是固定的,因此更改范围意味着删除条目并在新范围内重新添加它。下面两种情况都从删除第一个演练中的本地条目开始,因此服务器只有一个定义

claude mcp remove claude-code-docs --scope local
如果已在该演练结束时删除了它,请跳过此命令

在所有项目中使用服务器

在 user 范围内重新添加服务器,使其在打开的每个项目中活跃,仍然仅限私有:

claude mcp add --scope user --transport http claude-code-docs https://code.claude.com/docs/mcp

与团队共享服务器

在 project 范围内重新添加服务器,该范围写入项目根目录中的 .mcp.json:

claude mcp add --scope project --transport http claude-code-docs https://code.claude.com/docs/mcp

将 .mcp.json 提交到版本控制

克隆存储库并启动 Claude Code 的队友会看到批准服务器的提示,然后它也会为他们连接

其他 MCP 服务器示例

第一个演练使用了无需任何登录即可连接的托管服务器。下面的示例涵盖了其他两种常见形式,具有相同的添加、检查、使用流程

添加本地服务器

本地 stdio 服务器是 Claude Code 在机器上作为子进程启动的程序,而不是它通过 URL 访问的服务

对于需要访问本地资源(如浏览器、您的文件系统或数据库套接字)的工具,请使用一个

Playwright MCP 服务器 是一个很好的尝试:它为 Claude 提供了一个可以导航、点击和读取的浏览器,并且不需要帐户

它通过 npx 运行,因此需要 Node.js 18 或更高版本
  1. 添加 Playwright 服务器,使用 Claude Code 应该运行以启动它的命令注册服务器:

    claude mcp add playwright -- npx -y @playwright/mcp@latest
    

    此命令与托管示例的不同之处有三个:

    • 没有 –transport 标志,因为本地服务器使用默认的 stdio 传输
    • – 分隔符之后的所有内容都是 Claude Code 运行以启动服务器的命令
    • -y 告诉 npx 安装包而不提示

      Playwright 驱动机器上已安装的任何 Chrome
      
      要使用不同的浏览器,请在 @playwright/mcp@latest 之后附加 --browser 和浏览器名称,例如 --browser firefox
      
  2. 检查连接,Added 确认意味着条目已保存,而不是命令运行。检查连接:

    claude mcp list
    
    第一次检查可能会在 npx 下载包时显示 ✗ Failed to connect,因此请稍等片刻并再次运行
    
  3. 使用浏览器,给 Claude 一个需要浏览器的任务:

    Use playwright to open https://example.com and tell me the page title
    

    浏览器窗口打开,以便可以观看它工作,Claude 输出中的工具调用标有 playwright 服务器名称和操作,如 browser_navigate

    尝试将其指向本地开发服务器以检查页面在更改后是否仍然呈现,或让它逐步完成错误报告
    

连接需要登录的服务器

托管服务(如 Sentry、Linear 和 Notion)在 OAuth 后面运行其 MCP 服务器

添加服务器的 URL,然后通过浏览器登录

下面的步骤以 Sentry 为例。要连接不同的服务,请替换其 URL,可以在 Anthropic 目录 或服务的文档中找到:

  1. 添加服务器,add 命令与文档服务器相同,使用 Sentry 的 URL:

    claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
    
    添加后,claude mcp list 显示服务器为 ! Needs authentication
    
    这是预期的:下一步完成登录
    
  2. 在浏览器中进行身份验证,启动 Claude Code 会话并打开 MCP 面板:

    /mcp
    
    1. 从列表中选择 sentry,按 Enter
    2. 然后选择 Authenticate
    3. 浏览器打开到 Sentry 的登录页面。在那里批准连接

      回到 Claude Code,服务器的状态更改为已连接
      
      如果登录失败或浏览器没有打开,请参阅故障排除
      
      https://code.claude.com/docs/zh-CN/mcp-quickstart#troubleshooting
      
  3. 使用服务器,询问 Claude 需要该服务的内容

    询问 Claude 需要该服务的内容,例如 What Sentry projects do I have access to?
    
    并查找在其输出中标有 sentry 服务器名称的工具调用
    

使用静态令牌而不是 OAuth 进行身份验证的服务器在添加时使用 –header "Authorization: Bearer <token>" 获取令牌

直接编辑 .mcp.json

范围表 中的每个文件都对服务器条目使用相同的 JSON 格式。本部分编辑 .mcp.json,即项目范围文件

它最值得手工编写,因为它被检入存储库,在那里它充当团队的配置即代码

在项目根目录中创建 .mcp.json。下面的示例定义了本指南中的两个服务器,通过 HTTP 访问的托管文档服务器作为本地 stdio 进程的 Playwright 服务器

{
    "mcpServers": {
        "claude-code-docs": {
            "type": "http",
            "url": "https://code.claude.com/docs/mcp"
        },
        "playwright": {
            "type": "stdio",
            "command": "npx",
            "args": ["-y", "@playwright/mcp@latest"]
        }
    }
}

字段因服务器类型而异:

  • 对于 HTTP 服务器, url 是 Claude Code 连接到的端点
  • 对于 stdio 服务器, commandargs 是它运行的程序
保存文件后,在项目中启动新的 Claude Code 会话

Claude Code 在启动时读取 .mcp.json

Claude Code 第一次看到项目范围的服务器时,它会要求批准

提示存在是为了防止克隆的存储库在未经同意的情况下在您的机器上启动进程

批准提示,或如果错过了,运行 /mcp 以稍后批准

批准后,运行 /mcp 并检查服务器是否显示为已连接。如果其中一个显示错误,请参阅故障排除

从其他界面连接

本指南使用 claude mcp CLI 命令,但每个 Claude Code 界面都可以连接到 MCP 服务器:

  • Claude Code 桌面应用:通过 连接器 UI 添加服务器
  • Claude 桌面聊天应用:与 Claude Code 不同的应用。要将其 claude_desktop_config.json 中的服务器复制到 CLI,请在 macOS 或 WSL 上运行 claude mcp add-from-claude-desktop
  • VS Code:请参阅使用 MCP 连接到外部工具
  • 网络上的 Claude Code:从您的存储库读取 .mcp.json
  • Claude.ai:您在 claude.ai/customize/connectors 添加的连接器在您使用该帐户登录 CLI 时自动加载

故障排除

如果服务器不连接,请在会话内使用 /mcp 或从 shell 使用 claude mcp list 检查其状态,然后匹配下面的症状

/mcp 面板还允许您重新连接或进行身份验证而无需离开会话

/mcp 显示未配置 MCP 服务器

Claude Code 没有为当前目录找到任何服务器。最常见的原因:

  • 从不同的项目运行了 claude mcp add。本地范围的服务器与您添加它们的项目相关联:存储库根目录,或如果不在 git 存储库中,则为确切目录

    从现在所在的项目重新添加服务器,或使用 --scope user 添加它,以便它不与项目相关联
    
  • 在错误的路径编辑了配置文件。正确的文件是 ~/.claude.json 和 <project>/.mcp.json
    • Claude Code 不读取 ~/.claude/.mcp.json、~/.claude/config/mcp.json、~/.claude/mcp.json 或 %APPDATA%\Claude\mcp.json 等路径
    • 对于用户范围的服务器,运行 claude mcp add –scope user,它会写入 ~/.claude.json 中的 mcpServers 密钥
    • 对于项目范围的服务器,编辑项目根目录中的 .mcp.json

状态显示连接失败或连接错误

两种状态都意味着服务器没有启动或 URL 没有响应。对于期望令牌而不是连接需要登录的服务器中涵盖的浏览器登录的 HTTP 服务器,它们也可能出现 从 v2.1.191 开始,返回 404 Not Found 的 HTTP 服务器在 /mcp 中选择服务器时显示 MCP endpoint not found at <url>. Check the URL in your MCP config.,并显示 Claude Code 尝试的 URL。早期版本显示通用的 Error POSTing to endpoint 消息,不包含 URL

将 URL 与服务器的文档化 MCP 端点路径进行比较,然后运行 claude mcp remove <name> 并使用正确的 URL 重新添加

对于 HTTP 服务器,确认 URL 可从本地机器访问:

curl -I https://mcp.sentry.dev/mcp
在 PowerShell 中,使用 curl.exe 而不是 curl,以便请求转到真实的 curl 二进制文件而不是 Invoke-WebRequest 别名

响应告诉您您有什么样的问题:

  • 404 或 405:服务器已启动。许多 MCP 端点仅回答 POST 请求,因此这仍然确认 URL 可从您的机器访问
  • 401 或 403:服务器已启动,需要进行身份验证。使用连接需要登录的服务器中的浏览器登录,或对于接受令牌的服务器(如 GitHub 的)

    在 claude mcp add 命令上使用 --header "Authorization: Bearer <token>" 传递它
    
  • 完全没有响应:检查 URL 和您的网络

对于 stdio 服务器,直接在终端中运行配置的命令以查看基础错误。对于本指南中的 Playwright 服务器,运行:

npx -y @playwright/mcp@latest

接下来发生的事情告诉问题在哪里:

  • 命令启动并等待输入:服务器本身工作。运行 claude mcp get <name> 并确认那里显示的命令与您刚刚运行的命令匹配
    • 如果显示的命令与键入的不同,可能在服务器命令之前省略了 – 分隔符

      删除服务器并使用 -- 重新添加它
      
    • 如果手工编写了 .mcp.json,请检查其语法和位置
  • 命令出错:消息命名缺少的内容

    例如 Node.js 或浏览器
    

连接在启动时超时

服务器花费的时间超过了默认的 30 秒启动超时。stdio 服务器的第一次运行在 npx 下载包时可能很慢。使用 MCP_TIMEOUT 环境变量(以毫秒为单位)增加限制:

MCP_TIMEOUT=60000 claude

在 PowerShell 中,在同一行上的命令之前设置变量:

$env:MCP_TIMEOUT = "60000"; claude

服务器已存在

已在同一范围内添加了具有该名称的服务器。要么先删除现有条目,要么选择不同的名称:

claude mcp remove claude-code-docs

如果名称存在于多个范围内,remove 报告 exists in multiple scopes。传递 –scope 以选择要删除的副本

例如 claude mcp remove claude-code-docs --scope local

服务器连接但没有工具出现

在会话内运行 /mcp 并选择服务器以查看其工具列表。如果列表为空,服务器启动但没有注册任何工具

这通常意味着它缺少必需的环境变量,例如 API 密钥

在 claude mcp add 上使用 –env KEY=value 传递变量,或在服务器的 .mcp.json 条目的 env 字段中传递

服务器的文档列出了它需要的变量

.mcp.json 的更改不生效

Claude Code 在会话启动时读取 .mcp.json。编辑文件后退出并重新启动会话

如果服务器仍然没有出现,运行 /mcp 并查找解析警告

Claude Code 跳过格式错误的条目并在那里显示有问题的字段

如果之前在提示时拒绝了服务器,请重置项目批准:

claude mcp reset-project-choices

OAuth 登录失败或浏览器不打开

运行 /mcp,选择服务器,然后再次选择 Authenticate。如果浏览器没有自动打开,复制终端中显示的 URL 并手动打开它

有关固定回调端口和预配置凭据,请参阅使用远程 MCP 服务器进行身份验证

https://code.claude.com/docs/zh-CN/mcp#authenticate-with-remote-mcp-servers
Previous: MCP概述 Home: MCP