Japan Real Estate Transaction Prices (MLIT)
Server Details
What real estate transaction prices has MLIT published for this Japanese municipality? As published.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
The four tools split cleanly into two data-lookup tools (realestate_municipalities and realestate_prices_by_municipality) and two meta/infrastructure tools (catalog and get_receipt), each with a distinct purpose. catalog and get_receipt are both server-management functions but are clearly distinguished (discovery vs. re-fetching a lost paid result), so confusion is minimal.
The two data tools use a descriptive realestate_* snake_case prefix, but catalog and get_receipt drop the domain prefix and use bare verbs/nouns, giving mixed conventions within a small set. Still readable, but not a single predictable pattern.
Four tools is on the lean side but appropriate for a focused price-data server: two domain queries plus catalog and receipt-recovery support. Nothing redundant, though it sits near the thin end for a data product.
The core lifecycle (discover municipalities -> query prices by municipality/quarter) is covered, with a receipt mechanism for paid calls. Gaps are minor, e.g. no direct name/address lookup or prefecture-level aggregation, which agents can work around via the municipality-code join path.
Available Tools
4 toolscatalogCatalog: tools, prices and limitsARead-onlyInspect
List the tools of this server with prices, data sources, licensing, daily limits and data freshness.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| legal | Yes | |
| terms | Yes | URL of the terms of service. |
| tools | Yes | Every tool of this server with its price. |
| paused | Yes | Operator pause flags (true = paused). |
| server | Yes | |
| payment | Yes | |
| provenance | No | Freshness receipts for every upstream source used. |
| daily_limits | Yes | Daily limits of paid calls (calls, usd, timezone) or a misconfiguration notice. |
| fetch_status_values | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so safety is covered. The description adds the content categories returned (prices, licensing, limits, freshness), which is useful context, but an output schema exists and would surface the same structure, so the incremental disclosure is modest.
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; every clause enumerates distinct payload content, so nothing is wasted.
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 parameters, a read-only annotation, and an output schema present, the description need not explain return values or safety. It is nearly complete for this simple tool; only a hint about when to reach for it is absent.
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 tool takes zero parameters, so there is nothing for the description to disambiguate. Baseline 4 applies under the '0 params' rule.
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?
Clear verb ("List") plus resource ("the tools of this server") and an enumeration of the payload contents (prices, data sources, licensing, daily limits, freshness). It is plainly distinguishable from siblings like get_receipt or drone_flight_check, though it does not explicitly name or contrast them.
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 explicit when-to-use or when-not-to-use guidance is given; usage is only implied by the discovery framing ("the tools of this server"). An agent can infer this is the entry point for learning available tools and pricing, but nothing states that intent directly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_receiptGet receipt of a paid callARead-onlyInspect
Re-fetch the stored result of a settled paid call by its receipt_id, for when the response was lost after payment. Free. Unknown or unsettled receipt ids return RECEIPT_NOT_FOUND. Results are kept for 90 days after settlement.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt_id | Yes | The receipt_id returned with a paid result ("rcpt_" + 64 hex characters). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tool | Yes | Name of the paid tool that produced the result. |
| terms | Yes | URL of the terms of service. |
| result | Yes | The stored result, exactly as returned by the paid call. |
| payment | Yes | |
| provenance | Yes | Freshness receipts for every upstream source used. |
| receipt_id | Yes | Receipt id of the settled paid call ("rcpt_" + 64 hex). Use with get_receipt. |
| settled_at | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well past readOnlyHint=true by disclosing cost ('Free'), the failure mode and error code (RECEIPT_NOT_FOUND for unknown/unsettled ids), and the retention window (90 days after settlement). These are exactly the runtime traits an agent needs before calling.
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?
Three short sentences, front-loaded with the action and the receipt_id, followed by behavioral facts. No filler, no restatement of the title.
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?
An output schema exists, so return values need no explanation, and the description still covers cost, error behavior, and retention limits. Nothing an agent needs to call this correctly is missing.
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% and the schema already specifies the receipt_id format ('rcpt_' + 64 hex characters, maxLength 80). The description only names the identifier without adding format or constraint detail, so the schema does the real work.
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 ('re-fetch'), specific resource ('stored result of a settled paid call'), and the keying mechanism ('by its receipt_id'). The 're-fetch ... for when the response was lost' framing clearly separates it from the unrelated sibling tools.
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 triggering scenario: use it when a paid call's response was lost after payment. It also implies the boundary condition (unknown or unsettled ids are not valid targets), but does not name an alternative tool or state a when-not clause for other lookup paths.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_municipalitiesMunicipality codes in MLIT's list, by prefectureARead-onlyIdempotentInspect
Which municipality codes and names does MLIT's Real Estate Information Library list for this Japanese prefecture? Give a prefecture code (01-47) or name. Returns the 5-digit municipality codes with Japanese and English names as published by MLIT (XIT002): the join key for realestate_prices_by_municipality and other Japanese public data. Carries the required MLIT credit.
| Name | Required | Description | Default |
|---|---|---|---|
| prefecture | Yes | Prefecture code 01-47 (e.g. 13) or name (Tokyo or 東京都). |
Output Schema
| Name | Required | Description |
|---|---|---|
| stale | Yes | true = MLIT could not be reached; this is the last list retrieved (see retrieved_at). |
| terms | Yes | URL of the terms of service. |
| total | Yes | |
| status | Yes | found = MLIT's municipality list for the prefecture; unknown = could not be read (see unknown_reason). |
| prefecture | Yes | |
| provenance | Yes | Freshness receipts for every upstream source used. |
| source_url | Yes | |
| answered_at | Yes | |
| attribution | Yes | Required credit (MLIT API terms, Article 7; credit_ja is the required wording) and the statement that counts and statistics are computed by MK Career Planning. Keep it when you pass results on. |
| legal_notice | Yes | |
| retrieved_at | Yes | |
| municipalities | Yes | |
| unknown_reason | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld), so the bar is lower. The description still adds genuinely useful context beyond the structured fields: the result shape (5-digit codes with Japanese and English names), the upstream dataset identifier XIT002, and the required MLIT credit/attribution obligation.
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?
Front-loaded as a question that frames the purpose, followed by input format and output description. Slightly long with the trailing 'and other Japanese public data' / attribution clauses, but every sentence carries relevant information and nothing is padded.
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?
The tool is simple (one parameter, no nesting), an output schema exists so return values need no further explanation, and the description still supplies dataset provenance and attribution requirements. Nothing an agent needs to invoke it correctly is missing.
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 100% and the single parameter already documents the accepted formats (code 01-47 or name such as Tokyo/東京都). The description restates the same input options without adding format, validation, or edge-case detail, so the baseline of 3 applies.
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 — retrieving the MLIT-listed municipality codes and names for a given Japanese prefecture — and names the source dataset (XIT002). It also distinguishes itself from the sibling realestate_prices_by_municipality by identifying itself as the join key for that tool.
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?
Tells the agent the required input format (prefecture code 01-47 or name) and implicitly frames this as the lookup step preceding realestate_prices_by_municipality. There is no explicit when-not guidance, but the routing context is clear for a single-purpose lookup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
realestate_prices_by_municipalityReal estate prices published by MLIT, by municipalityARead-onlyIdempotentInspect
What real estate transaction and contract prices has MLIT (Japan) published for this municipality and quarter? Give a 5-digit municipality code and up to 8 quarters (YYYY-Qn). Per quarter and per classification (never pooled): records_published, no_records_published or unknown with a reason, record counts, min/median/max computed by us (null below 5 values), and a capped sample of records as published. Carries the required MLIT credit. Statistics as published; not an appraisal or advice.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last quarter, e.g. 2025-Q4 (default: same as from). At most 8 quarters per request. | |
| from | Yes | First quarter, e.g. 2025-Q1 (Q1 = Jan-Mar). Transaction prices start at 2005-Q3, contract prices at 2021-Q1. | |
| sample_size | No | Number of published records to include as a sample, 0-50 (default 10). total and truncated tell how many matched. | |
| property_type | No | Optional filter on MLIT's transaction type: land (宅地(土地)), land_and_building (宅地(土地と建物)), used_condominium (中古マンション等), agricultural_land (農地), forest_land (林地). | |
| municipality_code | Yes | 5-digit Japanese municipality code, e.g. 13101 (Chiyoda, Tokyo). Find codes with realestate_municipalities. Unknown codes are rejected, not guessed. | |
| price_classification | No | transaction (MLIT 不動産取引価格情報), contract (MLIT 成約価格情報) or both (default). |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| terms | Yes | URL of the terms of service. |
| sample | Yes | |
| status | Yes | records_published = at least one quarter has published records matching the query; no_records_published = every quarter was answered and none has matching records; unknown = nothing found and at least one quarter could not be determined (see quarters[].unknown_reason). An upstream failure is never reported as no records. |
| complete | Yes | true when no quarter is unknown. |
| quarters | Yes | |
| provenance | Yes | Freshness receipts for every upstream source used. |
| answered_at | Yes | |
| attribution | Yes | Required credit (MLIT API terms, Article 7; credit_ja is the required wording) and the statement that counts and statistics are computed by MK Career Planning. Keep it when you pass results on. |
| legal_notice | Yes | |
| municipality | Yes | As published in MLIT's municipality list (XIT002). Null when the list could not be read. |
| retrieved_at | Yes | Earliest time the data used here was retrieved from MLIT (cached answers keep their original retrieval time). |
| computed_note | Yes | |
| quarters_covered | Yes | Quarters actually answered (records_published or no_records_published). |
| small_sample_min | Yes | Statistics with fewer values than this return only n (min, median and max are null). |
| quarters_requested | Yes | |
| classification_note | Yes | Transaction and contract prices are summarised separately; the same deal may appear in both datasets. |
| max_quarters_per_request | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds real behavioral context beyond the annotations: results are never pooled, always split per quarter and per classification, counts may be records_published/no_records_published/unknown with a reason, min/median/max are our own computation and become null below 5 values, and the sample is capped. It also flags the required MLIT credit and that this is not an appraisal or advice.
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?
Front-loaded question then a compact enumeration of inputs and outputs; dense but no filler sentences, and the credit/disclaimer is short.
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 an output schema present and annotations covering read-only/idempotent/open-world safety, the description fills the remaining gaps well: output shape caveats (pooling, small-sample nulls, capped sample) and the published-not-advice framing.
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 parameters are fully documented structurally. The description only echoes the 'up to 8 quarters (YYYY-Qn)' constraint and the per-classification split, adding little 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+resource in a question form: which MLIT-published transaction/contract prices exist for a municipality and quarter. It is clearly distinct from realestate_municipalities (code lookup), though it names no sibling explicitly in the description itself.
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 implied: supply a municipality code and up to 8 quarters, with classification choice. There is no explicit when-to-use/when-not or routing to siblings beyond the in-schema pointer to realestate_municipalities for code lookup.
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.
4 tool updates
- First observed
catalog - First observed
get_receipt - First observed
realestate_municipalities - First observed
realestate_prices_by_municipality
Related MCP Connectors
Japan real estate data: transactions, land prices, vacancy, hazard, zoning & more.
Real Estate Japan MCP — actual residential/commercial transaction prices and
Land Price Japan MCP — official Japanese land prices (地価公示 / 地価調査)
国土交通省の不動産情報ライブラリから不動産価格データを取得するためのサービスです。
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceJapanese real-estate actual transaction prices and official land prices (official MLIT Reinfolib data): search by area, period, and property type, with published land-price reference points.-
- AlicenseNot gradedqualityBmaintenanceProvides access to actual residential and commercial real estate transaction prices in Japan.29 npmMIT
- AlicenseNot gradedqualityBmaintenanceAccess official Japanese land prices (地価公示/地価調査) through the Pipeworx MCP gateway.29 npmMIT

cenogram-mcp-serverofficial
AlicenseAqualityAmaintenance7M+ real estate transactions from Poland's RCN registry. Search, compare, and analyze prices2877 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.