MCP(Model‑Context‑Protocol)整体架构
标题与核心主旨
标题:Understanding MCP Architecture(理解 MCP 架构) 总述:MCP 生态的核心作用:在 AI 智能体和外部工具之间搭建标准化桥梁。
整体架构模型
- AI Assistant(客户端,蓝色模块):示例采用 LangGraph,也就是你之前代码里搭建 Agent 的框架;
- MCP‑Server(服务端,绿色模块):封装外部工具(Your Tools,数据库、GitHub、文件系统等);
- 通信标准: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配置项。
和你之前代码以及行业现状串联总结
- 开发者(社区):使用 Fast‑MCP 完成 MCP‑Server 和 Tools;
- 集成层 :
langchain‑mcp‑adapters负责协议适配; - Agent 编排:LangGraph 做任务规划、状态管理;
- 底层大模型:现在可以替换成 Meta 刚发布的 Muse Spark‑1.1,实现低成本 Agent 应用;
- 解耦优势: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