引言

如果你刚开始用 ChatGPT 或 Claude,大概率遇到过这种情况:你问它“帮我看看今天上海的天气”,它礼貌地回复“我只能提供到 2025 年的数据”。你让它“分析这个 Excel 文件”,它只能请你手动粘贴内容。

这种感觉就像你雇了一个绝顶聪明的实习生,但他被锁在空房间里,没有手机,没有电脑,看不到外面的世界。

MCP(Model Context Protocol,模型上下文协议),就是给这个实习生配上的万能接口。简单说,它是大模型与外部工具、数据之间的“USB-C 标准”。而 MCP Server,就是那些能即插即用的“外设”——文件系统、数据库、天气预报 API,通通可以接进来。

今天这篇,专门为第一次接触 MCP 的程序员而写。我们不只聊概念,更把当前最主流、最好用的 MCP Server 开源框架,用打比方、拆场景、亮代码的方式讲透。读完你不仅能看懂生态,还能马上动手写出自己的第一个 MCP 插件。
在这里插入图片描述


先搞懂:MCP 到底是什么?我凭什么需要它?

用生活场景比喻:MCP Client 是餐厅里的顾客(模型),MCP Server 是后厨(你的代码)。顾客看菜单(工具列表)点菜,后厨做菜并端上去。而开发框架,就是后厨的标准化灶台和菜谱,让你不必从钻木取火开始。

官方三大件:MCP 世界的“水电煤”

Anthropic 官方维护着 Python、TypeScript、Java(Kotlin)三个 SDK,它们是基石中的基石。所有上层框架都依赖这些基础能力。

1. Python SDK (mcp)

它是什么:最正统的 Python 实现,支持快速定义工具、资源、提示词,使用 asyncio 异步模型。
作用:直接操作底层协议,控制力度最高,能实现复杂交互。
生动场景:你要造一台功能精密的概念车,用官方 SDK 就是从钢板和引擎开始拼装。虽然起点稍低,但每个齿轮都由你掌握。
应用场景:需要精细内存控制、长连接管理、深度定制协议行为的生产级应用。
一句话上手

from mcp.server import Server, stdio_server
from mcp.types import Tool

server = Server("weather-app")

@server.list_tools()
async def list_tools():
    return [Tool(name="get_weather", description="查询天气", inputSchema=...)]

@server.call_tool()
async def call_tool(name, arguments):
    if name == "get_weather":
        return { "content": [{ "type": "text", "text": "上海晴,30°C" }] }

if __name__ == "__main__":
    stdio_server.run(server)

2. TypeScript SDK (@modelcontextprotocol/sdk)

它是什么:为 Node.js 和前端生态定制的官方 SDK,完美匹配 Vercel AI SDK、LangChain.js 等。
作用:让 JavaScript/TypeScript 开发者用最熟悉的方式构建 MCP 服务,前后端统一语言。
场景:全栈团队,希望 MCP Server 直接跑在 Next.js、Express 甚至 Electron 里;AI 工具链集成。

3. Kotlin/Java SDK

它是什么:为 JVM 生态准备的官方实现,专为 Spring Boot 和 Android 优化。
作用:在大型企业 Java 架构中,把已有的业务能力无缝暴露给 AI。
场景:用 Java 写微服务,希望 AI 助手能直接调用内部订单、库存系统。


社区明星框架:把“写 MCP 服务”简化成做填空题

🐍 Python 选手:FastMCP

是什么:由 Prefect 联合创始人 Jeremiah Lowin 打造的“高阶”框架,灵感来自 FastAPI。
作用:用装饰器把普通 Python 函数直接注册成工具,自动生成 JSON Schema,支持 HTTP 传输一键切换。
生动场景:就像你本来要自己搭灶台、备菜、炒菜,结果 FastMCP 直接给了你一个集成厨房:把菜(函数)扔进锅里,按个开关(装饰器),菜就自动端给模型了。
应用场景:个人开发者、快速原型、需要最快速度把想法变成 MCP 服务的小团队。
代码对比(实现同样天气工具):

from fastmcp import FastMCP

mcp = FastMCP("Weather Service")

@mcp.tool()
def get_weather(city: str) -> str:
    """查询指定城市的天气"""
    return f"{city}晴,30°C"

mcp.run()

三行元代码就能跑,工具名、参数描述、返回格式全自动推导。这就是框架的魔力——协议细节被完美隐藏,你只写业务逻辑。

☕️ Java/Spring 生态:Spring AI MCP

是什么:VMware 官方 Spring AI 项目的一部分,把 MCP 能力融入 Spring Boot 的自动配置、依赖注入体系。
作用:只需添加 spring-ai-mcp-spring-boot-starter 依赖,用 @Tool 注解标记类方法,一个 Web 应用就同时是 MCP Server。
生动场景:你的公司已经有一套庞大的 Spring 系统,库存、订单微服务全在。Spring AI MCP 就像给这些旧铁路铺上电气化轨道——AI 列车可以直接开进来。
应用场景:企业级 Java 应用,需要将内部 API 安全、标准化地开放给 AI 助手。

🐹 Go 语言:mcp-go

是什么:Go 社区最活跃的 MCP 库,API 简洁,性能优越。
作用:利用 Go 天然高并发的优势,构建高性能、低资源的 MCP 网关或工具。
场景:你需要一个极轻量的工具,比如执行 Shell 命令、操作 Docker,或者作为 Sidecar 容器注入到 Kubernetes Pod,mcp-go 就是不二之选。

🦀 Rust 语言:mcp-rs

是什么:Rust 生态的 MCP 实现,追求极致安全和速度。
作用:构建可信、实时性要求极高的工具,比如加密操作、硬件传感器读取。
场景:边缘计算、IoT 设备,需要把物理世界的数据用最可靠的方式喂给 AI。


专用型“开箱即用”服务器:不写代码也能拥有超能力

除了自己开发,不少框架还直接提供了预置的 MCP Server,拿来配一下就能用:

  • Filesystem:安全访问指定文件夹,AI 就能读写本地文件。
  • Postgres / SQLite:通过自然语言查询数据库。
  • GitHub / Slack:让 AI 查 Issue、发消息。
  • Brave Search:赋予模型实时网页搜索能力。

这些大多基于上述框架开发,并发布在 npm、PyPI 上,装完配置环境变量,客户端就能连接。从“使用者”到“创造者”,中间只隔着一个框架。


框架选择指南(一看就懂)

你的背景 推荐框架 理由
Python 新手,想最快出活儿 FastMCP 装饰器一加,工具立现,写几行就能和 Claude 联动
Python 高级用户,需要全控制 官方 Python SDK 异步、流式、多传输全搞定
全栈 JS 开发者,已有 Node 项目 TypeScript SDK 和前端无缝共享类型定义
Java 企业级开发 Spring AI MCP 依靠 Spring Boot 自动配置,零改造接入
追求性能、部署轻量 mcp-go (Go) 二进制大小几兆,内存占用低
安全、嵌入式系统 mcp-rs (Rust) 内存安全、无 GC 抖动

一条能立刻跑通的学习路径

  1. 15 分钟体验:安装 FastMCP,把你之前写的某个小函数(比如生成二维码、查询农历)用 @mcp.tool() 装饰,跑起来,用 Claude Desktop 连接,亲眼看着 AI 调用你的代码。
  2. 1 小时理解协议:用官方 Python SDK 手写一个工具,理解 Server、Tool、Resource 的区别,看看底层 JSON 交互长什么样。
  3. 半天整合实战:将你常用的数据库、内部 API 封装成 MCP Server,彻底让 AI 成为你的生产力飞轮。

MCP 生态正在疯狂生长,但核心思想始终没变:让 AI 不再是孤岛,而你和开源框架之间,只隔着一行 pip install 的距离。 无论你是想给 Claude 加个计算器,还是为整个公司搭建 AI 网关,总有一款框架适合你。

延伸阅读与资源

后端工程师的 AI 转型第一课:Ollama 与私有化大模型实战
10倍开发者的 Dify 魔法书:从零构建全栈 AI 应用
后端工程师转型AI第一课-Ollama 与私有化大模型实战

大型语言模型(LLM) vLLM 高性能推理落地实战

Agent开发之LlamaIndex 实战修炼与源码进阶

大语言模型Transformers 实战修炼与源码剖析

posted on 2026-07-05 09:48  一天不进步,就是退步  阅读(10)  评论(0)    收藏  举报