MCP协议助力AI实现外部世界连接
在人工智能快速进步的当下,大型语言模型 (LLM) 正在从基础的“对话机器人”进化为能独立处理复杂任务的“智能体” (Agent)。这一进化的关键点在于怎样使LLM动态获取训练数据之外的知识,以及怎样安全、高效地与外部环境互动,比如访问数据库、调用API、操作文件系统等。
MCP(Model Context Protocol)协议应运而生,由Anthropic在2024年11月发布,为LLM与外部数据、应用之间的通信提供一种安全且标准化的协议。作为桥梁,MCP使 AI 成为一个能够检索最新信息并执行各类操作的动态智能体,并迅速在各大互联网公司和云服务厂商间得到广泛的运用。
本文将深入MCP协议的底层原理,并结合FastMCP框架,带大家从0~1快速搭建一个MCP Server。
MCP采用Client-Server架构,其中MCP Host(类似Cursor,Claude Code,OpenClaw等 AI 应用)基于各类需要与MCP服务器发起请求。MCP Host针对每个MCP Server创建一个MCP Client,每个客户端与其对应的服务器保持专属连接。
MCP基于JSON-RPC 2.0交换协议,该协议定义了消息结构和语义。主要包括会话生命周期管理,服务器功能标准,客户端功能标准,以及其他额外功能 (如实时更新通知,长时间运行进度跟踪)。
通信传输模式:
整个过程的关键在于:MCP把“工具发现+工具调用”标准化为JSON-RPC协议,LLM只负责 “用哪个工具、传什么参数、怎么串起来”,具体能力则由各MCP Server独立提供,做到即插即用、多源协同。
MCP和检索增强生成 (RAG)都通过外部信息来增强LLM,但方式不同,目的各异。RAG主要用于多路信息检索让LLM更准确的生成结果,而MCP是一个更广泛的交互与操作执行,不局限为获取更多信息以增强LLM上下文。
MCP对比技能 (Skills): MCP让LLM连接到外部服务和数据源。Skills提供程序性知识–关于如何完成特定任务或工作流程的指令。可以将两者结合使用:MCP连接为LLM提供工具访问,而技能则教LLM如何有效使用这些工具。
FastMCP是一个基于Python构建的MCP应用标准框架,底层支持STDIO, Streamable-HTTP等多种通信方式,以及Sync与Async运行模式。在覆盖几乎所有MCP标准方法的同时,也支持类似FastAPI的中间件加载,依赖注入等功能。使用FastMCP,可快速搭建属于自己的MCP Server,以用于提供多种自定义服务给AI Agent。
完整类别与方法可参考官网:https://gofastmcp.com/servers/
例如作者创建一个名为useful-mcp的服务,基于Python 3.14,FastMCP 3.2.0,以及pydantic,pydantic-settings等 (具体Python项目创建规范可参考从“能用”到“好用”: Python项目最新实战指南)。该MCP服务提供对AWS S3Bucket的文件罗列,读取,和写入等操作。
工具方法:
MCP中间件:
FastMCP启动:
启动成功后,Terminal会呈现FastMCPBanner
HTTP POST请求 http://localhost:8000/mcp 会有对应返回
此外,FastMCP还提供很多开箱即用的交互式UI插件,有助于快速实现MCP服务管理,监控等各式各样的能力。[https://gofastmcp.com/apps/overview]
MCP Server验证有效 (或部署远端服务器)后,可注册到本地Agent使用。作者本地简单对话一般使用Cherry Studio
结合LLM对话/使用效果:
一句话总结:MCP让AI拥有了"手脚",而FastMCP让搭建这座桥梁变得像写FastAPI一样简单。目前市场上已有很多MCP服务提供使用,可以在https://mcpservers.org,https://mcp.so尝试寻找自己需要的功能。不过,使用前请务必验证MCP工具的安全性与可靠性,以及数据隐私问题,以避免对话信息或关键数据泄露。此外,作者将陆续推出🤖AIAgent搭建,📜Skill编写,📊特征分析等大厂实战贴,敬请期待!🔔