Model Context Protocol 完全指南:MCP 工作机制与实战
MCP 是什么、它如何标准化 LLM 的工具调用,以及如何动手写一个 MCP Server,把你的数据或 API 暴露给 ChatGPT、Claude 和 Cursor。
操作步骤
装 SDK 并 init 项目
npm i @modelcontextprotocol/sdk。新建 src/server.ts 与 src/index.ts,package.json 设 type=module + bin 入口。
声明三个 primitive:tools / resources / prompts
tools 是带 input schema 的可调用函数;resources 是结构化数据源(文件、数据库、API);prompts 是预写提示模板。在 ListTools / ListResources / ListPrompts 里返回。
选 transport:stdio / Streamable HTTP / SSE
本地子进程走 stdio;云端服务走 Streamable HTTP;老客户端兼容 SSE。本地测试用 stdio 即可。
写一个最小 tool 并自测
例如 server.setRequestHandler(CallToolRequestSchema, ...) 实现 echo 工具;用 MCP Inspector 或 SDK 自带的 test client 验证 ListTools + CallTool 流程。
接入 ChatGPT / Claude / Cursor 并加 OAuth
在 Server 上注册 OAuth 2.0 metadata,对接你自己的鉴权后端;在 README 列出每个 host 的接入步骤;上线前用 prompt injection 防护清单过一遍。
MCP(Model Context Protocol)是 LLM 工具调用的开放标准,客户端(ChatGPT / Claude / Cursor)通过 JSON-RPC 协议访问服务器暴露的 tools、resources、prompts。
1. 概述
MCP(Model Context Protocol)是 Anthropic 提出的开放标准,让 LLM 通过统一协议调用任何工具和数据源。本文讲清 MCP 架构、传输层(stdio / HTTP / SSE)、以及如何为你的业务写一个 MCP Server。
2. 核心要点
- MCP 由 Hosts(ChatGPT)、Clients(SDK)、Servers(你的服务)三层组成
- 传输支持 stdio(本地进程)、Streamable HTTP(云端)、SSE(旧 HTTP)
- Tools 是带输入 schema 的可调用函数;Resources 是结构化数据源;Prompts 是预写提示模板
- 用 @modelcontextprotocol/sdk 写一个 Server 通常 50-200 行 TypeScript 代码
- 上线后注意:OAuth 鉴权、调用频率限制、敏感工具白名单,避免被 prompt injection 利用
3. 工作机制
下面分节展开。建议阅读时配合 OpenAI 官方文档 一起看。
4. 实战步骤
- 明确目标:先定义完成的标准。
- 选型:参考核心要点里的模型对比。
- 验证:跑通最小示例,记录参数与版本号。
- 集成:把示例接到你现有代码里。
- 监控:记录调用日志与失败原因,定期回看。
5. 常见错误与排查
- 报错 401:API Key 无效或过期,重新生成。
- 报错 429:触发速率限制,启用指数退避重试。
- 报错 400:参数错误,仔细核对 model 名称与 messages 结构。
- 回答质量差:换模型、补充 few-shot 示例、检查 prompt 是否过长。
6. 下一步
掌握本文后,建议继续阅读:
- 《ChatGPT 完全指南(2026):从入门到精通》
- 《Prompt Engineering 核心模式:8 个让 GPT 表现翻倍的模板》
- 《OpenAI API 入门:第一个 GPT-5.6 调用详解》
关键要点
- MCP 由 Hosts(ChatGPT)、Clients(SDK)、Servers(你的服务)三层组成
- 传输支持 stdio(本地进程)、Streamable HTTP(云端)、SSE(旧 HTTP)
- Tools 是带输入 schema 的可调用函数;Resources 是结构化数据源;Prompts 是预写提示模板
- 用 @modelcontextprotocol/sdk 写一个 Server 通常 50-200 行 TypeScript 代码
- 上线后注意:OAuth 鉴权、调用频率限制、敏感工具白名单,避免被 prompt injection 利用
常见问题
官方参考
相关文章
Codex CLI 接入 MCP 服务器:config.toml 配置全字段手册
Codex CLI 通过 config.toml 里的 [mcp_servers] 表接 MCP 服务器:stdio 用 command/args/env,远程用 url/bearer_token/http_headers,还有 startup_timeout_sec、enabled_tools、required 等控制面。本文按 codex 源码的配置结构逐项讲清。
阅读全文MCP Apps 解读:让 MCP Server 在对话里渲染交互式 UI(SEP-1865)
MCP Apps(SEP-1865,Final)拆解:工具声明 ui:// 资源,宿主在沙箱 iframe 里渲染交互式 HTML——数据可视化、表单、仪表盘直接长在对话里。机制、安全模型、官方 SDK 代码与八家宿主支持面一文讲清。
阅读全文Model Hardware Standard 解读:MHS 如何让 AI 智能体安全操控物理设备
Anthropic 8-27 公告的 Model Hardware Standard(MHS)研究预览版拆解:标准化驱动 + read/write 原语 + MCP/CLI/代码文件三种控制机制,六家机构实测数据与八家硬件厂商跟进——开源在即的物理设备操控标准。
阅读全文订阅 GPTMap Weekly
每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。
提交后将在新标签页打开 Buttondown 完成订阅确认。