MCP 系列(基础篇):AI 与外部世界交互的标准化桥梁

0 阅读5分钟

📖 为什么会出现 MCP

不论是 ChatBot,还是复杂的 Agent 应用,AI 都不再只做“对话回答”,而是要真正连接外部世界:读取本地文件、查询数据库、调用第三方 API、触发业务流程。

问题也随之而来:不同系统有不同接口规范,不同能力有不同调用方式。开发者往往要写大量适配代码,维护成本高,迭代也慢。

01.png

MCP(Model Context Protocol,模型上下文协议)正是为了解决这个问题。它由 Anthropic 开源,目标是让 LLM 应用通过统一协议连接外部能力,而不是逐个系统硬编码对接。

02.png

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应用与外部资源集成的架构可用下图表示:

03.png

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)

📚 参考资源