Japan Restaurant Calories
Server Details
Nutrition facts for 24,000+ menu items of 100+ Japanese restaurant chains (kcal, PFC, salt, vitamins), each with the chain's source document. Search items, total a meal, and request missing chains.
- Status
- Healthy
- Uptime
- 100.0% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: listing covered chains/makers, searching menu items, summing selected item IDs, and reporting missing coverage. The overlap between chain names appearing in search_menu and list_chains is well clarified by the descriptions, so an agent can select confidently.
All tool names use snake_case with a verb-first pattern: list_chains, request_missing, search_menu, sum_items. The convention is consistent throughout, even though request_missing uses an adjective rather than a noun object.
Four tools is well-scoped for a focused nutrition lookup server. Each tool earns its place by covering discovery, search, aggregation, and feedback without unnecessary surface area.
The surface covers the main lifecycle: browse chains/makers, search items with nutrients, sum selected items, and request missing coverage. A direct get-item-by-id tool could be useful, but search_menu returns IDs, URLs, and source files, so the gap is minor and workable.
Available Tools
4 toolslist_chainsList covered chainsARead-onlyIdempotentInspect
List the restaurant chains, stores and packaged-food makers covered (makers have type: packaged_food_maker), with item counts (current items only), which nutrients each chain publishes and when the data was fetched. query filters by chain name and also returns each chain's source document URL.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/closed-world, so the bar is lower; the description still adds real value by disclosing that counts are current-items-only and that fetch timestamps and source document URLs come back. It does not say whether results are paginated or how large the list typically is.
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 dense but well-ordered sentence: scope first, then the parenthetical type clarification, then return contents, then the parameter's effect. No filler sentences.
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 output schema exists, and the description compensates by enumerating the returned fields, while annotations cover the safety profile. Minor gaps remain around ordering and result size for what is presumably an unpaginated list.
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% — the single 'query' parameter has no description at all — so the description carries the burden, and it does explain that query filters by chain name and additionally surfaces each chain's source document URL. It omits matching semantics (exact vs substring, case sensitivity).
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?
Names a specific verb and resource ('List the restaurant chains, stores and packaged-food makers covered') and enumerates the returned fields: item counts, nutrients per chain, and fetch date. The parenthetical 'makers have type: packaged_food_maker' resolves an ambiguity an agent would otherwise have to guess about.
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: the tool lists the covered universe, so an agent can infer it's the discovery step before search_menu or sum_items, but neither sibling is named and no when-not condition is given. Adequate but leaves routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
request_missingRequest a missing chain or itemAInspect
Tell the site operator that a restaurant chain or menu item is missing. Use only after search_menu / list_chains could not find it AND the user actually wanted it. One request per chain or item. Only the chain, item and note are stored (no personal information is needed or kept). Requests are counted (not shown publicly) and used to decide what to add next. Some chains do not publish nutrition values at all, so a request does not guarantee coverage.
| Name | Required | Description | Default |
|---|---|---|---|
| item | No | Menu item name, if a specific item is missing. | |
| note | No | Optional short context, e.g. "seasonal item", "new menu from October". | |
| chain | Yes | Restaurant chain name, e.g. 天下一品. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the generic safe-write profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false); the description adds substantive behavior: no personal data is stored, requests are counted but not shown publicly, they only influence future additions, and coverage is not guaranteed. This is exactly the kind of context annotations cannot carry.
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?
Five short sentences, each carrying a distinct fact (action, precondition, cardinality, data retention, outcome expectation), with the purpose front-loaded and no filler.
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 non-destructive, non-idempotent submission tool with no output schema, the description covers purpose, prerequisites, data handling and expected outcome, leaving nothing an agent needs in order to call it correctly.
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 100%, so the schema already documents chain, item and note with limits and examples. The description adds only the reassurance that just those three values are stored, which is useful but does not extend parameter meaning beyond the schema.
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 ('Tell the site operator that a restaurant chain or menu item is missing') and names the exact siblings (search_menu / list_chains) it complements, so an agent can place it precisely in the workflow.
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?
Gives an explicit precondition ('only after search_menu / list_chains could not find it AND the user actually wanted it') plus a cardinality rule ('one request per chain or item'), which covers both when to use it and when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sum_itemsTotal a mealARead-onlyIdempotentInspect
Add up nutrition for a set of items (a meal, a day) using ids from search_menu. Nutrients that some items do not publish are reported in incomplete, because their total is an underestimate.
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description still adds genuinely non-obvious behavior: unpublished nutrients surface in an `incomplete` field and the total is an underestimate. That return-value caveat is exactly what annotations cannot convey and there is no output schema to carry it. It omits any mention of the 30-item cap or quantity bounds.
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?
Two tight sentences with zero filler; the core action is front-loaded and the caveat follows as supporting detail. Every clause earns 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 single-parameter aggregation tool with no output schema, the description covers the action, the input source, and the one surprising output behavior (`incomplete`). It would be fully complete if it mentioned the item/quantity limits an agent must respect.
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 description reinforces the source of the `id` value (search_menu) and frames `items` as "a set of items," but says nothing about the nesting, the per-item `quantity` field, its default of 1, or the 0.1–20 range and 30-item cap. It adds only marginal meaning over the schema.
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+resource ("Add up nutrition for a set of items") and scopes it with concrete use cases ("a meal, a day"). It also names the sibling tool that produces the required input ("ids from search_menu"), so it is distinguishable from list_chains and request_missing without opening a schema.
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?
Gives clear usage context (aggregating a meal or a day) and an implicit prerequisite: items must come from search_menu. It does not state when NOT to use it or name an alternative path, so it stops short of full when/when-not 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.
1 tool update
- Changed
search_menu1 field changed- changed
Input schema / properties / genre / enumPrevious value: -[ - "デザート", - "ドリンク", - "ごはん・サイド", - "寿司", - "麺類", - "カレー", - "丼もの", - "バーガー", - "ピザ", - "揚げ物", - "ステーキ・肉料理", - "餃子・中華", - "定食・セット", - "サラダ・野菜", - "スープ・汁物", - "調味料・トッピング", - "その他" -]New value: +[ + "デザート", + "お菓子・スナック", + "ドリンク", + "ごはん・サイド", + "寿司", + "麺類", + "カレー", + "丼もの", + "バーガー", + "ピザ", + "揚げ物", + "ステーキ・肉料理", + "餃子・中華", + "定食・セット", + "サラダ・野菜", + "スープ・汁物", + "調味料・トッピング", + "その他" +]
2 tool updates
- Changed
request_missing1 field changed- changed
Input schema / properties / chain / descriptionPrevious value: -"Restaurant chain name, e.g. 丸亀製麺."New value: +"Restaurant chain name, e.g. 天下一品."
- Changed
search_menu1 field changed- added
Input schema / properties / sort / descriptionAdded value: +"Default: nutrient_desc when nutrient is given, else relevance when query is given, else kcal_asc."
1 tool update
- Changed
search_menu1 field changed- changed
Input schema / properties / nutrient / descriptionPrevious value: -"Only items that publish this nutrient."New value: +"Only items that publish this nutrient. net_carb_g is net carbohydrate (carbohydrate minus fiber, 糖質); sugar_g is sugars (糖類) — different quantities. Keys: kcal=エネルギー(kcal), protein_g=たんぱく質(g), fat_g=脂質(g), saturated_g=飽和脂肪酸(g), carb_g=炭水化物(g), net_carb_g=糖質(g), sugar_g=糖類(g), fiber_g=食物繊維(g), salt_g=食塩相当量(g), sodium_mg=ナトリウム(mg), potassium_mg=カリウム(mg), calcium_mg=カルシウム(mg), phosphorus_mg=リン(mg), iron_mg=鉄(mg), vit_a_ug=ビタミンA(μg), retinol_ug=レチノール(μg), carotene_ug=β-カロテン当量(μg), vit_b1_mg=ビタミンB1(mg), vit_b2_mg=ビタミンB2(mg), niacin_mg=ナイアシン(mg), vit_c_mg=ビタミンC(mg), vit_d_ug=ビタミンD(μg), vit_e_mg=ビタミンE(mg), cholesterol_mg=コレステロール(mg), ash_g=灰分(g), weight_g=重量(g)"
1 tool update
- Changed
search_menu1 field changed- changed
Input schema / properties / nutrient / enumPrevious value: -[ - "kcal", - "protein_g", - "fat_g", - "saturated_g", - "carb_g", - "sugar_g", - "fiber_g", - "salt_g", - "sodium_mg", - "potassium_mg", - "calcium_mg", - "phosphorus_mg", - "iron_mg", - "vit_a_ug", - "retinol_ug", - "carotene_ug", - "vit_b1_mg", - "vit_b2_mg", - "niacin_mg", - "vit_c_mg", - "vit_d_ug", - "vit_e_mg", - "cholesterol_mg", - "ash_g", - "weight_g" -]New value: +[ + "kcal", + "protein_g", + "fat_g", + "saturated_g", + "carb_g", + "net_carb_g", + "sugar_g", + "fiber_g", + "salt_g", + "sodium_mg", + "potassium_mg", + "calcium_mg", + "phosphorus_mg", + "iron_mg", + "vit_a_ug", + "retinol_ug", + "carotene_ug", + "vit_b1_mg", + "vit_b2_mg", + "niacin_mg", + "vit_c_mg", + "vit_d_ug", + "vit_e_mg", + "cholesterol_mg", + "ash_g", + "weight_g" +]
Related MCP Connectors
Resolve Japanese food names to nutrition facts. All 2,538 foods from Japan's official tables.
Food and nutrition data: search, macros, and comparisons
Search foods, compare nutrients, and look up the full USDA FoodData Central database.
Nutrition for more than 1,100 plant foods from 30 national tables, plus GB/EU & US claim checking
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for Japanese food nutrition data, enabling bilingual JP/EN lookups across konbini, restaurant chains, and grocery brands.660 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to resolve Japanese food names to nutrition facts per 100g based on official Japanese food composition data.MIT
- FlicenseNot gradedqualityCmaintenanceProvides access to Taiwan packaged food and chain restaurant nutritional information, including search, nutrition calculation, and draft creation for new data.-
- AlicenseAqualityDmaintenanceProvides comprehensive Chinese food nutrition data with tools to search, compare, and filter foods by nutrient values.543 npm8MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.