MCP协议
MCP协议
MCP(Model Context Protocol)是 Anthropic 推出的标准化协议,定义了 AI 模型与外部数据源、工具之间的通信方式。在 AI 生态中的角色类似 HTTP 在 Web 中的角色——提供统一接口规范,让不同来源的工具和数据能被 AI 模型统一调用。
解决的问题
没有 MCP 之前,每接入一个新数据源或工具都需要单独编写集成代码,导致 M×N 复杂度——M 个 AI 应用 × N 个工具 = M×N 个适配器。
MCP 将问题简化为 M+N:每个 AI 应用实现一次 MCP Client,每个工具实现一次 MCP Server,即互相通信。大幅降低集成成本,让工具复用成为可能。
核心概念
MCP 采用客户端-服务器架构,定义三种核心能力:
| 能力 | 说明 | 特点 |
|---|---|---|
| 工具(Tools) | AI 可调用的外部函数 | 由 Server 暴露,AI 根据需求决定调用哪个工具、传什么参数 |
| 资源(Resources) | AI 可读取的数据源 | 被动提供,AI 主动读取,用 URI 标识,支持文本和二进制 |
| 提示(Prompts) | 预定义模板 | 帮助 AI 更好地使用特定工具或处理特定场景 |
架构角色
Host 通过 Client 与 Server 通信。一个 Host 可连接多个 Server,每个 Client-Server 连接独立。Server 之间互不感知,Host 负责协调多个 Server 的工具调用。
| 角色 | 职责 | 示例 |
|---|---|---|
| MCP Host | 发起请求的应用程序 | Claude Code、Cursor |
| MCP Client | 维护与 Server 的 1:1 连接 | 内嵌在 Host 中 |
| MCP Server | 暴露工具/资源/提示 | GitHub Server、文件系统 Server |
MCP 通信架构:
通信机制
| 传输方式 | 适用场景 | 原理 |
|---|---|---|
| stdio | 本地 | Host 启动 Server 作为子进程,通过 stdin/stdout 交换 JSON-RPC 消息 |
| Streamable HTTP | 远程 | 2025-03-26 规范引入的 HTTP 传输(POST + 可选 SSE 流),官方推荐;早期 HTTP+SSE 已废弃,主流服务已迁移 |
| HTTP + SSE(旧) | 远程(已废弃) | 早期远程方案,POST 请求 + SSE 流式响应,已被 Streamable HTTP 取代 |
stdio 方式简单高效,不需要网络配置,是 Claude Code 最常用方式。远程场景统一用 Streamable HTTP:一个端点同时支持请求/响应与流式推送,兼容性好。
MCP 工具调用时序:
使用场景
- 本地开发:Claude Code 通过 MCP 连接文件系统、Git、浏览器,实现代码读写、版本控制、网页测试
- 数据查询:MCP Server 封装数据库操作,AI 直接查询 MySQL、MongoDB 等数据源
- API 集成:让 AI 调用天气、邮件、日历等第三方服务
- 企业内部系统:自建 MCP Server,将内部 CRM、ERP 安全暴露给 AI 使用
我的 MCP 工具
当前安装了 7 个 MCP Server,覆盖代码分析、文档查询、前端测试、浏览器联调、智能体记忆等维度。
codebase-memory-mcp
来源:DeusData/codebase-memory-mcp,状态:✔ user(完全激活)。
项目图谱大脑。在底层默默读取并解析本地项目的 AST(抽象语法树),帮模型秒懂复杂的代码依赖关系,防止改了 A 处结果 B 处报错。
核心能力:
| 工具 | 用途 |
|---|---|
search_graph | 按名称/模式搜索代码结构 |
trace_path | 追踪调用链(入/出/双向) |
detect_changes | 分析 git diff 影响了哪些符号 |
get_architecture | 一键查看项目架构概览 |
query_graph | 用 Cypher 查询语言做复杂分析 |
典型场景:重构前用 trace_path 看影响范围;新人上手用 get_architecture 快速理解项目;死代码清理用 search_graph(max_degree=0, exclude_entry_points=true)。
context7
来源:@upstash/context7-mcp,状态:✔ active。
2026 最新外脑。当你要用最新的开源库或框架时,它直接联网抓取 2026 年最新、最准确的官方 API 文档,彻底按死模型的"幻觉"。
工作原理:
resolve-library-id— 把包名转成 Context7 兼容的库 IDquery-docs— 用库 ID + 问题查询最新文档和代码示例
不靠模型记忆,靠实时文档。例如"Next.js 15 的 App Router 怎么做路由?"→ context7 直接拉最新文档。
playwright
来源:@playwright/mcp,状态:✔ active。
无头浏览器内核。微软官方提供,能把本地运行的网页转化为结构化的"可访问性树",让模型在跑前端 TDD 时拥有极其精准的元素抓取和点击能力。
| 工具 | 用途 |
|---|---|
browser_navigate | 打开网页 |
browser_snapshot | 获取页面可访问性快照 |
browser_click / browser_type | 模拟用户交互 |
browser_screenshot | 截图给 AI 看 |
chrome-devtools-mcp
来源:chrome-devtools-mcp@1.3.0,状态:✔ active。
真实浏览器之眼。让 AI 直接潜入你电脑上打开的 Chrome 浏览器,实时读取 Network 请求和 Console 控制台报错,进行前后端肉搏联调。
启动方式:
chrome.exe --remote-debugging-port=9222agentmemory
来源:@agentmemory/agentmemory,底层依赖 iii-engine(iii-hq/iii),状态:✔ active。
为智能体提供记忆能力的 MCP 工具。安装步骤(Windows):
- 下载安装 iii-engine(需安装 v0.11.2 对应版本):打开 https://github.com/iii-hq/iii/releases/tag/iii%2Fv0.11.2 ,找到
iii-x86_64-pc-windows-msvc.zip - 解压文件放到
%USERPROFILE%\.local\bin\目录 - 运行
npx @agentmemory/agentmemory
如果直接运行失败,改用全局安装 + pm2 常驻方案:
npm install -g @agentmemory/agentmemory
pm2 start cmd --name agentmemory -- /c "agentmemory"
pm2 list
pm2 save
npm install -g pm2-windows-startup
pm2-startup install
pm2 list最后 pm2 list 中 agentmemory 显示 online 状态即一切正常;pm2 save + pm2-windows-startup 保证开机自启。
后端服务启动后,在 MCP 客户端中配置接入(连接本地 3111 端口):
"agentmemory": {
"command": "npx",
"args": ["-y", "@agentmemory/mcp"],
"env": {
"AGENTMEMORY_URL": "http://localhost:3111"
}
}neural-memory
来源:nhadaututtheky/neural-memory,状态:✔ active。
记忆类 MCP 工具,安装步骤:
- 先安装 Python 包:
pip install neural-memory- 再在 Claude Code 中通过
/plugin命令安装:
/plugin marketplace add nhadaututtheky/neural-memoryknowledge-graph-memory
来源:@modelcontextprotocol/server-memory,状态:✔ active。
知识图谱记忆工具,把记忆建模为「实体-关系-观测」三元组,用于精确追溯跨项目、跨模块的显式知识关系——如"项目 A 的认证模块依赖 JWT 库 v2.0",回答"A 和 B 是什么关系"这类问题。与 neural-memory 的模糊联想互补,是记忆分层架构中 L2 场景知识层的载体。
核心工具:
| 工具 | 用途 |
|---|---|
create_entities | 创建实体 |
create_relations | 创建实体间关系 |
add_observations | 为实体补充观测 |
search_nodes | 按名称搜索节点 |
open_nodes | 打开节点查看详情 |
read_graph | 读取实体间关系 |
配置方式(与其他 Server 一样注册到各工具的 mcpServers):
"knowledge-graph-memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"]
}数据默认存在各工具启动目录下的 memory.jsonl(JSONL 格式,一行一条实体/关系);若需跨工具共享同一图谱,统一设置环境变量 MEMORY_FILE_PATH 指向同一个文件。
总配置
七个 Server 统一注册在 ~/.claude.json 的 mcpServers 字段,一次配置全局生效:
{
"mcpServers": {
"codebase-memory-mcp": {
"command": "C:/Users/ybd06/.local/bin/codebase-memory-mcp.exe",
"disabled": false
},
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp"
],
"disabled": false
},
"playwright": {
"command": "npx",
"args": [
"-y",
"@playwright/mcp"
],
"disabled": false
},
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@1.3.0"
],
"disabled": false
},
"neural-memory": {
"command": "nmem-mcp",
"disabled": false
},
"agentmemory": {
"command": "npx",
"args": [
"-y",
"@agentmemory/mcp"
],
"env": {
"AGENTMEMORY_URL": "http://localhost:3111"
},
"disabled": false
},
"knowledge-graph-memory": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-memory"
],
"disabled": false
}
}
}三个记忆类 Server 的分层使用体系(L0-L3 分层、前置检索分工、冲突仲裁、写入分工、会话闭环、沉淀流程)见 记忆架构。
配置示例
编辑 ~/.claude/settings.json:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxx"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/dir"]
}
}
}配置后在 Claude Code 中输入 /mcp 查看已注册 Server 和工具列表。命令行添加:
claude mcp add github -- npx -y @modelcontextprotocol/server-github常见问题
排查顺序:先确认 Server 能启动(可执行文件存在),再检查网络连通性,最后看环境变量和工具名冲突。
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Server 启动失败 | 可执行文件未安装 | which uvx 或 npx --version 确认可用,检查代理配置 |
| 工具调用超时 | 远程 Server 网络延迟 | settings.json 的 env 中设置 API_TIMEOUT_MS 增大超时 |
| 环境变量未传递 | Host 不自动继承 shell 环境变量 | 在 env 字段显式声明;敏感信息通过环境变量传递,不要硬编码 |
| 工具名冲突 | 多 Server 暴露同名工具 | 使用语义化名称(如 github_create_issue),Host 按注册顺序调用最后注册的 |