关于 Travel Itinerary Backend System with MCP
这是一个基于 FastAPI 的旅行行程后端系统,供 AI 助手或应用创建和查看行程。它结合 REST API、SQLAlchemy 数据模型和 MCP,并附有普吉岛与甲米的示例数据。
主要功能
- 01管理行程及相关数据模型
- 02通过 REST API 创建和查看行程
- 03包含普吉岛与甲米种子数据
- 04提供 2 至 8 晚推荐行程
适用场景
- 01通过对话查询推荐行程
- 02查看指定行程详情
- 03创建新的旅行计划
MCP 相关
该 MCP 服务通过 FastAPI 集成 MCP,向兼容客户端开放行程 API 操作;配置使用 SSE 连接本地 `/mcp` 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
使用 MCP 的旅行行程后端系统
一个基于 FastAPI、用于管理旅行行程的后端系统。本项目实现了 Model Context Protocol (MCP),以便更好地与 AI 助手集成。
功能
- 数据库架构:用于行程、住宿、接送和活动的 SQLAlchemy 模型
- RESTful API:用于创建和查看旅行行程的端点
- 种子数据:预置了普吉岛和甲米地区的真实数据
- 推荐行程:提供 2 至 8 晚的示例行程
- MCP 集成:全面支持 Model Context Protocol,适用于 AI 助手
安装
-
确保已安装 Python 3.8+
-
从此处安装 uv(快速 Python 包安装程序):
-
克隆此存储库并进入项目目录:
git clone https://github.com/aryanranderiya/itinerary-mcp-server cd itinerary-mcp-server -
创建虚拟环境并安装依赖项:
uv venv uv sync -
激活虚拟环境:
在 Linux/macOS 上:
source .venv/bin/activate在 Windows(命令提示符)上:
.venv\Scripts\activate.bat在 Windows(PowerShell)上:
.venv\Scripts\Activate.ps1
运行项目
开发模式
以开发模式运行服务并启用自动重新加载: 只有在需要编辑代码时,才以开发模式运行。
fastapi dev
生产模式
以生产模式运行服务:
fastapi start
API 可通过 http://localhost:8000 访问,API 文档位于 http://localhost:8000/docs。
使用 Model Context Protocol (MCP)
本项目实现了 Model Context Protocol (MCP),使 AI 助手能够直接与您的 API 交互。这意味着 AI 工具可以了解 API 的功能和数据结构,并代表您执行操作。
MCP 配置
本项目已完成必要的 MCP 配置:
- fastapi_mcp 库:我们使用 fastapi_mcp 库将 MCP 功能集成到 FastAPI 中
- mcp.json:配置位于
.vscode/mcp.json文件中,其中定义了 MCP 服务设置:
此配置通过 Server-Sent Events (SSE) 连接到{ "servers": { "stay-often-mcp1": { "type": "sse", "url": "http://localhost:8000/mcp" } } }http://localhost:8000/mcp上的 MCP 端点。
无需进行其他设置即可使用 MCP 功能——该功能已内置于服务中,可直接使用。
支持的 MCP 客户端
您可以使用任何兼容 MCP 的客户端与此 API 交互。MCP 客户端包括:
- GitHub Copilot
- Claude Desktop
- 以及其他兼容 MCP 的助手
如需了解 MCP 的更多信息,请访问 MCP 官方文档。
示例:与 GitHub Copilot 搭配使用
以下是使用 GitHub Copilot 与此 API 交互的方法:
-
启动服务:
fastapi dev -
在与 GitHub Copilot 的对话中,您可以请求执行如下操作:
-
获取所有行程:
Can you show me all the recommended itineraries for Phuket? -
获取特定行程:
Show me the details for itinerary ID 3 -
创建新行程:
Create a new 5-night itinerary in Krabi with the following details: Name: "Krabi Adventure", day 1 at hotel 5 with activities 10 and 11, day 2 at hotel 5 with activity 12, etc.
-
GitHub Copilot 将理解这些请求,并通过 MCP 协议代表您执行相应的 API 调用。
Screenshots
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。