关于 LiteAPI MCP Server
LiteAPI MCP Server 将 LiteAPI 旅游接口开放给 MCP 客户端。它根据 OpenAPI 规范生成类型化工具,涵盖搜索、预订、凭证、分析等 API 模块。
主要功能
- 01根据 OpenAPI 规范生成工具
- 02支持多个 LiteAPI 模块
- 03使用 Zod 校验架构
- 04通过 API 密钥认证
适用场景
- 01通过 MCP 客户端搜索酒店价格
- 02使用 LiteAPI 接口创建预订
- 03调用凭证和忠诚度操作
MCP 相关
该服务将 LiteAPI 端点作为 MCP 工具开放,并根据 OpenAPI 规范生成工具名称、说明和经过校验的参数。它通过 stdio 通信,也提供 Streamable HTTP 端点。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
LiteAPI MCP 服务
使用 Next.js 和 mcp-handler(Streamable HTTP)的 LiteAPI MCP 服务。部署到 Vercel。
快速开始
npm install
npm run dev
MCP 端点:http://localhost:3000/api/mcp
ChatGPT 设置
将其添加到 ChatGPT MCP 服务 URL:
https://mcp.liteapi.travel/api/mcp?apiKey=YOUR_LITEAPI_KEY
或者在 Vercel 环境变量中设置 LITEAPI_API_KEY,以进行单租户部署。
功能
- 🔄 动态生成工具:根据 OpenAPI 规范自动生成 MCP 工具
- 📚 多个 API 模块:支持 Search、Booking、Vouchers、Analytics、Static、Loyalty 和 Supply Customization API
- 🔐 API 密钥身份验证:通过环境变量安全管理 API 密钥
- 🎯 类型安全:使用 Zod 进行模式验证和类型安全检查
- 🚀 轻松集成:兼容 Claude Desktop 和其他 MCP 客户端
前提条件
- Node.js 18+
- npm 或 yarn
- LiteAPI API 密钥
安装
- 克隆仓库并安装依赖项:
npm install
- 构建 TypeScript 代码:
npm run build
- 将 LiteAPI API 密钥设为环境变量:
export LITEAPI_API_KEY=your_api_key_here
使用方法
运行服务
服务通过 stdio(标准输入/输出)进行 MCP 通信:
npm start
或者在开发模式下运行并自动重新加载:
npm run dev
测试
快速测试
测试服务是否正常运行:
export LITEAPI_API_KEY=your_api_key_here
npm test
这将连接到服务并列出所有可用工具。
选项 1:使用 MCP Inspector(推荐用于开发)
MCP Inspector 是一款基于浏览器的工具,可用于测试和调试 MCP 服务。它非常适合检查工具、测试调用,以及在不需要 Claude Desktop 的情况下进行调试。
- 安装并运行 MCP Inspector:
# Make sure your API key is set
export LITEAPI_API_KEY=your_api_key_here
# Run the inspector (it will automatically start your server)
npm run inspect
# Or directly:
npx @modelcontextprotocol/inspector node dist/index.js
-
Inspector 将会:
- 在
http://localhost:6274打开浏览器窗口 - 在端口 6277 上启动代理服务
- 显示所有可用工具及其架构
- 允许你交互式测试工具调用
- 实时显示通知和响应
- 在
-
在 Inspector UI 中,你可以:
- 工具选项卡:查看所有可用工具、说明和输入架构
- 测试工具:点击任意工具,使用示例参数进行测试
- 查看响应:查看 API 调用返回的格式化 JSON 响应
- 调试:检查错误和验证问题
**注意:**使用 MCP Inspector 需要安装 Node.js 22.7.5+(使用 node --version 检查)。
选项 2:使用简单的客户端脚本进行测试
创建测试脚本以验证服务是否正常运行:
# Create test-client.js
cat > test-client.js << 'EOF'
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
async function test() {
const transport = new StdioClientTransport({
command: 'node',
args: ['dist/index.js'],
env: { LITEAPI_API_KEY: process.env.LITEAPI_API_KEY }
});
const client = new Client({
name: 'test-client',
version: '1.0.0'
}, {
capabilities: {}
});
await client.connect(transport);
// List all available tools
const tools = await client.listTools();
console.log(`Found ${tools.tools.length} tools:`);
tools.tools.forEach(tool => {
console.log(` - ${tool.name}: ${tool.description}`);
});
await client.close();
}
test().catch(console.error);
EOF
# Run the test
export LITEAPI_API_KEY=your_api_key_here
node test-client.js
选项 3:连接到 Claude Desktop
- 获取项目的绝对路径:
# macOS/Linux
pwd
# Output: /Users/nicholas/Documents/nuitee/liteapi/mcp-server
# Windows (PowerShell)
(Get-Location).Path
-
打开 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
如果文件不存在,请创建该文件,并写入一个空 JSON 对象:
{} - macOS:
-
添加服务配置:
{
"mcpServers": {
"liteapi": {
"command": "node",
"args": ["/absolute/path/to/mcp-server/run-mcp-server.mjs"],
"env": {
"LITEAPI_API_KEY": "your_api_key_here"
}
}
}
}
重要:
- 使用
run-mcp-server.mjs,而不是dist/index.js,以确保 ES 模块正常工作 - 将
/absolute/path/to/mcp-server替换为此项目的实际绝对路径 - 将
your_api_key_here替换为你的 LiteAPI API 密钥 - 在 Windows 上,路径中使用正斜杠
/或转义后的反斜杠\\
macOS 示例:
{
"mcpServers": {
"liteapi": {
"command": "node",
"args": ["/Users/nicholas/Documents/nuitee/liteapi/mcp-server/run-mcp-server.mjs"],
"env": {
"LITEAPI_API_KEY": "sand_c0155ab8-c683-4f26-8f94-b5e92c5797b9"
}
}
}
}
注意:.mjs 包装脚本可确保 Node.js 从 Claude Desktop 运行时正确识别 ES 模块。如果希望直接使用 dist/index.js,请确保 Claude Desktop 从项目根目录运行该文件。
-
完全重启 Claude Desktop(退出后重新打开)
-
验证连接:
- 打开 Claude Desktop
- 开始新对话
- 查找 MCP 工具指示器(通常会显示可用工具)
- 尝试询问:“有哪些 LiteAPI 工具可用?”或“搜索巴黎的酒店”
连接问题排查
如果 Claude Desktop 无法识别服务:
-
检查路径是否正确:
# Test that the file exists and is executable ls -la /absolute/path/to/mcp-server/dist/index.js node /absolute/path/to/mcp-server/dist/index.js -
检查 Claude Desktop 日志:
- macOS:
~/Library/Logs/Claude/claude_desktop.log - Windows:
%APPDATA%\Claude\logs\ - 查找与 MCP 服务启动相关的错误
- macOS:
-
验证 JSON 语法:
# Validate JSON syntax cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python3 -m json.tool -
手动测试服务:
export LITEAPI_API_KEY=your_api_key_here node dist/index.js # Should output: "Loaded X endpoints from Y OpenAPI specs" # Should output: "LiteAPI MCP Server running on stdio" -
检查 Node.js 版本:
node --version # Should be 18.0.0 or higher
可用工具
服务会自动从 openapi-schemas/ 目录中的所有 OpenAPI 规范生成工具。每个端点都会成为可调用的 MCP 工具,并包含:
- 作为工具名称的 Operation ID
- 来自 OpenAPI 规范的 描述
- 自动提取并验证的 参数
工具示例包括:
post_hotels_rates- 搜索酒店价格get_prebooks_{prebookId}- 获取预订详情post_bookings- 创建预订- 以及更多……
项目结构
.
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # Main MCP server implementation
│ └── utils/
│ ├── openapi-parser.ts # OpenAPI spec parsing
│ ├── schema-converter.ts # OpenAPI to Zod conversion
│ └── api-client.ts # HTTP client for API calls
├── openapi-schemas/ # OpenAPI specification files
├── dist/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md
开发
构建
npm run build
监视更改
npm run watch
添加新的 OpenAPI 规范
- 将 OpenAPI 规范 JSON 文件添加到
openapi-schemas/ - 如有需要,更新
src/utils/openapi-parser.ts中的specFiles数组 - 重新构建并重启服务
环境变量
LITEAPI_API_KEY(必需):用于身份验证的 LiteAPI API 密钥
API 模块
该服务支持以下 LiteAPI 模块:
- 搜索(
search.json)- 酒店搜索和价格查询 - 预订(
booking.json)- 预订管理和预订前操作 - 代金券(
voucher.json)- 代金券创建和管理 - 分析(
analytics.json)- 分析和报告 - 静态数据(
static.json)- 静态数据端点 - 忠诚度(
loyalty.json)- 忠诚度计划操作 - 供应定制(
supplyCustomization.json)- 供应定制
错误处理
该服务包含全面的错误处理:
- 启动时会捕获缺失的 API 密钥
- 无效的工具调用会返回描述性错误消息
- API 请求失败会经过适当格式化后返回
许可证
MIT
支持
如有以下相关问题:
- MCP 服务:在此代码库中提交问题
- LiteAPI:联系 LiteAPI 支持团队
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。