旅行社MCP
一个基于人工智能的旅行社应用程序,利用 模型上下文协议(MCP)。此存储库包含完整的堆栈,包括部署在Cloudflare Workers上的React前端、MCP客户端和无服务器MCP服务器。
🚀 概述
这 旅行社MCP 旨在帮助用户制定旅行计划。它利用MCP为AI模型(通过MCP客户端)提供了一种标准化的方式,以便与专门的旅行工具(通过MCP服务器)进行交互。
- MCP服务器:提供航班、酒店、天气和机场信息工具。
- MCP客户端:协调LLM(OpenAI)和MCP服务器之间的交互。
- 前端应用程序:一个用户友好的React界面,用于与旅行社进行交互。
📁 项目结构
此存储库是一个具有以下结构的npm monorepo:
app/:React前端应用程序(Vite)。mcp-server/:在Cloudflare Workers上运行的MCP服务器实现。mcp-client/:MCP客户端实现(使用服务器工具并与OpenAI对话)。packages/:整个项目中使用的共享包(@travel-agent/shared).
- domain/:核心类型和错误定义。 - http/:HTTP实用程序函数和错误映射。 - logging/:结构化日志记录实用程序。 - utils/:通用辅助函数和验证器。
🛠 技术栈
- 运行时:Node.js(v20+),Cloudflare Workers。
- 语言:TypeScript。
- 前端:反应,Vite。
- 后端/MCP:牧马人(Cloudflare)、MCP SDK。
- AI/LLM:OpenAI SDK。
- 坚持:Supabase。
- 外部API:开放天气,SerpAPI。
- 工具:Biome(linting和格式化)、ESLint、TypeScript。
📋 先决条件
- Node.js:v20或更高版本。
- npm:v10或更高版本(配置为包管理器)。
- Cloudflare帐户:用于部署和运行Workers。
- 辅助数据库账户:用于数据库/持久性。
- API密钥:OpenAI、OpenWeather和SerpAPI需要。
⚙️ 设置和安装
从根目录:
- 再进行:
npm install- 环境变量:
创建 .env 文件在 mcp-server/ 和 mcp-client/.
mcp-server/.env:
SUPABASE_URL="your_supabase_url"
SUPABASE_API_KEY="your_supabase_api_key"
OPENWEATHER_API_KEY="your_openweather_api_key"
SERPAPI_API_KEY="your_serpapi_api_key"mcp-client/.env:
OPENAI_API_KEY="your_openai_api_key"
MCP_SERVER_URL="http://localhost:8788/mcp" # Adjust if server is remote
CF_AI_GATEWAY="https://api.openai.com/v1" # Or Cloudflare AI Gateway URL🚀 运行项目
1.启动MCP服务器
cd mcp-server
npm run mcp-server-dev服务器将使用Wrangler在本地运行(默认为 http://localhost:8788).
2.启动MCP客户端
cd mcp-client
npm run mcp-client-dev3.启动前端应用程序
cd app
npm run app-dev该应用程序将在 http://localhost:5173.
📜 脚本
根脚本
npm install:为所有工作区安装依赖项。
MCP服务器(mcp-server/)
mcp-server-dev:使用Wrangler启动本地开发服务器。mcp-server-deploy:将服务器部署到Cloudflare Workers(生产环境)。format:使用Biome格式化代码。lint:fix:使用Biome解决问题。cf-typegen:生成Cloudflare Worker类型。type-check:运行TypeScript类型检查。
MCP客户端(mcp-client/)
mcp-client-dev:启动本地开发客户端。mcp-client-deploy:将客户端部署到Cloudflare。format:使用Biome格式化代码。lint:fix:使用Biome解决问题。cf-typegen:为Cloudflare生成类型。type-check:运行TypeScript类型检查。
前端应用程序(app/)
app-dev:启动Vite开发服务器。build:构建生产应用程序。lint:运行ESLint。preview:在本地预览生产版本。
✅ 测试与质量
- 装订和格式化:由服务器/客户端中的Biome和应用程序中的ESLint处理。
- 类型检查:运行
npm run type-check在相关目录中。 - 待办事项:随着项目的成熟,添加自动化测试套件(例如Vitest)。
📄 许可证
该项目根据 MIT许可证.
