简介
MCP(Model Context Protocol,模型上下文协议)是一套开放标准协议,用于给 Claude Code 扩展外部能力。通过 MCP Server,Claude Code 可以对接第三方工具、访问外部系统、调用API、读取本地服务资源,比如查询数据库、操作文件管理器、访问Git仓库、调用Web服务等。
简单理解:MCP 相当于 Claude Code 的插件系统,让模型不用自己写代码,直接调用外部工具完成任务。
区分:
- Claude Code 内置能力:读写本地项目文件、执行终端命令
- MCP 扩展能力:对接外部服务、专用工具、第三方系统
核心概念
- MCP Host:宿主程序,这里就是 Claude Code,负责发起请求、和用户交互
- MCP Server:MCP服务端,提供工具、资源、提示模板,可以本地运行或远程部署
- Tools(工具):MCP Server暴露可执行操作,例如查询数据库、HTTP请求
- Resources(资源):可读取的外部内容,例如文档、日志、远程文件
- Prompts(提示模板):预定义提示词模板,快速调用特定场景
前置条件
- Claude Code CLI / IDE插件已安装
- MCP Server(官方或第三方)
- 在项目
.claude/settings.json或者全局~/.claude/settings.json配置MCP服务
MCP 配置方式
配置写在 settings.json,支持多个MCP服务同时启用。
示例:.claude/settings.json 本地MCP配置
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["@modelcontextprotocol/server-filesystem", "/my-project"]
},
"git": {
"command": "npx",
"args": ["@modelcontextprotocol/server-git"]
}
}
}
command:启动MCP服务的命令args:启动参数
项目级配置
.claude/settings.json仅当前项目生效;全局~/.claude/settings.json对本机所有项目生效。
常用官方MCP Server
| MCP Server | 能力 |
|---|---|
| filesystem | 本地文件读写(可限定目录) |
| git | 读取git提交、分支、diff信息 |
| sqlite | 操作SQLite数据库 |
| fetch | 网页内容抓取 |
| postgres | 连接PostgreSQL数据库 |
使用MCP
- 在
settings.json配置好mcpServers - 重启 Claude Code 会话(执行
/clear),加载MCP配置 - Claude Code 会自动发现MCP提供的工具,对话中自动按需调用
- 调用工具时,会根据当前交互模式,请求审批操作
示例对话:
用git MCP查看最近3次提交记录
Claude Code 将自动调用 git MCP Server 获取提交信息。
MCP 安全要点
MCP Server 可以访问外部资源、本地文件、数据库,存在安全风险:
- 只使用可信来源的MCP服务
- 本地MCP服务尽量限制访问目录,不要开放全盘访问
- 生产环境,保持 Manual 交互模式,工具调用需要人工审批
- MCP服务不要配置高权限账号、数据库root账号
查看MCP状态
/mcp list
查看当前已加载的MCP服务、可用工具列表。
/mcp restart
重启MCP服务,加载修改后的配置。
常见问题
- 配置MCP后,工具不生效
- 检查 settings.json 语法是否正确(逗号、引号)
/clear新建会话,MCP配置仅新会话加载- 使用
/mcp list查看是否识别到MCP服务
- MCP调用被拦截
当前是Manual模式,工具调用需要你手动批准;切换模式可修改审批策略。 - 全局MCP配置和项目MCP配置冲突
项目.claude/settings.json的mcpServers会合并覆盖全局配置。
最佳实践
- 本地开发:按需启用MCP,不用的服务注释掉,减少权限面
- 多人协作项目:MCP配置写进项目
.claude/settings.json,团队统一 - 复杂场景:自行开发自定义MCP Server,接入内部业务API
0 条笔记