MCP Servers

模型上下文协议服务器、框架、SDK 和模板的综合目录。

O
Openclaw Functioncall MCP Intelligent Travel Planning System
作者 @hmy88cc

OpenClaw Smart Travel Planning System integrates AMAP API as standardized MCP tools via OpenClaw's multi-tool control flow, enabling one-click generation of comprehensive travel plans covering attraction queries, route planning, weather checks, and accommodation recommendations, with automatic rendering of travel guides into graphic posters.

创建于 5/21/2026
更新于 about 18 hours ago
Repository documentation and setup instructions

OpenClaw 智能旅行规划系统

基于 OpenClaw 搭建多工具调用控制流,封装高德地图 API 为标准化 MCP 工具,实现景点查询、路线规划、距离/时长估算、天气、住宿推荐的全流程调用。

🌟 项目特色

  • OpenClaw 多工具控制流: 统一协调多个MCP工具的调用流程
  • 高德地图 MCP 封装: 将高德地图API封装为标准化的MCP工具
  • FunctionCall 动态编排: 根据用户需求自动生成完整行程逻辑
  • 图文海报渲染: 将结构化攻略自动渲染为可分享的精美海报
  • 一键生成: 一键生成包含景点、餐饮、住宿、预算的完整旅行方案

📋 技术栈

  • OpenClaw: 多工具调用控制流框架
  • MCP (Model Context Protocol): 模型上下文协议,用于工具集成
  • FunctionCall: 动态函数调用机制,实现智能行程编排
  • 高德地图 API: 提供地点搜索、路线规划、距离计算等服务
  • Python: 主要开发语言
  • Jinja2: 模板引擎,用于HTML海报渲染
  • Qwen Agent: 通义千问智能体框架

🏗️ 项目架构

CASE-MCP/
├── openclaw_controller.py          # OpenClaw控制器核心
├── amap_mcp_tool.py                # 高德地图MCP工具封装
├── itinerary_generator.py          # 智能行程生成器
├── poster_renderer.py              # 海报渲染器
├── openclaw_travel_planner.py      # 主程序入口
├── assistant_mcp_amap_bot.py       # 高德地图助手(Web界面)
├── requirements.txt                # 依赖包列表
├── output/                         # 生成的旅行攻略输出目录
└── README.md                       # 项目说明文档

核心模块说明

1. OpenClaw 控制器 (openclaw_controller.py)

负责协调多个MCP工具的调用流程:

  • 工具注册与管理
  • MCP客户端初始化
  • 工作流执行编排
  • 异步任务调度
from openclaw_controller import OpenClawController, TravelRequest

controller = OpenClawController()
request = TravelRequest(
    destination="黄山到杭州",
    start_date="2026-02-17",
    days=7,
    transport_mode="自驾"
)
plan = await controller.execute_workflow(request)

2. 高德地图 MCP 工具 (amap_mcp_tool.py)

将高德地图API封装为标准化的MCP工具:

  • 地点搜索 (place_search)
  • 路线规划 (route_planning)
  • 距离计算 (distance_calculation)
  • 天气查询 (weather_query)
  • POI详情查询 (poi_detail)
  • 周边搜索 (around_search)
from amap_mcp_tool import AMapMCPTool

tool = AMapMCPTool()
result = tool.route_planning("黄山", "杭州", mode="driving")

3. 智能行程生成器 (itinerary_generator.py)

结合FunctionCall动态编排行程逻辑:

  • 根据目的地、天数、交通方式生成行程
  • 自动安排景点、餐饮、住宿
  • 实时计算预算
  • 生成旅行提示
from itinerary_generator import ItineraryGenerator, TravelRequest

generator = ItineraryGenerator()
request = TravelRequest(
    destination="黄山到杭州",
    start_date="2026-02-17",
    days=7,
    transport_mode="自驾"
)
plan = generator.generate_complete_plan(request)

4. 海报渲染器 (poster_renderer.py)

将结构化攻略渲染为图文海报:

  • 精美HTML海报模板
  • 行程概览卡片
  • 费用汇总可视化
  • 支持自定义样式
from poster_renderer import TravelPosterRenderer

renderer = TravelPosterRenderer()
renderer.render_poster(plan, "travel_poster.html")
renderer.render_summary_card(plan, "summary_card.html")

🚀 快速开始

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

创建 .env 文件或设置环境变量:

# 高德地图 API Key
export AMAP_MAPS_API_KEY=your_amap_api_key

# DashScope API Key (可选,用于AI对话功能)
export DASHSCOPE_API_KEY=your_dashscope_api_key

3. 运行演示

# 运行演示模式(生成黄山到杭州七日游)
python openclaw_travel_planner.py --demo

# 或使用交互式模式
python openclaw_travel_planner.py --interactive

4. 查看输出

生成的文件位于 output/ 目录:

  • 黄山到杭州_7日自驾游.md - Markdown格式的详细攻略
  • 黄山到杭州_7日自驾游_海报.html - 精美的HTML海报
  • 黄山到杭州_7日自驾游_概览.html - 行程概览卡片

💡 使用示例

示例1: 生成黄山到杭州七日游

from openclaw_travel_planner import OpenClawTravelPlanner

planner = OpenClawTravelPlanner()
files = planner.generate_travel_plan(
    destination="黄山到杭州",
    start_date="2026-02-17",
    days=7,
    transport_mode="自驾",
    output_dir="output"
)

print(f"生成的文件: {files}")

示例2: 使用高德地图MCP工具

from amap_mcp_tool import AMapMCPTool

tool = AMapMCPTool()

# 搜索地点
result = tool.place_search("黄山风景区", city="黄山市")

# 规划路线
route = tool.route_planning("黄山", "杭州", mode="driving")

# 查询天气
weather = tool.weather_query("杭州")

示例3: 自定义行程生成

from itinerary_generator import ItineraryGenerator, TravelRequest

generator = ItineraryGenerator()

# 创建旅行请求
request = TravelRequest(
    destination="北京",
    start_date="2026-01-15",
    days=3,
    transport_mode="公共交通",
    preferences={
        "interests": ["历史文化", "美食"],
        "budget_level": "中等"
    }
)

# 生成完整计划
plan = generator.generate_complete_plan(request)

# 导出为Markdown
generator.export_to_markdown(plan, "北京三日游.md")

📊 项目成果

一键生成完整攻略

黄山到杭州自驾七日游为例:

信息完整度高:

  • 每日详细行程安排
  • 景点介绍和门票信息
  • 餐饮推荐和价格区间
  • 住宿建议和联系方式
  • 路线规划和导航信息
  • 费用汇总和预算分析

解决痛点:

  • ❌ 传统攻略制作繁琐 → ✅ 一键自动生成
  • ❌ 信息零散不统一 → ✅ 结构化完整呈现
  • ❌ 需要手动整理 → ✅ 自动化全流程
  • ❌ 格式不美观 → ✅ 精美海报可直接分享

生成的文件格式

  1. Markdown攻略: 详细的文字版行程,适合打印和离线查看
  2. HTML海报: 精美的可视化海报,适合社交媒体分享
  3. 行程概览: 简洁的卡片式概览,快速获取关键信息

🔧 高级配置

自定义MCP工具

可以通过扩展 AMapMCPTool 类来添加新的功能:

class CustomAMapTool(AMapMCPTool):
    def custom_feature(self, params):
        # 实现自定义功能
        pass

自定义海报模板

poster_renderer.py 中修改HTML模板,或添加新的模板:

def _load_templates(self):
    # 添加新模板
    self.templates['custom'] = Template(custom_html_template)

集成其他MCP服务

openclaw_controller.py 中注册新的工具:

controller.register_tool(ToolConfig(
    name="weather_service",
    tool_type=ToolType.WEATHER,
    api_key="your_api_key"
))

📝 开发指南

项目结构说明

核心层:
├── openclaw_controller.py      # OpenClaw控制流核心
├── amap_mcp_tool.py            # MCP工具封装层

业务层:
├── itinerary_generator.py      # 行程生成业务逻辑
├── poster_renderer.py          # 海报渲染业务逻辑

应用层:
├── openclaw_travel_planner.py  # 主应用程序
└── assistant_mcp_amap_bot.py   # Web界面对话助手

扩展新功能

  1. 添加新的MCP工具: 在 amap_mcp_tool.py 中添加新方法
  2. 优化行程算法: 修改 itinerary_generator.py 中的生成逻辑
  3. 自定义海报样式: 调整 poster_renderer.py 中的CSS样式
  4. 集成新的数据源: 在 openclaw_controller.py 中注册新工具

🤝 贡献指南

欢迎提交Issue和Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

📧 联系方式

如有问题或建议,请通过以下方式联系:

  • 提交 Issue
  • 发送邮件至: your_email@example.com

🙏 致谢


Made with ❤️ using OpenClaw + MCP + FunctionCall

快速设置
此服务器的安装指南

安装包 (如果需要)

uvx openclaw-functioncall-mcp-intelligent-travel-planning-system

Cursor 配置 (mcp.json)

{ "mcpServers": { "hmy88cc-openclaw-functioncall-mcp-intelligent-travel-planning-system": { "command": "uvx", "args": [ "openclaw-functioncall-mcp-intelligent-travel-planning-system" ] } } }