MCP简介及应用

Posted by Solejay on Wed, Apr 2, 2025

概念

MCP (Model Context Protocol) 是一种新的开放协议,旨在标准化应用程序向大型语言模型 (LLMs) 提供上下文的方式,能够实现大模型读取自己的内容。MCP 就像是电脑的 USB 接口,只要能插到这个接口,电脑就能读取到里面的内容。

通过 MCP,就实现了外部的应用数据和大模型之间的交互。比如可以通过大模型直接创建自己的日历事件,告诉大模型如何回复邮件,就可以通过大模型智能地管理自己的方方面面。MCP 就是中间的桥梁

应用场景

  1. 旅行规划助手
  • 使用 API:您需要为 Google Calendar、电子邮件、航空公司预订 API 分别编写代码,每个 API 都有自定义的身份验证、上下文传递和错误处理逻辑

  • 使用 MCP:您的 AI 助手流畅地检查您的日历以确认可用性,预订航班,并通过 MCP 服务器发送确认邮件 - 无需针对每个工具进行自定义集成

  1. 高级 IDE
  • 使用 API:您需要手动将 IDE 与文件系统、版本控制、包管理器和文档集成
  • 使用 MCP:您的 IDE 通过单一的 MCP 协议连接到这些,启用更丰富的上下文感知和更强大的建议——cursor
  1. 复杂数据分析
  • 使用 API:您需要手动管理与每个数据库和数据可视化工具的连接
  • 使用 MCP:您的 AI 分析平台通过统一的 MCP 层自主发现并与多个数据库、可视化和仿真进行交互

实现了老罗的梦想,TNT 的终极形态,甚至可以更进一步,让提出自己的需求,让 AI 自动整理数据,生成图标和报告

MCP 和 API 接口

为什么通过 MCP 而不是通用的 HTTP API 接口?

API 就像单独的门 - 每扇门都有自己的钥匙和规则。通过定义统一的标准规范,就能省去大模型适配的复杂过程。

MCP 和 API 的关键区别

  • 单一协议:MCP 作为一个标准化的“连接器”,因此集成一个 MCP 意味着可能访问多个工具和服务,而不仅仅是一个
  • 动态发现:MCP 允许 AI 模型动态发现并与可用工具交互,而无需对每个集成的硬编码知识
  • 双向通信:MCP 支持持久的、实时的双向通信——类似于 WebSockets。AI 模型既可以检索信息,也可以动态触发动作

为什么需要双向通信?

因为既需要拉取数据(知道我有哪些事项);又需要触发动作(在日历里增加新的事项)

架构

1744973865602_bt7ovtlr6b

  • MCP 主机(MCP Hosts):大模型提供商-OpenAI、Claude、DeepSeek…
  • MCP 客户端(MCP Clients):基于规范编写的 MCP 程序代码
  • MCP 服务器(MCP Servers):通过 MCP 暴露特定功能的轻量级服务器
    • 远程服务器:谷歌日历、谷歌邮件…
    • 本地服务器:读取本地的文件、数据库等

MCP 使用

查询 MCP 服务

可以通过 awesome-mcp-servers 来查询

server-fetch 为例,即可查询到需要配置的内容

1743590764096_bty62ypirz

Cherry Studio 使用 MCP

Cherry Studio 是一个支持多平台的AI客户端,可以自己配置不同厂家的 api key,在本地灵活切换不同的服务商;另外支持一些其他的功能。

1743157321930_0aafi2h1oh

点击 MCP 服务器,进去之后提示需要安装 uvbun,可以参考他们的官方文档

我点击无法安装,通过进入官方 github 的地址,通过 curl 下载脚本安装。

但是脚本默认安装位置不对,需要将 uv、uvx、bun 的二进制文件移动到 ~/cherrystudio/bin 目录下(MacOS)

STDIO 类型配置

STDIO 类型的 MCP 服务在本地运行,可以访问本地文件和系统资源

配置 fetch 服务

  • 方法 1:添加服务器配置

1743157598496_mh2u0npfzj

  • 方法 2:编辑 json 文件配置

将前面 uvx 复制的内容粘贴到 JSON 配置中

1743590874473_34e5p9euk5

通过 fetch 可以直接抓取网页内容

1743157695493_nn28d7zyrm

SSE 类型配置

SSE 类型的 MCP 服务配置简单,只需提供服务器的 URL。此类型服务在远程服务器上运行,无法访问本地资源。

1744973991736_1lbnajf3b9

Cursor 使用 MCP

SSE 模型接入高德查询天气

  1. 进入设置 cursor->cursor settings
  2. 找到 MCP Servers,点击 Add new MCP server
  3. 输入名称,类型选择 SSE,填入 URL https://mcp.amap.com/sse?key=您在高德官网上申请的key

1744972315306_7zuclzwyjf

看到状态变为绿色表示成功

  1. COMPOSER 模式下,通过 agent 调用高德 MCP,查询天气

1744972381485_adrc78fnnu

STDIO 使用本地的 MCP 服务

服务创建

参考 MCP Server Demo 开发

注意如果要启动的话,node version 要 >=18

当前有了 /Users/xxx/Projects/cursor/mcp/weather/weather.py 的文件,在 cursor 中新增 MCP 服务

uv --directory /Users/renjie.pu/Projects/cursor/mcp/weather run weather.py

1744973391642_zn8yx05mt7

在添加完之后,可以看到右边能够正常调用 MCP 服务查询美国的天气预警

参考资料

What is Model Context Protocol (MCP)? How it simplifies AI integrations compared to APIs

如何在 Cherry Studio 中使用 MCP

Cherry Studio 入门 MCP:为你的大模型插上翅膀

Open-Source MCP servers

MCP:跨越AI模型与现实的桥梁

快速接入高德地图 MCP Server