📖 为什么会出现 MCP
不论是 ChatBot,还是复杂的 Agent 应用,AI 都不再只做“对话回答”,而是要真正连接外部世界:读取本地文件、查询数据库、调用第三方 API、触发业务流程。
问题也随之而来:不同系统有不同接口规范,不同能力有不同调用方式。开发者往往要写大量适配代码,维护成本高,迭代也慢。
MCP(Model Context Protocol,模型上下文协议)正是为了解决这个问题。它由 Anthropic 开源,目标是让 LLM 应用通过统一协议连接外部能力,而不是逐个系统硬编码对接。
MCP 的核心思路是引入一个中间层:LLM 应用只需对接 MCP Server,由 MCP Server 负责与各类外部资源通信与适配。这样,应用层可以更专注业务本身。
🎯 什么是 MCP
Model Context Protocol(MCP) 是由 Anthropic 公司于 2024 年 11 月推出的一种开放协议标准,目的在于标准化 LLM 与外部数据源、工具及服务之间的交互方式。
MCP 让 AI 能够:
- ✅ 访问实时数据(如股票行情、新闻、数据库)
- ✅ 调用外部工具(如发送邮件、查询 GitHub、调用智能合约)
- ✅ 使用预定义的提示模板,优化任务执行
✅ MCP 有哪些好处?
- 接入更简单:不再逐个适配私有接口,开发者只需按统一方式连接 MCP Server。
- 扩展更灵活:需要新能力时,直接新增或替换 MCP Server,即插即用。
- 应对变化更轻松:外部系统接口变动时,主要修改对应的 MCP Server,业务侧改动更小。
- 生态可复用:MCP Server 能力可共享,新项目可快速复用已有工具,整体研发效率更高。
⚖️基于MCP的集成架构
基于MCP将LLM应用与外部资源集成的架构可用下图表示:
1. 架构与组件
MCP 采用**客户端-服务器(Client-Server)**架构,主要包括以下核心组件:
| 组件 | 说明 | 示例 |
|---|---|---|
| MCP Host | 运行 AI 模型的环境 | Claude Desktop、Cursor IDE 等 |
| MCP Client | 嵌入在 Host 中的组件,负责发起请求并与 MCP Server 通信 | - |
| MCP Server | 轻量级服务,提供特定功能(如数据查询、API 调用等) | MySQL Server、GitHub Server 等 |
2. 核心功能
MCP 提供三种关键能力:
📚 Resources(知识扩展)
提供结构化数据(如数据库、文档)以增强 AI 的上下文理解。
🛠️ Tools(工具调用)
允许 AI 执行外部操作(如发送邮件、查询 GitHub、调用智能合约等)。
📝 Prompts(提示模板)
预定义的指令模板,优化 AI 的任务执行。
💡 MCP 的使用场景
1. 增强 AI 的实时性与执行能力
- 实时数据访问:MCP 允许 AI 访问最新数据,而非仅依赖训练时的静态数据
- 自动化任务:AI 可通过 MCP 直接执行任务,如整理文件、发送邮件、管理代码仓库等
2. 开发者工具
- 简化集成:MCP 标准化了 AI 与外部系统的交互,开发者无需为每个数据源编写定制 API
- 多模态支持:MCP 可整合语音、图像、传感器数据等,使 AI 具备更全面的环境感知能力
3. 实际应用案例
以下是一些具体的应用场景示例:
案例 1:数据库查询助手 💾
- 通过 MCP 连接 MySQL、PostgreSQL 等数据库
- AI 可以用自然语言查询数据库,如"查询最近一周的销售数据"
- 自动生成 SQL 并执行,返回结构化结果
案例 2:代码仓库管理 🔧
- 通过 MCP 连接 GitHub、GitLab 等代码仓库
- AI 可以查看代码、分析代码结构、创建 Pull Request
- 实现智能代码审查和自动化代码管理
案例 3:文件系统操作 📁
- 通过 MCP 访问本地或远程文件系统
- AI 可以读取文件、整理文件、批量重命名等
- 实现智能文件管理和内容分析
案例 4:第三方 API 集成 🌐
- 通过 MCP 连接天气 API、股票 API、地图 API 等
- AI 可以获取实时天气、股票行情、地理位置信息
- 实现多源数据整合和智能分析
🚀 5 分钟上手:用高德 MCP 跑通第一个调用
前面讲完概念,下面给一个可以直接理解的最小示例。目标是让你看到:MCP Client 如何配置、如何连接、如何列出工具。
1)客户端配置示例(servers_config.json)
{
"mcpServers": {
"amap-maps": {
"command": "npx",
"args": ["-y", "@amap/amap-maps-mcp-server"],
"env": {
"AMAP_MAPS_API_KEY": "你的高德Key"
}
}
}
}
这段配置的核心是三件事:
- 用
npx启动官方高德 MCP Server - 通过
args指定 Server 包名 - 用环境变量传入
AMAP_MAPS_API_KEY
2)Python 调用示例(列出可用工具)
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
import asyncio
import os
AMAP_MAPS_API_KEY = os.getenv("AMAP_MAPS_API_KEY")
server_params = StdioServerParameters(
command="npx",
args=["-y", "@amap/amap-maps-mcp-server"],
env={"AMAP_MAPS_API_KEY": AMAP_MAPS_API_KEY},
)
async def run():
async with stdio_client(server_params) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize() # 先握手初始化
tools = await session.list_tools()
print(tools)
if __name__ == "__main__":
asyncio.run(run())
如果你能成功打印出工具列表,就说明这条“LLM 应用 -> MCP Server -> 外部服务”的链路已经打通了。
📝 总结
通过本文,我们了解了 MCP 的基本概念、核心优势和应用场景。MCP 作为 AI 与外部世界交互的标准化协议,正在改变我们使用 AI 的方式。
下期预告:在下一篇文章中,我们将深入探讨 MCP 的技术细节,包括:
- JSON-RPC 2.0 消息协议
- MCP 初始化流程(Handshake)
- 三种传输协议详解(STDIO、SSE、Streamable HTTP)
📚 参考资源
- MCP 官方简介:www.anthropic.com/news/model-…
- MCP 文档手册:modelcontextprotocol.io/introductio…
- MCP 中文文档:mcp-docs.cn/introductio…