13. MCP(模型上下文协议)


MCP(Model Context Protocol,模型上下文协议)是 Anthropic 推出的开放协议,让 Claude 能够与外部工具和数据源进行交互。

简单来说,MCP 就像是 Claude 的"插件系统"。通过 MCP,Claude 可以读取本地文件、查询数据库、调用 API、操作 GitHub 仓库等,突破了纯对话的限制。

核心架构

MCP 采用客户端-服务器架构:

组件说明
Host运行 Claude 的应用(如 Claude Desktop)
Client内置于 Host,负责与 Server 通信
Server提供具体功能的服务程序(如文件访问、数据库查询)

工作原理

  1. Claude Desktop 启动时,根据配置文件启动各个 MCP Server
  2. 用户提出请求时,Claude 判断是否需要调用某个工具
  3. 如需调用,Claude 通过 MCP 协议与对应 Server 通信
  4. Server 执行操作并返回结果,Claude 整合后回复用户

桌面版 MCP 配置

前置要求

  • 安装 Claude Desktop
  • 安装 Node.js(用于运行大多数 MCP Server)
  • 可选:安装 uv(用于运行 Python Server)

配置文件位置

系统路径
Windows%APPDATA%\Claude\claude_desktop_config.json
macOS~/Library/Application Support/Claude/claude_desktop_config.json

Windows 配置步骤

1. 打开配置文件夹

Win + R,输入 %APPDATA%\Claude,回车。

2. 编辑配置文件

如果 claude_desktop_config.json 不存在,新建一个。写入以下内容:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\YourName\\Documents"
      ]
    }
  }
}

YourName 替换为实际用户名。

3. 重启 Claude Desktop

完全退出(托盘图标右键退出),重新打开。

macOS 配置步骤

1. 打开配置文件夹

open ~/Library/Application\ Support/Claude/

2. 编辑配置文件

创建或编辑 claude_desktop_config.json

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/yourname/Documents"
      ]
    }
  }
}

3. 重启 Claude Desktop

完全退出后重新打开。

验证配置

配置成功后,点击 Claude Desktop 输入框右下角的工具图标,即可看到已连接的 MCP Server。

常用 MCP 服务器

文件系统(Filesystem)

让 Claude 读写本地文件。

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/allowed/folder"
      ]
    }
  }
}

可指定多个文件夹,用逗号分隔添加到 args 数组中。

GitHub

让 Claude 操作 GitHub 仓库:创建 Issue、PR、搜索代码等。

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
      }
    }
  }
}

需要先在 GitHub Settings → Developer settings → Personal access tokens 创建 Token。

SQLite 数据库

让 Claude 查询和分析 SQLite 数据库。

{
  "mcpServers": {
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "/path/to/database.db"]
    }
  }
}

Google Drive

让 Claude 访问 Google Drive 文件。

{
  "mcpServers": {
    "gdrive": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-gdrive"]
    }
  }
}

首次使用需要完成 OAuth 授权。

Slack

让 Claude 读取和发送 Slack 消息。

{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-slack"],
      "env": {
        "SLACK_BOT_TOKEN": "xoxb-xxxxxxxxxxxx",
        "SLACK_TEAM_ID": "T00000000"
      }
    }
  }
}

多 Server 配置示例

可以同时启用多个 Server:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/docs"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxx"
      }
    },
    "sqlite": {
      "command": "uvx",
      "args": ["mcp-server-sqlite", "--db-path", "/Users/me/data.db"]
    }
  }
}

更多 Server

官方和社区提供了大量 MCP Server,可在 GitHub MCP Servers 查看完整列表。

使用场景示例

场景一:分析本地数据

配置 filesystem 后,可以这样使用:

帮我分析 Documents/sales 文件夹里的 CSV 文件,统计每个月的销售额

Claude 会读取文件内容,进行数据分析并给出结果。

场景二:管理 GitHub 项目

配置 github 后:

查看我的 my-project 仓库最近的 Issue,总结一下待处理的问题
帮我创建一个 Issue,标题是'修复登录页面 bug',描述一下问题现象

场景三:查询数据库

配置 sqlite 后:

查询 orders 表,找出最近 30 天消费最高的 10 个用户
分析 products 表的数据分布,有哪些异常值?

场景四:整理 Google Drive

配置 gdrive 后:

搜索我 Drive 里所有包含'会议记录'的文档
帮我整理下载文件夹,按文件类型分类

场景五:多工具协作

同时配置多个 Server,可以完成复杂任务:

从 GitHub 仓库的 README 中提取 API 文档,保存到本地 docs 文件夹
查询数据库中的用户反馈,生成报告并发送到 Slack 频道

MCP 安全注意事项

权限最小化

只授予 MCP Server 必要的访问权限:

  • 文件系统:只开放需要的文件夹,避免开放整个磁盘
  • API Token:只授予必要的权限范围
  • 数据库:考虑使用只读账户

敏感信息保护

  • API 密钥存放在配置文件的 env 字段中,不要硬编码在其他地方
  • 配置文件包含敏感信息,注意不要上传到公开仓库
  • 定期轮换 API Token

审查 Server 来源

  • 优先使用官方提供的 MCP Server
  • 使用第三方 Server 前,检查其代码和信誉
  • 注意 Server 请求的权限是否合理

操作确认

MCP 让 Claude 能够执行实际操作(如删除文件、发送消息)。对于重要操作:

  • Claude 通常会在执行前确认
  • 可以要求 Claude 先展示计划,确认后再执行
  • 重要数据操作前做好备份

日志监控

如遇问题,可查看日志排查:

系统日志位置
Windows%APPDATA%\Claude\logs\
macOS~/Library/Logs/Claude/

资源链接

评论

0
还没有评论,来写第一条吧