[具身智能-358]:MCP是自然语言与编程语言的桥梁

张开发
2026/4/12 12:27:49 15 分钟阅读

分享文章

[具身智能-358]:MCP是自然语言与编程语言的桥梁
目前只有大模型才能理解人类的自然语言大模型既然理解人类的自然语言也能够理解机器的源代码也能理解如何调用各种编程语言编写的可执行程序就是大语言模型与可执行程序之间的约定性的语言也称为模型上下文协议但大模型不直接驱动其他编程语言编写的程序大模型只给出指示由MCP编排者通过Web Service JSON RPC MCP协议的这样的平台驱动MCP Server执行其他编程语言的程序并把执行结果返回给大模型大模型在组织语言返回给用户。 一、 上述描述 vs MCP 官方术语映射上述表述官方/工程术语核心职责大模型只给出指示Tool Calling / Function CallingLLM 仅输出符合 JSON Schema 的结构化指令不执行任何代码MCP 编排者MCP Host / Client或 Agent Orchestrator负责 LLM 交互、上下文管理、协议路由、错误重试、权限控制Web Service JSON RPC MCPMCP Transport LayerMCP 基于 JSON-RPC 2.0传输层支持stdio本地或SSE/HTTP网络驱动 MCP Server 执行其他语言程序MCP ServerTool Provider用任意语言实现将可执行逻辑/脚本/API 封装为标准 MCP Tool结果返回给大模型组织语言Context Injection → LLM GenerationHost 将工具输出注入对话上下文触发 LLM 生成最终自然语言回复️ 二、 标准架构分层文字拓扑[用户终端] CLI / Web / 移动端 / IoT ↓ (自然语言 / 语音 / 图像) ┌─────────────────────────────────────────┐ │ MCP Host / Client (编排层) │ │ • LLM 路由 Prompt 管理 │ │ • Tool Call 解析 参数校验 │ │ • 上下文窗口管理 记忆拼接 │ │ • 协议适配 (JSON-RPC over stdio/SSE) │ └──────────────────┬──────────────────────┘ ↓ (MCP Protocol / JSON-RPC) ┌─────────────────────────────────────────┐ │ MCP Server (执行层) │ │ • Python / Java / Go / C / Shell 等 │ │ • 暴露 Tool(工具) / Resource(数据) │ │ • 沙箱隔离 / 权限控制 / 资源限制 │ │ • 返回结构化结果或错误码 │ └─────────────────────────────────────────┘ ↑ [外部系统/API/数据库/CLI程序] 三、 完整交互时序单次请求用户输入→Host接收并附加系统提示词 可用工具描述JSON SchemaLLM 决策→ 大模型返回tool_callJSON如{name:calculate,args:{op:add,a:10,b:5}}Host 路由→ 解析 JSON通过 MCP 协议向对应Server发起tools/call请求Server 执行→ 在隔离环境中调用目标程序/脚本捕获 stdout/stderr/退出码结果返回→Server将结果包装为 MCPTextContent或ErrorContent返回上下文注入→Host将结果追加为role: tool消息再次请求 LLM最终回复→ LLM 基于工具结果生成自然语言Host返回用户 四、 为什么这种架构是工业最优解设计原则工程价值彻底解耦LLM 不接触执行环境避免注入攻击、资源耗尽、依赖冲突多语言兼容MCP Server 可用任意语言编写统一通过 JSON-RPC 暴露无需重写核心逻辑安全沙箱Server 可运行在容器/微虚拟机中限制网络/磁盘/内存实现最小权限原则可观测可审计所有 Tool 调用留痕支持日志、指标、链路追踪符合合规要求协议标准化避免厂商绑定同一 Host 可无缝切换不同 MCP Server如换数据库/换计算器⚠️ 五、 关键细节补充生产必看LLM 不“理解如何调用”只“匹配描述生成 JSON”工具能否被正确调用取决于description和inputSchema是否清晰。LLM 运行时仅做模式匹配与参数填充。传输层选择本地部署优先stdio零网络开销、天然隔离、启动即连跨节点/微服务使用SSE服务端推送或HTTPJSON-RPC需处理 CORS、鉴权、限流MCP 不仅支持 Tools还标准化了Resources只读访问文件/数据库/网页和Prompts可复用模板适合知识检索类场景。容错与边界处理超时重试、并发队列、Token 超限降级如切断历史对话Server 返回错误时Host 应构造明确提示注入 LLM如❌ 工具执行失败: 权限不足避免 LLM 幻觉重试 六、 下一步演进建议阶段推荐架构升级多工具协同引入工作流引擎LangGraph / CrewAI / Dify实现条件分支、并行调用、人工介入状态与记忆外挂向量库/关系库Host 维护会话状态支持长周期任务断点续传权限与审计MCP 网关层增加 OAuth2/JWT 鉴权、RBAC 角色控制、调用审计日志生产部署Host 容器化 Server 独立部署 API 网关 监控Prometheus OpenTelemetry

更多文章