据说,80%的人都搞不懂MCP底层?

B站影视 内地电影 2025-09-23 12:15 1

摘要:MCP (Model Context Protocol) 就是一个基于「标准输入输出(STDIO)」的通信协议,结合 JSON-RPC 格式,让不同进程之间像调用本地函数一样调用 AI 工具或服务。

一句话总结

MCP (Model Context Protocol) 就是一个基于「标准输入输出(STDIO)」的通信协议,结合 JSON-RPC 格式,让不同进程之间像调用本地函数一样调用 AI 工具或服务。

MCP 的底层不是魔法,它依赖的正是我们熟悉但常常忽视的「标准输入输出」。每一个进程都有三个默认接口:

stdin :标准输入stdout :标准输出stderr :标准错误输出

这意味着进程不仅能把消息「打印出来」,也能「接收输入」。

process.stdin.on("data", (data) => { const input = data.toString.trim;const response = `AI 回复: 我收到了你的输入 -> ${input}`;process.stdout.write(response +});

运行方式:

node server.js

输入:

你好

输出:

AI回复: 我收到了你的输入 -> 你好

这就是 MCP 的底层思想:通过 STDIO 把进程变成一个服务

仅仅有 STDIO 还不够,因为进程间的消息如果随便发,谁都看不懂。MCP 采用了 JSON-RPC 规范 ,这是一种「请求 - 响应」模式:

请求{ "jsonrpc": "2.0", "id": 1, "method": "sum", "params": [2, 3]}响应{ "jsonrpc": "2.0", "id": 1, "result": 5}

这样我们就能约定清楚: 「我要调用 sum 方法,参数是 [2,3] ,结果返回给我。」

function sum(a, b) { return a +}process.stdin.on("data", (data) => { const msg = JSON.parse(data.toString);let result; if (msg.method === "sum") { result = sum(...msg.params); } else { result = "未知方法"; }const response = { jsonrpc: "2.0", id: msg.id, result, };process.stdout.write(JSON.stringify(response) +});

测试:

echo '{"jsonrpc":"2.0","id":1,"method":"sum","params":[2,3]}' | node rpc-server.js

输出:

{"jsonrpc":"2.0","id":1,"result":5}

过去我们调用 AI,只能通过 REST API 或 SDK。MCP 提供了一种更轻量的方式:直接把本地进程注册为工具,AI 模型就能调用它。

REST API 需要走网络,而 MCP 通过本地 STDIO,效率极高,几乎没有延迟。

数据不会经过外部网络,所有调用都在本地完成,非常适合对隐私敏感的场景。

const fs = require("fs");process.stdin.on("data", (data) => { const msg = JSON.parse(data.toString);if (msg.method === "createFile") { const [filename, content] = msg.params; fs.writeFileSync(filename, content);const response = { jsonrpc: "2.0", id: msg.id, result: "文件创建成功 ✅", };process.stdout.write(JSON.stringify(response) + "\n"); } });

测试:

echo '{"jsonrpc":"2.0","id":1,"method":"createFile","params":["test.txt","Hello MCP"]}' | node file-server.js

结果:

✍️ 最终总结

MCP 让 AI 不再只是一个回答问题的聊天机器人,而是一个可以真实调用你本地功能的「超级助手」。

来源:墨码行者

相关推荐