关注

告别重复造轮子!MCP 协议科普:给大模型装上“USB-C”万能接口

场景想象
你是一个开发者,电脑里有个 users.db 数据库。你想问 Claude:“帮我查查在这个数据库里,上个月注册的用户有多少?”

  • 没有 MCP 之前:你得先自己写一段 Python 代码连数据库,把数据查出来,复制粘贴给 Claude,然后问它。麻烦!
  • 有了 MCP 之后:你在 Claude Desktop 里安装一个 SQLite MCP Server 插件,配置好数据库路径。然后直接问 Claude,它自己就会去查库、分析、告诉你结果。全程自动化。

这就是 MCP (Model Context Protocol) 的魔力。它是 AI 界的 USB Type-C 标准——只要你的数据源(GitHub、数据库、飞书)支持 MCP,任何 AI 模型都能即插即用,直接读取和操作。


1. 它是干什么用的?🧐

MCP 是由 Anthropic (Claude 母公司) 开源的一套标准化协议
它的核心目的是:统一 AI 模型与外部数据/工具之间的连接方式。

  • 没有 MCP (乱世)

    • Cursor 编辑器想连 MySQL,Cursor 团队得开发个插件。
    • Windsurf 编辑器想连 MySQL,Windsurf 团队也得开发个插件。
    • Agent A 想连 MySQL,开发者还得自己写代码。
    • N 个 AI 工具 × M 个数据源 = N×M 的工作量。
  • 有了 MCP (大一统)

    • MySQL 官方(或社区)只需要开发一个 MySQL MCP Server
    • Cursor、Windsurf、Agent A 只要支持 MCP 协议,直接连接这个 Server 就能用。
    • 1 个 Server + N 个 Client = 极简连接。

2. 它扮演了什么角色?🎭

MCP 扮演的是 “通用适配器”“驱动程序接口” 的角色。

想象一下电脑的 USB 接口

  • 💻 Host (主机):你的电脑(对应 AI Client,如 Claude Desktop, Cursor)。
  • 🖱️ Device (设备):鼠标、键盘、U盘(对应 MCP Server,如 GitHub, SQLite)。
  • 🔌 Protocol (协议):USB 协议(对应 MCP 协议)。

因为有了 USB 协议,联想电脑不需要为罗技鼠标专门写驱动,插上就能用。
同理,因为有了 MCP 协议,Claude 不需要为 GitHub 专门写适配代码,连上就能用。


3. 它的工作原理 ⚙️

MCP 采用的是经典的 Client-Server (客户端-服务端) 架构,通常通过 JSON-RPC 进行通信。

3.1 架构图解 🗺️

MCP 服务端 (Source)

AI 客户端 (Host)

MCP 协议管道

JSON-RPC 消息

Claude Desktop

Cursor 编辑器

自研 Agent

GitHub Server

SQLite Server

本地文件系统

3.2 MCP 的三大核心能力 💎

MCP 规定了三种标准的“交互模式”,涵盖了 AI 此时此刻最需要的场景:

  1. 📖 Resources (资源) —— “我能让你看什么”
    • 作用:让 AI 读取外部数据。
    • 原理:Server 告诉 Client:“我有这些文件 URI,你想看哪个?”
  2. 🗣️ Prompts (提示词) —— “我能帮你问什么”
    • 作用:预设好的沟通模板
    • 原理:Server 提供一套菜单,用户点菜,Server 把上下文填进去发给 AI。
  3. 🛠️ Tools (工具) —— “我能让你干什么”
    • 作用:即上一篇文章说的 Agent Skill,让 AI 执行操作
    • 原理:Server 暴露函数给 Client,AI 决定调用时,由 Server 执行。

3.3 案例剖析:以 SQLite MCP Server 为例 🌰

我们来看看一个具体的 SQLite MCP Server 是怎么向 AI 展示它的能力的:

能力类型具体功能 (What)AI 怎么用 (How)
Resourcesschema.sql (数据库结构定义)当你问“这个库里有哪些表?”时,AI 会读取这个资源,看懂表结构。
Toolsread_query (执行查询)当你问“查查用户总数”时,AI 会调用这个工具,传入 SELECT count(*) FROM users
Promptsdata_analyst (数据分析师)这是一个预设模版。你点选它,AI 就会自动切换到“数据分析师”人设,并加载数据库结构上下文。

3.3.1 交互流程图解 🔄

让我们用时序图来看看,当你问了一句话后,Cursor (客户端)LLM (大模型大脑)MCP Server (工具人) 之间到底发生了什么:

🔌 SQLite MCP Server 🧠 Claude 3.5 (Brain) 🖥️ Cursor (MCP Host) 🧑‍💻 程序员 🔌 SQLite MCP Server 🧠 Claude 3.5 (Brain) 🖥️ Cursor (MCP Host) 🧑‍💻 程序员 0. 初始化:握手与能力交换 1. 用户提问 2. 思考与决策 (Planning) 3. 工具调用循环 (Tool Use) 4. 最终回答 启动并连接 汇报能力清单: 1. Resource: schema.sql 2. Tool: read_query "查一下 users 表里有多少人" 发送提示词: "用户问这个,你有这些工具可用..." 思考: "即使我不知道表名,Server 给了 schema" "我要先查表结构,再写 SQL" 请求调用工具: read_resource("schema.sql") 执行 read_resource 返回表结构: CREATE TABLE users... 喂回结果:这是表结构 思考:"懂了,表名是 users" "生成 SQL: SELECT count(*) FROM users" 请求调用工具: read_query("SELECT count(*)...") 执行 SQL 查询 返回数据: [{"count": 1024}] 喂回结果:结果是 1024 "根据查询,users 表里共有 1024 名用户。"

核心角色分析

  • Cursor (Client):👮 联络员。它负责把话传给大模型,把活派给 MCP Server。
  • LLM (Model):🧠 大脑。它不做具体操作,它只负责思考:“我该用哪个工具?参数传什么?”
  • MCP Server:🦾 手脚。它不思考,只负责执行命令(查库、读文件)。

3.4 常见疑问与误区 (FAQ) ❓

Q1: MCP Server 必须跑在服务器上吗?

不用! 这是最大的误解。

  • 🏠 本地模式 (Local / stdio):这是目前最主流的玩法。
    • MCP Server 作为一个子进程直接运行在你的电脑上(和 Claude Desktop 同一台电脑)。
    • 它们通过标准输入输出 (stdio) 偷偷说悄悄话。
    • 优点:安全、快、能直接读写你本地文件(比如 Filesystem Server)。
  • ☁️ 远程模式 (Remote / SSE):这是高级玩法。
    • MCP Server 部署在远程云服务器上。
    • Claude Desktop 通过 SSE (Server-Sent Events) 协议连接它。
    • 优点:适合团队共享的工具(比如公司内部的知识库 Server)。

一句话总结:个人开发者平时用的 MCP Server,99% 都是跑在自己本机上的本地进程。

Q2: 到底是“大模型”调用的工具,还是“Cursor”调用的?

这是一个经典的“动嘴 👄 vs 动手 👐”的问题。

很多同学会疑惑:大模型不是只生成文本吗?它怎么能查数据库?

  • 大模型 (LLM):只负责决策 (动嘴)
    • 它通过分析你的问题,输出一段文本(JSON 格式):“我觉得应该调用 read_query 工具,参数是 SELECT * FROM users”。
    • 它自己没有联网能力,也没有执行代码的能力,它只能“说话”。
  • Cursor (Client):负责执行 (动手)
    • 它监听大模型的回复,一旦看到“调用工具”的指令,就立马去连接 MCP Server,执行真正的操作。
    • 拿到结果后,再把结果喂回给大模型。

形象比喻

  • 大模型指挥官 🤴(瘫痪在床但在运筹帷幄),他下令:“帮我拿杯水!”
  • Cursor护工/执行者 🏃,他听到命令后,去厨房(MCP Server)拿水,然后喂给指挥官。

4. 热门好用的 MCP 工具推荐 🧰

现在社区已经涌现了大量现成的 MCP Server,你几乎可以直接拿来用:

4.1 🛠️ 生产力工具

  • 📂 Filesystem (文件系统)
    • 用途:让 AI 读写你电脑本地的文件。
    • 场景:让 Claude 帮你重构整个项目的代码,或者整理乱七八糟的文档文件夹。
  • 🐙 Git / GitHub
    • 用途:管理代码版本,搜索 GitHub 仓库。
    • 场景:问 AI “最近的版本提交里,谁修改了登录逻辑?”,或者让它直接帮你提 PR。
  • 🔍 Brave Search
    • 用途联网搜索
    • 场景:给本来不能联网的本地大模型(如 Ollama 跑的 DeepSeek)装上这个,它就能回答“今天的新闻”了。

4.2 🧠 知识管理工具

  • ☁️ Google Drive / Slack
    • 用途:连接你的云端工作流。
    • 场景:让 AI 总结 Slack 里的会议记录,并存到 Google Doc 里。
  • 🧠 Memory (记忆)
    • 用途:给 AI 一个外挂的“长期记忆库”。
    • 场景:让 AI 记住你的编程习惯、偏好,下次不用重复说。

4.3 🕹️ 怎么安装和使用?

目前体验最好的客户端是 Claude Desktop (Mac/Windows 应用) 和 Cursor
Claude Desktop 为例:

  1. 📥 下载安装 Claude Desktop。
  2. ⚙️ 找到配置文件(通常在 ~/Library/Application Support/Claude/claude_desktop_config.json)。
  3. 📝 把你想用的 Server 配置填进去(通常需要先安装 npmpython 环境)。
  4. 🔌 重启 Claude,你会发现右上角多了一个“🔌”图标,点开就能看到连接好的工具了。

4.4 配置文件详解:以 SQLite 为例 🧐

很多同学打开 claude_desktop_config.json 会一脸懵。我们以配置 SQLite 为例,逐行拆解它的含义:

{
  "mcpServers": {
    "my-sqlite-db": {
      "command": "uvx",
      "args": [
        "mcp-server-sqlite",
        "--db-path",
        "/Users/lifei/data/users.db"
      ],
      "env": {
        "DEBUG": "1"
      }
    }
  }
}
  • 🔑 mcpServers: 这是一个大字典,里面装着你安装的所有 MCP 插件。
  • 🏷️ my-sqlite-db (Key): 插件的昵称
    • 这个名字你可以随便起(比如 work-db, test-db),Claude 界面上显示的就是这个名字。
  • 🚀 command: 启动命令
    • 告诉 Claude 怎么启动这个插件。
    • 常见的有 uvx (Python 工具链), npx (Node.js 工具链), 或者直接是 /usr/bin/python3
    • 注意:这里必须是可执行文件的绝对路径,或者在系统 PATH 里的命令。
  • 📦 args: 启动参数
    • 这是传给 command 的参数列表。
    • 比如上面的例子,意思是运行:uvx mcp-server-sqlite --db-path /Users/lifei/data/users.db
  • 🌐 env (可选): 环境变量
    • 有些插件需要 API Key(比如 GitHub),就放在这里。
    • 例如:"GITHUB_PERSONAL_ACCESS_TOKEN": "sk-..."

5. 推荐资源与网站 🔗

要想深入玩转 MCP,这几个网站必看:

  • 📚 MCP 官方文档modelcontextprotocol.io
    • 最权威的协议说明和入门教程。
  • 🏪 Smitherysmithery.ai
    • MCP 界的 App Store。你可以在这里搜索各种现成的 MCP Server,一键复制安装配置。
  • 📑 Glamaglama.ai/mcp/servers
    • 另一个高质量的 MCP Server 列表站,分类很清晰。

6. 总结 📝

MCP 是 AI 工程化的基础设施。
随着 MCP 的普及,未来的每一个 API、每一个数据库、每一个 SaaS 软件,都会自带一个 MCP Server。
到那时,AI Agent 就像拥有了万能钥匙,可以随意打开任何软件的大门。

转载自CSDN-专业IT技术社区

原文链接:https://blog.csdn.net/DaoCaoRen1203/article/details/156695215

评论

赞0

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--