自学教程

Claude Code MCP

简介

MCP(Model Context Protocol,模型上下文协议)是一套开放标准协议,用于给 Claude Code 扩展外部能力。通过 MCP Server,Claude Code 可以对接第三方工具、访问外部系统、调用API、读取本地服务资源,比如查询数据库、操作文件管理器、访问Git仓库、调用Web服务等。

简单理解:MCP 相当于 Claude Code 的插件系统,让模型不用自己写代码,直接调用外部工具完成任务。

区分:

  • Claude Code 内置能力:读写本地项目文件、执行终端命令
  • MCP 扩展能力:对接外部服务、专用工具、第三方系统

核心概念

  1. MCP Host:宿主程序,这里就是 Claude Code,负责发起请求、和用户交互
  2. MCP Server:MCP服务端,提供工具、资源、提示模板,可以本地运行或远程部署
  3. Tools(工具):MCP Server暴露可执行操作,例如查询数据库、HTTP请求
  4. Resources(资源):可读取的外部内容,例如文档、日志、远程文件
  5. Prompts(提示模板):预定义提示词模板,快速调用特定场景

前置条件

  1. Claude Code CLI / IDE插件已安装
  2. MCP Server(官方或第三方)
  3. 在项目 .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

  1. 在 settings.json 配置好 mcpServers
  2. 重启 Claude Code 会话(执行 /clear),加载MCP配置
  3. Claude Code 会自动发现MCP提供的工具,对话中自动按需调用
  4. 调用工具时,会根据当前交互模式,请求审批操作

示例对话:

用git MCP查看最近3次提交记录

Claude Code 将自动调用 git MCP Server 获取提交信息。

MCP 安全要点

MCP Server 可以访问外部资源、本地文件、数据库,存在安全风险:

  1. 只使用可信来源的MCP服务
  2. 本地MCP服务尽量限制访问目录,不要开放全盘访问
  3. 生产环境,保持 Manual 交互模式,工具调用需要人工审批
  4. MCP服务不要配置高权限账号、数据库root账号

查看MCP状态

/mcp list

查看当前已加载的MCP服务、可用工具列表。

/mcp restart

重启MCP服务,加载修改后的配置。

常见问题

  1. 配置MCP后,工具不生效
  • 检查 settings.json 语法是否正确(逗号、引号)
  • /clear 新建会话,MCP配置仅新会话加载
  • 使用 /mcp list 查看是否识别到MCP服务
  1. MCP调用被拦截
    当前是Manual模式,工具调用需要你手动批准;切换模式可修改审批策略。
  2. 全局MCP配置和项目MCP配置冲突
    项目 .claude/settings.json 的 mcpServers 会合并覆盖全局配置。

最佳实践

  1. 本地开发:按需启用MCP,不用的服务注释掉,减少权限面
  2. 多人协作项目:MCP配置写进项目 .claude/settings.json,团队统一
  3. 复杂场景:自行开发自定义MCP Server,接入内部业务API

0 条笔记