MCP(Model‑Context‑Protocol)整体架构

📅 2026/7/12 18:53:13 👁️ 阅读次数 📝 编程学习
MCP(Model‑Context‑Protocol)整体架构

MCP(Model‑Context‑Protocol)整体架构

标题与核心主旨

标题:Understanding MCP Architecture(理解 MCP 架构) 总述:MCP 生态的核心作用:在 AI 智能体和外部工具之间搭建标准化桥梁

整体架构模型

  1. AI Assistant(客户端,蓝色模块):示例采用 LangGraph,也就是你之前代码里搭建 Agent 的框架;
  2. MCP‑Server(服务端,绿色模块):封装外部工具(Your Tools,数据库、GitHub、文件系统等);
  3. 通信标准:MCP Protocol支持 3 种传输方式:
    • stdio:本地子进程调用(开发阶段最常用)
    • SSE:服务端推送
    • HTTP:远程网络调用 两端基于 JSON‑RPC 通信,彻底将 Agent 逻辑和工具代码解耦。

四个模块拆解(对应图中四块内容)

1. MCP‑Server(MCP 服务端,由社区开发者编写,用 Fast‑MCP 实现)

  • Exposes tools:向外暴露可供 AI 调用的工具函数;
  • Defines schemas:定义入参的数据格式(JSON Schema);
  • Handles requests:接收来自 AI 助手的调用请求,执行对应逻辑,返回结果。

对应你前面的认知:MCP 开发者只编写一次 MCP‑Server,后续使用者不用改动服务端代码。

2. Tools(实际工具函数)

  • Functions with @tool:通过装饰器@tool定义工具方法(Fast‑MCP 标准写法);
  • Input parameters:声明工具接收的入参;
  • Structured responses:返回结构化的数据,方便大模型解析。

3. Integration(集成层,对应langchain‑mcp‑adapters,就是你导入的MultiServerMCPClient

  • Bind to LLMs:对接大模型(GPT‑4o、Muse Spark 1.1 等);
  • Route queries:把 LLM 产生的调用指令转发给对应的 MCP‑Server;
  • Handle responses:接收服务端返回的数据,转换成 LangChain 可识别的 Tool 返回值;

你的 Python 代码就是在做这一层工作:适配器充当中间翻译层。

4. Naming(命名规范,工程层面约定)

  • 格式示例:mcp__server__tool
  • Consistent pattern:统一命名范式,区分不同 MCP 服务里的同名工具;
  • Clear hierarchy:层级清晰,防止多个 MCP‑Server 接入后出现工具名称冲突,对应代码里prefixToolNameWithServerName配置项。

和你之前代码以及行业现状串联总结

  1. 开发者(社区):使用 Fast‑MCP 完成 MCP‑Server 和 Tools;
  2. 集成层langchain‑mcp‑adapters负责协议适配;
  3. Agent 编排:LangGraph 做任务规划、状态管理;
  4. 底层大模型:现在可以替换成 Meta 刚发布的 Muse Spark‑1.1,实现低成本 Agent 应用;
  5. 解耦优势:MCP‑Server 可以独立部署在远程服务器;LangGraph Agent 可以单独运行;二者只依靠标准 MCP 协议通信,后期更换工具或者更换大模型互不影响。

对应代码映射

# MultiServerMCPClient 就是这里的Integration层 client = MultiServerMCPClient({ "filesystem": { # MCP‑Server "transport": "stdio", "command": "python", "args": ["filesystem_mcp.py"] # 里面包含@tool修饰的Tools } }) tools = await client.get_tools() agent = create_react_agent(llm, tools) # LangGraph作为AI‑Assistant