Skip to main content
Glama

rakuten-mcp

npm version npm downloads rakuten-mcp MCP server MCP Badge License: MIT

A Model Context Protocol server for the Rakuten Web Service API. 27 read-only tools across six Rakuten product families: Ichiba (marketplace), Books, Travel, Recipe, Kobo, and GORA (golf).

Every tool description ships in English and Japanese. Every endpoint was re-verified against the live Rakuten API and its documentation on 2026-10-04.

Install

npm install -g rakuten-mcp

Or npx rakuten-mcp on demand.

Related MCP server: xendit-mcp

Configuration

  1. Register at Rakuten Web Service.

  2. Create an application. You get a UUID Application ID and a pk_-prefixed Access Key.

  3. Optional: register an Affiliate ID to monetize product links. Item URLs in tool responses will carry it.

Variable

Required

Description

RAKUTEN_APP_ID

yes

Application ID (UUID format on the new platform)

RAKUTEN_ACCESS_KEY

yes

Access Key (starts with pk_)

RAKUTEN_AFFILIATE_ID

no

Affiliate ID appended to every item URL

RAKUTEN_MAX_RETRIES

no

Retries on 429 / 5xx. Default 3.

IP allow list. A Rakuten app can restrict which IP addresses may call it. If your IP changes (new network, router restart), every tool fails with CLIENT_IP_NOT_ALLOWED; the server reports this as an IP problem, not a key problem. Fix it under Edit for the app at webservice.rakuten.co.jp/app/list. Servers and CI runners need their egress IP on the list too.

Claude Desktop

Edit claude_desktop_config.json:

{
  "mcpServers": {
    "rakuten": {
      "command": "npx",
      "args": ["-y", "rakuten-mcp"],
      "env": {
        "RAKUTEN_APP_ID": "your-app-id",
        "RAKUTEN_ACCESS_KEY": "your-access-key"
      }
    }
  }
}

Claude Code

claude mcp add rakuten -e RAKUTEN_APP_ID=... -e RAKUTEN_ACCESS_KEY=... -- npx -y rakuten-mcp

Cursor / Cline / Continue

Same JSON shape as Claude Desktop, under each client's MCP config path.

Tools

Ichiba (4)

Tool

What it does

ichiba_item_search

Keyword search on Rakuten Ichiba with price filters, sort, genre/shop restrictions.

ichiba_genre_search

Browse the genre tree. Returns current, ancestors, siblings, and children.

ichiba_item_ranking

Realtime bestseller ranking: overall, by genre, or by age / gender (genre and demographics cannot be combined, per Rakuten).

ichiba_product_search

Item Price Navi: same product across multiple sellers with min/max/avg price.

ichiba_tag_search was removed in 1.3.0: Rakuten retired the Tag Search endpoint.

Books (9)

Only books_total_search takes free text. The per-category tools search by title / author / artist / JAN / ISBN / genre, because that is all Rakuten's endpoints accept.

Tool

What it does

books_total_search

Cross-category search across all of Rakuten Books.

books_book_search

Printed books by title, author, ISBN, publisher.

books_cd_search

Music CDs by title, artist, label, JAN.

books_dvd_search

DVDs / Blu-ray.

books_foreign_book_search

Non-Japanese books. Returns japaneseTitle when a translation exists.

books_magazine_search

Magazines by title, publisher, JAN.

books_game_search

Video games by title, hardware platform, JAN.

books_software_search

Computer software by title, OS, JAN.

books_genre_search

Browse the Books genre tree (000 = top).

Travel (7)

Tool

What it does

travel_simple_hotel_search

Hotels by area code or lat/lon.

travel_vacant_hotel_search

Hotels with rooms available on specific check-in / check-out dates. Returns plans with one-night pricing and chargeBasis (per_person or per_room).

travel_hotel_detail_search

Full details for one hotel by hotelNo.

travel_get_area_class

The area-code hierarchy: 日本 → 47 prefectures → cities → districts.

travel_keyword_hotel_search

Free-text hotel search by name / landmark / area.

travel_get_hotel_chain_list

All 307 hotel chains registered on Rakuten Travel.

travel_hotel_ranking

Top hotels by ranking genre (all / onsen / ryokan / city / resort / business / pension / publichouse).

Recipe (2)

Tool

What it does

recipe_category_list

The full Rakuten Recipe category tree (43 large → ~540 medium → ~1500 small). Pass level to fetch one tier.

recipe_category_ranking

Top recipes in a category with title, ingredient list, prep time, cost estimate, image, and author.

Kobo (2)

Tool

What it does

kobo_ebook_search

Search Rakuten Kobo's eBook catalogue. Returns title, series, author, publisher, language code, price, and sale URL.

kobo_genre_search

Browse the Kobo genre tree. Top-level is 101 (電子書籍).

GORA (3)

Tool

What it does

gora_golf_course_search

Golf courses by area code, keyword, or coordinates.

gora_golf_course_detail

Full course profile: designer, hole/par, course distance, green type, dress code, facilities, base prices.

gora_plan_search

Reservation plans on a specific play date. Returns per-plan prices, cart/caddie/lunch inclusions, player-count constraints.

Example queries

楽天で1万円以下のワイヤレスイヤホンを探して。レビュー4以上。
村上春樹の楽天Kobo電子書籍を新着順で。
東京駅近くのホテル、7月1〜2日、2名で1泊1万5千円以下の空室。
今週末東京近郊のゴルフ場で安いプランは?
楽天レシピで人気の鶏胸肉料理を5件、材料と所要時間込みで。
JANコード 4988601009447 のCDの取扱店舗。

Architecture

Modular: one file per API family under src/tools/. Stdio and HTTP transports both supported. Typed error tree with 9 classes covering Config / Auth / IpNotAllowed / RateLimit / Server / NotFound / BadRequest / MalformedResponse / Unknown. Retry-with-backoff on 429 and 5xx, parses Retry-After as both seconds and HTTP-date. See AGENTS.md for the architecture brief, conventions, and how to add a new tool.

Safety

All 27 tools are read-only HTTP GETs against the Rakuten Web Service API. No tool creates, modifies, or deletes anything. Rakuten's terms of service and rate limits apply. Returned items are promotional listings — verify prices and availability on Rakuten before acting on them.

Disclaimer

Unofficial. Not affiliated with, endorsed by, or sponsored by Rakuten Group, Inc. Rakuten, Rakuten Ichiba, Rakuten Books, Rakuten Travel, Rakuten Recipe, Rakuten Kobo, and Rakuten GORA are trademarks of Rakuten Group, Inc. Use at your own risk.

License

MIT

Available Tools

27 tools
gora_golf_course_detailGet Rakuten GORA Golf Course DetailA
Read-onlyIdempotent

Get full details for a Rakuten GORA golf course by ID — postal address, phone, designer, hole/par count, course distance, green type, dress code, practice/lodging/meal facilities, credit card acceptance, layout map URL, and weekday/holiday base prices. Use this after gora_golf_course_search to drill into a specific course.

[JA] 楽天GORAのゴルフ場詳細をIDで取得します。郵便番号、電話、設計者、ホール数、パー数、コース距離、グリーン種別、ドレスコード、練習場/宿泊/食事/クレジットカード可否、レイアウトURL、平日/休日の基準最安値を返します。

ParametersJSON Schema
NameRequiredDescriptionDefault
golfCourseIdYesGolf course ID (from gora_golf_course_search). ゴルフ場ID(検索結果から取得)。

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint. Description adds useful detail on returned fields, but 'full details' slightly conflicts with openWorldHint. Minor issue, no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise English sentences plus Japanese translation. Front-loaded with purpose, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter tool with no output schema, the description adequately lists all expected return fields and usage context. Sufficient for agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description already covers the parameter fully (100% coverage). Description restates that ID comes from search but adds no extra meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool retrieves full details for a golf course by ID, listing specific fields (address, phone, designer, etc.). It distinguishes from sibling tools by explicitly mentioning use after gora_golf_course_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this after gora_golf_course_search to drill into a specific course.' Provides clear usage context and sequence, though no direct exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ichiba_item_rankingGet Rakuten Ichiba Bestseller RankingA
Read-onlyIdempotent

Get the Rakuten Ichiba realtime bestseller ranking: overall, for one genre, or for an age/gender demographic. Genre and demographic filters are mutually exclusive (Rakuten restriction). Returns ranked items with their rank, price, review stats, and purchase URL. Use ichiba_genre_search to find genre IDs.

[JA] 楽天市場のリアルタイム売れ筋ランキングを取得します。総合、ジャンル別、または年代/性別で絞り込み可能。ジャンルと年代/性別は併用できません(楽天の仕様)。順位、価格、レビュー、購入URLを含むランキング一覧を返します。ジャンルIDの検索には ichiba_genre_search を使用してください。

ParametersJSON Schema
NameRequiredDescriptionDefault
ageNoFilter to an age demographic. '50s' means 50 and over. Overall ranking only (genre_id must be '0'). 年代フィルタ。'50s' は50代以上。総合ランキングのみ(genre_id は '0')。
sexNoFilter to a gender demographic. Overall ranking only (genre_id must be '0'). 性別フィルタ。総合ランキングのみ(genre_id は '0')。
pageNoPage number (1–34; Rakuten caps rankings at ~1000 items). ページ番号(1〜34)。
genre_idNoGenre ID for the ranking. '0' returns the overall ranking. Cannot be combined with age or sex (Rakuten restriction). 0はジャンル全体のランキング。age/sex とは併用不可(楽天の仕様)。0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld, so the safety profile is covered. The description adds real value beyond that: the Rakuten-imposed mutual exclusion between genre and age/sex filters, and the shape of the payload (rank, price, review stats, purchase URL) in the absence of an output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then constraints, then routing hint, then return contents — a sensible order with no filler. The only cost is the complete Japanese duplication of the same content, which doubles length without adding information for a single-language consumer.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter, all-optional read tool with no output schema, the description covers the ranking modes, the key cross-parameter constraint, and the returned fields. What is missing is only marginal — e.g. how the 1–34 page cap interacts with the ~1000-item ceiling, which the schema already states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter (age, sex, page, genre_id) is already documented in-schema with enums, defaults, and range limits. The description restates the genre/age/sex exclusivity that the schema already carries, adding no syntax or format detail beyond it. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the Rakuten Ichiba realtime bestseller ranking') and immediately enumerates the three supported scoping modes (overall, genre, demographic). It also names the sibling ichiba_genre_search as the way to obtain genre IDs, so an agent can distinguish it from the other ichiba_* tools without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear operating context: the three ranking modes, the mutually exclusive genre vs. demographic rule, and a routing hint to ichiba_genre_search for genre IDs. It does not, however, say when to prefer this ranking tool over ichiba_item_search or ichiba_product_search, so the alternative-selection guidance is incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recipe_category_listList Rakuten Recipe CategoriesA
Read-onlyIdempotent

Get the full Rakuten Recipe category hierarchy (43 large → ~540 medium → ~1500 small categories). Each category has a categoryId, name, and URL on recipe.rakuten.co.jp. Use 'large' depth when you only need the top-level menu (much smaller payload). Medium and small categories include parentCategoryId for tree assembly.

[JA] 楽天レシピのカテゴリ階層(43大カテゴリ→約540中カテゴリ→約1500小カテゴリ)を取得します。各カテゴリにID、名前、recipe.rakuten.co.jp のURLが付きます。トップレベルだけ必要な場合は 'large' を指定(ペイロード大幅小)。中・小には parentCategoryId が付与されます。

ParametersJSON Schema
NameRequiredDescriptionDefault
levelNoWhich depth(s) to return. 'all' returns the full tree (~2000 categories, ~430KB). Use 'large' for the 43 top-level categories only. 取得階層。'all' は全階層(約2000カテゴリ、430KB)、'large' はトップレベル43件のみ。all

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. Description adds valuable detail: hierarchy structure, parentCategoryId for tree assembly, payload sizes (~430KB for full tree), and Japanese translation for non-English users.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact paragraphs (English then Japanese) front-load essential information. Every sentence adds value—no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, description fully explains return structure (categoryId, name, URL, parentCategoryId for lower levels) and how to assemble the hierarchy. Sufficient for an agent to understand and use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enum descriptions. Description enhances by explaining practical implications (payload size for 'all', top-level only for 'large') and the presence of parentCategoryId for medium/small levels.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it retrieves the Rakuten Recipe category hierarchy with three levels (large, medium, small) and their counts. Distinct from sibling search tools which focus on items or rankings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to use 'large' for smaller payload (top-level menu) vs 'all' (full tree). Could be more explicit about when to use medium or small depths, but provides sufficient guidance for typical use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

recipe_category_rankingGet Rakuten Recipe Category RankingA
Read-onlyIdempotent

Get the top recipes in a Rakuten Recipe category. Returns ranked recipes with title, ingredient list, cooking time (indication), cost estimate, image URLs, author nickname, and a direct URL to recipe.rakuten.co.jp. Use recipe_category_list to find category IDs.

[JA] 指定カテゴリの楽天レシピ人気ランキングを取得します。順位、タイトル、材料一覧、調理時間目安、費用目安、画像、投稿者ニックネーム、レシピURLを返します。カテゴリIDは recipe_category_list で取得。

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryIdYesCategory ID to rank within. Pass a large/medium/small categoryId from recipe_category_list. ランキング対象のカテゴリID(recipe_category_list の large/medium/small から取得)。

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and open-world hints. The description adds value by listing the specific return fields (title, ingredient list, cooking time, etc.) and noting it returns a direct URL. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences (plus Japanese translation), front-loading the core action. Every sentence serves a purpose with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description fully explains the tool's behavior and return fields. It covers prerequisite knowledge and is complete for a simple single-parameter ranking tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, describing 'categoryId' and referencing 'recipe_category_list'. The tool description reiterates this but adds no new semantic information beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Get' and clearly identifies the resource as 'top recipes in a Rakuten Recipe category'. It distinguishes itself from sibling tools by domain and explicitly references 'recipe_category_list' for category IDs, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on a prerequisite: using 'recipe_category_list' to find category IDs. While it doesn't explicitly state when not to use the tool or list alternatives, the simple nature of the tool and the single sibling in the same domain make this adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

travel_get_area_classGet Rakuten Travel Area ClassificationA
Read-onlyIdempotent

Get the full Rakuten Travel area-code hierarchy: Japan → prefecture (middle) → city (small) → district (detail). Use the returned codes as largeClassCode/middleClassCode/etc. in the hotel search tools.

[JA] 楽天トラベルのエリアコード階層を取得します(日本→都道府県→市区町村→詳細)。返されたコードを largeClassCode/middleClassCode 等としてホテル検索ツールに渡してください。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as readOnly, idempotent, and openWorld. The description adds the hierarchy structure, which is consistent and provides additional context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences in English (with Japanese translation) that front-load the purpose and include a usage note. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and rich annotations, the description covers the essential behavior. However, the lack of an output schema means the agent may not know the exact response format, but the description hints at the code field names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description cannot add meaning to them. However, it explains the output codes' structure, which compensates for the absence of an output schema. Baseline for 0 params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the full Rakuten Travel area-code hierarchy' and explains the hierarchy levels (Japan→prefecture→city→district). It distinguishes itself from sibling hotel search tools by being the source of location codes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use the returned codes as parameters in hotel search tools. While it doesn't mention when not to use it, the context makes it clear as a preliminary step.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

travel_get_hotel_chain_listGet Rakuten Travel Hotel ChainsA
Read-onlyIdempotent

List all Rakuten Travel hotel chains (Marriott, APA, Hilton, Toyoko Inn, etc.) with their codes. Useful for filtering or grouping search results by chain.

[JA] 楽天トラベルに登録されている全ホテルチェーン(マリオット、APA、ヒルトン、東横INN等)とコードを返します。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint. The description adds that it returns a list of chains with codes, consistent with the annotations. No extra behavioral details beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two clear sentences in English plus a Japanese translation. No superfluous words; front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero complexity (no parameters, no output schema), the description fully covers what the tool does and what it returns. The annotation set is rich enough that additional context is unnecessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description effectively explains the output (list of hotel chains with codes), compensating for the lack of output schema, thus adding value beyond the input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool lists all Rakuten Travel hotel chains with their codes, naming examples like Marriott, Hilton. It clearly distinguishes itself from sibling travel search tools by focusing on chain listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Suggests use for filtering or grouping search results by chain, implying it's a preliminary step before other travel searches. While not specifying when not to use it, the context of sibling tools makes its purpose clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

travel_hotel_rankingGet Rakuten Travel Hotel RankingA
Read-onlyIdempotent

Get the top-ranked hotels on Rakuten Travel, overall or by ranking genre (onsen, ryokan, city, resort, businesshotel, pension, publichouse). Returns ranked hotels with rank, name, area, review stats, and information URLs.

[JA] 楽天トラベルのホテルランキングを取得します。'all'(総合)、または温泉/旅館/シティ/リゾート/ビジネス/ペンション/公共の宿でタイプ別に絞り込めます。順位、ホテル名、エリア、レビュー、URLを返します。

ParametersJSON Schema
NameRequiredDescriptionDefault
genreNoRanking genre. 'all' is overall; others narrow by hotel type. ランキング種別。'all' は総合、他はタイプ別。all

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, so the description adds value by listing the returned fields (rank, name, area, review stats, URLs). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no waste, front-loaded with the core purpose and extended with genre options. Japanese translation concisely mirrors the English.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately summarizes the return fields. Though it lacks details like pagination or result count, for a ranking tool this is sufficient given the open-world hint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'genre' has a comprehensive schema with enum and default. Schema coverage is 100%, so the description adds little beyond restating the enum values. Bilingual text is helpful but doesn't add new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves 'top-ranked hotels on Rakuten Travel' with options for overall or genre-specific rankings. It distinguishes itself from sibling tools like search tools by focusing on rankings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that it can be used overall or by genre, providing clear context for when to use. It doesn't explicitly exclude alternatives, but given the distinct ranking focus among sibling search tools, usage is well implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv1.3.0
    • Changedbooks_book_search3 fields changed
      • addedInput schema / properties / isbn
        Added value: +{
        +  "description": "ISBN code, digits only (e.g. 9784815630614). ISBNコード(ハイフンなし)。",
        +  "title": "ISBN",
        +  "type": "string"
        +}
      • removedInput schema / properties / isbnjan
        Removed value: -{
        -  "description": "ISBN or JAN code. ISBN または JAN コード。",
        -  "title": "Isbnjan",
        -  "type": "string"
        -}
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Free-text keyword across all fields. 全フィールド横断のキーワード。",
        -  "title": "Keyword",
        -  "type": "string"
        -}
    • Changedbooks_cd_search1 field changed
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Free-text keyword. キーワード。",
        -  "title": "Keyword",
        -  "type": "string"
        -}
    • Changedbooks_dvd_search1 field changed
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Free-text keyword. キーワード。",
        -  "title": "Keyword",
        -  "type": "string"
        -}
    • Changedbooks_foreign_book_search1 field changed
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Free-text keyword. キーワード。",
        -  "title": "Keyword",
        -  "type": "string"
        -}
    • Changedbooks_game_search1 field changed
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Free-text keyword. キーワード。",
        -  "title": "Keyword",
        -  "type": "string"
        -}
    • Changedbooks_magazine_search1 field changed
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Free-text keyword. キーワード。",
        -  "title": "Keyword",
        -  "type": "string"
        -}
    • Changedbooks_software_search1 field changed
      • removedInput schema / properties / keyword
        Removed value: -{
        -  "description": "Free-text keyword. キーワード。",
        -  "title": "Keyword",
        -  "type": "string"
        -}
    • Changedichiba_item_ranking5 fields changed
      • changedInput schema / properties / age / description
        Previous value: -"Filter to a specific age demographic (e.g., '20s' = users in their 20s). 年代フィルタ。"New value: +"Filter to an age demographic. '50s' means 50 and over. Overall ranking only (genre_id must be '0'). 年代フィルタ。'50s' は50代以上。総合ランキングのみ(genre_id は '0')。"
      • changedInput schema / properties / age / enum
        Previous value: -[
        -  "10s",
        -  "20s",
        -  "30s",
        -  "40s",
        -  "50s",
        -  "60s",
        -  "70s"
        -]New value: +[
        +  "10s",
        +  "20s",
        +  "30s",
        +  "40s",
        +  "50s"
        +]
      • changedInput schema / properties / genre_id / description
        Previous value: -"Genre ID for the ranking. '0' returns the overall ranking. 0はジャンル全体のランキング。"New value: +"Genre ID for the ranking. '0' returns the overall ranking. Cannot be combined with age or sex (Rakuten restriction). 0はジャンル全体のランキング。age/sex とは併用不可(楽天の仕様)。"
      • removedInput schema / properties / period
        Removed value: -{
        -  "description": "Time window for the ranking. Default depends on Rakuten's current configuration. ランキングの集計期間。",
        -  "enum": [
        -    "realtime",
        -    "daily",
        -    "weekly",
        -    "monthly",
        -    "yearly"
        -  ],
        -  "title": "Period",
        -  "type": "string"
        -}
      • changedInput schema / properties / sex / description
        Previous value: -"Filter to a specific gender demographic. 性別フィルタ。"New value: +"Filter to a gender demographic. Overall ranking only (genre_id must be '0'). 性別フィルタ。総合ランキングのみ(genre_id は '0')。"
    • Removedichiba_tag_search
    • Changedtravel_simple_hotel_search1 field changed
      • changedInput schema / properties / detailClassCode / description
        Previous value: -"District-level code (e.g., 'A'). 詳細エリア。"New value: +"District-level code (e.g., 'A'). Required by Rakuten whenever the chosen smallClassCode has `details` in travel_get_area_class (e.g. Kyoto city has A–E); optional otherwise. 詳細エリア。travel_get_area_class で details を持つ市区町村(例: 京都市 A〜E)では必須。"
    • Changedtravel_vacant_hotel_search1 field changed
      • changedInput schema / properties / detailClassCode / description
        Previous value: -"District code. 詳細エリア。"New value: +"District code. Required by Rakuten whenever the chosen smallClassCode has `details` in travel_get_area_class (e.g. Kyoto city has A–E); optional otherwise. 詳細エリア。travel_get_area_class で details を持つ市区町村では必須。"
  2. 34 tool updatesv1.1.0
    • Addedbooks_book_search
    • Addedbooks_cd_search
    • Addedbooks_dvd_search
    • Addedbooks_foreign_book_search
    • Addedbooks_game_search
    • Addedbooks_genre_search
    • Addedbooks_magazine_search
    • Addedbooks_software_search
    • Addedbooks_total_search
    • Removedget_genre_ranking
    • Addedgora_golf_course_detail
    • Addedgora_golf_course_search
    • Addedgora_plan_search
    • Addedichiba_genre_search
    • Addedichiba_item_ranking
    • Addedichiba_item_search
    • Addedichiba_product_search
    • Addedichiba_tag_search
    • Addedkobo_ebook_search
    • Addedkobo_genre_search
    • Addedrecipe_category_list
    • Addedrecipe_category_ranking
    • Removedsearch_books
    • Removedsearch_genres
    • Removedsearch_products
    • Removedsearch_travel
    • Removedsearch_travel_vacancy
    • Addedtravel_get_area_class
    • Addedtravel_get_hotel_chain_list
    • Addedtravel_hotel_detail_search
    • Addedtravel_hotel_ranking
    • Addedtravel_keyword_hotel_search
    • Addedtravel_simple_hotel_search
    • Addedtravel_vacant_hotel_search
  3. 1 tool updatev0.1.1
    • Removedget_product_reviews
  4. 7 tool updatesv1.0.0
    • First observedget_genre_ranking
    • First observedget_product_reviews
    • First observedsearch_books
    • First observedsearch_genres
    • First observedsearch_products
    • First observedsearch_travel
    • First observedsearch_travel_vacancy

TDQS

A4.2/5.0

Scored across 27 tools

Disambiguation5/5

Each tool targets a distinct service and resource-action combination (e.g., books_book_search vs books_cd_search, travel_simple_hotel_search vs travel_keyword_hotel_search). Overlaps like books_total_search vs category-specific searches and ichiba_item_search vs ichiba_product_search are explicitly differentiated in descriptions, leaving no real ambiguity.

Naming Consistency4/5

Names follow a consistent service_resource_action pattern in snake_case (books_, gora_, ichiba_, travel_, recipe_, kobo_). Minor deviation: two travel tools use a get_ verb prefix (travel_get_area_class, travel_get_hotel_chain_list) while others use trailing action nouns like _search, _detail, or _ranking.

Tool Count4/5

27 tools is above the typical 3–15 range, but the server aggregates six distinct Rakuten services (Books, Ichiba, Travel, Recipe, Kobo, GORA), each with multiple endpoints. Each tool maps to a unique operation, so the count is justified despite being slightly heavy.

Completeness4/5

Most services have thorough coverage: Books offers total and category-specific searches, Travel has multiple search modes plus detail/area/chain/ranking tools, and Ichiba includes search, genre, ranking, and price comparison. Notable gaps: Recipe only has category listing and ranking (no keyword or ingredient search), and Ichiba lacks a dedicated shop search tool.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Extract YouTube transcripts for AI agents, RAG pipelines, and LLM workflows. Supports any YouTube URL. Returns clean text or timestamped segments. No API keys required.
    1
    4
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A MCP server for Walmart Marketplace and Affiliate APIs, enabling sellers to manage items, inventory, prices, and orders, and consumers to search, lookup products, reviews, and store locations.
    14 npm
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server for Rakuten Ichiba that enhances product search with quantity parsing, unit price calculation, and shipping cost analysis, enabling cost-effective bulk purchasing decisions.
    5
    1
    MIT