Chinese Tourism Spots MCP Server
Provides tools to retrieve, visualize, and analyze Chinese scenic spot data by province/city, and generate/publish travel content to Xiaohongshu (Little Red Book) with automated posting capabilities.
README
旅游智能助手 MCP 项目
项目概述
这是一个基于 MCP(Model Context Protocol)协议的旅游智能助手系统。它集成了多个功能模块,旨在帮助用户高效地完成旅游规划、景点查询、路线规划、天气查询、图片生成以及小红书内容发布等一系列操作。
功能模块
本项目包含以下五个核心 MCP 服务器模块,每个模块都提供了一组特定的工具(Tool)供调用。
1. 🏛️ 景点数据读取服务器 (crawler/places_read_mcp.py)
功能: 负责读取和管理本地存储的景点数据,支持按省份、城市、关键词等多种条件进行查询。
| 可用工具 | 描述 |
|---|---|
get_spots_by_province |
获取指定省份的所有景点信息。 |
get_spots_by_city |
获取指定城市的所有景点信息。 |
get_all_provinces |
获取所有有数据的省份列表。 |
get_cities_in_province |
获取指定省份下的所有城市列表。 |
search_spots_by_keyword |
根据关键词搜索景点。 |
数据存储: 景点数据以 JSON 格式存储,文件结构遵循 省份/城市/景点.json 的组织方式。
2. 🎨 图片生成服务器 (middleware/generate_mcp.py)
功能: 调用 Nano Banana API 生成旅游攻略长图(竖版海报),特别支持四行格式的详细图片描述,适用于小红书等平台。
| 可用工具 | 描述 |
|---|---|
travel_image_prompt_guide |
生成旅游攻略长图的提示词框架。 |
generate_image_nano_banana |
调用 API 生成图片。 |
特色:
- 自动生成一日游攻略长图(竖版海报)。
- 支持早、中、晚三个时段的景点展示。
- 自动保存生成的图片到本地。
3. 📱 小红书发布服务器 (publisher/publish_mcp.py)
功能: 自动化发布旅游内容到小红书平台,支持图文笔记和视频笔记的发布。
| 可用工具 | 描述 |
|---|---|
publish_xiaohongshu_video |
发布视频笔记到小红书。 |
publish_xiaohongshu_images |
发布图文笔记到小红书。 |
generate_xiaohongshu_content |
根据景点信息生成小红书笔记内容(标题、正文、话题)。 |
batch_publish_xiaohongshu |
批量发布小红书笔记。 |
依赖: 需要已登录的浏览器会话(如通过 Selenium 维护)。
4. 🗺️ 路径规划服务器 (middleware/route_planning_mcp.py)
功能: 基于高德地图 API 实现路径规划功能,支持多种出行方式,并支持多点路径规划。
| 可用工具 | 描述 |
|---|---|
route_planning |
路径规划(支持驾车、步行、骑行、电动车、公交)。 |
search_places |
搜索地点。 |
multi_point_route |
多点路径规划。 |
支持出行方式: 驾车 (driving)、步行 (walking)、骑行 (bicycling)、电动车 (electrobike)、公交 (transit)。
5. 🌤️ 天气查询服务器 (crawler/weather_mcp.py)
功能: 基于高德地图 API 查询指定地点的实时天气和天气预报信息。
| 可用工具 | 描述 |
|---|---|
get_current_weather |
查询实时天气。 |
get_weather_forecast |
查询天气预报。 |
get_complete_weather |
查询完整天气信息(实时+预报)。 |
search_city_weather |
搜索城市并查询天气。 |
快速开始
环境要求
- Python 3.8+
- 高德地图 API Key(用于路径规划和天气查询)
- Nano Banana API Key(用于图片生成)
安装依赖
使用 pip 安装所需的 Python 库:
pip install mcp fastmcp httpx pydantic selenium
配置步骤
1. 获取 API Key
- 高德地图 API Key: 访问 高德开放平台 注册并获取。
- Nano Banana API Key: 访问 acedata.cloud 注册并获取(需在
middleware/generate_mcp.py中修改token变量)。
2. 配置 Cline MCP 设置
将以下 JSON 配置内容保存为 cline_mcp_settings.json 文件,并放置在 Cline 的配置目录中。
注意: 请根据您的系统环境修改 command、args 和 cwd 中的路径,以及 env 中的 API Key。
{
"mcpServers": {
"amap-route-planning": {
"autoApprove": ["multi_point_route", "route_planning", "search_places"],
"disabled": false,
"timeout": 600,
"type": "stdio",
"command": "你的Python解释器路径",
"args": ["你的项目路径\\middleware\\route_planning_mcp.py"],
"cwd": "你的项目路径",
"env": {
"AMAP_API_KEY": "你的高德地图API_Key"
}
},
"amap-weather": {
"autoApprove": ["get_current_weather", "get_weather_forecast", "get_complete_weather", "search_city_weather"],
"disabled": false,
"timeout": 300,
"type": "stdio",
"command": "你的Python解释器路径",
"args": ["你的项目路径\\crawler\\weather_mcp.py"],
"cwd": "你的项目路径",
"env": {
"AMAP_API_KEY": "你的高德地图API_Key"
}
},
"places_read": {
"autoApprove": ["get_spots_by_province", "get_spots_by_city", "get_all_provinces", "get_cities_in_province", "search_spots_by_keyword"],
"disabled": false,
"timeout": 300,
"type": "stdio",
"command": "你的Python解释器路径",
"args": ["你的项目路径\\crawler\\places_read_mcp.py"],
"cwd": "你的项目路径"
},
"image-generator": {
"autoApprove": ["generate_image_nano_banana"],
"disabled": false,
"timeout": 300,
"type": "stdio",
"command": "你的Python解释器路径",
"args": ["你的项目路径\\middleware\\generate_mcp.py"],
"cwd": "你的项目路径"
},
"xiaohongshu-publisher": {
"autoApprove": ["publish_xiaohongshu_video", "publish_xiaohongshu_images", "generate_xiaohongshu_content", "batch_publish_xiaohongshu"],
"disabled": false,
"timeout": 300,
"type": "stdio",
"command": "你的Python解释器路径",
"args": ["你的项目路径\\publisher\\publish_mcp.py"],
"cwd": "你的项目路径"
}
}
}
路径修改说明:
| 路径类型 | Windows 示例 | macOS/Linux 示例 |
|---|---|---|
| Python 解释器路径 | E:\APP\Anaconda22\envs\mcp\python.exe |
/path/to/your/python3 |
| 项目路径 | E:\PostGraduate\courses\yingxiang\Finaltask\MCPProject |
/path/to/your/MCPProject |
3. 数据准备
创建景点数据目录结构 data/,并按照 省份/城市/景点.json 的结构组织数据。
data/
├── 江苏省/
│ ├── 苏州市/
│ │ ├── 拙政园.json
│ │ └── 虎丘.json
│ └── 南京市/
│ └── 中山陵.json
└── 浙江省/
└── 杭州市/
└── 西湖.json
景点数据格式示例(JSON):
{
"name": "西湖",
"province": "浙江省",
"city": "杭州市",
"description": "杭州西湖风景名胜区,著名的淡水湖泊,中国十大风景名胜之一。",
"rating": 4.8,
"address": "杭州市西湖区",
"tags": ["湖泊", "风景区", "文化遗产"],
"recommended_hours": 3,
"是否免费": true
}
使用示例
以下是使用各个模块工具的 Python 示例代码:
1. 查询景点信息
# 查询苏州的景点
spots = get_spots_by_city("江苏省", "苏州市")
print(f"找到 {spots['count']} 个景点")
2. 生成旅游攻略图片
# 生成苏州一日游攻略图片
prompt_guide = travel_image_prompt_guide("苏州", "晴天 20度")
# 根据提示词生成图片
result = generate_image_nano_banana(
prompt=prompt_guide,
width=1024,
height=2048
)
3. 路径规划
# 从拙政园到虎丘的驾车路线
route = route_planning(
origin="拙政园",
destination="虎丘",
route_type="driving",
city="苏州市"
)
4. 天气查询
# 查询苏州实时天气
weather = get_current_weather("苏州市")
5. 发布到小红书
# 1. 生成小红书内容
content = generate_xiaohongshu_content(
province="江苏省",
city="苏州市",
style="旅游攻略"
)
# 2. 发布图文笔记
publish_xiaohongshu_images(
file_path="generated_images/苏州旅游攻略.png",
title=content["title"],
content=content["content"],
topics=content["topics"]
)
配置说明
Cline 配置文件位置
cline_mcp_settings.json 文件应放置在以下目录(以 VS Code 为例):
| 操作系统 | 路径 |
|---|---|
| Windows | %APPDATA%\Code\User\globalStorage\codeium.codeium\config\cline_mcp_settings.json |
| macOS | ~/Library/Application Support/Code/User/globalStorage/codeium.codeium/config/cline_mcp_settings.json |
| Linux | ~/.config/Code/User/globalStorage/codeium.codeium/config/cline_mcp_settings.json |
环境变量配置
在运行 MCP 服务器之前,建议设置以下环境变量:
# 设置高德地图 API Key
export AMAP_API_KEY="你的高德地图API_Key"
# 设置 Python 路径(如果需要)
export PYTHONPATH="你的项目路径:$PYTHONPATH"
注意事项
- API 限制: 高德地图 API 和 Nano Banana API 都有每日调用次数或使用限制,请注意遵守服务商的使用条款。
- 小红书发布:
- 需要已登录的浏览器会话。
- 需要安装 Chrome 浏览器和对应版本的 ChromeDriver。
- 首次使用需要手动登录小红书账号。
- 数据安全:
- API Key 等敏感信息切勿提交到版本控制系统(如 Git)。
- 建议使用环境变量或配置文件来管理敏感信息。
- 路径问题:
- Windows 系统路径使用反斜杠
\或双反斜杠\\。 - macOS/Linux 系统路径使用正斜杠
/。
- Windows 系统路径使用反斜杠
故障排除
- MCP 服务器无法启动:
- 检查
cline_mcp_settings.json中配置的 Python 解释器路径是否正确。 - 确保已通过
pip install安装了所有依赖包。 - 检查配置文件中的项目路径 (
cwd和args) 是否存在。
- 检查
- API 调用失败:
- 检查 API Key 是否有效,并确保已正确配置在环境变量或配置文件中。
- 检查网络连接是否正常。
- 查看 API 服务商的状态页面,确认服务是否可用。
- 小红书发布失败:
- 检查是否已成功登录小红书账号。
- 检查 ChromeDriver 版本是否与您安装的 Chrome 浏览器版本匹配。
- 检查待发布的文件路径是否正确。
项目结构
MCPProject/
├── data/ # 景点数据目录
├── generated_images/ # 生成的图片
├── cline_mcp_settings.json # Cline 配置文件
├── publisher/ # 发布相关 MCP
│ └── publish_mcp.py # 小红书发布服务器
├── crawler/ # 读取/抓取类 MCP(本项目:读取本地数据/天气)
│ ├── places_read_mcp.py # 景点读取服务器
│ └── weather_mcp.py # 天气查询服务器
├── middleware/ # 通用中间层/工具代码
│ ├── upload_utils.py # 小红书上传/发布相关工具
│ └── web_utils.py # Selenium/浏览器工具
│ ├── generate_mcp.py # 图片生成服务器
│ └── route_planning_mcp.py # 路径规划服务器
└── README.md # 项目说明文档
许可证
本项目仅供学习和研究使用,请遵守相关 API 服务商的使用条款。
贡献
欢迎通过提交 Issue 和 Pull Request 来改进和完善本项目。
支持
如果您在使用过程中遇到问题,请:
- 仔细查阅本 README 文档。
- 检查配置文件中的路径和 API Key 是否正确。
- 查看各个 MCP 服务器的日志输出以获取详细错误信息。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。