
MCP 经常被一句话概括成“AI 应用的 USB-C 接口”。
这个比喻有用,但如果你要真的把系统接进去,还要理解四个核心词:
Host
Client
Server
Primitives: Tool / Resource / Prompt
OpenClaw 也可以通过 MCP 暴露会话,或者消费外部 MCP server 提供的工具和上下文。
官方 MCP 文档说,MCP 是一个开源标准,用来把 AI 应用连接到外部系统,例如本地文件、数据库、搜索引擎、计算器、工作流和提示模板。
它不规定模型怎么推理,也不规定 Agent 怎么规划。
它规定的是:
AI 应用如何发现外部能力
如何读取上下文
如何调用工具
如何获取 prompt 模板
如何通过标准 transport 通信
MCP 是 client-server 架构。
MCP Host
AI 应用本体,例如 IDE、桌面助手、Agent 平台
MCP Client
Host 内部维护到某个 MCP Server 的连接
MCP Server
提供上下文和能力的程序,可以本地运行,也可以远程运行
一个 Host 可以连接多个 Server,每个连接通常有一个 MCP Client。
在 OpenClaw 语境下,你可以把 OpenClaw 的某些 runtime 或桥接层理解为 MCP host/client 的一部分,也可以用 openclaw mcp serve 让 OpenClaw 作为 MCP server 暴露会话能力。
MCP 标准 transport 主要有两类:
stdio
客户端启动本地 server 进程,通过 stdin/stdout 交换 JSON-RPC 消息
Streamable HTTP
server 作为独立 HTTP 服务,支持远程连接、认证和流式能力
重要细节:
stdio server 不要向 stdout 打普通日志
stdout 只能写 MCP JSON-RPC 消息
日志应该写 stderr
这是很多新手写 MCP server 会踩的坑。
MCP Server 能暴露三类核心能力。
Tool 是模型可以调用的可执行函数。
例如:
get_weather
query_database
create_ticket
send_message
Tool 是 model-controlled:模型可以根据上下文决定调用哪个工具。但官方规范也强调,安全上应该有人能看到和拒绝工具调用。
Resource 是给模型看的上下文数据。
例如:
file:///project/schema.sql
db://customers/table-schema
notion://page/123
Resource 更偏 application-driven:应用可以让用户选择、搜索或自动加入资源。
Prompt 是可复用的提示模板。
例如:
code_review
incident_summary
release_checklist
Prompt 更偏 user-controlled:通常像 slash command 一样由用户显式选择。
Skill 是教 Agent 如何使用能力。
MCP 是把外部能力通过协议暴露出来。
对比:
Skill
说明、流程、脚本、经验、操作指南
MCP
标准协议、工具、资源、提示模板、外部系统连接
很多时候二者会一起用:
MCP server 暴露 GitHub / Jira / Notion 工具
Skill 教 Agent 在什么场景如何组合这些工具
你要把公司内部工单系统接给 OpenClaw。
MCP Server 可以暴露:
Tools:
ticket.search
ticket.create
ticket.update_status
Resources:
ticket://schema
ticket://queue/today
Prompts:
incident_summary
escalation_review
Skill 则可以补充:
什么情况下查工单
什么情况下升级
哪些字段不能发到群聊
创建工单前要确认什么
不只是。它还有 Resource、Prompt、生命周期、transport 和能力协商。
不是。stdio 本地 server 很常见。
不一定。应用决定如何选择、读取和注入。
不完全。MCP Prompt 更像服务器提供的可复用模板,通常由用户或客户端选择。
MCP 让外部系统用标准方式进入 AI 应用。
一句话总结:
Tool 负责动作,Resource 负责上下文,Prompt 负责模板,Server 负责把这些能力通过协议暴露给 Client。
下一节讲把一个外部系统接成 MCP 工具。