简要概述
MCP(Model Context Protocol)是由 Anthropic 创建的开放标准,定义了 AI 代理如何发现和使用外部工具。可以把它想象成 AI 的 USB-C —— 一个通用连接器,适用于任何设备。在 MCP 之前,每个 AI 代理都需要自己的自定义插件格式。MCP 用一个任何代理都能使用的统一协议取代了这一切。
为什么需要 MCP
像 Claude、GPT 和 Gemini 这样的 AI 模型是强大的推理器,但它们无法在沙箱之外做任何事情。它们无法自行浏览网页、查询数据库或控制浏览器。要与现实世界交互,它们需要工具。
在 MCP 之前,将 AI 代理连接到外部工具意味着为每种组合构建自定义集成。想让 Claude 读取文件?编写一个插件。想让 Cursor 做同样的事?编写另一个插件。想让 Codex 加入?再写一个插件。工具是相同的 —— 连接方式不同。
MCP 通过标准化连接方式解决了这个问题。工具作者编写一个 MCP 服务器。每个兼容 MCP 的代理 —— Claude Code、Codex、Cursor、Windsurf、VS Code Copilot 以及更多 —— 都可以立即连接到它。
MCP 如何工作
MCP 使用基于 JSON-RPC 2.0 的客户端-服务器架构。有三个参与者:
- Host —— AI 应用程序(Claude Desktop、Cursor、VS Code)。它管理连接并运行语言模型。
- Client —— 主机内部的连接器,与特定的 MCP 服务器保持 1:1 的链接。
- Server —— 向 AI 代理公开工具、资源或提示的程序。
当代理启动时,它会连接到已配置的 MCP 服务器,并询问每个服务器:"你有什么工具?"服务器会返回一个工具列表,每个工具都包含名称、人类可读的描述和类型化的参数模式。代理存储这个目录,并在决定如何满足用户请求时使用它。
// Example: MCP server exposes a tool
{
"name": "browser_parallel_navigate",
"description": "Navigate all connected browsers to a URL in parallel",
"inputSchema": {
"type": "object",
"properties": {
"url": { "type": "string", "description": "Target URL" }
},
"required": ["url"]
}
}
MCP 服务器能提供什么
MCP 定义了服务器可以公开的三种能力类型:
- Tools —— AI 可以调用来执行操作的函数(导航浏览器、发送邮件、查询数据库)。最常见的能力。
- Resources —— AI 可以访问的只读数据(文件内容、API 响应、配置)。类似于 GET 端点。
- Prompts —— 可重用的模板,帮助用户以一致的方式与 AI 交互。
大多数 MCP 服务器专注于工具。例如,Ornold MCP 提供了 30 多个浏览器自动化工具 —— 导航、点击、填写表单、解决 CAPTCHA、截图、运行 JavaScript —— 所有这些都可以跨多个浏览器配置文件并行执行。
传输:代理和服务器如何通信
MCP 支持多种传输机制:
- stdio —— 服务器作为本地子进程运行。代理启动它并通过 stdin/stdout 通信。简单、快速、无需网络。这是大多数本地 MCP 服务器的工作方式(包括通过 `npx ornold-mcp` 运行的 Ornold MCP)。
- Streamable HTTP —— 服务器远程运行,通过 HTTP 通信。支持多个并发客户端。推荐用于远程/共享服务器。
- SSE (Server-Sent Events) —— 较旧的基于 HTTP 的传输方式,保留用于向后兼容。
对于浏览器自动化等本地工具,stdio 是标准选择。代理启动 MCP 服务器进程,它们直接通信 —— 没有网络延迟,没有认证复杂性。
哪些 AI 代理支持 MCP?
自发布以来,MCP 的采用迅速增长。截至 2025 年,以下代理原生支持 MCP:
- Claude Code —— Anthropic 的 CLI 代理
- Claude Desktop —— Anthropic 的桌面应用程序
- Codex —— OpenAI 的编程代理(CLI)
- Cursor —— Anysphere 的 AI 代码编辑器
- Windsurf —— Codeium 的 AI IDE
- VS Code Copilot —— GitHub 的 AI 助手
- Cline —— 开源 AI 编程助手
- Roo Code、Kilo Code、Augment Code —— 以及更多
任何实现了 MCP 客户端规范的应用程序都可以连接到任何 MCP 服务器。这就是核心价值主张 —— 编写一次,到处使用。
MCP vs Function Calling vs 插件
MCP 与其他为 AI 代理提供工具的方法相比如何?
- Function calling(OpenAI、Anthropic)—— 模型 API 支持工具定义,但工具在你的代码中运行。你定义模式,模型返回工具调用,你来执行。MCP 标准化了服务器端,使工具可以在代理之间移植。
- ChatGPT Plugins(已弃用)—— OpenAI 早期的工具集成尝试。专有的,只能与 ChatGPT 配合使用,需要 OpenAI 批准。MCP 是开放的,适用于任何代理,无需批准。
- 自定义集成 —— 为每个代理-工具对编写定制代码。可行但无法扩展。MCP 将 N×M 的集成问题替换为 N+M。
MCP 不是替代 function calling —— 而是建立在它之上。AI 代理使用其原生的 function calling 来调用 MCP 工具。MCP 标准化了工具的发现、描述和服务方式。
实际示例:浏览器自动化
为了更具体地说明,以下是 MCP 如何与 Ornold 配合进行浏览器自动化:
- 你安装 Ornold MCP 服务器:`npx ornold-mcp --token YOUR_TOKEN --linken-port 40080`
- 你的 AI 代理(比如 Claude Code)连接到它并发现 30 多个工具:navigate、click、fill、screenshot、solve CAPTCHA 等。
- 你告诉代理:"在所有浏览器中打开 google.com 并搜索 MCP protocol"
- 代理规划步骤,调用 `browser_parallel_navigate`,然后 `browser_parallel_fill`,然后 `browser_parallel_click` —— 全部通过 MCP 工具调用
- 每个工具在所有连接的反检测浏览器配置文件中并行执行
同一个 Ornold MCP 服务器与 Codex、Cursor、Windsurf 或任何其他兼容 MCP 的代理完全相同地工作。无需更改代码,无需单独的插件。
// Connect Ornold MCP to Claude Code:
claude mcp add --transport stdio ornold-browser -- npx ornold-mcp --token YOUR_TOKEN --linken-port 40080
// Connect to Codex:
codex mcp add ornold-browser -- npx ornold-mcp --token YOUR_TOKEN --linken-port 40080
// Connect to Cursor (~/.cursor/mcp.json):
{
"mcpServers": {
"ornold-browser": {
"command": "npx",
"args": ["ornold-mcp", "--token", "YOUR_TOKEN", "--linken-port", "40080"]
}
}
}
开始使用 MCP
如果你想使用 MCP 工具,你只需要一个兼容 MCP 的 AI 代理和一个 MCP 服务器。不需要 SDK,不需要框架,不需要样板代码。对于使用 Ornold 进行浏览器自动化:
- 在 mcp.ornold.com 获取 API 令牌
- 将 MCP 服务器添加到你的代理配置中(CLI 代理用一条命令,编辑器用一个 JSON 块)
- 启动你的反检测浏览器并与 AI 对话