酒店搜索API服务器

一个提供乐天旅行酒店搜索和空房查询接口的模型上下文协议服务器。

  • by hirochachacha
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 hirochachacha/rakuten_travel_mcp

使用说明

乐天旅游MCP服务器

模型上下文协议(MCP)服务器,为乐天旅行API提供接口,用于酒店搜索和可用性检查。

特性

  • 酒店搜索:按位置、酒店编号或区号搜索酒店
  • 可用性搜索:查找实时可用的空置酒店
  • 区号资源:访问分层日语位置数据
  • 类型安全:具有Zod验证的全面TypeScript类型
  • 符合MCP标准:适用于任何兼容MCP的客户端

先决条件

安装

  1. 克隆存储库:
git clone https://github.com/yourusername/rakuten_travel_mcp.git
cd rakuten_travel_mcp

用法

运行服务器

  1. 配置您的MCP客户端。(以下示例适用于 Claude Desktop)
```json
{
    "mcpServers": {
        "rakuten_travel_mcp": {
            "command": "deno",
            "args": [
                "run",
                "--allow-net=app.rakuten.co.jp",
                "--allow-env=APPLICATION_ID",
                "/path/to/rakuten_travel_mcp/serve.ts"
            ],
            "env": {
                "APPLICATION_ID": "<your_application_id>"
            }
        }
    }
}

可用工具

1.酒店搜索(hotel-search)

使用各种条件搜索酒店:

按酒店编号搜索:

{
  "hotelNo": ["123456", "789012"]
}

按坐标搜索:

{
  "latitude": 35.6762,
  "longitude": 139.6503,
  "searchRadius": 3,
  "datumType": 1
}

按区号搜索:

{
  "largeClassCode": "japan",
  "middleClassCode": "tokyo",
  "smallClassCode": "shibuya"
}

2.寻找空置酒店(vacant-hotel-search)

搜索可用酒店:

{
  "checkinDate": "2024-03-15",
  "checkoutDate": "2024-03-17",
  "rooms": 1,
  "adultNum": 2,
  "largeClassCode": "japan",
  "middleClassCode": "tokyo"
}

可用资源

区号资源(config://area_code)

访问日本的分层位置数据:

  • 国家一级(例如“日本”)
  • 县一级(例如“东京”、“大阪”)
  • 市级(如“涩谷”、“新宿”)
  • 区域级别(详细地区)

发展

运行测试

# Run all tests
deno task test

# Run tests in watch mode
deno task test:watch

项目结构

rakuten_travel_mcp/
├── serve.ts           # Main MCP server implementation
├── types.ts           # TypeScript types and Zod schemas
├── area_code.json     # Hierarchical location data
├── *.test.ts          # Test files
├── deno.json          # Deno configuration
└── .env              # Environment variables (create this)

API参数

公共参数

  • hits:每页结果数(1-30,默认值:30)
  • page:分页页码
  • sort:排序顺序(提供各种选项)

酒店搜索特定

  • hotelNo:酒店编号数组
  • latitude/longitude:地理搜索坐标
  • searchRadius:搜索半径,单位为公里(1-3)
  • squeezeCondition:筛选有/没有空缺的酒店
  • hotelType:按酒店类型筛选(0-3)

特定空置酒店搜索

  • checkinDate/checkoutDate:必填日期(YYYY-MM-DD)
  • rooms:房间数量(1-5)
  • adultNum:每间客房的成人人数(1-5)
  • minCharge/maxCharge:价格范围过滤器

测试

该项目包括以下方面的综合测试:

  • 架构验证
  • API参数构建
  • 响应处理
  • 错误处理
  • 网络超时

错误处理

服务器处理各种错误情况:

  • 缺少必要参数
  • 日期格式无效
  • API费率限制
  • 网络超时
  • API响应无效

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢