MCP模型上下文协议入门指南:用加法示例带你理解AI与外部程序通信!
简介
本文通过加法函数示例介绍了MCP(模型上下文协议)的基础知识,包括stdio通信方式、JSON-RPC格式、基本规范等。文章详细展示了如何使用MCP SDK开发MCP Server,并解释了MCP在AI应用程序中的应用场景及核心概念(MCP Host和MCP Client)。MCP旨在为AI与外部程序建立标准通信协议,提高AI应用的扩展性和互操作性。
在学习 MCP 之前,先了解一些基础知识,这里用一个实现加法的例子来对比不同的实现方式
- 开发工具:VSCode v1.103.2
- 开发环境:Node.js v18.20.0
一个加法函数
function add({ a, b }) { return a + b;}console.log(add({ a: 2, b: 3 }));
很轻松就知道上面的代码会输出 5,下面来了解下如何使用 MCP 相关知识来实现同样的功能
前置知识
MCP 基本协议 https://modelcontextprotocol.io/specification/2025-06-18/basic 相关知识
通信方式:stdio
stdio:standard input and output 标准输入输出,比如 node.js 代码:
输出
process.stdout.write('hello world !!\n');
使用 node test.js 运行上面的代码,会在终端输出 hello world !!
输入/输出
process.stdin.setEncoding('utf-8');process.stdin.on('data', (chunk) => { process.stdout.write(`hello ${chunk}`);});
使用 node test.js 运行上面的代码,在终端输入xxx,会输出 hello xxx,关于 stdio 父子(client/server)进程参考下图

图片
通信格式:JSON-RPC
基于 JSON 格式的 RPC(远程过程调用)协议。下面使用这种方式来实现上面的加法功能
process.stdin.setEncoding('utf-8');const funcs = { add({ a, b }) { return a + b; },};process.stdin.on('data', (chunk) => {const req = JSON.parse(chunk);const func = req.method;const params = req.params;const result = funcs[func](params);const res = { jsonrpc: '2.0', result, id: req.id, }; process.stdout.write(JSON.stringify(res));});
request 请求
{"jsonrpc":"2.0","method":"add","params":{"a":1,"b":2},"id":3}
response 响应
{"jsonrpc":"2.0","result":3,"id":3}
```
图片
进入 MCP
------
MCP 是一套标准协议,它规定了应用程序之间如何通信:
* 通信方式:stdio(推荐,高效、简洁、本地);http(可远程)
* 通信格式:基于 JSON-RPC 的进一步规范
基本规范:
* 初始化(initialize)、发送请求(request)、接收响应(response) https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle#initialization
* 工具发现(tools/list):服务器有哪些工具可以给客户端使用 https://modelcontextprotocol.io/specification/2025-06-18/server/tools#listing-tools
* 工具调用(tools/call):客户端调用服务器的工具 https://modelcontextprotocol.io/specification/2025-06-18/server/tools#calling-tools
### SDK 和调试工具
* MCP SDK:使用 `@modelcontextprotocol/sdk` 可以更方便地开发 `MCP Server`
```plaintext
npm i @modelcontextprotocol/sdk
下面使用 SDK 的方式实现上面的加法功能,这也是 https://www.npmjs.com/package/@modelcontextprotocol/sdk#quick-start 上的一个例子。我们将使用调试工具来测试,在 src/demo/mcp-server.js 中添加以下代码
import { McpServer, ResourceTemplate,} from'@modelcontextprotocol/sdk/server/mcp.js';import { StdioServerTransport } from'@modelcontextprotocol/sdk/server/stdio.js';import { z } from'zod';// Create an MCP serverconst server = new McpServer({name: 'mcp-server',version: '1.0.0',});// Add an addition toolserver.registerTool('add', { title: '加法', description: '两个数相加', inputSchema: { a: z.number(), b: z.number() }, },async ({ a, b }) => ({ content: [{ type: 'text', text: String(a + b) }], }),);// Add a dynamic greeting resourceserver.registerResource('greeting',new ResourceTemplate('greeting://{name}', { list: undefined }), { title: '请求资源', // Display name for UI description: '动态请求生成器', },async (uri, { name }) => ({ contents: [ { uri: uri.href, text: `Hello, ${name}!`, }, ], }),);// Start receiving messages on stdin and sending messages on stdoutconst transport = new StdioServerTransport();await server.connect(transport);
- MCP Server 的调试工具:直接运行下面的命令,会自动打开浏览器进行调试
npx @modelcontextprotocol/inspector
```
图片
AI 应用程序
-------
所有能与大模型交互的应用都可以看作是 AI 应用程序,例如:
* ChatGPT 是 AI 应用,而大模型是 GPT
* DeepSeek 也是类似的例子,DeepSeek 网页是 AI 应用,而大模型是 DeepSeek-V3.1、DeepSeek-R1 等
这里需要一个支持 MCP 协议的 AI 应用程序,例如我们可以在 VSCode 中添加本地 MCP Server,只需在 .vscode/mcp.json 中进行如下配置
```plaintext
{ "servers": { "mcp-server": { "type": "stdio", "command": "node", "args": [ "src/demo/mcp-server.js" ] } }, "inputs": []}
- 用户输入内容,例如
2+3 - AI 应用接受用户输入,然后通过大模型判断用户意图,然后调用 MCP Server 的工具,例如上面的加法工具
- MCP Server 返回结果给 AI 应用,AI 应用将结果展示给用户

图片
MCP 有两个核心概念:
- MCP Host:指的是 AI 应用本身,用于发现 MCP Server 以及其中的工具列表
- MCP Client:用于和 MCP Server 通信的客户端,往往在 Host 内部开启。通常情况下,每启动一个 MCP Server,就会开启一个对应的 MCP Client

图片
现在可以在 VSCode 中调用 MCP Server 的工具了,例如调用我们刚刚创建的 add 工具
注意:需要使用 GitHub Copilot 来进行工具调用

图片
最后总结
MCP,全称 Model Context Protocol(模型上下文协议),旨在为 AI 与外部程序之间建立通信标准,从而使得外部程序可以被部署到任意 AI 应用中,同时也使得 AI 应用可以使用任意符合协议的外部程序。这种标准化的协议极大地提高了 AI 应用的扩展性和互操作性。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

01.大模型风口已至:月薪30K+的AI岗正在批量诞生

2025年大模型应用呈现爆发式增长,根据工信部最新数据:
国内大模型相关岗位缺口达47万
初级工程师平均薪资28K(数据来源:BOSS直聘报告)
70%企业存在"能用模型不会调优"的痛点
真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!
02.大模型 AI 学习和面试资料
1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工
📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)






第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐


所有评论(0)