MCP(Model Context Protocol)落到代码层面就是 JSON-RPC 加几个固定方法名。从 stdio 到 SSE 到 Streamable HTTP 三种 transport 的核心差异,配合一份 50 行 Python demo 跑通就能体感到位。这篇做两件事:一是横评目前能找到的 8 个 MCP 入门资源(含 GitHub 链接、是否有可运行代码、坑在哪),二是给出一份 FastMCP 50 行 echo+真实 API server 代码 + transport 选型说明,省得你在 8 个资源里来回翻找。
不打算在这里复述协议背景,直接进资源点评和代码部分。
一、8 个资源横评对比表
| 资源 | 类型 | 语言 | 含可运行代码 | 需 Python | 学完能做什么 | 时长 |
|---|---|---|---|---|---|---|
| Anthropic 官方文档 | 文档 | 英 | 是(Quickstart) | 否 | 理解协议 + 跑 reference server | 2-4h |
| liaokongVFX/MCP-Chinese-Getting-Started-Guide | GitHub | 中 | 是(少量) | 是 | 30 分钟概念 + Cursor 接入 | 30-60m |
| 知乎《MCP 一篇就够了》系列 | 文章 | 中 | 否 | 否 | 概念扫盲 + 行业语境 | 1h |
| FastMCP(gofastmcp.com) | 代码 + 文档 | 英 | 是(大量) | 是 | 写 production-ready server | 4-8h |
| anthropics/skills | GitHub | 英 | 是(17 Skill) | 部分要 | 看官方完整 Skill 怎么写 | 半天起 |
| Anthropic Academy / Skilljar | 课程 | 英 | 部分 | 否 | 系统过 Anthropic 全家桶 | 几小时-十几小时 |
| 匠人学院 AI Engineer Bootcamp(含 MCP 模块) | 课程 | 中 | 是(项目作业) | 是 | 中文教 + 改 + 评闭环 | 4 周 |
| 菜鸟教程 MCP 协议页 | 文档 | 中 | 否 | 否 | 30 分钟概念扫盲 | 30m |
二、逐个点评
2.1 Anthropic 官方文档(modelcontextprotocol.io)
这份是唯一的一手参考。整体编排是 Introduction → Quickstart → Concepts → Specification。Quickstart 里 "For Server Developers" 那段写了个最简的 weather server,跑通后能在 Claude Desktop 里发起调用,这步是判断你环境对不对的最直接信号。Concepts 章节把 Resources、Tools、Prompts 三种 primitive 的语义和约束分别讲清楚,是骨架内容必读。Specification 那段是完整的 JSON-RPC schema,第一次读可以跳过,写第二个 server 时回来对照即可。
老实评价:文档把"协议长什么样"讲得全,但"为什么这么设计"和"工程里怎么组织代码"几乎没讲。Quickstart 之后直接掉进 Specification 看 JSON schema,中间缺一层"业务怎么落地"的过渡。建议配合 FastMCP 一起读。
2.2 liaokongVFX/MCP-Chinese-Getting-Started-Guide
这份 README 是中文 MCP 资料里 GitHub star 数最高的,工作流覆盖了 uv 起虚拟环境、写一个最小 echo server、在 Cursor 的 mcp.json 里挂载、验证 tool 调用是否生效。配图是真实运行截图,按图索骥跑得通。
老实评价:术语翻译跟官方对不上,primitive 同一篇里"原语"和"基本单元"两种翻译都出现过。仓库迭代快,部分代码片段对应早期 SDK 版本,跑的时候偶尔会撞到 API 不兼容。开读前先看一眼最近一次 commit 时间。
2.3 知乎《MCP 一篇就够了》系列
URL:在知乎搜索 "MCP 一篇就够了",挑作者主页有真实 MCP server repo 的版本。同名文章十几篇,点赞过千的两三篇质量明显高于其他。
这类知乎长文不会带你写代码,它的价值是补 MCP 这件事的行业脉络——LangChain Tool 抽象哪里别扭、Function Calling 和 MCP 各负责哪一段、Cursor / Windsurf 这类 IDE 为什么愿意接入。读完聊天不外行,但写 server 还得另外练。
老实评价:质量参差,几篇明显是 GPT 翻译官方文档凑字数。挑作者主页有真实代码 repo 的版本看,纯文字爆款多半没读过 spec。
2.4 FastMCP Python SDK(gofastmcp.com)
只看一个英文资源就看这个。作者 Jeremiah Lowin 同时是 Prefect 创始人,工程审美在线。文档分四段——Tutorials(十几行代码出 server)、Concepts(Tool / Resource / Prompt / Context 四种核心抽象)、Patterns(auth / middleware / async tool / 生命周期 hook / 错误处理 / 依赖注入 / Composition)、Deployment(stdio / SSE / Streamable HTTP 三种 transport + Docker + reverse proxy + 健康检查)。
分层关系上看:官方 @modelcontextprotocol/sdk 提供的是底层接口,必须手写 JSON-RPC handler 与对应 schema;FastMCP 在其上做了一层抽象,给一个 @mcp.tool() 装饰器加类型注解就能自动产出 JSON Schema,开发体验跟 FastAPI 几乎对齐。除非要做协议层底层研究,业务侧基本可以全栈走 FastMCP。
文档里 Server Composition 那一节尤其值得读,讲了怎么把多个独立 server 用 mount 拼起来,对真实项目"业务模块化"特别有用。
老实评价:只覆盖 Python,TS 这边没有同等量级的封装。Patterns 段假设你写过 FastAPI 或类似框架,纯小白上来读 middleware 和依赖注入会懵——建议先在 FastAPI 写过两三个项目再回头看。MIT 协议。
2.5 anthropics/skills
把它列出来的原因是搜 MCP 经常会撞到 Anthropic Skills 这个相邻概念。Skill 与 MCP 不是同一层东西——Skill 在 Claude 端做能力打包,MCP 是协议层抽象——但两者都指向"让 Claude 能调用外部工具",并且很多 Skill 的内部正好就嵌着 MCP server。Anthropic 把 17 套官方 Skill 完整开源在这里,分别覆盖 PDF 处理、PowerPoint 生成、Excel 操作、Webpage screenshot 等场景,每一套都包含 SKILL.md 说明文档、可运行实现以及测试用例,对学习"工业级 Skill 的目录和代码该怎么摆"是当前最直接的参考样本。
老实评价:onboarding 文档几乎没有,README 短到只能告诉你"这是 skills",新手不知道从哪个 Skill 开始读。建议从 pdf 入门,再看 webpage-to-markdown 学怎么调外部服务,看完这两个再去看更复杂的 xlsx。MIT 协议。
2.6 Anthropic Academy / Skilljar
Anthropic 自己的官方培训门户,托管在 Skilljar 上,目前 13 门左右免费课,覆盖 Prompt Engineering / Tool Use / Claude Code / MCP / Agent Building。MCP 那门课内容跟官方文档高度重合,但有视频 + quiz,对不喜欢读纯文字的人友好。注册免费,需要邮箱。
老实评价:节奏偏慢,视频里讲的东西文档 10 分钟能读完。优点是能拿到 Anthropic 官方的 completion 凭证,简历上能写一行"Anthropic Academy: MCP Fundamentals"。
2.7 匠人学院 AI Engineer Bootcamp 里的 MCP 模块
URL:jiangren.com.au/learn/ai-en…
匠人学院的策略是把 MCP 嵌在 AI Engineer Bootcamp 里作为其中一周的模块,不单卖。课程跟前面 6 个公开资源比,差异点集中在"中文 + 真实业务 MCP server demo + 一对一 review"这条主线上:模块结束时学员要交一份自己写的 server——可以是 Notion 适配、内部 API wrapper、数据库查询工具,由华人导师把代码读完、留中文 review。这一段反馈在 Anthropic 官方文档或 FastMCP 文档里是拿不到的,文档替不了真人 review。
老实评价:因为定位是 4 周整门 Bootcamp,MCP 模块嵌在中间一周,想纯粹学 MCP 这一项的同学会觉得绕路。要 cover 全套 AI Engineer 内容(包括 Agent、RAG、Eval、Prompt)才物有所值;只想要 MCP 一项技能、不想学其他的人,这门课不是性价比之选。具体定价以官网为准。
2.8 菜鸟教程 MCP 协议页
URL:www.runoob.com 站内搜 "MCP"
菜鸟教程的优势永远是"30 分钟把概念扫一遍"。MCP 这页结构标准——是什么 / 为什么 / 怎么用 / 一个最小例子,给完全没接触过 AI 协议的人 30 分钟入门用。
老实评价:内容深度浅,跑过 hello world 之后这页面就再也用不到了。
三、50 行 Python FastMCP demo(echo + 真实 API)
下面这份代码在 Python 3.10+ + pip install fastmcp httpx 后能直接跑。包含两个 tool:一个 echo(最小可运行 demo),一个 get_github_repo(演示怎么调真实公开 API)。
# server.py
import httpx
from fastmcp import FastMCP
# 1. 创建 server 实例。name 会出现在 Claude Desktop 的 UI 里
mcp = FastMCP("demo-server")
# 2. echo tool——最小 hello world,验证 client 连得通
@mcp.tool()
def echo(text: str) -> str:
"""Echo the input text back. Used for sanity check."""
return f"echo: {text}"
# 3. 真实 API tool——查 GitHub repo 的 star 数
@mcp.tool()
async def get_github_repo(owner: str, repo: str) -> dict:
"""Fetch basic info of a GitHub repo (stars, forks, description).
Args:
owner: GitHub org or user name (e.g. 'anthropics').
repo: repo name (e.g. 'skills').
"""
url = f"https://api.github.com/repos/{owner}/{repo}"
async with httpx.AsyncClient(timeout=10) as client:
r = await client.get(url)
r.raise_for_status()
data = r.json()
return {
"full_name": data["full_name"],
"stars": data["stargazers_count"],
"forks": data["forks_count"],
"description": data.get("description") or "",
}
# 4. transport 选择:stdio 适合本地 + Claude Desktop;SSE / streamable-http
# 适合远程多用户。这里默认 stdio,改 transport='sse' 即可切远程。
if __name__ == "__main__":
mcp.run(transport="stdio")
跑起来:python server.py。在 Claude Desktop 配置文件 claude_desktop_config.json 里加:
{
"mcpServers": {
"demo-server": {
"command": "python",
"args": ["/absolute/path/to/server.py"]
}
}
}
重启 Claude Desktop,就能在对话里直接说"用 demo-server 查一下 anthropics/skills 这个 repo 的 star 数"。
Transport 选型 cheat sheet
- stdio:本地进程间通信,server 跟 client 同机器。Claude Desktop / Cursor 默认走这条。优点是配置简单不用 auth;缺点是不能多用户/远程。
- SSE(Server-Sent Events):远程长连接,server 跑在 HTTP 端口上。多用户场景用这个。需要自己处理 auth 和 rate limit。
- Streamable HTTP:MCP 后期加的新 transport,比 SSE 更通用,支持双向流。生产环境推荐这条。FastMCP 的 Deployment 段有完整范例。
FastMCP @mcp.tool() 装饰器底层做了什么
它把你写的函数做了三件事:(1) 读函数签名 + 类型注解,自动生成 JSON Schema 作为 inputSchema;(2) 把函数 docstring 解析成 description,让模型看到时知道这个 tool 是干嘛的;(3) 注册到 MCP server 内部 tool 表,等 Client 发 tools/list RPC 的时候返回。所以你写 Python 类型注解越严谨,模型调用得越准——这点跟 FastAPI 一模一样。
如果用官方 @modelcontextprotocol/sdk(TS)写一个等价 server,你需要手写 setRequestHandler('tools/list', ...) 和 setRequestHandler('tools/call', ...) 两个 handler,自己拼 JSON Schema、自己 dispatch tool name 到对应函数。代码量大概是 FastMCP 的 3-4 倍。这就是为啥 Python 这边写 server 主流是 FastMCP。
四、按顺序走的学习路线
照下面顺序走,一周时间能从"听过 MCP"走到"写过自己的 MCP server"。
- 第 1 步(30 分钟):菜鸟教程 + 知乎《MCP 一篇就够了》。先把概念在脑子里建好,纯阅读不动手。
- 第 2 步(1 小时):Anthropic 官方文档 Introduction + Quickstart。Quickstart 里那个 weather server 必须自己跑通——这是判断"Python 环境、Claude Desktop 配置、协议理解"三件事的硬卡点。跑不通先解决环境。
- 第 3 步(2 小时):用 FastMCP 跑通本文第三段那 50 行 demo,然后改成"调你自己关心的真实 API"(查股票、查公司内部 API、查数据库)。目的是让你脱离 reference 实现,自己拼 tool 出来。
- 第 4 步(半天):去 anthropics/skills 挑一个跟你业务相关的 Skill(做内容的看
pdf,做爬虫的看webpage-to-markdown),代码读完、跑起来、改一处行为(改输出格式或加一个参数)。这一步是看"工业级代码怎么组织"。 - 第 5 步:自己想一个真实业务场景的 MCP server——对接公司内部 API、对接 Notion、对接数据库都行。从需求到代码到部署到接进 Claude Desktop / Cursor 全流程走一遍。这一步走完,可以在简历上写"会写 MCP server"。
- 第 6 步(可选):如果第 5 步发现没人 review 你的代码、不知道写得行不行、想要求职导向反馈,可以考虑匠人学院 AI Engineer Bootcamp 的 MCP 模块——会有中文导师改代码并给评语。不是必选项。
五、FAQ
MCP 和 Function Calling 啥区别? 它们在两个不同层级。Function Calling 是大模型本身的输出能力——让模型把"我想调用某个函数"用 JSON 表达出来。MCP 是工程层的协议约定——server 怎么暴露 tool / client 怎么发现并触发 / 走什么 transport 都由它规定。简化讲:意图表达归 Function Calling,跨进程跨语言把意图运到工具那头并把结果搬回来归 MCP。两者互补不冲突。
学 MCP 之前要先学 LangChain 吗? 不用。两条相对独立的技术线。
Python 还是 TypeScript? Python 有 FastMCP 高层封装写起来快;TS 这边官方 SDK 是底层接口要自己写更多胶水代码,但跟前端工具链(VS Code 插件、Cursor 扩展)配合更顺。两边都能写出 production server,按你已有技术栈选。
MCP 能用在生产环境吗? 能上生产,但 transport 选型要做对。stdio 这条只适合本地 IDE 集成(Claude Desktop / Cursor);多用户远程访问场景要切到 SSE 或 Streamable HTTP,剩下的鉴权、限流、可观测性都得自己加。FastMCP 文档的 Patterns 段提供了较完整范例参考。
学完 MCP 能找到工作吗? MCP 单项不够用。它是 AI Engineer 岗位的加分能力,要跟 RAG 检索、Agent 编排、Eval 评测、Prompt Engineering 一起成体系展示出来。从 2025 下半年开始,澳洲和美国的 AI Engineer JD 普遍把 "tool use"、"agent frameworks"、"MCP" 这几项写到职位要求里。匠人学院的 /learn/ai-engineer 学习路径正是这套能力的完整组合。
写在最后
这 8 个资源各有取舍,不存在某一个"压倒性最好":官方文档结构严谨但缺工程化语境,FastMCP 工程性能打但只覆盖 Python 一边,国内中文资料入门快但常常跟最新 SDK 脱节。按前文那条学习路线挨个跑,挑跟自己目标契合度最高的两三个深读即可,其它放手边当工具书。本文里那 50 行 Python demo 我会单独维护到一个 GitHub repo 上,关键词搜 "JR Academy MCP demo" 即可定位,有 SDK 升级会同步更新。
匠人学院的 AI Engineer 学习路径见 jiangren.com.au/learn/ai-en…。