是什么
Model Context Protocol(MCP)是开源的 AI 工具集成标准,让 Claude Code 连接到外部工具、数据库和 API。通过 MCP Server,Claude 可以直接读取和操作 Issue 追踪器、监控面板、数据库等系统,而不需要用户手动复制粘贴数据。
核心机制
三种传输方式:
- HTTP(推荐):远程 MCP Server,适合云服务:
claude mcp add --transport http <name> <url> - SSE(已废弃):Server-Sent Events,建议迁移到 HTTP
- stdio:本地进程,适合需要直接系统访问的工具:
claude mcp add -- <command> [args...]
作用域:
- 用户级:
~/.claude.json,所有项目可用 - 项目级:
.mcp.json,随仓库分发 - 会话级:
--mcp-config参数
环境变量注入:stdio Server 启动时自动注入 CLAUDE_PROJECT_DIR(项目根目录),Server 可用此解析相对路径。
安全注意:连接前验证 Server 可信度,外部内容可能引发 Prompt Injection 风险。
构建自己的 Server:可用 mcp-server-dev 插件快速脚手架:
/plugin install mcp-server-dev@claude-plugins-official
/mcp-server-dev:build-mcp-server
关键细节
- 添加 HTTP Server:
claude mcp add --transport http notion https://mcp.notion.com/mcp - 添加 stdio Server:
claude mcp add --env KEY=val myserver -- npx -y server-package - 列出所有 Server:
claude mcp list - 查看 Server 详情:
claude mcp get <name> - 删除 Server:
claude mcp remove <name> - 会话内检查状态:
/mcp - 选项必须在 Server 名称之前,
--分隔 Server 名和命令
关联
- channels — MCP Server 的特殊形式,用于推送事件到会话
- plugins — 打包 MCP Server 配置分发
- routines — Routines 中使用 MCP Connectors
实践要点
- HTTP 传输是首选,SSE 已废弃
- stdio Server 的选项必须在
--之前,否则会被当作 Server 命令的参数 - 项目级
.mcp.json适合团队共享,随仓库提交 CLAUDE_PROJECT_DIR在 Server 环境中可用,但在command/args的${VAR}展开中需要默认值:${CLAUDE_PROJECT_DIR:-.}- 浏览官方 MCP Server 目录:
claude.ai/directory