概念

参考:一文带你 “看见” MCP 的过程,彻底理解 MCP 的概念

模型上下文协议(Model Context Protocol,简称MCP)是一个由 Anthropic 在 2024 年 11 月 25 日开源的新标准。MCP 是一个开放标准,旨在连接AI助手与数据所在的系统,包括内容存储库、业务工具和开发环境。其目标是帮助前沿模型产生更好、更相关的响应。

从技术角度看,MCP 遵循客户端-服务器架构,其中主机应用可以连接到多个服务器。

MCP 有三个关键组件:

  • 主机(Host):代表任何提供 AI 交互环境的应用程序(如 Cherry studio、Cursor),它能访问工具和数据,并运行 MCP 客户端。
  • 客户端(Client):在主机内运行,使其能与 MCP 服务器通信。
  • 服务器(Server):暴露特定功能并提供数据访问,例如:
    • 工具:使 LLM 能通过服务器执行操作
    • 资源:向 LLM 公开服务器中的数据和内容
    • 提示:创建可重用的提示模板和工作流

mcp和传统API对比

传统 API :
客户端想服务器发送参数,服务器根据参数返回相应结果。如果 API 最初需要两个参数(例如天气服务的位置和日期),用户集成应用程序会发送带有这些确切参数的请求。
如果后来添加第三个必需参数(例如温度单位,如摄氏度或华氏度),API的合约就会改变。这意味着所有 API 用户必须更新代码以包含新参数。如果不更新,请求可能失败、返回错误或提供不完整结果。

MCP:

  1. 当客户端(如 Cherry studio)连接到 MCP 服务器(如您的天气服务)时,它发送初始请求以了解服务器的能力。
  2. 服务器响应其可用工具、资源、提示和参数的详细信息。例如,如果您的天气 API 最初支持位置和日期,服务器会将这些作为其功能的一部分进行通信。
  3. 如果您稍后添加单位参数,MCP 服务器可以在下一次交换期间动态更新其功能描述。客户端不需要硬编码或预定义参数—只需查询服务器的当前功能并相应地适应。
  4. 这样,客户端可以及时调整其行为,使用更新的功能(例如在请求中包含单位),无需重写或重新部署代码。

mcp过程

首先需要在主机上自动或手动配置 MCP 服务,当用户输入问题时, MCP 客户端让 LLM 选择 MCP 工具,大模型选择好 MCP 工具以后, MCP 客户端寻求用户同意(很多产品支持配置自动同意),MCP 客户端请求 MCP 服务器, MCP 服务调用工具并将工具的结果返回给 MCP 客户端, MCP 客户端将模型调用结果和用户的查询发送给大语言模型,大语言模型组织答案给用户。

其实 RAG 、Function Call 和 MCP 本质上都是一样,都是为了借助外部工具帮助大模型完成更复杂的事情。

注册高德,使用高德MCP

参考高德官方文档,注册成为高德开发者,并获取key:
https://lbs.amap.com/api/mcp-server/summary

注意:你的key不要随意分享,因为每个账号可以调用的次数是有限的。
用量管理 | 高德控制台

在Cherry Studio中使用MCP

参考官方文档:MCP 环境安装 | CherryStudio

MCP 环境安装

准备工作:安装 uv、bun
设置 - MCP 服务器 中,点击 安装 按钮,即可自动下载并安装。因为是直接从 GitHub 上下载,速度可能会比较慢,且有较大可能失败。安装成功与否,以下文提到的文件夹内是否有文件为准。

可执行程序安装目录:

Windows: C:\Users\用户名\.cherrystudio\bin

macOS、Linux: ~/.cherrystudio/bin

无法正常安装的情况下:

可以将系统中的相对应命令使用软链接的方式链接到这里,如果没有对应目录,需要手动建立。也可以手动下载可执行文件放到这个目录下面:

Bun: https://github.com/oven-sh/bun/releases

UV: https://github.com/astral-sh/uv/releases

配置mcp

  1. 打开 Cherry Studio 设置。
  2. 找到 MCP 服务器 选项。
  3. 点击 添加服务器-从json导入。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
    "mcpServers": {
        "amap-maps": {
            "isActive": true,
            "name": "amap-maps",
            "description": "高德mcp",
            "command": "npx",
            "args": [
                "-y",
                "@amap/amap-maps-mcp-server"
            ],
            "env": {
                "AMAP_MAPS_API_KEY": "你的高德key"
            }
        }
    }
}

系统会自动加载高德地图的 MCP 服务,会在下方显示高德地图支持的工具,就是 AI 模型可以调用的工具。

使用mcp

确认 AI 模型的函数调用功能:
打开 Cherry Studio 设置,打开模型服务,找到你的模型,右边有个扳手的表示模型支持调用MCP工具。

然后打开聊天框,找到聊天框下面的mcp服务器,勾选刚才添加的高德mcp服务器。
开始提问,prompt如下:

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
基于下面的规范,使用高德mcp,帮我生成一份杭州五日游的攻略。

# 旅行规划表设计提示词

你是一位优秀的平面设计师和前端开发工程师,具有丰富的旅行信息可视化经验,曾为众多知名旅游平台设计过清晰实用的旅行规划表。现在需要为我创建一个A4纸张大小的旅行规划表,适合打印出来随身携带使用。请使用HTML、CSS和JavaScript代码实现以下要求:

## 基本要求

**尺寸与基础结构**
- 严格符合A4纸尺寸(210mm×297mm),比例为1:1.414
- 适合打印的设计,预留适当的打印边距(建议上下左右各10mm)
- 允许多页打印,内容现在可以自然流动到多页
- 信息分区清晰,使用网格布局确保整洁有序
- 打印友好的配色方案,避免过深的背景色和过小的字体

**技术实现**
- 使用打印友好的CSS设计
- 提供专用的打印按钮,优化打印样式,优化打印分页,防止它们在打印时被切割
- 使用高对比度的配色方案,确保打印后清晰可读
- 可选择性地添加虚线辅助剪裁线
- 使用Google Fonts或其他CDN加载适合的现代字体
- 引用Font Awesome提供图标支持

**专业设计技巧**

**图形元素与图表:**
1.  **图标 (Font Awesome):**
    * **来源:** 通过 CDN 引入 Font Awesome (v5/v6)。
    * **风格:** 偏好简洁、现代的**线框风格 (outline-style)** 图标。
    * **使用:** 放置于主标题附近,可选择性地(且需微妙地)用于迷你卡片内部(靠近标题处)、列表前缀等。**严格禁止使用 Emoji 作为功能性图标**。颜色应协调;关键图标可使用高亮色。
2.  **数据可视化 (推荐 Chart.js):**
    * **应用场景:** 用于展示趋势、增长率、构成(饼图/环形图)、比较(柱状图)等适合的数据 [引用:数据可视化最佳实践]。
    * **技术:** 通过 CDN 嵌入 Chart.js。
    * **位置:** 放置在讨论财务或业务分析的相关主卡片内部。
    * **样式:** 确保图表清晰、易读且响应式。

**技术与动画:**
1.  **技术栈:**
    * HTML5, TailwindCSS 3+ (CDN), 原生 JavaScript (用于 Intersection Observer/图表初始化), Font Awesome (CDN), Chart.js (CDN)。
2.  **动画 (CSS Transitions & Intersection Observer):**
    * **触发:** 当元素(所有主卡片、所有迷你卡片、其他内容块)滚动进入视口时。
    * **效果:** 平滑、微妙的**淡入/向上滑动**效果(模仿 Apple 风格)。通过 JavaScript 的 `Intersection Observer API` 添加/移除 CSS 类来触发 `CSS Transitions` 实现。确保动画性能流畅。为网格项应用轻微延迟以产生交错效果。
3.  **响应式设计:**
    * **强制要求**。使用 Tailwind 的响应式修饰符(特别是针对网格布局),确保在手机、平板和桌面设备上均具有出色的显示效果和可用性。
    - 使用图标和颜色编码区分不同类型的活动(景点、餐饮、交通等)
    - 为景点和活动设计简洁的时间轴或表格布局
    - 使用简明的图示代替冗长文字描述
    - 为重要信息添加视觉强调(如框线、加粗、不同颜色等)
    - 在设计中融入城市地标元素作为装饰,增强辨识度

## 设计风格

- **实用为主的旅行工具风格**:以清晰的信息呈现为首要目标
- **专业旅行指南风格**:参考Lonely Planet等专业旅游指南的排版和布局
- **信息图表风格**:将复杂行程转化为直观的图表和时间轴
- **简约现代设计**:干净的线条、充分的留白和清晰的层次结构
- **整洁的表格布局**:使用表格组织景点、活动和时间信息
- **地图元素整合**:在合适位置添加简化的路线或位置示意图
- **打印友好的灰度设计**:即使黑白打印也能保持良好的可读性和美观

## 内容区块

1.  **行程标题区**:
    - 目的地名称(主标题,醒目位置)
    - 旅行日期和总天数
    - 旅行者姓名/团队名称(可选)
    - 天气信息摘要
2.  **行程概览区**:
    - 按日期分区的行程简表
    - 每天主要活动/景点的概览
    - 使用图标标识不同类型的活动
3.  **详细时间表区**:
    - 以表格或时间轴形式呈现详细行程
    - 包含时间、地点、活动描述
    - 每个景点的停留时间
    - 标注门票价格和必要预订信息
4.  **交通信息区**:
    - 主要交通换乘点及方式
    - 地铁/公交线路和站点信息
    - 预计交通时间
    - 使用箭头或连线表示行程路线
5.  **住宿与餐饮区**:
    - 酒店/住宿地址和联系方式
    - 入住和退房时间
    - 推荐餐厅列表(标注特色菜和价格区间)
    - 附近便利设施(如超市、药店等)
6.  **实用信息区**:
    - 紧急联系电话
    - 重要提示和注意事项
    - 预算摘要
    - 行李清单提醒

## 示例内容(基于上海一日游)

**目的地**:上海一日游
**日期**:2025年3月30日(星期日)
**天气**:阴,13°C/7°C,东风1-3级

**时间表**:
| 时间        | 活动           | 地点         | 详情        |
|-------------|----------------|--------------|-------------|
| 09:00-11:00 | 游览豫园       | 福佑路168号  | 门票:40元  |
| 11:00-12:30 | 城隍庙午餐     | 城隍庙商圈   | 推荐:南翔小笼包 |
| 13:30-15:00 | 参观东方明珠   | 世纪大道1号  | 门票:80元起 |
| 15:30-17:30 | 漫步陆家嘴     | 陆家嘴金融区 | 免费活动    |
| 18:30-21:00 | 迪士尼小镇或黄浦江夜游 | 详见备注     | 夜游票:120元 |

**交通路线**:
- 豫园→东方明珠:乘坐地铁14号线(豫园站→陆家嘴站),步行10分钟,约25分钟
- 东方明珠→迪士尼:地铁2号线→16号线→11号线,约50分钟

**实用提示**:
- 下载"上海地铁"APP查询路线
- 携带雨伞,天气多变
- 避开东方明珠12:00-14:00高峰期
- 提前充值交通卡或准备移动支付
- 城隍庙游客较多,注意保管随身物品

**重要电话**:
- 旅游咨询:021-12301
- 紧急求助:110(警察)/120(急救)

请创建一个既美观又实用的旅行规划表,适合打印在A4纸上随身携带,帮助用户清晰掌握行程安排。

在Cursor中使用mcp

参考cursor官方文档:
https://docs.cursor.com/context/model-context-protocol#model-context-protocol

设置->MCP Tools->New MCP Server->填写你的高德mcp配置json:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{
    "mcpServers": {
        "amap-maps": {
            "isActive": true,
            "name": "amap-maps",
            "description": "高德mcp",
            "command": "npx",
            "args": [
                "-y",
                "@amap/amap-maps-mcp-server"
            ],
            "env": {
                "AMAP_MAPS_API_KEY": "你的高德key"
            }
        }
    }
}

检查 MCP 设置状态。
回到之前的 MCP 设置页面,查看对应服务是否显示为绿色(表示连接正常)。

在聊天中使用mcp:

1
使用高德mcp,帮我规划杭州五日游攻略。