使用说明

项目简介

本仓库 rakuten-travel-mcp 是一个 MCP 服务器的实现,它将 楽天トラベルAPI 封装成符合 Model Context Protocol (MCP) 标准的服务。通过此服务器,LLM 应用可以利用 MCP 协议,以标准化的方式调用楽天トラベルAPI,实现酒店搜索等功能。

主要功能点

  • MCP 协议支持: 实现了 MCP 协议,可以接收和处理来自 MCP 客户端的请求,例如 'list_tools' 和 'call_tool'。
  • 楽天トラベルAPI 集成: 集成了楽天トラベルAPI,通过 MCP 工具 'hotel_search' 向 LLM 提供酒店搜索能力。
  • 工具注册与调用: 注册了 'hotel_search' 工具,LLM 可以通过调用此工具使用楽天トラベルAPI 的酒店搜索功能。
  • JSON-RPC over HTTP: 使用 HTTP POST 接口作为 MCP 的传输协议,使用 JSON 格式进行数据交换。
  • 简单的会话管理: 虽然代码中没有显式的会话管理,但作为 MCP 服务器具备处理来自客户端请求的基础框架。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/tKwbr999/rakuten-travel-mcp.git
    cd rakuten-travel-mcp
  2. 安装依赖:

    npm install
  3. 配置环境变量: 复制 '.env.example' 文件并重命名为 '.env',然后编辑 '.env' 文件,填入你的楽天トラベルAPI 应用 ID (RAKUTEN_APPLICATION_ID)。

    cp .env.example .env
    # 编辑 .env 文件,设置 RAKUTEN_APPLICATION_ID
  4. 启动开发服务器:

    npm run dev

    服务器默认监听 '3000' 端口。

服务器配置

MCP 客户端需要配置以下信息以连接到 rakuten-travel-mcp 服务器。以下是一个典型的 JSON 格式配置示例,用于 'command' 和 'args' 中,以便 MCP 客户端能够启动和连接到此 MCP 服务器:

{
  "serverName": "rakuten-travel-mcp",
  "command": "npm",
  "args": ["run", "dev"],
  "description": "Rakuten Travel MCP Server",
  "protocol": "http-json",
  "baseUrl": "http://localhost:3000"
}

配置参数说明:

  • 'serverName': 服务器名称,可以自定义,用于在客户端标识此服务器。例如: "rakuten-travel-mcp"。
  • 'command': 启动服务器的命令。由于项目使用 'npm run dev' 启动开发服务器,所以这里设置为 '"npm"'。
  • 'args': 启动命令的参数。对应 'npm run dev',参数为 '["run", "dev"]'。
  • 'description': 服务器的描述信息,方便用户理解服务器的功能。例如: "Rakuten Travel MCP Server"。
  • 'protocol': MCP客户端与服务器通信的协议,本仓库使用基于 HTTP 的 JSON 协议,因此设置为 '"http-json"'。
  • 'baseUrl': 服务器的根 URL。开发环境下,服务器运行在本地 '3000' 端口,所以设置为 '"http://localhost:3000"'。如果部署到远程服务器,请修改为相应的服务器地址。

注意: MCP客户端需要能够执行 'npm run dev' 命令来启动此 MCP 服务器。 实际部署时,可能需要将 'command' 和 'args' 修改为更适合生产环境的启动方式,例如使用 'node dist/index.js' 启动编译后的 JavaScript 代码。

基本使用方法

  1. 启动 MCP 服务器 (按照上面的安装步骤)。
  2. 配置 MCP 客户端: 在你的 LLM 应用或 MCP 客户端中,配置服务器连接信息,指向 'http://localhost:3000' (或你部署的服务器地址)。
  3. 使用 'list_tools' 请求: 客户端可以发送 'list_tools' 请求到服务器,获取服务器支持的工具列表。服务器会返回包含 'hotel_search' 工具定义的 JSON 响应。
  4. 使用 'call_tool' 请求: 客户端可以发送 'call_tool' 请求来调用 'hotel_search' 工具,并传递必要的参数(例如,酒店关键词、地区代码等)。服务器会调用楽天トラベルAPI 进行酒店搜索,并将结果以 JSON 格式返回给客户端。

示例 'call_tool' 请求 (JSON 格式):

{
  "type": "call_tool",
  "tool_name": "hotel_search",
  "arguments": {
    "keyword": "東京",
    "adultNum": 2
  }
}

服务器会返回包含酒店搜索结果的 JSON 响应。

信息

分类

网页与API