10

MCP 集成

标准化连接外部世界

什么是 MCP?

MCP 是 Model Context Protocol(模型上下文协议)的缩写,由 Anthropic 提出。 它解决的问题是:如何让不同的 Agent 和不同的外部服务之间实现标准化通信? 在 MCP 出现之前,每个 Agent 要接入外部服务(比如 GitHub、Slack、数据库)都需要写定制代码。有了 MCP,只要外部服务提供一个 MCP Server,任何支持 MCP 的 Agent 都能立即使用它。
对比项没有 MCP有 MCP
接入新服务每个 Agent 写定制代码服务提供 MCP Server,所有 Agent 直接用
接口格式每个服务格式不同统一的 JSON-RPC 协议
工具发现硬编码动态发现,运行时注册
生态复用各自开发,重复劳动社区共建,一次开发处处使用

MCP 的三个核心概念

1. MCP Server(服务端) 提供工具和资源的外部服务。比如一个 GitHub MCP Server 可以提供「创建 PR」「查看 Issue」等工具。 2. MCP Client(客户端) Agent 侧的连接器,负责与 MCP Server 通信。OpenHarness 内置了 MCP Client。 3. MCP Tool(工具) MCP Server 暴露的工具。这些工具会被动态注册到 Agent 的工具列表中,LLM 可以像使用内置工具一样使用它们。

配置 MCP Server

settings.json
1{
2 "mcp_servers": {
3 "github": {
4 "command": "npx",
5 "args": ["-y", "@modelcontextprotocol/server-github"],
6 "env": {
7 "GITHUB_TOKEN": "your-token"
8 }
9 },
10 "filesystem": {
11 "command": "npx",
12 "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
13 }
14 }
15}

在 settings.json 中配置要连接的 MCP Server:

MCP 在 OpenHarness 中的工作流程

1. 启动时,OpenHarness 读取配置中的 MCP Server 列表 2. 为每个 Server 启动连接(通过 MCPClientManager) 3. 查询每个 Server 提供了哪些工具 4. 将这些工具动态注册到工具注册表中 5. LLM 在工具列表中看到这些 MCP 工具,可以正常调用 6. 调用时,请求通过 MCP Client 转发到对应的 Server 整个过程对 LLM 是透明的 —— 它不区分内置工具和 MCP 工具。
📌 关键要点
MCP = 标准化的扩展接口
MCP 让 Agent 的能力不再局限于内置工具。通过这个标准协议,Agent 可以连接任意外部服务。这是 Agent 生态发展的关键 —— 社区可以共建 MCP Server,所有支持 MCP 的 Agent 都能受益。
🧠 检验理解
MCP 解决的核心问题是什么?