掘金 人工智能 14小时前
据说,80%的人都搞不懂MCP底层?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

MCP(Model Context Protocol)是一种基于标准输入输出(STDIO)和JSON-RPC的通信协议,它使得不同进程间的AI工具和服务能够像调用本地函数一样进行交互。通过利用进程的STDIN、STDOUT和STDERR接口,并采用JSON-RPC的消息格式,MCP实现了进程间的“请求-响应”模式通信。这为AI助手提供了轻量级且高效的插件化能力,能直接调用本地进程的功能,如自动化文件操作或控制浏览器,相比传统的REST API,MCP具有极低的延迟和更高的隐私安全性,极大地拓展了AI的应用边界,使其从单纯的问答机器人转变为能够执行本地操作的“超级助手”。

🧰 MCP协议的核心在于利用进程的标准输入输出(STDIO)作为底层通信机制,使得各个独立的软件进程,如AI模型、浏览器、终端或数据库,能够像乐高积木一样相互连接和调用功能。它将进程转化为一个可供调用的服务,通过标准输入接收指令,通过标准输出返回结果。

📡 消息格式方面,MCP采用了JSON-RPC规范,这是一种结构化的“请求-响应”模式。每个请求都包含一个方法名、参数和一个唯一ID,以便服务能够准确理解并执行用户的指令,并将结果以同样格式的响应返回,从而实现了清晰、规范的进程间通信。

🚀 MCP的重要性体现在其作为AI助手“插件协议”的潜力。它提供了一种比传统REST API更轻量、更高效的AI调用本地进程的方式,几乎消除了网络延迟,并天然具备高安全性,因为所有数据交换都在本地完成,非常适合处理隐私敏感的任务。

📂 在应用场景上,MCP展现了强大的灵活性。例如,它可以实现AI自动化本地文件操作,允许AI直接创建、读写文件;它还可以作为浏览器MCP Server,让AI直接控制浏览器进行网页浏览、元素交互和内容提取,其集成简便性远超Puppeteer/Playwright等传统工具。

💡 总结来说,MCP协议的出现极大地推动了AI的实用化进程,它赋予了AI调用本地实际功能的能力,将AI从一个静态的问答模型转变为一个能够主动执行任务的“超级助手”,为AI生态系统的扩展和智能化应用开辟了新的可能性。

一切技术都是纸老虎

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


目录


一、MCP的核心思想

一句话总结:
👉 MCP 是一个进程通信规范,它让 AI 模型、浏览器、终端、数据库等「彼此独立的软件」之间能像乐高一样拼接起来,互相调用功能。


二、前置知识:STDIO(标准输入输出)

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

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

示例代码:Node.js里的STDIO

// server.js// 这是一个最简单的进程通信例子// 监听输入(stdin),即外部进程写进来的内容process.stdin.on("data", (data) => {  // data 是 Buffer,需要转成字符串  const input = data.toString().trim();  // 在这里可以做逻辑处理  const response = `AI回复: 我收到了你的输入 -> ${input}`;  // 输出(stdout),发送给外部进程  process.stdout.write(response + "\n");});

运行方式:

node server.js

输入:

你好

输出:

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

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


三、消息格式:JSON-RPC

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

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

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

示例代码:支持JSON-RPC的服务

// rpc-server.js// 一个实现 JSON-RPC 协议的进程服务// 工具方法function sum(a, b) {  return a + b;}process.stdin.on("data", (data) => {  const msg = JSON.parse(data.toString());  // 根据 method 字段调用不同的方法  let result;  if (msg.method === "sum") {    result = sum(...msg.params);  } else {    result = "未知方法";  }  // 返回 JSON-RPC 响应  const response = {    jsonrpc: "2.0",    id: msg.id,    result,  };  process.stdout.write(JSON.stringify(response) + "\n");});

测试:

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

输出:

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

四、MCP为什么重要?

1. AI助手的「插件协议」

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


2. 比 REST API 更快

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


3. 天然安全

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


五、应用场景示例

示例1:AI自动化本地文件操作

// file-server.js// AI文件操作工具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

结果:


示例2:浏览器MCP Server

现在已经有开源项目能把 Chrome 浏览器功能暴露为 MCP 服务:AI 可以直接「打开网页、点击按钮、获取内容」。

相比传统 Puppeteer/Playwright:

特性REST API/PlaywrightMCP Server
调用方式远程网络请求本地进程通信
延迟较高(网络开销)极低
隐私安全可能上传云端完全本地
集成复杂度需要额外依赖即插即用

六、总结

我们今天从底层一步步推导出了 MCP 的核心逻辑:

    MCP 本质:一种基于 STDIO + JSON-RPC 的通信协议。解决的问题:让进程间能像调用函数一样调用功能。优势:高效、安全、易扩展,非常适合 AI 插件化生态。应用:AI调用本地工具、浏览器控制、自动化脚本、数据库查询……

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

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

MCP AI通信 进程通信 STDIO JSON-RPC
相关文章