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

一切技术都是纸老虎

一句话总结

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


目录


一、MCP的核心思想

一句话总结:

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


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

MCP 的底层不是魔法,它依赖的正是我们熟悉但常常忽视的「标准输入输出」。

每一个进程都有三个默认接口:

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

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

示例代码:Node.js里的STDIO

js 复制代码
// 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");
});

运行方式:

bash 复制代码
node server.js

输入:

复制代码
你好

输出:

makefile 复制代码
AI回复: 我收到了你的输入 -> 你好

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


三、消息格式:JSON-RPC

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

  • 请求
json 复制代码
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "sum",
  "params": [2, 3]
}
  • 响应
json 复制代码
{
  "jsonrpc": "2.0",
  "id": 1,
  "result": 5
}

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

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

js 复制代码
// 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");
});

测试:

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

输出:

json 复制代码
{"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自动化本地文件操作

js 复制代码
// 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");
  }
});

测试:

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

结果:

  • 控制台输出 {"jsonrpc":"2.0","id":1,"result":"文件创建成功 ✅"}
  • 生成文件 test.txt,内容是 Hello MCP

示例2:浏览器MCP Server

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

相比传统 Puppeteer/Playwright:

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

六、总结

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

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

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

相关推荐
Warren2Lynch3 小时前
利用 AI 协作优化软件更新逻辑:构建清晰的 UML 顺序图指南
人工智能·uml
ModelWhale3 小时前
当“AI+制造”遇上商业航天:和鲸助力头部企业,构建火箭研发 AI 中台
人工智能
ATMQuant3 小时前
量化指标解码13:WaveTrend波浪趋势 - 震荡行情的超买超卖捕手
人工智能·ai·金融·区块链·量化交易·vnpy
weixin_509138343 小时前
语义流形探索:大型语言模型中可控涌现路径的实证证据
人工智能·语义空间
soldierluo3 小时前
大模型的召回率
人工智能·机器学习
Gofarlic_oms13 小时前
Windchill用户登录与模块访问失败问题排查与许可证诊断
大数据·运维·网络·数据库·人工智能
童话名剑3 小时前
人脸识别(吴恩达深度学习笔记)
人工智能·深度学习·人脸识别·siamese网络·三元组损失函数
_YiFei4 小时前
2026年AIGC检测通关攻略:降ai率工具深度测评(含免费降ai率方案)
人工智能·aigc
GISer_Jing4 小时前
AI Agent 智能体系统:A2A通信与资源优化之道
人工智能·aigc
yusur4 小时前
边缘智算新引擎 DPU 驱动的算力革新
人工智能·科技·rdma·dpu