MCP 是扩展 Claude 能力的主要方式。通过配置 MCP 服务器,你可以让 Claude 获得你需要的任何服务和工具。

前置教程

1. Claude Code 配置 MCP 服务器

1.1 添加 MCP 服务器

在终端中(注意:不是在 Claude Code 的交互会话里),使用以下命令注册一个新的 MCP 服务器。

claude mcp add <服务器名称> [选项] -- <启动命令> [参数...]

1.2 配置文件位置与作用域

MCP 服务器有三种作用域(Scope),通过 claude mcp add --scope 指定:

作用域 命令参数 存储位置 说明
用户级 --scope user ~/.claude.json 的顶层 mcpServers 影响所有项目
项目级 --scope project .claude/.mcp.json(项目根目录) 只影响当前项目,可提交到 Git
本地级 --scope local(默认) ~/.claude.json 的项目私有记录 仅当前项目、当前用户可见,不提交到 Git

配置合并规则:项目级 > 本地级 > 用户级,同名服务器高优先级覆盖低优先级。

三种作用域选择

场景 推荐作用域 命令
全局通用工具(Playwright、文件系统) user --scope user
项目特定工具(GitHub Token、数据库) project --scope project
仅自己可见的私有配置 local(默认) 省略即可

1.3 使用 CLI 命令管理 MCP 配置

Claude Code 提供了 claude mcp 命令集来管理 MCP 服务器。

# 添加 MCP 服务器
# 添加 stdio 类型(默认)
claude mcp add my-server -- node my-server.js

# 添加 SSE 类型
claude mcp add --transport sse my-sse-server http://localhost:8001/sse

# 添加 HTTP 类型
claude mcp add --transport http my-http-server https://example.com/mcp

# 指定作用域(默认 local)
claude mcp add --scope user --transport sse my-server http://localhost:8001/sse

# 带环境变量(stdio 模式)
claude mcp add my-server -e API_KEY=xxx -- npx my-mcp-server

# 查看已配置的服务器列表
claude mcp list

# 查看服务器详情
claude mcp get my-server

# 删除服务器
claude mcp remove my-server
claude mcp remove my-server -s user  # 指定作用域删除

1.5 配置生效与验证

在对话中输入:

/mcp

你会看到类似以下的输出表明 MCP 服务器已成功配置:

 /mcp                                                      

────────────────────────────────────────────────────────────
  Manage MCP servers
  1 server

    User MCPs (C:\Users\12749\.claude.json)
   my-fastmcp-server ·  connected · 2 tools

2. MCP 服务器类型

2.1 官方 MCP 服务器

Anthropic 官方维护了一系列 MCP 服务器:

服务器 用途 安装方式
@modelcontextprotocol/server-filesystem 文件系统操作 npx -y @modelcontextprotocol/server-filesystem <目录>
@modelcontextprotocol/server-github GitHub API npx -y @modelcontextprotocol/server-github
@modelcontextprotocol/server-postgres PostgreSQL npx -y @modelcontextprotocol/server-postgres <连接字符串>
@modelcontextprotocol/server-sqlite SQLite 数据库 npx -y @modelcontextprotocol/server-sqlite <db路径>
@modelcontextprotocol/server-puppeteer 浏览器自动化 npx -y @modelcontextprotocol/server-puppeteer
@modelcontextprotocol/server-sentry Sentry 错误监控 npx -y @modelcontextprotocol/server-sentry
@modelcontextprotocol/server-slack Slack 集成 npx -y @modelcontextprotocol/server-slack
@modelcontextprotocol/server-sequential-thinking 结构化推理 npx -y @modelcontextprotocol/server-sequential-thinking

2.2 社区 MCP 服务器

社区贡献的流行服务器:

服务器 用途 安装方式
@playwright/mcp 浏览器截图和自动化 npx -y @playwright/mcp
@anthropic/mcp-server-pdf PDF 文档阅读 npx -y @anthropic/mcp-server-pdf
mcp-server-sqlite(uvx) Python 版 SQLite 操作 uvx mcp-server-sqlite --db-path <路径>
server-docker Docker 容器管理 见各自项目的安装说明
server-kubernetes Kubernetes 集群管理 见各自项目的安装说明

2.3 自定义 MCP 服务器

创建自定义 MCP 服务器

你可以参考前置教程文档MCP概念详解与应用完整教程,创建一个自定义的 MCP 服务器,然后在终端中运行一下命令,将自定义的 MCP 服务器添加到 Claude Code 中:

claude mcp add --scope user --transport sse my-fastmcp-server http://localhost:8001/sse

提示:确保 my-fastmcp-server 已启动,否则会报错。

验证自定义 MCP 服务器

在对话中输入:

计算一下 456789+654897  

你会看到类似以下的输出表明 MCP 服务器已成功配置并正常调用:

 计算一下 456789+654897                                    

  Thought for 2s, called my-fastmcp-server (ctrl+o to       
  expand) 计算结果:456789 + 654897 = 1,111,686 ✅

✻ Baked for 2s

自定义 MCP 服务器示意图

3. 实战案例

3.1 让 Claude 读写你的文件系统

场景:想让 Claude 能直接读取和编辑项目文件,特别适合用它来批量处理文件。

配置

claude mcp add filesystem npx -y @modelcontextprotocol/server-filesystem "C:\ProgramMine"

注意:server-filesystem 的参数是要开放的目录路径。只开放必要的目录,不要开放整个 C:\ 盘。

效果:启动后,Claude Code 会自动发现并加载 filesystem 服务器提供的工具(read_filewrite_filesearch_files 等),你可以在对话中让 Claude:

  • "读取 src/main.cpp 文件"
  • "在当前目录搜索所有包含 TODO 的文件"
  • "把这段代码保存到 `output.txt""
  • "帮我统计这个目录下各类文件的数量"
  • "搜索所有包含 deprecated 标记的代码文件"

3.2 SQLite 数据库操作

场景:让 Claude 直接查询和分析 SQLite 数据库,特别适合数据分析场景。

配置

claude mcp add sqlite npx -y @modelcontextprotocol/server-sqlite --db-path "C:\data\app.db"

使用示例

  • "查询 users 表的前 10 条记录"
  • "帮我写一条 SQL 统计每个月的订单量"
  • "分析数据库中有哪些异常数据"
  • "帮我看看这个表的结构和索引"
  • "把 orders 表和 products 表做 JOIN 查询,找出销量前十的商品"

3.3 多个 MCP 服务器组合使用

场景:同时使用文件系统、Playwright 和 SQLite,让 Claude 跨工具协作完成复杂任务。

配置

claude mcp add filesystem npx -y @modelcontextprotocol/server-filesystem "C:\Projects"
claude mcp add playwright npx -y @playwright/mcp
claude mcp add sqlite npx -y @modelcontextprotocol/server-sqlite --db-path "C:\Projects\data.db"

组合使用示例

  • "打开这个网页,抓取表格数据,存入 SQLite 数据库,再导出为 CSV 文件保存到项目目录"
  • "读取项目配置文件,查询数据库中的用户数据,生成一份分析报告并保存为 Markdown 文件"
  • "帮我自动化这个流程:截图网页 → 提取数据 → 写入数据库 → 生成日报"

4. 卸载/删除 MCP 服务器

“禁用”不等于“卸载”:虽然在 /mcp 界面里可以“禁用”服务器,但这并不会真正移除它。被禁用的服务器可能仍然会占用上下文窗口的 Token,所以如果不需要了,最好还是彻底卸载掉:

# 移除当前项目作用域的 MCP 服务器
claude mcp remove <服务器名称>

# 如果服务器是添加到用户全局作用域的,需要指定 -s user
claude mcp remove -s user <服务器名称>