Model Context Protocol 完全指南:MCP 工作机制与实战
What MCP is, how it standardizes tool calling for LLMs, and how to build an MCP server that exposes your data or APIs to ChatGPT, Claude, and 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 防护清单过一遍。
Model Context Protocol 完全指南:MCP 工作机制与实战
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 利用
❓ 常见问题
官方参考
订阅 GPTMap Weekly
每周一封邮件,精选 OpenAI 重要更新、深度解读与最佳实践。无广告,可随时退订。