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
相关推荐
Danny转行做跨境13 小时前
MCP 配置连不上?我把亚马逊选品数据的接入坑填了一遍
跨境电商·mcp·sorftime
老周聊架构14 小时前
工具与 MCP:让 Agent 长出手脚
agent·mcp
小金的研发日志17 小时前
ASP.NET 手搓 MCP 服务(四):刷新令牌的轮换与重放检测
mcp
Dumbness18 小时前
写 MCP 服务器踩的坑:stdout 是协议通道,一行不带换行的日志就能让客户端超时
node.js·mcp
黑黑的脸蛋19 小时前
同时用 Claude Code 和 Codex,我做了个 Agent 资产库:能预览、能投递、能追更新
ai编程·claude·mcp
xrlfreedom2 天前
MCP 面试高频考点:如何用 TypeScript SDK 设计带人工确认的高风险 Tool?
mcp·最小权限与审计日志·stdio 传输·typescript mcp sdk
余槐i2 天前
Claude Code 切换中转站后 401 不断:先查环境变量覆盖顺序
api·开发工具·mcp·claude code·cc-switch
小金的研发日志2 天前
ASP.NET 手搓 MCP 服务(三):让 MCP 服务只认访问令牌
mcp
Danny转行做跨境2 天前
我用 MCP 盯亚马逊选品排名?47 题自动监控这样搭
跨境电商·mcp·sorftime
挖掘狂人2 天前
2026 年,为什么一线团队开始从 MCP 撤回 CLI?
人工智能·agent·mcp