<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Claude on Kalend's Blog</title><link>https://blog.kalend.top/tags/claude/</link><description>Recent content in Claude on Kalend's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Sun, 07 Jun 2026 08:30:00 +0800</lastBuildDate><atom:link href="https://blog.kalend.top/tags/claude/index.xml" rel="self" type="application/rss+xml"/><item><title>MCP 协议入门：让 AI 工具连接一切的万能接口</title><link>https://blog.kalend.top/2026/06/07/2026-06-07-mcp-intro.html/</link><pubDate>Sun, 07 Jun 2026 08:30:00 +0800</pubDate><guid>https://blog.kalend.top/2026/06/07/2026-06-07-mcp-intro.html/</guid><description>&lt;h1 id="mcp-协议入门让-ai-工具连接一切的万能接口"&gt;MCP 协议入门：让 AI 工具连接一切的万能接口
&lt;/h1&gt;
 &lt;blockquote&gt;
 &lt;p&gt;你用 Claude 查数据库、用 Cursor 调 API、用 VS Code 写代码——每个 AI 工具连外部能力的方式都不一样，开发者疲于适配。MCP 结束了这一切。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="先说结论"&gt;先说结论
&lt;/h2&gt;&lt;p&gt;MCP（Model Context Protocol）就是 AI 世界的&amp;quot;万能转接头&amp;quot;。&lt;/p&gt;
&lt;p&gt;什么意思？以前你给 Claude 写个插件，只有 Claude 能用。给 Cursor 写个扩展，只有 Cursor 能用。现在你写一个 MCP Server，所有支持 MCP 的工具——Claude Desktop、ChatGPT、Cursor、VS Code Copilot、Windsurf——都能直接调用。&lt;/p&gt;
&lt;p&gt;写一次，到处能用。这就是 MCP 的核心价值。&lt;/p&gt;
&lt;h2 id="mcp-到底是什么"&gt;MCP 到底是什么
&lt;/h2&gt;&lt;p&gt;一句话定义：&lt;strong&gt;AI 应用连接外部系统的开放协议。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;类比你就懂了。USB-C 统一了充电口——以前出门带五根线，现在一根搞定。MCP 做的是同样的事：统一 AI 调用外部工具的接口。&lt;/p&gt;
&lt;p&gt;以前 Claude 想读文件，得用 Claude 自己的插件格式。Cursor 想查数据库，得用 Cursor 自己的扩展 API。每个 AI 工具都搞一套，开发者写一次适配要重复 N 遍。MCP 把这些全部标准化了。&lt;/p&gt;
&lt;p&gt;谁做的？Anthropic（Claude 背后的公司），2024 年 11 月开源推出。不是闭源产品，是真正的开放协议——规范仓库 8300+ Star，官方 Server 参考实现仓库 86000+ Star，社区贡献活跃。&lt;/p&gt;
&lt;p&gt;这里有个容易搞混的点：&lt;strong&gt;MCP 不是 Function Calling 的替代品&lt;/strong&gt;。Function Calling 是&amp;quot;模型能调用函数&amp;quot;这个能力，MCP 是在它之上的一层标准化协议——定义了工具怎么描述、怎么发现、怎么调用。类比：Function Calling 是发动机，MCP 是传动轴。不是替代关系，是上下层关系。&lt;/p&gt;
&lt;p&gt;协议的治理也很规范。MCP 有完整的 SEP（Specification Enhancement Proposal）流程，类似 Python 的 PEP。社区通过 SEP 提案来讨论和推进协议演进，目前已有 30+ 个 SEP。这意味着 MCP 不是一家公司说了算，而是有社区共识机制的开放标准。&lt;/p&gt;
&lt;h2 id="为什么-2026-年必须懂-mcp"&gt;为什么 2026 年必须懂 MCP
&lt;/h2&gt;&lt;p&gt;数据说话，不讲故事。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;npm 包月下载量 1.55 亿次。&lt;/strong&gt; 这是 TypeScript SDK 的数据，Python SDK 也已经迭代到 1.27.2 版本。一个协议相关的 SDK 能有这个量级，说明生态已经非常成熟。&lt;/p&gt;
&lt;p&gt;协议本身也在快速演进：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;时间&lt;/th&gt;
 &lt;th&gt;版本&lt;/th&gt;
 &lt;th&gt;关键更新&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;2025-03&lt;/td&gt;
 &lt;td&gt;2025-03-26&lt;/td&gt;
 &lt;td&gt;首个正式版本发布&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2025-06&lt;/td&gt;
 &lt;td&gt;2025-06-18&lt;/td&gt;
 &lt;td&gt;tool annotations、structured output、elicitation&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2025-09&lt;/td&gt;
 &lt;td&gt;Registry 上线&lt;/td&gt;
 &lt;td&gt;可搜索可发现的 Server 市场&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2025-11&lt;/td&gt;
 &lt;td&gt;2025-11-25&lt;/td&gt;
 &lt;td&gt;最新稳定版&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;2026-05&lt;/td&gt;
 &lt;td&gt;2026-07-28-RC&lt;/td&gt;
 &lt;td&gt;下一个大版本候选，含 Tasks、MCP Apps&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;支持 MCP 的工具列表已经覆盖所有主流平台：Claude Desktop、ChatGPT、VS Code Copilot、Cursor、Windsurf、Zed、Replit、Continue、通义灵码……&lt;/p&gt;
&lt;p&gt;注意 ChatGPT 和 VS Code 也在列表里。MCP 不是 Claude 专属，它正在成为全行业的事实标准。Anthropic 把它开源出来，OpenAI 接了，微软接了——这就不是一家公司的生态了，而是整个 AI 行业的基础设施。&lt;/p&gt;
&lt;p&gt;一句话总结：2026 年不懂 MCP 的开发者，就像 2015 年不懂 REST API 的后端开发者。不是学不学的问题，是早晚要学的问题。&lt;/p&gt;
&lt;h2 id="mcp-怎么工作三层核心概念"&gt;MCP 怎么工作：三层核心概念
&lt;/h2&gt;&lt;p&gt;别被架构图吓到，核心就三个角色，记住它们就行。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Host（宿主）&lt;/strong&gt;：你用的 AI 应用。Claude Desktop、Cursor、VS Code，这些就是 Host。它负责管理所有 MCP 连接，决定什么时候调用什么工具。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Client（客户端）&lt;/strong&gt;：Host 内部自动创建的通信组件。每连接一个 Server，Host 就自动创建一个对应的 Client。你作为用户不需要手动配置这个——它是透明的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Server（服务端）&lt;/strong&gt;：提供具体能力的独立程序。连接数据库、读写文件、搜索网页、调用第三方 API——都是 Server 的事。Server 可以跑在本地（stdio 传输），也可以跑在远程（Streamable HTTP 传输）。&lt;/p&gt;
&lt;p&gt;一个简化示意：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;Claude Desktop (Host)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── Client 1 ←→ Filesystem Server（读写本地文件）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── Client 2 ←→ Database Server（查数据库）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── Client 3 ←→ Web Search Server（搜索网页）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Host 想读文件？问 Client 1。想查数据库？问 Client 2。整个过程对用户来说就是正常聊天——AI 自己决定调哪个工具。&lt;/p&gt;
&lt;p&gt;通信协议用的是 JSON-RPC 2.0，非常轻量。本地场景用 stdio（标准输入输出），远程场景用 Streamable HTTP。如果你熟悉 LSP（Language Server Protocol），会觉得这个架构很眼熟——确实，MCP 的设计灵感就来自 LSP。&lt;/p&gt;
&lt;p&gt;Server 暴露三种能力，官方叫 Primitives（原语）：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tools&lt;/strong&gt;：可调用的函数。&lt;strong&gt;这是最常用的。&lt;/strong&gt; 比如执行 SQL 查询、创建文件、发送邮件。可以理解为&amp;quot;动作&amp;quot;。每次 AI 说&amp;quot;我来帮你执行 XXX&amp;quot;，背后大概率就是调了一个 Tool。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resources&lt;/strong&gt;：可读取的数据或文件。比如数据库表结构、配置文件内容、API 文档。可以理解为&amp;quot;信息&amp;quot;。和 Tool 的区别是 Resource 是只读的，AI 只是&amp;quot;看&amp;quot;一眼，不会改变什么。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Prompts&lt;/strong&gt;：预定义的提示模板。比如&amp;quot;用 XX 风格写代码&amp;quot;的标准提示词，或者&amp;quot;按 XX 格式输出报告&amp;quot;的模板。可以理解为&amp;quot;指令模板&amp;quot;。&lt;/p&gt;
&lt;p&gt;实际开发中 90% 的场景只用 Tools。Resources 和 Prompts 是锦上添花，不用急着学。&lt;/p&gt;
&lt;h2 id="亲测演示5-分钟跑通你的第一个-mcp"&gt;亲测演示：5 分钟跑通你的第一个 MCP
&lt;/h2&gt;&lt;p&gt;不用写代码。现成的 Server 拿来就能用。这是 MCP 的设计哲学：先用起来，再理解原理。&lt;/p&gt;
&lt;p&gt;以 Claude Desktop + 官方文件系统 Server 为例。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 1：安装 Claude Desktop&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;去 claude.ai/download 下载安装。macOS 和 Windows 都支持。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 2：确保有 Node.js&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;终端执行 &lt;code&gt;node --version&lt;/code&gt;，能看到版本号就行。没有就去 nodejs.org 装 LTS 版。很多官方 Server 都是基于 Node.js 的。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 3：编辑配置文件&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;打开 Claude Desktop → 点击顶部菜单 Claude → Settings → Developer → Edit Config。&lt;/p&gt;
&lt;p&gt;这会打开一个 JSON 配置文件，写入以下内容：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;filesystem&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;npx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;-y&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;@modelcontextprotocol/server-filesystem&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;/Users/你的用户名/Desktop&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;/Users/你的用户名/Downloads&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;把路径换成你自己的实际路径。Windows 用户把 &lt;code&gt;/Users/&lt;/code&gt; 改成 &lt;code&gt;C:\\Users\\&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;这个配置告诉 Claude Desktop：启动时自动运行 filesystem 这个 Server，并授权它访问指定的目录。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Step 4：重启 Claude Desktop，开始对话&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;重启后在聊天框里试试这些：&lt;/p&gt;
&lt;p&gt;&amp;ldquo;帮我看看桌面上有哪些文件&amp;rdquo;——Claude 会弹出权限请求，你确认后它就能读取文件列表了。&lt;/p&gt;
&lt;p&gt;&amp;ldquo;把 Downloads 里最大的 5 个文件列出来&amp;rdquo;——它会扫描目录并排序。&lt;/p&gt;
&lt;p&gt;&amp;ldquo;帮我创建一个 notes.txt，写上今天的待办事项&amp;rdquo;——它真的能创建文件。&lt;/p&gt;
&lt;p&gt;全程不用写一行代码。现成的 Server 拿来就跑。&lt;/p&gt;
&lt;p&gt;如果你用的是 Cursor，流程更简单：Settings → MCP → Add New Server → 粘贴配置 → 重启。VS Code Copilot 也类似，在 settings.json 里配置 mcp 字段即可。&lt;/p&gt;
&lt;p&gt;想试试更多 Server？去官方 GitHub 仓库 modelcontextprotocol/servers，里面有几十个开箱即用的 Server——数据库、Git、Brave Search、Slack、Google Drive……复制配置就能用。&lt;/p&gt;
&lt;h2 id="mcp-vs-function-calling-vs-agent别再搞混了"&gt;MCP vs Function Calling vs Agent：别再搞混了
&lt;/h2&gt;&lt;p&gt;这三个概念经常被混在一起说，其实完全不在一个层级。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;概念&lt;/th&gt;
 &lt;th&gt;是什么&lt;/th&gt;
 &lt;th&gt;解决什么问题&lt;/th&gt;
 &lt;th&gt;类比&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;Function Calling&lt;/td&gt;
 &lt;td&gt;模型调用函数的能力&lt;/td&gt;
 &lt;td&gt;让 LLM 能触发动作&lt;/td&gt;
 &lt;td&gt;电灯开关&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;MCP&lt;/td&gt;
 &lt;td&gt;标准化的工具发现和调用协议&lt;/td&gt;
 &lt;td&gt;让所有工具对所有平台可用&lt;/td&gt;
 &lt;td&gt;家里的电路系统&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Agent&lt;/td&gt;
 &lt;td&gt;利用工具链自主完成复杂任务的应用&lt;/td&gt;
 &lt;td&gt;替人干活&lt;/td&gt;
 &lt;td&gt;你本人&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;打个比方：Function Calling 是开关——让 AI &amp;ldquo;能&amp;quot;调用工具。MCP 是电路系统——规定所有电器用统一的接口。Agent 是你——决定开哪个灯、用哪个电器。&lt;/p&gt;
&lt;p&gt;它们是三层关系，不是三选一。不存在&amp;quot;用 MCP 就不用 Function Calling&amp;quot;这种说法——Agent 内部用 Function Calling 来调工具，而这些工具通过 MCP 来暴露和发现。&lt;/p&gt;
&lt;h2 id="写在最后"&gt;写在最后
&lt;/h2&gt;&lt;p&gt;MCP 生态正在爆发式增长。官方 Registry 已上线，像 npm 一样可以搜索和安装 Server。社区贡献的 Server 数量每周都在增加，主流开发工具全面接入。&lt;/p&gt;
&lt;p&gt;如果你还在为每个 AI 工具单独写适配代码——停下来，试试 MCP。&lt;/p&gt;
&lt;p&gt;下一篇我会教你从零写一个自己的 MCP Server。从&amp;quot;用工具&amp;quot;到&amp;quot;造工具&amp;rdquo;。&lt;/p&gt;
&lt;p&gt;关注 varkm，持续获取 AI 实战内容。&lt;/p&gt;</description></item></channel></rss>