首页/MCP 集成

MCP 集成

Model Context Protocol 客户端与服务器管理

MCP (Model Context Protocol) 是 Claude Code 连接外部工具和资源的标准协议。它支持多种 MCP 服务器类型,实现了工具发现、资源访问和权限管理。

核心要点

支持内置、用户配置、NPM 安装、项目级 MCP 服务器
22 个 MCP 专用文件
WebSocket 传输层
通道白名单和权限控制
动态工具注册 — MCP 工具自动可用

设计亮点

保镖式白名单——整个插件要么进要么不进

夜店保镖看的是你这个人能不能进,不是逐一检查你口袋里的东西

MCP 的权限控制在插件(通道)级别而非工具级别。一个 MCP 服务器要么被完全信任,要么完全不被信任。这比逐工具审核安全得多:如果只控制工具,恶意插件可以随时注册新工具绕过限制。控制整个通道,就堵死了这条路。

白名单在云端可热更新

就像银行的黑名单是实时更新的——不需要把所有 ATM 机拆回去刷固件

MCP 通道白名单存储在 GrowthBook(云端功能开关服务)中。发现某个 MCP 插件有漏洞?运维在后台把它移出白名单,全球所有 Claude Code 用户立即生效——不需要发布新版本,不需要用户手动更新。这种'远程断路器'设计在安全事件响应中至关重要。

7 种配置作用域像俄罗斯套娃

就像公司规章:国家法律 > 公司制度 > 部门规定 > 个人偏好——越具体的越优先

MCP 配置有 7 层作用域,从个人到企业。企业管理员可以在最外层强制要求使用特定的安全 MCP 服务器,团队可以在中层添加团队专用工具,个人可以在最内层自定义。冲突时,更具体(更内层)的配置优先。这让大组织既能统一管控,又给个人留有灵活空间。

模块架构图

加载架构图...
核心文件
services/mcp/client.ts500 LOC

MCP 客户端接口

services/mcp/config.ts600 LOC

MCP 配置解析和管理

services/mcp/MCPConnectionManager.tsx800 LOC

连接状态管理

services/mcp/types.ts300 LOC

MCP 类型定义

services/mcp/channelAllowlist.ts200 LOC

通道白名单

services/mcp/channelPermissions.ts300 LOC

通道权限

tools/MCPTool/MCPTool.ts500 LOC

MCP 工具执行

utils/mcpWebSocketTransport.ts400 LOC

WebSocket 传输

数据流程
1
加载配置
解析 MCP 服务器配置
2
建立连接
启动进程或 WebSocket
3
工具发现
获取可用工具列表
4
注册工具
添加到工具注册中心
5
使用工具
模型调用 MCP 工具
6
返回结果
MCP 结果返回模型

关键代码

加载代码...

深入解析

MCP 让 Claude Code 能够无限扩展工具能力,连接到任何实现了 MCP 协议的服务器。它是 Claude Code 与外部世界对接的标准化桥梁。

内置服务器包括 Chrome 集成和 Computer Use(计算机控制),无需额外配置即可使用。

通道白名单采用'保镖式'设计——不是在工具级别做权限控制,而是在整个插件(通道)级别。一个插件要么被完全信任并放行,要么完全被阻止。这比逐工具审核更安全,因为恶意插件无法通过添加新工具来绕过限制。

白名单数据存储在 GrowthBook(功能开关服务)中,可以在云端热更新。发现某个 MCP 插件有安全漏洞?不需要发版——在 GrowthBook 里把它移出白名单,所有用户立即生效。

MCP 配置支持 7 种作用域层级:个人全局 → 个人项目 → 团队全局 → 团队项目 → 企业全局 → 企业项目 → 运行时参数。像俄罗斯套娃一样,内层优先级高于外层。

MCP 输出会被缓存到 mcpOutputStorage,相同的工具调用不会重复执行,提高效率并降低外部 API 调用成本。

WebSocket 传输层支持长连接和双向通信——MCP 服务器可以主动推送状态变更,而不只是被动响应请求。

动态工具注册意味着连接一个新的 MCP 服务器后,它的工具自动出现在 AI 可用工具列表中,无需重启或手动配置。