MCP介绍
1. 什么是 MCP
MCP(Model Context Protocol,模型上下文协议)是 Anthropic 在 2024 年 11 月推出的开源协议,目的是为大语言模型(LLM)连接外部数据源和工具提供统一标准。
可以把 MCP 类比为 "USB-C 之于设备":
- 以前每个 LLM 应用要对接 GitHub、Slack、数据库...都得各写一套
- MCP 之后,只要工具或数据源实现了 MCP 服务器,任何支持 MCP 的客户端(Claude Desktop、Cursor、各种 AI Agent 框架)都能即插即用
2. MCP 解决了什么问题
在 MCP 出现之前,如果你想让 Claude 帮你查 GitHub PR、读取本地文件、查询数据库,每个集成都要:
- 写一份特定工具调用代码
- 在 prompt 中手动注入上下文
- 处理认证、错误、限流等通用问题
每个 LLM 客户端、每个工具提供方都在重复造轮子。MCP 把这些通用问题抽象成协议,让生态可以无缝拼接:
[Claude Desktop / Cursor / 自研 Agent] ← MCP Client
↕ (MCP 协议)
[GitHub MCP / 数据库 MCP / 文件系统 MCP] ← MCP Server
3. MCP 的核心价值
| 维度 | 说明 |
|---|---|
| 统一标准 | 一个协议对接所有 LLM 应用,避免重复开发 |
| 开放生态 | 协议开源,任何人都能写 Server 和 Client |
| 能力丰富 | 不只是 Tool(函数调用),还有 Resource(数据)、Prompt(模板) |
| 可组合 | 一个客户端可以同时连多个 MCP Server |
| 本地优先 | 默认运行在用户本地,敏感数据不出设备 |
4. MCP 与 Function Calling 的关系
很多人会问:"Function Calling(函数调用)已经能让 LLM 调用工具,为什么还需要 MCP?"
| 维度 | Function Calling | MCP |
|---|---|---|
| 层级 | 模型能力 | 应用层协议 |
| 作用域 | 单次 API 调用 | 跨进程、跨应用 |
| 扩展方式 | 调用方写代码 | 第三方写 Server |
| 能力 | 仅工具调用 | 工具 + 资源 + 提示词 |
| 生态 | 各模型独立 | 统一标准 |
简单理解: Function Calling 是"模型调函数的能力",MCP 是"应用之间共享 AI 能力的协议"。MCP 内部很多场景是用 Function Calling 实现的,但封装在标准协议里。
5. MCP 与 LangChain 的关系
LangChain 是 LLM 应用开发框架,定义了 Tool、Agent 等概念。MCP 是协议,定义了应用之间如何通信。
它们是互补关系:
- 你可以用 LangChain 写一个 Agent,通过 MCP 连接外部工具
- 也可以把 LangChain 中定义的 Tool 暴露成 MCP Server
实际上 LangChain 已经有官方的 langchain-mcp-adapters 集成包。
6. MCP 已有的生态
截至 2026 年,MCP 已经有数百个开源 Server 实现,涵盖:
| 类别 | 示例 Server |
|---|---|
| 代码托管 | GitHub、GitLab、Bitbucket |
| 协作工具 | Slack、Linear、Notion、Jira |
| 数据库 | PostgreSQL、MySQL、SQLite、MongoDB |
| 云服务 | AWS、Cloudflare、Stripe |
| 本地工具 | 文件系统、Shell、Git、浏览器 |
| 搜索 | Brave Search、Tavily、Google Drive |
| 设计 | Figma、Sketch |
完整列表见 github.com/modelcontextprotocol/servers。
7. MCP 已有的客户端
支持 MCP 的客户端越来越多:
- Claude Desktop(官方,最早支持)
- Claude Code(命令行 AI 编程工具)
- Cursor、Windsurf、Cline(AI 代码编辑器)
- Zed Editor
- OpenAI Agents SDK
- 各种自研 Agent
8. MCP 的三大原语
MCP 把 Server 提供的能力归为三类:
| 原语 | 类比 | 控制方 | 用途 |
|---|---|---|---|
| Tools(工具) | 函数 / API | 模型自主调用 | 执行操作(查询、写入、计算) |
| Resources(资源) | 文件 / URL | 客户端选择 | 提供只读数据作为上下文 |
| Prompts(提示词) | 命令模板 | 用户触发 | 预制的高质量提示 |
后面的章节会逐个深入讲解。
9. 一个简单的概念示例
假设你有一个本地 SQLite 数据库,希望让 Claude 帮你查数据。流程是:
- 启动一个 SQLite MCP Server(已有现成的)
- 在 Claude Desktop 配置文件中注册这个 Server
- 重启 Claude Desktop
- 直接在对话中说 "帮我查一下用户表中年龄大于 30 的人"
- Claude 自动通过 MCP 调用 Server 的 SQL 工具,把结果作为上下文回答你
整个过程不需要你写任何 LLM 代码,配置一下就可以用。
10. 学习路径
本系列教程会带你从零掌握 MCP:
- 本文:MCP 介绍 (了解全貌)
- 核心概念与架构 (理解协议设计)
- 快速入门:第一个 MCP Server (动手)
- 构建 Tools (让模型能执行操作)
- 构建 Resources (提供上下文数据)
- 构建 Prompts (预制提示词模板)
- 传输协议(stdio / SSE / HTTP) (Server 怎么和 Client 通信)
- 在 Claude Desktop 中使用 (完整接入流程)
- 实战:构建一个完整的 MCP Server (综合应用)
总结
- MCP 是 Anthropic 开源的协议,统一了 LLM 应用与外部工具/数据的对接方式
- 类比 USB-C:一个协议,对接所有设备
- 三大原语:Tools(工具)、Resources(资源)、Prompts(提示词)
- 已有数百个开源 Server 和多种客户端支持
- 与 Function Calling、LangChain 是互补关系,不是替代