Claude Code 扩展

Claude Code 扩展

MCP 快速开始

4 分钟阅读

连接到 MCP 服务器

为 Claude Code 添加一个 MCP 服务器,验证连接,并找到磁盘上的配置文件。

模型上下文协议(Model Context Protocol,MCP)让 Claude Code 能使用其内置工具集之外的工具,例如搜索一个问题跟踪系统、查询数据库,或操控一个网页浏览器。这些工具来自 MCP 服务器,它们运行在你的机器上,或作为托管服务运行。

本指南将带你完成用 Claude Code CLI 连接一个 MCP 服务器的完整流程。读完之后,你会拥有一个已连接并能响应的服务器,知道其配置在磁盘上的位置,并知道如何修复最常见的连接错误。

你也可以从其他界面添加 MCP 服务器,包括桌面应用、VS Code 和网页版。请参阅从其他界面连接

关于在 Claude Code 中连接和配置 MCP 服务器的所有方式,请参阅MCP 参考文档

开始之前

请确保你具备:

  • 已安装 Claude Code并完成身份验证
  • 一个在项目目录下打开的终端。任何目录都可以,包括空目录。

添加并验证一个服务器

以下示例会连接到Claude Code 文档 MCP 服务器,这是一个提供 Claude Code 文档全文搜索的托管服务器。它不需要身份验证或任何特殊配置,因此非常适合用来测试整套搭建流程。

对任何服务器,步骤都是一样的:添加它,检查连接状态,然后在会话中使用它,最后可选地进行清理。有些服务器会多出一步,例如浏览器登录,见更多 MCP 服务器示例。要查找更多可连接的服务器,请浏览 Anthropic 目录

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:该服务器托管在一个网址上,而不是作为本地进程运行。
  • claude-code-docs:一个你自己起的名称。将同一个服务器命名为 docs 效果完全一样。Claude Code 会用你选定的名称,在 Claude 的输出中标注该服务器的工具,并在诸如 claude mcp remove 之类的命令中用它指代该服务器。
  • https://code.claude.com/docs/mcp:该服务器托管所在的网址。

该命令会打印一条确认信息,类似 Added HTTP MCP server claude-code-docs with URL: https://code.claude.com/docs/mcp to local config。其中 local config 部分意味着该服务器注册给了你个人,且仅在当前这个项目中生效:如果你在另一个项目中启动 Claude Code,该服务器在那里不会生效。要为你所有的项目一次性注册某个服务器,可以在用户范围内添加它,详见更改服务器范围

2

检查连接状态

确认该服务器出现在你的服务器列表中,并检查其状态:

claude mcp list

该服务器会带着一个状态指示符出现:

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

使用该服务器

启动一个会话,按名称让 Claude 使用这个新服务器:

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 和 Command Prompt。在 claude 会话内部,使用 /mcp 命令查看和管理你已添加的服务器。

添加服务器还有其他方式,本页后面会分别介绍:

在磁盘上找到你的配置

根据 --scope 标志,claude mcp add 命令会将服务器写入三种范围之一,存储在两个文件中。你不需要直接编辑这些文件,但知道它们的位置有助于调试和版本控制。

范围文件可用范围
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 安装范围

更改服务器范围

一个服务器的范围在你添加它时就固定了,因此要更改范围,意味着要先移除该条目,再以新的范围重新添加。以下两种情况都从移除第一个教程中的本地条目开始,这样该服务器就只有一个定义。如果你已经在那个教程结尾移除过它,可以跳过这条命令:

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 在你机器上作为子进程启动的程序,而不是通过网址访问的服务。当某个工具需要访问本地资源(例如浏览器、你的文件系统,或数据库套接字)时,可以使用这种方式。

Playwright MCP 服务器是一个不错的尝试对象:它给 Claude 提供了一个可以导航、点击和读取内容的浏览器,且无需任何账号。它通过 npx 运行,因此需要 Node.js 18 或更高版本。

1

添加 Playwright 服务器

用 Claude Code 应该运行的启动命令来注册该服务器:

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

这条命令与托管服务器的示例有三点不同:

  • 没有 --transport 标志,因为本地服务器使用默认的 stdio 传输方式。
  • -- 分隔符之后的一切,都是 Claude Code 用来启动该服务器的命令。
  • -ynpx 在安装该软件包时不再询问确认。

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

可以尝试让它访问你的本地开发服务器,检查某次改动后页面是否仍能正常渲染,或让它逐步走一遍某个 bug 报告的复现步骤。

连接需要登录的服务器

像 Sentry、Linear 和 Notion 这类托管服务,会在 OAuth 之后运行它们的 MCP 服务器:你先添加该服务器的网址,然后通过浏览器登录。

以下步骤以 Sentry 为示例。要连接其他服务,请替换成它的网址,你可以在 Anthropic 目录或该服务的文档中找到。

1

添加该服务器

add 命令与文档服务器的用法相同,只是换成 Sentry 的网址:

claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

添加之后,claude mcp list 会显示该服务器为 ! Needs authentication。这是预期行为:下一步会完成登录。

2

在浏览器中完成身份验证

启动一个 Claude Code 会话并打开 MCP 面板:

/mcp

从列表中选择 sentry,按 Enter,选择 Authenticate。你的浏览器会打开 Sentry 的登录页面。在那里批准该连接。

回到 Claude Code 后,该服务器的状态会变为已连接。如果登录失败,或浏览器没有打开,请参阅故障排查

3

使用该服务器

向 Claude 提出一个需要用到该服务的问题,例如 What Sentry projects do I have access to?,并在其输出中查找标注了 sentry 服务器名称的工具调用。

用静态令牌而非 OAuth 进行身份验证的服务器,可以在添加时用 --header "Authorization: Bearer <token>" 传入令牌。具体示例请参阅 GitHub 示例

直接编辑 .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 服务器:

故障排查

如果某个服务器无法连接,可在会话内用 /mcp,或在 shell 中用 claude mcp list 检查其状态,然后对照以下症状排查。/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

这两种状态都意味着服务器没有启动,或该网址没有响应。对于期望使用令牌而非连接需要登录的服务器中所述浏览器登录的 HTTP 服务器,也可能出现这两种状态。

从 v2.1.191 开始,当一个返回 404 Not Found 的 HTTP 服务器在 /mcp 中被选中时,会显示 MCP endpoint not found at <url>. Check the URL in your MCP config.,并给出 Claude Code 尝试访问的网址。更早的版本只会显示一条不带网址的通用信息 Error POSTing to endpoint。将该网址与该服务器文档记录的 MCP 端点路径进行比对,然后运行 claude mcp remove <name>,再用正确的网址重新添加。

对于 HTTP 服务器,确认该网址能从你的机器访问:

curl -I https://mcp.sentry.dev/mcp

在 PowerShell 中,请使用 curl.exe 而不是 curl,这样请求才会发往真正的 curl 二进制文件,而不是 Invoke-WebRequest 别名。

响应内容会告诉你问题出在哪里:

  • 404405:服务器已启动。许多 MCP 端点只响应 POST 请求,因此这仍能确认该网址可从你的机器访问。
  • 401403:服务器已启动,你需要进行身份验证。请使用连接需要登录的服务器中的浏览器登录方式;对于像 GitHub 这样改用令牌的服务器,请在 claude mcp add 命令中用 --header "Authorization: Bearer <token>" 传入令牌。
  • 完全没有响应:检查网址和你的网络。

对于 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 字段中设置它。该服务器的文档会列出它需要的变量。

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

如果你的服务器仍未出现,运行 /mcp 并查找解析警告。Claude Code 会跳过格式错误的条目,并在那里显示出问题的字段。

如果你之前在提示时拒绝了该服务器,可以重置项目批准状态:

claude mcp reset-project-choices

运行 /mcp,选择该服务器,再次选择 Authenticate。如果浏览器没有自动打开,复制终端中显示的网址并手动打开。关于固定的回调端口和预先配置的凭据,请参阅对远程 MCP 服务器进行身份验证

后续步骤

连接好一个服务器之后,可以探索 MCP 提供的其他能力:

博极客AI是专业人工智能学习平台,提供通俗易懂的AI入门教程、大模型应用、实战项目与行业动态,全站内容免费阅览,零基础也能轻松学AI,适配学生、职场新人及技术爱好者。

© 版权所有 2026 博极客AI,保留一切权利。 | 桂ICP备2026007205号 | 桂公网安备45010502001169号