旅行行程管理系统

一个基于FastAPI的后端系统,用于管理旅行行程,支持AI助手集成。

  • by aryanranderiya
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 aryanranderiya/itinerary-mcp-server

使用说明

带MCP的行程后端系统

基于FastAPI的后端系统,用于管理旅行行程。该项目实施了模型上下文协议(MCP),以增强人工智能辅助集成。

特性

  • 数据库体系结构:行程、住宿、接送和活动的SQLAlchemy模型
  • RESTful API:创建和查看行程的端点
  • 种子数据:普吉岛和甲米地区的真实数据预填充数据库
  • 推荐行程:2-8晚的行程示例
  • MCP集成:为AI助手提供完整的模型上下文协议支持

安装

  1. 确保您已安装Python 3.8+

  2. 从以下位置安装uv(快速Python包安装程序) 这里:

  3. 克隆此存储库并导航到项目目录:

    git clone https://github.com/aryanranderiya/itinerary-mcp-server
    cd itinerary-mcp-server
    
  4. 创建虚拟环境并安装依赖项:

    uv venv
    uv sync
    
  5. 激活虚拟环境:

    在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.

使用模型上下文协议(MCP)

该项目实现了 模型上下文协议(MCP),使人工智能助手能够直接与您的API进行交互。这意味着人工智能工具可以理解API的功能、数据结构,并代表您执行操作。

MCP配置

该项目已配置了必要的MCP设置:

  • fastapi_mcp库:我们使用 fastapi_mcp 将MCP功能与FastAPI集成的库
  • mcp.json:配置位于 .vscode/mcp.json 文件,其中定义了MCP服务器设置:
    {
      "servers": {
        "stay-often-mcp1": {
          "type": "sse",
          "url": "http://localhost:8000/mcp"
        }
      }
    }
    
    此配置连接到MCP端点 http://localhost:8000/mcp 使用服务器发送事件(SSE)。

使用MCP功能不需要额外的设置——它内置在服务器中,随时可用。

支持的MCP客户端

您可以使用任何兼容MCP的客户端与此API进行交互。MCP客户端包括:

有关MCP的更多信息,请访问 MCP官方文件.

示例:与GitHub Copilot一起使用

以下是如何使用GitHub Copilot与此API交互:

  1. 启动服务器:

    fastapi dev
    
  2. 在与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调用。

截图