Skip to content

Claude How ToClaude How To

MCP(Model Context Protocol)

概览

MCP 是 Claude Code 访问外部工具、服务和 API 的标准协议。你可以把 GitHub、数据库、文件系统、聊天系统等都接到 Claude 里。

MCP 架构

MCP 通常由三部分构成:

  1. Claude Code
  2. MCP server
  3. 外部工具或数据源

Claude 会通过 MCP 协议向 server 发起工具调用,并把结果带回当前会话。

MCP 生态

  • GitHub 集成
  • 数据库集成
  • 文件系统集成
  • 组织内部工具
  • 第三方服务

安装方式

HTTP 传输(推荐)

bash
# Basic HTTP connection

# HTTP with authentication header

Stdio 传输(本地)

bash
# Local Node.js server

# With environment variables

SSE 传输(已弃用)

旧版本中可能仍能见到 SSE 方式,但新配置一般优先考虑 HTTP 或 stdio。

WebSocket 传输

适用于需要实时双向通信的场景。

Windows 说明

在 Windows 上配置本地 server 时,要注意 shell、环境变量和路径写法。

OAuth 2.0 认证

对于支持 OAuth 的 MCP server,Claude 可以通过交互式流程或预配置凭据完成认证。

MCP 设置流程

  1. 确认你要接入的服务
  2. 选择 transport
  3. 配置环境变量或认证
  4. 在 Claude Code 中添加 server
  5. 验证工具是否可用

MCP 工具搜索

Claude 会根据当前上下文自动查找可用工具。

动态工具更新

当 MCP server 增加或移除工具时,Claude 可以在运行时感知变化。

MCP 提示补充(Elicitation)

有些 MCP server 会在需要用户补充信息时触发 elicitation,Claude 再把问题转给用户。

工具描述与指令上限

每个 MCP 工具都应该有清晰的描述,帮助 Claude 选择正确的工具。

把 MCP Prompts 暴露成 Slash Commands

text
/mcp__<server-name>__<prompt-name> [arguments]

例如:

bash
/mcp__github__list_prs
/mcp__github__pr_review 456
/mcp__jira__create_issue "Bug title" high

Server 去重

如果多个配置都指向同一个 server,Claude 会尽量避免重复加载。

通过 @ 提及使用 MCP 资源

你可以把某些资源当作引用对象,在 prompt 中直接提及。

MCP 作用域

MCP 配置通常有不同作用域,例如项目级和用户级。

使用项目作用域

适合把团队共享的 server 配置写进项目内。

MCP 配置管理

添加 MCP server

bash
# Add HTTP-based server

# Add local stdio server

# List all MCP servers

# Get details on specific server

# Remove an MCP server

# Reset project-specific approval choices

# Import from Claude Desktop

可用 MCP Server 表

你可以在配置中维护一张 server 清单,记录用途、认证方式和安装命令。

实战示例

示例 1:GitHub MCP 配置

你可以用 GitHub MCP 做这些事:

  • PR 管理
  • Issue 管理
  • 仓库信息查询
  • commit 操作

环境变量展开

在配置中可以使用环境变量,让同一份配置适配不同环境。

示例 2:数据库 MCP

bash
# Using MCP database tool:

# Results:

示例 3:多 MCP 工作流

适合日常报告、跨系统同步和自动化文档生成。

示例 4:文件系统 MCP 操作

可用于读写文件、批量整理、生成报告或导出结果。

MCP vs Memory:决策矩阵

  • Memory:适合长期规则、偏好和上下文
  • MCP:适合实时工具访问和外部数据

请求 / 响应模式

MCP 一般遵循:

  1. Claude 发起请求
  2. Server 处理
  3. 返回结构化结果

环境变量

常见环境变量包括:

  • API token
  • 数据库地址
  • 服务端口
  • 认证信息

Claude 作为 MCP Server(claude mcp serve

bash
# Start Claude Code as an MCP server on stdio

受管 MCP 配置(企业)

企业可通过受管设置统一分发 MCP 配置。

插件提供的 MCP Servers

插件可以把自己的 MCP server 一起打包分发。

Subagent 作用域 MCP

某些 MCP 只允许特定 subagent 使用。

MCP 输出限制

如果输出过大,可以限制 token 数或分页获取。

增大最大输出

bash
# Increase the max output to 50,000 tokens

用代码执行解决上下文膨胀

当重复把大量数据回传给 Claude 会浪费 token 时,可以把 MCP 当作代码 API 来用,减少来回传输。

问题

  • 两个信息源都在耗 token
  • 大数据集不适合全量塞进上下文

方案

  • 用 MCP 工具做实时查询
  • 只把必要结果传给 Claude

工作方式

Claude 通过工具调用从外部系统取回需要的数据,而不是把所有数据先写进上下文。

好处

  • 更少 token 浪费
  • 更清晰的数据边界
  • 更适合大规模查询

示例:过滤大数据集

示例:循环而不做 round-trip

取舍

  • 实现复杂度更高
  • 需要维护 server
  • 但扩展性更好

MCPorter:MCP 工具组合运行时

这是更高级的工具编排思路,可以把多个 MCP 工具串成一个流程。

最佳实践

安全注意事项

应该做的

  • 只授权必要的工具
  • 优先使用最小权限
  • 检查输出是否可信

不要做的

  • 不要把高风险 token 写死在仓库里
  • 不要默认开放所有工具
  • 不要忽视网络和认证风险

配置建议

  • 给每个 server 写清楚用途
  • 用环境变量存认证信息
  • 把项目级配置版本化

性能建议

  • 避免一次性拉回过多数据
  • 优先做过滤和分页
  • 只返回 Claude 真正需要的结果

安装说明

前置条件

  • Claude Code
  • 对应的 MCP server
  • 必要的认证信息

分步设置

  1. 安装 server
  2. 设置环境变量
  3. 添加到 Claude
  4. 测试工具

特定服务的安装

不同服务会有不同的安装命令和认证方式。

故障排查

找不到 MCP Server

  • 检查是否安装
  • 检查路径
  • 检查配置是否正确

认证失败

  • 检查环境变量是否设置
  • 确认 token 权限正确
  • 重新导出变量后再试

连接超时

  • 检查网络
  • 检查 server 是否可用

MCP Server 崩溃

  • 查看 server 日志
  • 降低并发
  • 简化请求

相关概念

更多资源