🛫 MCP航班 - 智能预订系统
研究项目实现一个完整的MCP(模型上下文协议)系统,用于航班预订,并集成OpenAI和交互式网页前端。
📋 关于项目
这个项目是作为……开发的 实践研究 Do Model Context Protocol(MCP),展示如何创建一个完整的MCP服务器,包括:
- 🤖 机器人 OpenAI集成大型语言模型自动选择工具
- 🌐 代表“互联网”或“世界万维网”的符号。 前端网页带实时调试面板的可视化界面
- 📡 这个符号本身没有直接对应的中文翻译,它通常代表“天线”或“无线电信号”的意思。在中文语境中,可以根据具体使用场景翻译为“天线”或“无线电信号”。 JSON-RPC 2.0 通信标准MCP协议
- 🔧 修理工具或螺丝刀的符号,常用于表示需要修理或调整的物品或情况。 调试可视化实时通话追踪
- ✈️ 表示飞机或飞行的符号,可翻译为“✈️(飞机/飞行)”。 航班系统全面的预订模拟
🏗️ 系统架构
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Frontend │ │ Python Server │ │ MCP Server │
│ (HTML/JS) │───▶│ (Port 3000) │───▶│ (Port 8080) │
│ │ │ │ │ │
│ • Interface │ │ • OpenAI API │ │ • FastMCP 2.0 │
│ • Debug Panel │ │ • JSON-RPC 2.0 │ │ • Ferramentas │
│ • Chat UI │ │ • HTTP Proxy │ │ • Recursos │
└─────────────────┘ └─────────────────┘ └─────────────────┘📁 项目结构
mcp-voo/
├── 📂 servidor/ # Servidor MCP (FastMCP 2.0)
│ ├── server.py # Servidor principal com ferramentas
│ └── __init__.py
├── 📂 frontend/ # Interface web interativa
│ ├── index.html # Frontend com painel de debug
│ ├── server.py # Servidor Python (proxy OpenAI)
│ └── test_frontend.py # Testes do frontend
├── 📂 cliente/ # Clientes de demonstração
│ ├── main.py # Cliente MCP simulado
│ ├── openai_client.py # Cliente OpenAI real
│ ├── openai_demo.py # Demo OpenAI + MCP
│ └── openai_integration.py # Integração avançada
├── 📂 docs/ # Documentação e imagens
│ └── frontend_debug_panel.png # Screenshot do painel de debug
├── 📄 requirements.txt # Dependências Python
├── 📄 MCP.json # Configuração Cursor IDE
├── 📄 .cursorrules # Regras do Cursor
└── 📄 README.md # Este arquivo🚀 已实现的功能
🔧(扳手或修理工具的符号,常用于表示需要修理或维护) MCP工具(Tools)
search_flights()- 在机场之间搜索航班create_booking()- 预订航班intelligent_flight_analysis()- 使用外部大型语言模型(LLM)进行智能分析interactive_flight_search()- 互动式搜索(引出)smart_flight_search()- 带可选参数的智能搜索
📚 书籍或学习资料的符号,可译为“书籍”或“学习资料”(具体翻译取决于上下文)。 MCP资源(Resources)
data://airports- 可用机场列表data://config- 系统设置
💬 提示:MCP(可能指“Microsoft Certified Professional”微软认证专业人员或其他相关缩写,具体含义需根据上下文确定)
travel_assistant_prompt- 旅行助理flight_analysis_prompt- 飞行选项分析booking_confirmation_prompt- 预订确认
🎯(目标) 高级资源
- 引出(或诱发)动态信息请求
- 服务器日志记录结构化操作日志
- 进度监控实时进度报告
- 大语言模型(LLM)采样与外部大型语言模型(LLM)集成
- 消息处理MCP消息处理
- 客户根基服务器的本地环境
🛠️ 安装与配置
1. 先决条件
# Python 3.8+
python --version
# OpenAI API Key
export OPENAI_API_KEY="sk-proj-..."2. 安装
# Clone o repositório
git clone
cd mcp-voo
# Crie ambiente virtual
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou
venv\Scripts\activate # Windows
# Instale dependências
pip install -r requirements.txt3. API密钥的配置
# Configure sua chave OpenAI
export OPENAI_API_KEY="sua-chave-openai-aqui"
# Para persistir entre sessões (Linux/Mac)
echo 'export OPENAI_API_KEY="sua-chave-aqui"' >> ~/.zshrc🚀 如何运行
选项1:完整系统(推荐)
# Terminal 1: Servidor MCP
source venv/bin/activate
python servidor/server.py
# Terminal 2: Frontend Web
cd frontend
source ../venv/bin/activate
python server.py
# Acesse: http://localhost:3000选项2:演示客户端
# Cliente simulado (sem OpenAI)
python cliente/main.py
# Cliente OpenAI real
python cliente/openai_demo.py🎯 如何使用
1. 网络界面(推荐)
- 访问 http://localhost:3000
- 点击“🔧 调试MCP”以查看实时通信
- 输入信息,例如:
- “查找从圣保罗飞往里约热内卢的航班” - “为若昂·席尔瓦预订FL123航班的座位” - “进行智能航班分析”
2. 可视化调试面板
- 实时追踪 所谓的JSON-RPC 2.0调用
- 连接状态 (前端 → Python → OpenAI → MCP)
- 调试数据 来自MCP服务器
- 时间戳 每次操作的
*前端界面显示实时调试面板,展示JSON-RPC 2.0通信流*
3. 使用示例
# Buscar voos
curl -X POST http://localhost:3000/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Buscar voos de GRU para GIG em 2025-01-15"}'
# Criar reserva
curl -X POST http://localhost:3000/api/chat \
-H "Content-Type: application/json" \
-d '{"message": "Reservar voo FL123 para João Silva com email joao@email.com"}'🔍 调试与监控
视觉调试面板
- 展示沟通的每一步
- 追踪 JSON-RPC 2.0 调用
- 显示服务器调试数据
- 连接的视觉状态
服务器日志
# Logs estruturados com timestamps
2025-01-15 10:30:15 - Servidor de Voos - INFO - Operação: search_flights
2025-01-15 10:30:16 - Servidor de Voos - INFO - Operação: create_booking自动化测试
# Teste do frontend
cd frontend
python test_frontend.py
# Teste do servidor MCP
curl http://localhost:8080/mcp/📊 数据流
1. Usuário → Frontend (HTML/JS)
2. Frontend → Python Server (HTTP)
3. Python Server → OpenAI API
4. OpenAI → MCP Server (JSON-RPC 2.0)
5. MCP Server → Resposta
6. Resposta → Usuário (via Frontend)🎓 学习概念
模型上下文协议(MCP)
- 工具LLM可以调用的工具
- 资源LLM可以访问的数据
- 提示对话模板
- JSON-RPC 2.0通信协议
FastMCP框架
- 装饰器:
@mcp.tool,@mcp.resource,@mcp.prompt - 交通HTTP、STDIO、WebSocket
- 引出(或激发)动态数据请求
- 记录日志结构化日志
OpenAI集成
- 函数调用大型语言模型选择工具
- 工具选择工具的自动决策
- 消息历史对话背景
🐞 故障排除
常见问题
- "OPENAI_API_KEY 未设置"
export OPENAI_API_KEY="sua-chave-aqui"- “MCP服务器不可用”
# Verifique se está rodando
curl http://localhost:8080/mcp/- "Porta já em uso" 翻译成中文是:“门已被使用”。
# Mate processos nas portas
lsof -ti:3000 | xargs kill
lsof -ti:8080 | xargs kill📚 学习资源
🤝 贡献
这是一个……的项目 研究与展示请随意:
- 尝试使用新的MCP工具
- 添加新功能
- 改善界面
- 记录发现
📄 许可证
教育项目——可自由使用和修改。
______________________________________________________________________
🎯 目标展示MCP的完整实现,包括与OpenAI的集成和用于学习与实验的可视化界面。
