MCP 和 Skill¶
MCP 协议 也由 Anthropic 于2025年下半年发布,与 Skill 均为为 Agent 提供更好的文档和接口的访问形式。二者后续也均被整理为可跨 Agent 使用的开放规范。
1. MCP 是什么¶
1.1. API 是什么¶
要知道 LLM 如何通过接口、MCP 等控制程序或者软件,首先要知道程序如何控制其他程序。
API(Application Programming Interface,应用程序编程接口)是程序公开给其他程序的一组入口。一个 API 通常会明确说明下面的内容:
- 可以请求什么操作;
- 需要提供哪些参数;
- 会返回什么结果;
- 如何认证身份;
- 请求失败时会返回什么错误。
例如,一个天气程序可以公开如下接口,表示,只需要提供验证身份用的 token 和城市名(如 hefei)即可获取该城市的天气信息:
调用成功后,它可能返回下面的内容:
调用方只需要遵守接口约定,就能使用天气程序提供的能力。网页、手机应用、命令行工具和 Agent 都可以成为 API 的调用方。
1.2. Tool Call 是什么¶
Tool Call 也常被称为 Function Call。开发者把可用函数的名称、用途和参数结构交给模型,模型根据用户需求,生成一份结构化的调用请求。
例如,我们把这串工具信息注册到模型中:
{
"name": "get_weather",
"description": "查询指定城市的天气",
"parameters": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": ["city"]
}
}
当用户询问“合肥今天多少度”时,LLM 可以生成下面的调用参数:
一次完整的调用一般经过下面几个步骤:
- 程序把工具说明和用户问题发给 LLM;
- LLM 选择工具并生成参数;
- 程序检查权限和参数;
- 程序执行函数或调用 API;
- 执行结果被送回 LLM;
- LLM 根据结果继续回答用户。
LLM 负责选择工具和填写具体参数,程序负责校验与执行。
1.3. MCP 是什么¶
每个 Tool Call 都可以由开发者单独编写,不过不同 Agent 往往需要重复实现工具注册、参数描述、进程启动、认证和结果传输。MCP 为这些环节提供了一套统一协议。
MCP 的基本结构包含三个角色:
用户
↓
MCP Host:Claude Code、Codex、OpenCode 等 Agent 框架
↓
MCP Client:Host 内部维护的一条 MCP 连接
↓
MCP Server:浏览器、数据库、知识库等能力的提供方
MCP Server 可以向 Agent 暴露三类常见能力:
| 能力 | 用途 | 例子 |
|---|---|---|
| Tools | 执行动作 | 点击网页、运行查询、创建任务 |
| Resources | 提供可读取的数据 | 文件内容、数据库结构、项目文档 |
| Prompts | 提供可复用的提示模板 | 代码审查模板、故障排查模板 |
本地 MCP Server 通常由 Agent 通过标准输入输出(stdio)启动;远程 MCP Server 通常通过 流式 HTTP 连接,并可以配合 Token 等方式完成身份认证。Host 在连接后读取 Server 提供的能力列表,再把合适的工具描述交给模型。
API、Function Call 和 MCP 可以串成一条完整链路:
模型生成 Function Call
↓
Agent 通过 MCP Client 调用 MCP Server
↓
MCP Server 调用浏览器、文件系统或远程 API
↓
执行结果沿原路径返回给模型
例如,chrome-devtools-mcp 提供浏览器调试工具;配套 Skill 可以进一步规定“先打开页面,再检查控制台和网络请求,完成修改后重新验证”的工作流程。
任务需要连接外部系统时考虑 MCP;任务需要重复执行一套判断和操作流程时考虑 Skill;两种需求同时出现时把它们组合起来。
2. 安装一个 MCP¶
本文以安装 chrome-devtools-mcp 为例。这个MCP 由谷歌 Chrome 团队官方发布,可以以让 Agent 原生操控 Chrome 系浏览器(Chrome,Edge 及其他使用 Chromium 内核的浏览器。不包括 Firefox)。
MCP 因为格式固定,写起来非常容易,网络上有大量已经写好的 MCP,因此可以直接通过搜索引擎或 GitHub 进行直接搜索;如果不熟悉的话,新手也可以在 魔搭社区 搜索需要的 MCP。
chrome-devtools-mcp 的官方链接为 这个, GitHub 链接为 这个
2.1. 安装前准备¶
chrome-devtools-mcp 需要 Node.js、npm,以及 Google Chrome 浏览器。可以先在终端检查:
2.2. 配置 Agent¶
根据你使用的 Agent 不同,按需选用。
Claude Code:
Codex:
OpenCode:
在 ~/.config/opencode/opencode.json 中添加如下内容:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"chrome-devtools": {
"type": "local",
"command": ["npx", "-y", "chrome-devtools-mcp@latest"]
}
}
}
安装完成后重启 Agent 进程,即可使用。使用时,在命令中 @ 出这个 MCP 即可使用。
MCP 工具通常也会由 Agent 根据任务自动选择。显式写出 Server 名称或工具用途,有助于 Agent 自行选用更好的 MCP.
2.3. 检查连接¶
先检查 Server 是否已经出现在列表中:
Codex 交互界面可以输入 /mcp 查看当前连接。随后启动一个本地网页,并向 Agent 输入一条范围明确的测试指令: