Tabelog MCP Server
Provides tools for searching Japanese restaurants by area, genre, coordinates, and keywords, and for retrieving restaurant details, reviews, menus, photos, vacancy information, and area or station lookups via the Tabelog Inbound app API.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Tabelog MCP ServerFind highly rated ramen shops in Shibuya and show reviews"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tabelog MCP Server
Unofficial Tabelog MCP server: let AI assistants search Japanese restaurants, read reviews and menus through the Tabelog Inbound app API.
Overview
tabelog-mcp is a Model Context Protocol server for Tabelog. It wraps the unofficial Tabelog API documented in tabelog-api-spec.
Status: the anonymous token request, area lookup, keyword suggestions, restaurant search, detail, reviews, menu, photos and nearby popular items were checked live and return data. Other tools and the tabelog_get escape hatch are untested. The server uses requests, because the same token request from httpx was answered with HTTP 403 by Tabelog's Cloudflare.
Related MCP server: mcp-opentable
Features
Search - restaurants by area, genre or coordinates, plus keyword suggestions
Detail - restaurant info, reviews, menus, photos and vacancy
Areas - prefecture, area and station lookups
Read-only - no login and no writes;
tabelog_getcalls any GET endpoint from the spec
Tech Stack
Getting Started
Prerequisites
Python 3.10+
Installation
git clone https://github.com/horse-3903/tabelog-mcp
cd tabelog-mcp
pip install .Run locally
tabelog-mcpAdd to Claude Desktop or Claude Code
{
"mcpServers": {
"tabelog": { "command": "tabelog-mcp" }
}
}FAQ
Is there an official Tabelog MCP server? No. This one is unofficial and uses the reverse engineered Tabelog Inbound app API from tabelog-api-spec.
Does it need a Tabelog account? No. It requests an anonymous device token on first use.
Disclaimer
Unofficial and not affiliated with Tabelog or Kakaku.com. Use at your own risk. Calling the API outside the official app may violate the service's terms and can lead to blocking or a suspended account. The authors accept no responsibility for any consequences.
Available Tools
12 toolsarea_level1C
List first level areas for a prefecture.
| Name | Required | Description | Default |
|---|---|---|---|
| prefecture_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, yet it says nothing about permissions, pagination, ordering, or whether the result includes sub-areas. It only communicates that this is a listing operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. It is efficient, though its brevity borders on under-specification rather than deliberate conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description leaves unclear what an area record contains and how prefecture_id is obtained or structured. An agent can guess the intent but lacks enough to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single required parameter prefecture_id has 0% schema description coverage, and the description adds no meaning about its format, source, or valid range. With one undocumented parameter the description must compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List first level areas') that maps cleanly to the tool name and implicitly contrasts with the sibling area_level2. It does not explicitly name area_level2 as the alternative, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over area_level2 or stations, nor any prerequisite for obtaining a prefecture_id. The hierarchy is only hinted at by the word 'first level'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
area_level2C
List second level areas inside a first level area.
| Name | Required | Description | Default |
|---|---|---|---|
| area1_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden. It says 'List', implying a safe read, but discloses nothing about return shape, ordering, pagination, or whether an invalid area1_id errors or returns empty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with no wasted words, but its terseness is under-specification rather than economy — a clause on the ID source or return content would earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter lookup, the description omits the essentials an agent needs: the meaning/source of area1_id and what the returned list contains (names, IDs, child counts). No output schema or annotations exist to fill these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single undocumented parameter. It never explains what area1_id is, where to obtain it, or whether it refers to an area_level1 identifier.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('List') and resource ('second level areas inside a first level area'), so the geographic-hierarchy intent is clear. It doesn't explicitly name the sibling area_level1 as the source of parent IDs, but the hierarchy wording implicitly distinguishes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this versus area_level1 or the other lookup tools, and no prerequisite guidance (e.g., that area1_id must come from area_level1). Usage can only be inferred from the tool name and the hierarchy phrasing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
popular_nearbyC
Get popular items near a coordinate.
| Name | Required | Description | Default |
|---|---|---|---|
| latitude | Yes | ||
| longitude | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose what 'popular' means (rating? review count?), whether a radius can be controlled, how many results return, or whether this is a read-only lookup — leaving the agent with only the word 'popular' as a hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence with the key concept front-loaded and no filler. Its brevity is honest rather than padded, though it comes at the cost of detail covered under other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and 0% parameter description coverage, the definition would need to explain ranking, result shape, and coordinate format. It supplies none of these, so an agent cannot confidently invoke it over the search_restaurants sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and both parameters are required numbers, but the description only vaguely ties them to 'a coordinate' — no format (decimal degrees), valid ranges, or coordinate system is specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb and resource ('Get popular items') scoped to 'near a coordinate', but 'items' is undefined — it could mean venues, dishes, or reviews — and nothing distinguishes it from search_restaurants or suggest_search in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus search_restaurants or area_level1/area_level2, and no prerequisites or exclusions. The agent must guess based on geo-proximity versus keyword search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restaurant_detailC
Get details for one restaurant.
| Name | Required | Description | Default |
|---|---|---|---|
| restaurant_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing. It does not state whether this is read-only, what happens with an invalid restaurant_id, or what kind of detail (address, hours, rating, etc.) is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is front-loaded and free of filler. Its brevity is not severely wasteful, but it borders on under-specification rather than a deliberate, information-dense summary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and an undocumented parameter, the description is too thin for an agent to know what will be returned or how to source a valid restaurant_id. It should at least name the detail categories returned or point to the search tool that produces IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented restaurant_id parameter. It only implies a single restaurant is targeted, without saying what form the ID takes, where to obtain it, or whether it must come from search_restaurants or tabelog_get.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Get details for one restaurant'), which distinguishes it from search_restaurants by scoping to a single entity. However, it does not distinguish it from restaurant_reviews, restaurant_menu, or restaurant_photos, which all also return details for one restaurant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many sibling restaurant_* tools. The only implied usage is that a known restaurant_id is required, which the schema already conveys through the required field.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restaurant_photosC
Get a restaurant's photos.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| restaurant_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden and delivers nothing: it does not say whether results are paginated (despite a 'page' parameter), how many photos come back, what fields each photo has, or whether any auth/rate limits apply. It repeats the title-level fact and adds no behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, but its brevity is under-specification rather than efficiency — there is no front-loaded scope, return shape, or pagination note to anchor the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no output schema, and a paged input whose semantics are undocumented, the definition leaves the agent guessing about the result shape and pagination behavior. Only the bare minimum needed to attempt a call is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate and does not. It never mentions the 'page' parameter, so pagination semantics, page size, and how to know when to stop are entirely undocumented; only 'restaurant_id' is loosely implied by the word 'restaurant's'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource (get + a restaurant's photos), which is enough to tell it apart from siblings like restaurant_reviews or restaurant_menu. It stops short of explicitly contrasting with those siblings, but the resource noun does the disambiguating work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this tool versus restaurant_detail (which may also return photos) or any other sibling, and no prerequisites or exclusions are stated. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restaurant_reviewsC
Get reviews for a restaurant.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| restaurant_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It doesn't disclose pagination behavior, result ordering, whether reviews are capped, error behavior for invalid IDs, or whether the call is read-only/safe — all of which matter for a review-listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single clean, front-loaded sentence with no waste, but its brevity comes from under-specification rather than from disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter read tool with no output schema, the agent still needs pagination semantics and a rough sense of the returned review fields; neither is present, leaving the definition underpowered for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so neither parameter is documented anywhere. The description implies restaurant_id by saying 'for a restaurant' but says nothing about the 'page' parameter, its default of 1, or what page size to expect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Get reviews for a restaurant'), which naturally separates it from siblings like restaurant_detail, restaurant_menu, and restaurant_photos. It stops short of explicitly naming those alternatives or clarifying scope (all reviews vs. a page).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus restaurant_detail or restaurant_photos, no prerequisites, and no note on how pagination should be driven. The agent must infer all usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restaurant_vacancyC
Get vacancy status for a restaurant over the next few days.
| Name | Required | Description | Default |
|---|---|---|---|
| restaurant_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden but only implies a read via 'Get'. It doesn't say whether status is real-time or cached, whether it requires the restaurant to be in a reservation network, or whether unavailable restaurants error out or return an empty result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight, front-loaded sentence with no redundancy. It is efficient, though the brevity contributes to the missing behavioral detail rather than compensating for it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description leaves key questions unanswered: how many days 'next few days' covers, what the vacancy status values look like, and granularity (per-slot vs per-day). The agent has no structured fields to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter restaurant_id is undocumented in both schema and description. It doesn't explain how to obtain an ID (e.g., from search_restaurants) or what format is expected beyond the integer type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb ('Get') and resource ('vacancy status') scoped to a restaurant and a near-term horizon. It is clearly distinguishable from siblings like restaurant_detail, restaurant_menu, and restaurant_photos, though the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when this tool is preferred over restaurant_detail or search_restaurants, and no prerequisites mentioned. The agent must infer that this is for checking availability, and there is no hint whether restaurant_detail already returns vacancy data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_restaurantsB
Search Japanese restaurants. search_type is normal, current or map; area_datatype is area1, area2, majorCity, municipal, prefecture or station; genre_datatype is genre0 to genre3; sort_mode is totalRanking, distance, accessRanking, reservationRanking or domesticMostReserved. Get ids from the area tools and suggest_search.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| range | No | ||
| latitude | No | ||
| longitude | No | ||
| sort_mode | No | ||
| search_type | No | normal | |
| area_datatype | No | ||
| genre_datatype | No | ||
| area_datatype_id | No | ||
| genre_datatype_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It lists some allowed parameter values and an ID prerequisite, but does not explain what the search types mean, how latitude/longitude/range interact, pagination behavior, result limits, or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and then parameter value lists, with little wasted text. It is dense and readable, though the run-on enumeration of parameter values is less structured than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a 10-parameter tool with no annotations and no output schema. The description omits too much: it does not clarify how the search modes work, how coordinates and range are used, pagination defaults, or what a caller receives back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must supply parameter meaning. It does add important domain values for search_type, area_datatype, genre_datatype, and sort_mode, and points to the source for area/genre IDs, but leaves page, range, latitude, and longitude entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Search Japanese restaurants.' It distinguishes the tool from detail-oriented siblings only indirectly by naming the area tools and suggest_search as ID sources, not by explicitly contrasting use cases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a useful prerequisite: 'Get ids from the area tools and suggest_search.' However, it does not explain when to choose this tool over restaurant_detail, suggest_search, or popular_nearby, nor does it state exclusions or required combinations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stationsC
List stations in a second level area.
| Name | Required | Description | Default |
|---|---|---|---|
| area2_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses almost nothing: read-only behavior is only implied by 'List', and there is no mention of result volume, ordering, pagination, or what a station record contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no padding, which is appropriately front-loaded. However, the terseness comes at the cost of the details an agent needs, so brevity here reads as under-specification rather than economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No annotations, no output schema, and an undocumented parameter mean the description must compensate for all of it, and it does not. Nothing about the hierarchy linking area_level1/area_level2 to area2_id is explained, leaving the calling workflow incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single required parameter, so the description is the only source of meaning. 'Second level area' hints that area2_id refers to a level-2 geographic area, but it gives no format, range, or how to obtain a valid id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource ('List stations') is specific, but the scope phrase 'second level area' is unexplained jargon that only indirectly maps to the area2_id parameter. An agent can guess this retrieves stations within a level-2 area, but must infer the relationship rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this versus siblings such as area_level2, popular_nearby, or tabelog_get, nor any stated prerequisite for obtaining an area2_id. The agent is left to infer the workflow entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_searchC
Autocomplete restaurants, areas and genres for a keyword.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| current_latitude | No | ||
| current_longitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not state that this is a read-only, side-effect-free lookup, nor does it describe return shape, result limits, or what happens when a keyword yields no matches. 'Autocomplete' hints at lightweight suggestions but no behavioral specifics are given.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with no filler and the purpose front-loaded. It is efficient, though its terseness borders on under-specification rather than being optimally informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, the description should explain the geo parameters and the nature of returned suggestions. It omits the lat/long semantics entirely and gives no sense of result shape, leaving the agent under-equipped to call it correctly in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is responsible for documenting three parameters. It mentions only 'keyword' implicitly and says nothing about current_latitude/current_longitude, which control proximity-based suggestions — a significant unexplained gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Autocomplete' with resources 'restaurants, areas and genres' is specific and distinguishes it in spirit from search_restaurants (completions vs full search). However, the description does not explicitly differentiate itself from its sibling search_restaurants or explain what an 'autocomplete' result is, leaving the distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'Autocomplete' — the agent can infer it is for typeahead-style suggestions, but there is no explicit when/when-not guidance and no reference to the obvious alternative search_restaurants for full search.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tabelog_getB
Read-only escape hatch: GET any endpoint name under /tabelog_inbound_appli/ from the Tabelog spec (see tabelog-api-spec).
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | ||
| endpoint | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It usefully declares the operation 'Read-only' and points to the spec for valid endpoints, but says nothing about auth requirements, error behavior for unknown endpoints, or response shape — significant gaps for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero waste that names the operation, scope, and spec reference. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic escape-hatch GET with no annotations and no output schema, an agent needs the endpoint format, how params are passed, and where the spec lives. The spec pointer and path prefix are present, but the params passthrough and error/response behavior are missing, leaving it only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain both parameters. It adds meaning for 'endpoint' (a name under the /tabelog_inbound_appli/ path) but the 'params' passthrough object — the key to actually using a generic GET — is entirely unexplained, leaving the more important half undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (GET) and resource scope (any endpoint under /tabelog_inbound_appli/), and the phrase 'escape hatch' distinguishes it from the named sibling tools like restaurant_detail or search_restaurants. It is clear this is a raw passthrough for endpoints not covered by a dedicated tool, though it doesn't name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Escape hatch' implies fallback usage — call this when no dedicated tool fits — and 'see tabelog-api-spec' points to where endpoint names come from. But there is no explicit statement of when to use this versus the 11 named siblings, nor any exclusion guidance.
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.
12 tool updates
v0.1.0- First observed
area_level1 - First observed
area_level2 - First observed
popular_nearby - First observed
restaurant_detail - First observed
restaurant_menu - First observed
restaurant_photos - First observed
restaurant_reviews - First observed
restaurant_vacancy - First observed
search_restaurants - First observed
stations - First observed
suggest_search - First observed
tabelog_get
TDQS
Scored across 12 tools
Most tools have clearly distinct purposes: restaurant detail vs reviews/menu/photos/vacancy, hierarchical area tools, and search/autocomplete. The only overlap is tabelog_get, which can reach any GET endpoint and could compete with dedicated tools, but it is explicitly framed as an escape hatch.
The names use several conventions: verb_noun (search_restaurants, suggest_search), resource_noun (restaurant_reviews), noun_detail (restaurant_detail), area_level1/2, and bare nouns like stations. They remain readable, but the pattern is not predictable.
12 tools is well-scoped for a restaurant discovery/detail server. Each tool maps to a meaningful step: location resolution, search/autocomplete, restaurant details, subresources, nearby popularity, and a generic read escape hatch.
The surface covers area hierarchy, stations, autocomplete, search, restaurant detail, reviews, menu, photos, vacancy, and nearby popularity. Minor gaps include an explicit genre taxonomy listing and reservation/booking actions, but the read-only escape hatch mitigates missing GET coverage.
Maintenance
Related MCP Connectors
Pickup orders at Japanese restaurants for AI agents: find stores, read menus, place orders. No auth.
Open places, menus, ratings and booking routes in 119 travel destinations. Read-only, no key needed.
兔兔生活(爱佳肴 Love Life): restaurant search for AI agents in China. 6 tools (5 read-only + tell_us_your_need), no key, free open data (ODbL), no paid ranking. Wake word: when the user says "兔兔生活 + need" (e.g. "兔兔生活 火锅 上海徐汇"), pass their words to ask_restaurants. Every store shows how fresh its hours, price and menu are. Missing something? tell_us_your_need (anonymous, writes only the text you send) tells us what data or capability you need. 只给 AI Agent 用的中国餐饮开放数据库:说“兔兔生活 + 需求”一句话找餐厅,每项信息标注新鲜度。免费、免密钥、不卖排名。站内没有你要的?用 tell_us_your_need 匿名告诉我们你需要什么。
AI-native restaurant discovery: verified/menu-indexed/discovered tiers + signed allergy-safety data.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables AI agents to search restaurants, check availability, and book reservations on OpenTable, including managing booking history and handling multi-factor authentication.9105 npmMIT
- AlicenseAqualityDmaintenanceEnables AI agents to search restaurants, check availability, and book reservations on OpenTable, with persistent sessions and MFA handling.9105 npm1MIT
- AlicenseNot gradedqualityBmaintenanceEnables searching restaurants on Tabelog and retrieving details, reviews, menus, ratings, photos, and online-booking availability as MCP tools, without a browser.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to concurrently search, normalize, and compare Japanese restaurant results across Tabelog, Hot Pepper Gourmet, and Google Maps, with filters for cuisine, area, reservations, and amenities. It also retrieves structured restaurant details, reviews, menus, and courses through typed MCP tools.MIT