Skip to main content
Glama
sugukurukabe

japan-real-estate-intel

by sugukurukabe

Japan Real Estate Intel MCP

npm version npm downloads CI License: AGPL-3.0 Node.js >= 20 Docker MCP Registry awesome-mcp PR

Cross-analyze Japanese real estate data across 10 prefectures via MCP. Land prices, disaster risk, population, foot traffic, education, corporate presence, PLATEAU 3D buildings, renovation yield, and contract support — all accessible through Claude, ChatGPT, Cursor, or any MCP client.

Registry: io.github.sugukurukabe/japan-real-estate-intel-mcp · Growth / listings: docs/growth-playbook.md

Try in 60 seconds (Free tier — safe for demos)

Copy into Claude, Cursor, or ChatGPT after npx @sugukuru/japan-real-estate-intel-mcp:

discover_opportunities で愛知県の investment 向けエリアを探して。limit=5

More copy-paste prompts (3 demos, no Pro tools): docs/free-demo-prompts.md
Map only: Dashboard (Aichi)

Do not demo PDF reports, Linear numeric sim, or contract tools on the default Free plan — they require Pro. See tiers and pro-demo-setup.md.

Related MCP server: Estaite Solutions

Data freshness & trust

Item

Detail

Coverage

10 prefectures (bundled CSV); not all 47 prefectures

Update

Run npm run data:fetch (requires MLIT_API_KEY / ESTAT_APP_ID for live sources) — recommend quarterly refresh for production

Free tier

~50 tool calls / month (UTC), applies to both the public https://realestate-mcp.jp connector (per MCP session) and self-hosted stdio (per client) — see TIER_MONTHLY_TOOL_CALLS. Pro/Enterprise unlock via license key, no relation to API_KEY

Live MLIT

Optional MLIT_API_KEY for fresher transactions in tools like detect_arbitrage_signals

Quick Install

Claude Desktop (stdio):

npx @sugukuru/japan-real-estate-intel-mcp

Claude Desktop (remote — no login/API key required):

{
  "mcpServers": {
    "japan-real-estate-intel": {
      "url": "https://realestate-mcp.jp/mcp"
    }
  }
}

https://realestate-mcp.jp is an authless public connector — no headers needed. X-Api-Key only applies if you self-host with API_KEY set (see docs/deploy.md); X-License-Key / _licenseKey unlocks Pro/Enterprise tiers on any instance (see pro-demo-setup.md) — the two are unrelated.

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "japan-real-estate-intel": {
      "command": "npx",
      "args": ["@sugukuru/japan-real-estate-intel-mcp"]
    }
  }
}

Key Features

  • 38 tools covering market analysis, risk assessment, forecasts, renovation yield, contract support, zoning, vacancy, population outlook, macro snapshots, price triangulation arbitrage, portfolio optimization, demographic forecasting, and building code compliance audit

  • 10 prefectures: Aichi, Tokyo, Osaka, Fukuoka, Hokkaido, Kanagawa, Kyoto, Hyogo, Saitama, Chiba

  • 17+ data sources: land prices, 路線価 (rosenka), disaster hazards (earthquake + flood), population, zoning, vacancy, population projection, foot traffic, education, corporate, transport, commercial, medical, PLATEAU 3D

  • Interactive dashboard with 2D map, 3D PLATEAU view, responsive PWA, and price triangulation panel

  • Bilingual English + Japanese tool descriptions and UI

  • MCP Apps UI for Claude Desktop and Cursor

  • Tiered access (free / pro / enterprise)

Links: Dashboard | Privacy Policy | Terms | API Docs | Demo script

Author & community

Maintainer

@sugukurukabe · npm @sugukuru

Story

Implementation story (JA) · Registry publish blog (EN)

Industry (Nagoya)

Pitch scenarios · Follow-up sheet

Customer stories

customer-stories.md (seeking first published case)

Contribute

CONTRIBUTING.md · Good first issues


日本語セクション (Japanese)

日本の不動産投資・仲介・開発・管理向けに、地価・取引価格・路線価・人口統計・災害リスク・人流・教育環境・企業立地・交通・商業施設・医療福祉・3D 日照シミュレーション・町丁目実データ をクロス分析する MCP サーバー。

v8.0.0 — Claude公式ディレクトリ審査対応。OAuth撤去、認証不要(authless)の公開コネクタに単純化(Pro/Enterprise はECDSA署名ライセンスキーのみで解放)。getRequestTierの署名なしバイパス除去・/api/licenseのStripeセッションID化・/metrics鍵保護など各種セキュリティ修正。全38ツールにtitle・idempotentHintを付与。生成レポート/CSV/Excelをresource_link(HTTP: /artifacts/:id、stdio: artifact://)でダウンロード可能に。ダッシュボードのウィジェットカードにCSV/PNGエクスポートツールバーを追加。

v7.0.0 — MCP Apps 公式SDK(@modelcontextprotocol/ext-apps)へ移行。2D地図・3D PLATEAUビューア・ツール別ウィジェットを React + Vite の単一ダッシュボードに統合。

v6.15.4 — セキュリティ強化(秘密鍵除去・デモキー本番ガード・/metrics 認証保護)、Tier 設定補完、MCP 仕様準拠監査合格(4プリミティブ + MCP Apps + OAuth 2.1)、Glama 掲載。

v6.15.2 — Free プラン月間ツール上限(50回/月 UTC)、Glama 用 Dockerfile.glama、外部掲載手順更新。

v6.15.1 — 公式 MCP Registry 掲載(io.github.sugukurukabe/japan-real-estate-intel-mcp)。npm mcpName 整合。

v6.15.0 — 路線価(NTA)×公示地価×取引価格の三角測量で「割安物件・相続有利エリア・市場過熱」をスキャンする detect_arbitrage_signals を追加。総合価値スコアにアービトラージ補正を加味。あわせて県単位マクロを一枚にまとめる get_real_estate_macro_snapshot(地価YoY・取引件数・人口減、任意で e-Stat 建築着工・金利プロキシ)を追加。

v6.13.0 — 用途地域・空き家率・将来人口推計データを追加、総合価値スコア 5 軸融合、Opportunity Radar 強化、全 10 都道府県の災害リスクCSV完備。Anthropic MCP Registry / OpenAI Apps Directory 対応。

不動産業者の方へ

3 分で始められるガイドはこちら: 不動産業者向けクイックスタート

ダッシュボード: https://realestate-mcp.jp/dashboard.html


はじめての方へ — クイックスタート

ダッシュボード(ブラウザ)で試す

open_dashboard ツールでダッシュボードを開くと、初回起動時に「クイックスタート」ポップアップが自動表示されます。 6 つのサンプルシナリオをワンクリックで試せます。

カード

内容

地価トレンド予測

新宿区の5年後地価をAI予測。CAGR・投資シグナル付き

企業立地需要分析

名古屋市中区のオフィス・工場需要スコアを算出

ファミリー向け適性評価

横浜市西区の教育・安全・医療スコアを総合評価

ポートフォリオ最適化

東京・大阪・埼玉の3エリアに投資配分を最適化

What-If シナリオ分析

大阪市中央区で新駅開設シナリオを試算

店舗出店適地評価

福岡市博多区の人流・商業施設・交通データで出店適性を判定

次回から表示しない場合は「次回から表示しない」をクリック。 いつでも右パネルの「クイック事例を見る →」リンクで再表示できます。


Claude / Cursor チャットで試す

MCP Prompt quick_start_examples を呼び出すと、コピー&ペーストできるサンプルコード(Free / Pro・Enterprise 別)を一覧表示します。

# Cursor または Claude でプロンプトを呼び出す
quick_start_examples

または、ライセンスキー不要で今すぐ動く Free tier の例をそのままチャットに貼り付けて実行:

# 1. Opportunity Radar(次に見るべきエリア発見)
discover_opportunities({ "prefecture": "愛知県", "goal": "investment", "horizon": "3y", "limit": 5 })

# 2. 地価トレンド予測
forecast_land_price_trend({ "prefecture": "東京都", "city": "新宿区", "horizon": "5y" })

# 3. 価格の歪み検出(路線価×公示地価×取引価格)
detect_arbitrage_signals({ "prefecture": "愛知県", "signalType": "discount" })

Pro/Enterprise限定predict_corporate_demand / assess_family_friendly_score / portfolio_optimizer / scenario_what_if / evaluate_store_location 等)を試す場合は、_licenseKey 引数または X-License-Key ヘッダーにライセンスキーを渡してください。デモキーの入手方法は docs/pro-demo-setup.md を参照。


履歴メモ: v1.0(2025年11月、愛知県6ツール)から段階的に全国展開・機能拡張してきました。詳細な変遷は docs/implementation-story.md(v6.15.0時点のスナップショット)と CHANGELOG.md を参照してください。現行(v8.0.0)の正は文書冒頭(Key Features)、server.jsontoolspnpm test の結果です。10都道府県すべてが地価・災害リスク・人口・町丁目データを含む主要機能に対応しています。データソース別の詳細な対応可否は src/data-loaders/ 各ローダーの capabilities フィールドを参照してください。

特徴

  • 38 ツール: 市場クロス分析 / リスク / ファミリー / 法人需要 / レポート / ダッシュボード / 都道府県比較 / ドリルダウン / 出店 / 日照シミュ / 予測・What-If / PF 最適化 / リノベ・契約・用途地域・空き家率・人口推計・マクロ・アービトラージ / 人口動態予測 / 建築基準適合監査 等(詳細は冒頭 Key Features)

  • 12 レイヤーダッシュボード + 3D ビューア: 地価 / 災害リスク / 取引 / 人口 / 人流 / 学区 / 企業密度 / 3D 建物 / 交通 / 商業施設 / 医療 / 影 + Three.js 3D ビューア

  • 10 都道府県対応: 愛知県(フル機能・名古屋市町丁目データ)/ 東京都・大阪府・福岡県・北海道・神奈川県・京都府・兵庫県・埼玉県・千葉県(標準対応)

  • 町丁目実データ: 名古屋市を中心に、町丁目レベルの人口・世帯・計画データ等(対象エリアはデータソースに依存)

  • 都道府県セレクタ: ダッシュボード上で 10 都道府県を切り替え、比較モードで任意の 2 エリアを並列表示

  • 比較モード(v2.1 フル機能): 地図 2 分割 + SVG レーダーチャート + ランキングテーブル + bestFor 表示

  • ドリルダウンパネル(v2.1 new): 市区町村クリックで詳細パネル展開。町丁目ラベル入力対応

  • stdio + Streamable HTTP: 両トランスポート対応

  • TypeScript strict + Zod: 型安全な入出力スキーマ

  • プラガブル: BaseLoader を継承して新県を追加

クイックスタート


git clone https://github.com/sugukurukabe/japan-real-estate-intel-mcp.git

cd japan-real-estate-intel-mcp

pnpm install

pnpm build

stdio(ローカル)


node dist/index.js

Streamable HTTP(リモート)


node dist/http.js

# → http://0.0.0.0:3100/mcp

クライアント設定

Claude Desktop


{

  "mcpServers": {

    "japan-real-estate-intel": {

      "command": "node",

      "args": ["dist/index.js"],

      "cwd": "/path/to/japan-real-estate-intel-mcp"

    }

  }

}

Cursor (.cursor/mcp.json)


{

  "mcpServers": {

    "japan-real-estate-intel": {

      "command": "node",

      "args": ["dist/index.js"],

      "cwd": "/path/to/japan-real-estate-intel-mcp"

    }

  }

}

ツール一覧(参考: v2.3 時点の 10 本)

現行38 ツールです。完全な一覧はリポジトリ直下の server.jsontools 配列、または pnpm test が通る tests/server_json_tools_sync.test.ts を参照してください。

cross_analyze_real_estate_market

都道府県内エリアの不動産市場をクロス分析。includeHumanFlow / includeEducation / includeCorporate / includeTransport / includeCommercial / includeMedical フラグで付加情報をオプトイン。

| パラメータ | 型 | デフォルト | 説明 |

|---|---|---|---|

| prefecture | string | "愛知県" | 都道府県名 |

| area | string | - | エリア名 |

| propertyType | enum | - | residential / commercial / logistics / office / mixed |

| timeRange | enum | - | 1y / 3y / 5y |

| includeRisk | boolean | true | 災害リスクを含むか |

| includeHumanFlow | boolean | true | 人流データを含むか |

| includeEducation | boolean | false | 教育データを含むか |

| includeCorporate | boolean | false | 企業データを含むか |

| includeTransport | boolean | false | 交通利便性データを含むか (v2.2) |

| includeCommercial | boolean | false | 商業施設データを含むか (v2.2) |

| includeMedical | boolean | false | 医療施設データを含むか (v2.2) |

ローダーがデータセットを提供しない場合、該当フィールドは undefined になり、keyInsights 等に 「当該都道府県では未提供」 の旨が表示されます。

assess_property_risk

特定住所の浸水・土砂・地震リスクを評価し、リスクスコアと価格調整率を算出。

assess_family_friendly_score

学区・教育環境・犯罪統計を加味したファミリー物件評価。子育て世帯向け資産価値を算出。

predict_corporate_demand

企業立地・事業所統計・通勤データで法人需要を予測。

generate_area_report

投資/開発/賃貸/管理レポートを Markdown 形式で生成。

open_dashboard

12 レイヤーの不動産ダッシュボードを起動。比較モード(地図 2 分割 + SVG レーダー)、ドリルダウンパネル、影シミュレーション(時刻プリセット)を搭載。

compare_prefectures (v2.1 新設)

2〜5 都道府県を複数メトリクスで比較分析。レーダーチャート・ランキング・差分ハイライト・bestFor を返す。

| パラメータ | 型 | デフォルト | 説明 |

|---|---|---|---|

| prefectures | string[] (2-5) | - | 比較対象都道府県名リスト |

| area | string | optional | 代表エリア(省略時: 愛知→名古屋市中区、東京→千代田区) |

| neighborhood | string | optional | 町丁目ラベル(v2.1 はレポートへの反映のみ) |

| propertyType | enum | "mixed" | residential / commercial / logistics / office / mixed |

| metrics | enum[] | ["price","risk","investment"] | 比較指標(price/risk/humanFlow/education/corporate/investment/transport/commercial/medical) |

| includeMarkdown | boolean | true | Markdown レポートを含むか |

出力: scores[](各都道府県スコア), ranking[], radarData[](SVG 用正規化値), diffs[](差分ハイライト), bestFor(投資/安全/成長別おすすめ), markdownReport

drill_down_local_analysis (v2.1 新設)

市区町村・町丁目レベルのドリルダウン分析。ローカル不動産屋向けセールスピッチと Markdown レポートを生成。

| パラメータ | 型 | デフォルト | 説明 |

|---|---|---|---|

| prefecture | string | "愛知県" | 都道府県名 |

| city | string | - | 市区町村名(例: "名古屋市中村区") |

| neighborhood | string | optional | 町丁目(例: "名駅南1丁目")。v2.1 はラベルのみ |

| focus | enum | "all" | price / risk / demand / all |

出力: pricePerSqm, population, riskScore, floodLevel, humanFlowScore, transportScore, commercialDensity, medicalDensity, competitorDensity, localPitch(セールスピッチ文), keyInsights[], markdownReport, households?, avgAge?, childRatio?, elderlyRatio?, daytimePopRatio?, popDensity?, neighborhoodDataAvailable?

v2.4 新機能: neighborhood 指定時に町丁目実データ(人口・世帯・年齢構成・昼夜間人口比)を返却します。データが無い場合は市区町村レベルの推定値を使用します。

evaluate_store_location (v2.2 新設)

コンビニ・ファミレス・カフェ・ドラッグストア・スーパーの出店適地評価。店舗タイプ別に重み付けを自動調整し、人口・人流・リスク・競合・交通・教育・商業施設・医療の 8 軸でスコアリング。

| パラメータ | 型 | デフォルト | 説明 |

|---|---|---|---|

| prefecture | string | "愛知県" | 都道府県名 |

| city | string | - | 市区町村名 |

| neighborhood | string | optional | 町丁目ラベル |

| storeType | enum | - | convenience / family_restaurant / cafe / drugstore / supermarket |

| radiusM | number | 500 | 競合・施設検索半径(m) |

| customWeights | Record | optional | カスタム重み付け(省略時はタイプ別デフォルト) |

| includeMarkdown | boolean | true | Markdown レポートを含むか |

出力: overallScore (0-100), breakdown(8 軸スコア), keyCompetitors[](距離・チェーン名・強度・弱点), differentiationSuggestions[](AI 差別化提案), keyInsights[], markdownReport

simulate_landscape_impact (v2.3 新設)

SunCalc 太陽位置計算 + PLATEAU 3D 建物データから指定地点の日照・影をシミュレーション。影ポリゴン([lat,lng][] 配列)を返すため、ダッシュボードや GIS に直接描画可能。

| パラメータ | 型 | デフォルト | 説明 |

|---|---|---|---|

| prefecture | string | "愛知県" | 都道府県名 |

| lat | number | - | 対象地点の緯度 |

| lng | number | - | 対象地点の経度 |

| dateTime | string | 現在時刻 | シミュレーション日時(ISO 8601) |

| timePreset | enum | optional | morning(8:00) / noon(12:00) / evening(17:00) |

| radiusM | number | 500 | 建物検索半径(m) |

| includeMarkdown | boolean | true | Markdown レポートを含むか |

出力: sunPosition(方位角・高度), nearbyBuildingCount, maxHeight, avgHeight, totalShadowAreaSqm, sunlightHoursEstimate, shadowPolygons[](建物名・高さ・影長・ポリゴン座標), highImpactBuildings[], keyInsights[], markdownReport

Resources(現行 URI パターン)

| URI | 説明 |

|---|---|

| realestate://land-price/{prefecture}/{area} | 地価公示データ |

| hazard://flood/{prefecture}/{area} | 浸水想定区域 GeoJSON |

| stats://population-trend/{prefecture}/{area} | 人口統計 |

| ui://japan-real-estate-intel/dashboard | ダッシュボード HTML(MCP Apps) |

| artifact://{id} | generate_area_report 等が生成したPDF/Excel/CSV/Markdownのダウンロード(stdio)。HTTPトランスポートでは代わりに resource_link として GET /artifacts/:id/:filename を返す |

例: realestate://land-price/aichi/名古屋市中区, realestate://land-price/tokyo/世田谷区

都道府県の追加手順

新しい県を追加する場合:

  1. data/<key>/ に最低限のファイルを配置:

    • land_price.csv, population.csv, flood.geojson, earthquake.json, municipalities.topojson

  2. src/data-loaders/<key>-loader.ts を作成(BaseLoader を継承、capabilities を宣言)

  3. src/data-loaders/index.tsregisterLoader(new XxxLoader()) を 1 行追加

  4. src/prefecture/resolver.tsPREFECTURE_KEYS にエイリアスを追加

それだけで prefecture: "大阪府" が全ツールで動作します。

データ出典

| データ | 出典 | 取得日 |

|---|---|---|

| 地価公示 | 国土交通省 | 2025-12-01 |

| 不動産取引価格 | 国土交通省 | 2025-12-01 |

| 浸水・土砂災害 | 国土交通省ハザードマップ | 2025-12-01 |

| 地震想定 | 内閣府 | 2025-12-01 |

| 人口統計 | 総務省 e-Stat | 2025-12-01 |

| 人流統計 | 国土交通省「全国うごき統計」| 2025-12-01 |

| 教育データ | 愛知県教育委員会 + e-Stat | 2025-12-01 |

| 事業所統計 | 総務省 e-Stat | 2025-12-01 |

| 犯罪統計 | 愛知県警察オープンデータ | 2025-12-01 |

| 3D都市モデル | 国土交通省 PLATEAU | 2025-12-01 |

| 交通利便性 | 国土交通省交通データ + JR/私鉄/市営地下鉄 | 2026-05-01 |

| 商業施設 | 商業統計 + チェーン店立地データ | 2026-05-01 |

| 医療福祉施設 | 厚労省オープンデータ | 2026-05-01 |

データについて: 各データは上記の取得日時点の本番データです。投資判断・契約判断には専門家へのご相談を併せてお願いします。

開発


pnpm install

pnpm dev          # TypeScript watch

pnpm build:ui     # ダッシュボード再ビルド

pnpm test         # Vitest (800+ tests, 59 files)

pnpm lint         # 型チェック

ロードマップ

v8.0.0(現バージョン)

  • OAuth撤去 → authless公開コネクタ化(Pro/Enterprise は X-License-Key / _licenseKey のECDSA署名済みライセンスキーで解放)

  • generate_area_report 等5ツールがPDF/Excel/CSV/Markdownを resource_link アーティファクトとしてダウンロード可能に

  • ダッシュボードの各ウィジェットにCSV/PNGエクスポート機能を追加

  • 全38ツールに title / outputSchema / 正確な idempotentHint 等のアノテーションを完備

  • 10 都道府県 / 38 ツール(server.json と実行時で一致) / 800+ テスト(59 ファイル)

詳細は CHANGELOG.mddocs/releases/v8.0.0.md を参照。

ライセンス

AGPL-3.0-only(LICENSE 参照)

Available Tools

12 tools
analyze_commute_accessibility通勤アクセシビリティ分析A
Read-onlyIdempotent
Inspect

Transit commute accessibility analyzer to regional station hubs, using the Google Maps Distance Matrix API (https://developers.google.com/maps/documentation/distance-matrix). Calculates travel times, routes, and overall score. | 交通通勤アクセシビリティ評価。Google Maps Distance Matrix APIで主要ターミナル駅への所要時間・経路・利便性スコアを算出。

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo市区町村(例: '名古屋市中村区'、'世田谷区')
addressNo詳細住所または建物名
latitudeNo緯度
longitudeNo経度
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県

Output Schema

ParametersJSON Schema
NameRequiredDescription
latitudeYes
longitudeYes
attributionYes
destinationsYes各主要駅への通勤アクセス詳細
closestStationYes最寄り駅名
hasLiveTrafficYesGoogle Maps APIのライブ路線・交通データを使用したか
markdownReportYesMarkdown形式の詳細通勤レポート
accessibilityScoreYes総合利便性スコア (0-100)
transitScoreCategoryYes利便性カテゴリ
closestStationWalkMinYes最寄り駅までの徒歩分数
closestStationDistanceKmYes最寄り駅までの距離 (km)

TDQS

A4/5.0
Behavior4/5

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

Annotations declare read-only, idempotent, and non-destructive behavior. The description adds context about using an external API (Google Maps) and computing an overall score, which is beyond the annotations. 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?

The description is two concise sentences in English and Japanese, front-loaded with purpose. Every sentence adds value without redundancy.

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?

The description explains the core functionality, mentions the external API, and indicates an overall score. With an output schema present, return values need not be detailed. Minor gap: no mention of limitations or refresh behavior, but openWorldHint covers variability.

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%, so the schema already documents all parameters. The description adds no additional parameter meaning. Baseline score is appropriate.

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 the tool's function: analyzing transit commute accessibility to regional station hubs using the Google Maps Distance Matrix API. It specifies outputs (travel times, routes, overall score) and differentiates from sibling tools focused on other property assessments.

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

Usage Guidelines3/5

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

The description implies usage for commute accessibility analysis but provides no guidance on when not to use this tool or alternatives. It mentions the API reference but lacks explicit when-to-use or when-not-to-use context.

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

assess_exterior_visualsAI外観監査A
Read-onlyIdempotent
Inspect

AI visual exterior audit of a property using the Google Maps Street View Static API (https://developers.google.com/maps/documentation/streetview) and Google Gemini Vision (https://ai.google.dev/gemini-api/docs/vision) for image analysis. Falls back to a simulated audit if GOOGLE_MAPS_API_KEY/GOOGLE_GENAI_API_KEY are not configured. | AI街頭外観監査。Google Maps Street View Static APIとGemini Vision AIを用いて建物の外観・道路幅・環境を自動評価。APIキー未設定時はシミュレーション結果にフォールバック。

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNo市区町村(例: '名古屋市中村区'、'世田谷区')
pitchNoカメラの上下角 (-90=真下、0=水平、90=真上)
addressNo詳細な住所または建物名(例: '名駅南1丁目3-9')
headingNoカメラの向き (0=北、90=東、180=南、270=西)
latitudeNo緯度
longitudeNo経度
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県

Output Schema

ParametersJSON Schema
NameRequiredDescription
analysisYes
imageUrlYes取得またはモックされたストリートビュー画像のURL (または Base64 埋め込み)
latitudeYes
longitudeYes
attributionYes
hasLiveImageYesGoogle Street View APIからライブ画像を取得できたか
markdownReportYesMarkdown形式の詳細レポート
hasLiveAnalysisYesGemini Vision APIによるライブ画像画像解析が行われたか

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate safe, idempotent, non-destructive behavior. The description adds value by disclosing the reliance on specific external APIs and the fallback to simulated results when keys are unconfigured, providing important context beyond annotations.

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?

The description is concise with two sentences, front-loading the core purpose. The second sentence adds important fallback context. 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 the tool's complexity (7 parameters, no required, output schema present), the description adequately covers purpose, API dependencies, and fallback behavior. It provides sufficient context for an AI agent to understand the tool's capabilities.

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 coverage is 100%, with each parameter having clear descriptions. The description does not add significant new meaning beyond noting the use of Street View (which relates to heading/pitch) and Gemini. Baseline 3 is appropriate.

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 specifies the tool's purpose: an AI visual exterior audit using Google Maps Street View and Gemini Vision. It identifies the resource (property exterior) and the action (assess), and distinguishes itself from siblings by mentioning the use of specific APIs and fallback simulation.

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

Usage Guidelines3/5

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

The description implies usage when an exterior visual audit is needed and mentions fallback behavior when API keys are missing, but it does not explicitly state when to choose this tool over siblings like quick_visual_summary or assess_family_friendly_score.

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

assess_family_friendly_scoreファミリー適性評価A
Read-onlyIdempotent
Inspect

Assess family-friendliness: education, safety, healthcare across 3 axes. 10 prefectures. | ファミリー向け適性評価。教育・安全・医療の3軸で住宅適地を総合評価。全10都道府県。

ParametersJSON Schema
NameRequiredDescriptionDefault
areaYesエリア
latlngNo
addressNo具体的な住所(任意)
childAgeNoall
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県
neighborhoodNo町丁目(例: '名駅南1丁目')。v2.4 では町丁目レベル実データに対応(対応都道府県のみ)

Output Schema

ParametersJSON Schema
NameRequiredDescription
safetyYes
keyInsightsYes
pricePerSqmYes
overallScoreYesファミリー適性総合スコア
schoolDistrictYes
recommendationsYes
assetValueFactorYes教育環境による資産価値係数(%)
disasterRiskScoreYes

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context about the three axes and prefecture scope but does not disclose additional behavioral traits like response format or performance limits. No contradiction 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.

Conciseness4/5

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

The description is two short sentences (English and Japanese) that efficiently convey the core purpose. However, the bilingual repetition is slightly redundant; a single clear statement might be more concise.

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

Completeness2/5

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

With 6 parameters, nested objects, and an output schema, the description is too minimal. It does not explain how to use the various location parameters (area vs prefecture vs neighborhood) or what the output contains. The Japanese translation adds no new context.

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 67%, covering most parameters. The tool description does not add meaning beyond what the schema already provides; for example, it does not explain how area, prefecture, or neighborhood interact. Baseline 3 is appropriate given high schema coverage.

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 the tool assesses family-friendliness across three axes (education, safety, healthcare) for housing suitability, limited to 10 prefectures. This distinguishes it from sibling tools like assess_exterior_visuals or assess_property_risk, which target different aspects.

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

Usage Guidelines3/5

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

The description implies the tool is for evaluating family-friendliness, but does not explicitly state when to use it versus alternatives like analyze_commute_accessibility or predict_corporate_demand. No when-not-to-use guidance is provided.

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

assess_property_risk災害リスク評価B
Read-onlyIdempotent
Inspect

Assess property disaster risk: flood, landslide, earthquake. Integrated scoring across 10 prefectures. | 災害リスク評価。浸水・土砂・地震リスクを統合スコアリング。全10都道府県対応。

ParametersJSON Schema
NameRequiredDescriptionDefault
latlngNo
addressYes住所または地番
riskTypesNo
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県
neighborhoodNo町丁目(例: '名駅南1丁目')。v2.4 では町丁目レベル実データに対応(対応都道府県のみ)

Output Schema

ParametersJSON Schema
NameRequiredDescription
floodRiskYes
recommendationsYes
overallRiskScoreYes
adjustedPriceImpactYesリスク考慮後の価格調整率(%)

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds that the tool provides integrated scoring and covers 10 prefectures, but does not elaborate on other behavioral traits (e.g., rate limits, response format, or error conditions).

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?

The description is short (two sentences) and front-loaded with key information. The Japanese line is redundant but not detrimental. Every sentence contributes value, though merging English and Japanese could improve efficiency.

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

Completeness3/5

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

Given the complexity (5 parameters, nested objects, output schema), the description adequately covers the tool's purpose and key features but omits details on parameter usage (e.g., latlng vs. address, how prefecture/neighborhood interact) and does not explain the integrated scoring mechanism. The existence of an output schema partially compensates.

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 60%, with descriptions for address, prefecture, and neighborhood. The description adds context that riskTypes include flood, landslide, and earthquake and mentions coverage across 10 prefectures, but does not clarify the latlng object or required address parameter beyond what the schema states.

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 the tool assesses property disaster risk for flood, landslide, and earthquake, with integrated scoring across 10 prefectures. This verb+resource+scope combination distinctly separates it from sibling tools like 'assess_family_friendly_score' or 'forecast_land_price_trend'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It merely describes functionality without contextual selection advice.

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

fetchドキュメント取得A
Read-onlyIdempotent
Inspect

Fetch full document by ID from search results. Returns area analysis, forecasts, and summaries in Markdown. | 検索結果のIDからドキュメント全文を取得する。分析レポート・将来予測・データサマリをMarkdownで返す。

ParametersJSON Schema
NameRequiredDescriptionDefault
idYessearch ツールで取得したドキュメントID(例: "area:aichi:名古屋市中区")

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
textYes
titleYes
metadataYes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false. Description adds that the tool returns formatted Markdown content with specific sections, providing useful behavioral context beyond 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?

Two concise English sentences followed by Japanese translation. Front-loaded with verb-object structure, no unnecessary 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?

Given the single parameter, existing output schema, and annotations, the description fully covers the tool's function and output without gaps.

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%, with clear explanation and example for the 'id' parameter. The description does not add additional parameter semantics beyond what the schema 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 clearly states it fetches a document by ID from search results and returns specific content (area analysis, forecasts, summaries) in Markdown. This distinguishes it from sibling tools like 'search' which returns IDs.

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 indicates usage context ('from search results'), implying it should be used after a search. Lacks explicit when-not-to-use or alternative tool references.

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

forecast_land_price_trend地価トレンド予測A
Read-onlyIdempotent
Inspect

Forecast land price trends using linear regression and moving average. Returns CAGR, confidence interval, investment signal (buy/hold/caution). 10 prefectures. | 地価トレンド予測。線形回帰・移動平均で将来地価を予測。CAGR・投資シグナルを返す。全10都道府県。

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYes市区町村(例: '名古屋市中村区', '世田谷区')
methodNo予測手法。linear=線形回帰、moving_avg=移動平均外挿linear
horizonNo予測期間3y
landUseNo地目フィルター。all=全地目平均all
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県
output_modeNoOutput verbosity. compact=TL;DR + key numbers only (default), detailed=full Markdown report | 出力詳細度。compact=主要数値のみ(デフォルト)、detailed=全文レポート付きcompact
includeMarkdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
cagrYes年平均成長率(%)
cityYes
seriesYes実績 + 予測の時系列データ
landUseYes
keyDriversYes
prefectureYes
riskFactorsYes
trendStrengthYes
markdownReportNo
trendDirectionYes
investmentSignalYes
latestPricePerSqmYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare the tool as read-only, idempotent, and non-destructive. The description adds behavioral specifics: the forecasting methods (linear regression, moving average), return values (CAGR, confidence interval, investment signal), and a coverage constraint (10 prefectures). This provides useful context beyond the annotations 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?

The description is two concise sentences in English with a Japanese translation, front-loaded with the core purpose. Every element (method, outputs, coverage) is necessary and informative, with no redundant or vague phrasing.

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 the tool has 7 parameters and an output schema, the description covers the core functionality and outputs well. However, it does not explain the '10 prefectures' limitation or mention the 'output_mode' and 'includeMarkdown' parameters, which are configurable. The output schema likely addresses return values, so the description is mostly complete but could be more explicit about constraints.

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 86%, so the schema already documents most parameters. The description mentions methods (linear regression, moving average) corresponding to the 'method' parameter and alludes to outputs, but does not detail parameters like 'city', 'horizon', or 'landUse'. Thus, the description adds limited parameter-specific value beyond the 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 clearly states the tool's purpose: 'Forecast land price trends using linear regression and moving average.' It specifies the outputs (CAGR, confidence interval, investment signal) and mentions coverage (10 prefectures). The verb 'forecast' and resource 'land price trends' are specific, and the description distinguishes this tool from siblings like 'assess_property_risk' or 'portfolio_optimizer' by its focus on price trend prediction.

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

Usage Guidelines3/5

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

The description implies the tool is for land price forecasting but does not provide explicit guidance on when to use it versus alternatives (e.g., 'scenario_what_if' or 'predict_corporate_demand'). No when-not-to-use instructions or exclusions are given, though the context of price trend analysis is clear.

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

portfolio_optimizerポートフォリオ最適化A
Read-only
Inspect

Optimize real estate investment portfolio across up to 5 areas. Returns expected return, risk score, Sharpe ratio. | 不動産投資ポートフォリオ最適化。最大5エリアのリターン・リスク・シャープレシオを算出。

ParametersJSON Schema
NameRequiredDescriptionDefault
targetsYes比較対象エリア(2〜5件)
optimizeForNo最適化目標risk_adjusted
riskToleranceNoリスク許容度medium
includeMarkdownNo
investmentHorizonNo投資期間5y

Output Schema

ParametersJSON Schema
NameRequiredDescription
assetsYes
keyInsightsYes
optimizeForYes
sharpeRatioYesシャープレシオ(リターン/リスク比)
riskToleranceYes
markdownReportNo
investmentHorizonYes
topRecommendationYes最優先推奨エリア
totalBudgetManYenYes
portfolioReturnPctYesポートフォリオ全体の期待年率リターン(%)
portfolioRiskScoreYesポートフォリオ全体のリスクスコア(1-10)
diversificationScoreYes分散スコア(高いほど分散)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, consistent with the description's output focus. The description adds that it returns expected return, risk, Sharpe ratio, but does not elaborate on behavioral traits beyond what annotations provide. 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 concise sentences in both English and Japanese, front-loaded with the core purpose and key outputs. 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 the tool has a complex input schema (5 params) and an output schema exists, the description sufficiently covers the tool's purpose and return values. It lacks mention of optimization goals or risk tolerance options, but these are in the schema. Near complete for selection purposes.

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 coverage is 80%, and the input schema already describes parameters with decent detail (e.g., enum options, descriptions). The description only adds that the tool handles up to 5 areas, which is already in schema via maxItems. Minimal added value.

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 optimizes a real estate investment portfolio across up to 5 areas and returns specific metrics (expected return, risk score, Sharpe ratio). This distinguishes it from sibling tools like scenario_what_if or assess_property_risk, which have different purposes.

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

Usage Guidelines3/5

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

The description implicitly states the tool is for optimizing portfolios, but provides no explicit guidance on when to use it versus alternatives (e.g., scenario_what_if for scenario analysis). No when-not-to-use or prerequisites are mentioned.

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

predict_corporate_demand企業需要予測B
Read-onlyIdempotent
Inspect

Predict corporate demand: manufacturing, office, retail demand scores. 10 prefectures. | 企業立地需要予測。製造業・オフィス・小売の企業需要スコアを算出。全10都道府県。

ParametersJSON Schema
NameRequiredDescriptionDefault
areaYesエリア
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県
neighborhoodNo町丁目(例: '名駅南1丁目')。v2.4 では町丁目レベル実データに対応(対応都道府県のみ)
propertyTypeNooffice
includeCommuteAnalysisNo通勤時間分析を含むか

Output Schema

ParametersJSON Schema
NameRequiredDescription
summaryYes
demandScoreYes法人需要スコア
keyInsightsYes
growthPotentialYes
recommendationsYes
corporateMetricsYes
rentabilityScoreYes賃料収益性スコア
humanFlowAlignmentYes人流との整合性

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, and non-destructive. The description adds context about sectors and geographic scope but does not elaborate on rate limits, authentication, or other behavioral traits. No contradiction 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 extremely concise: two short sentences covering purpose and scope. Front-loaded with the verb. No superfluous words.

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

Completeness3/5

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

The description covers the main purpose and sectors, but lacks specificity about which prefectures are included and does not mention the output format even though an output schema exists. Leaves some ambiguity about geographic scope.

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?

Input schema has 80% description coverage, so baseline is 3. The tool description does not add any additional meaning or usage context for the parameters. Parameters like 'neighborhood' have schema descriptions but the tool description does not explain how they affect the prediction.

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

Purpose4/5

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

The description clearly states it predicts corporate demand scores for manufacturing, office, and retail across 10 prefectures. However, the input schema includes property types like logistics and commercial not mentioned, causing slight inconsistency. It distinguishes from sibling tools like assess_family_friendly_score by focusing on corporate demand.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The sibling tools list is provided but no explicit context about when to choose predict_corporate_demand over tools like scenario_what_if or portfolio_optimizer.

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

quick_visual_summaryChatGPTビジュアル要約A
Read-onlyIdempotent
Inspect

Render a ChatGPT-optimized real estate visual summary with map, charts, recommended next actions, and compact markdown fallback. Always use this when the user asks to show, visualize, compare, or continue in ChatGPT. | ChatGPT向けに地図・グラフ・次アクション・要約をまとめて表示するレンダーツール。

ParametersJSON Schema
NameRequiredDescriptionDefault
areaNoTarget area to focus the visual summary on | 表示対象エリア
modeNoDashboard mode | ダッシュボード表示モード2d
intentNoUser goal for choosing the best visual starting point | 表示目的overview
compactNoOptimize copy and layout for ChatGPT mobile/compact views
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県

Output Schema

ParametersJSON Schema
NameRequiredDescription
areaYes
modeYes
layerYes
titleYes
intentYes
summaryYes
prefectureYes
attributionYes
nextActionsYes
dashboardUriYesMCP Apps ui:// resource URI
dashboardUrlYesBrowser fallback URL or path
markdownReportYesCompact markdown fallback for non-UI clients

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, signaling a safe, idempotent read operation. The description adds behavioral details such as 'compact markdown fallback' and optimization for ChatGPT, 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.

Conciseness4/5

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

The description is two sentences (one English, one Japanese) and front-loads the purpose. The bilingual repetition adds length but serves the target audience. It is efficient for its content.

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?

The description covers the main output components and usage context. With an output schema available, the description does not need to detail return format. It provides a solid understanding of what the tool does and when to use it.

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%, with each parameter having a clear description. The tool description adds high-level output context (map, charts, actions) but does not provide additional semantics for individual parameters beyond the schema. Baseline 3 is appropriate.

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 the tool renders a 'real estate visual summary with map, charts, recommended next actions, and compact markdown fallback.' It also explicitly says to use this tool when the user asks to show, visualize, compare, or continue in ChatGPT, distinguishing it from sibling tools like scenario_what_if or assess_family_friendly_score.

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 explicit usage guidance: 'Always use this when the user asks to show, visualize, compare, or continue in ChatGPT.' This clearly defines the context for invocation, though it does not list specific exclusions or when not to use the tool.

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

scenario_what_ifWhatIfシナリオ分析A
Read-onlyIdempotent
Inspect

What-If scenario analysis: simulate impact of new stations, commercial facilities, population changes on land prices and investment scores. 10 prefectures. | シナリオWhat-If分析。新駅・大型商業施設・人口変動の地価影響を試算。全10都道府県。

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYes市区町村(例: '名古屋市中村区')
scaleNo規模感。large=大型施設・急成長などmedium
horizonNo3y
scenarioYesシナリオ種別
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県
includeMarkdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
cityYes
scaleYes
horizonYes
baselineYes現状ベースライン
keyRisksYes
scenarioYes
projectedYesシナリオ適用後予測
confidenceYes
prefectureYes
riskImpactPctYes
markdownReportNo
priceImpactPctYes地価への影響(%。正=上昇)
recommendationsYes
keyOpportunitiesYes
humanFlowImpactPctYes

TDQS

A3.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description only says 'simulate impact', adding no further behavioral context about rate limits, authentication needs, or any side effects 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 sentences, bilingual, front-loaded with key action and scope. Every word adds value; no redundancy or fluff.

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?

The description covers the essential function and scope, and an output schema exists to explain return values. However, it lacks details on limitations (which 10 prefectures, how results are tabulated) and could be more complete for a complex simulation 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?

With 67% schema coverage, the schema already documents most parameters adequately. The description adds no extra meaning beyond summarizing the tool's overall function. A score of 3 is appropriate as baseline.

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 the tool simulates impact of various scenarios on land prices and investment scores, with a specific scope of 10 prefectures. It effectively distinguishes from sibling tools like forecast_land_price_trend or simulate_landscape_impact by focusing on what-if analysis.

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

Usage Guidelines3/5

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

The description implies the tool is for exploratory scenario analysis but does not provide explicit guidance on when to use it versus alternatives. No when-not-to-use conditions or comparisons to siblings are given.

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

simulate_landscape_impact日照・景観シミュレーションA
Read-onlyIdempotent
Inspect

Sunlight/shadow simulation using PLATEAU 3D buildings + SunCalc. | 日照・影シミュレーション。PLATEAU 3D建物データ+SunCalcで周辺建物の影響を分析。

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes対象地点の緯度
lngYes対象地点の経度
radiusMNo建物検索半径(メートル)
dateTimeNoシミュレーション日時(ISO 8601形式、省略時は現在時刻)
prefectureNo都道府県名(和名/英名/ISO 3166-2 コード対応)愛知県
timePresetNo時刻プリセット(morning=8:00, noon=12:00, evening=17:00)
includeMarkdownNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
avgHeightYes
maxHeightYes
keyInsightsYes
sunPositionYes
markdownReportNo
shadowPolygonsYes
totalShadowAreaSqmYes
highImpactBuildingsYes
nearbyBuildingCountYes
sunlightHoursEstimateYes

TDQS

A3.8/5.0
Behavior4/5

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

Adds behavioral context beyond annotations: specifies data sources and analysis scope (surrounding buildings). No contradiction with readOnlyHint/idempotentHint/destructiveHint.

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?

Two concise sentences, bilingual. Slightly repetitive but no fluff. Efficient.

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

Completeness3/5

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

Adequate for core purpose, but could mention need for internet access to fetch PLATEAU data. Output schema exists, so no need to describe returns.

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 coverage is 86%, above 80% baseline. Description does not add extra parameter-specific details 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 simulates sunlight/shadow using PLATEAU 3D buildings and SunCalc. Distinguishes from siblings like 'scenario_what_if' or 'assess_exterior_visuals'.

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

Usage Guidelines3/5

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

Implied usage for sunlight/shadow analysis but no explicit when-to-use or when-not-to-use guidance. No alternatives mentioned.

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. Dates show when Glama detected each change.

  1. 37 tool updatesv8.0.0
    • Changedanalyze_commute_accessibility1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "accessibilityScore": {
        +      "description": "総合利便性スコア (0-100)",
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "attribution": {
        +      "type": "string"
        +    },
        +    "closestStation": {
        +      "description": "最寄り駅名",
        +      "type": "string"
        +    },
        +    "closestStationDistanceKm": {
        +      "description": "最寄り駅までの距離 (km)",
        +      "type": "number"
        +    },
        +    "closestStationWalkMin": {
        +      "description": "最寄り駅までの徒歩分数",
        +      "type": "number"
        +    },
        +    "destinations": {
        +      "description": "各主要駅への通勤アクセス詳細",
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "distanceKm": {
        +            "description": "直線距離または道路距離 (km)",
        +            "type": "number"
        +          },
        +          "estimatedTimeMin": {
        +            "description": "推定または実測の所要時間 (分)",
        +            "type": "number"
        +          },
        +          "mode": {
        +            "enum": [
        +              "transit",
        +              "driving",
        +              "walking"
        +            ],
        +            "type": "string"
        +          },
        +          "name": {
        +            "description": "主要ハブ駅名 (例: 名古屋、栄、東京、新宿、梅田)",
        +            "type": "string"
        +          },
        +          "routeDescription": {
        +            "description": "利用する主な路線と経路の説明",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "distanceKm",
        +          "estimatedTimeMin",
        +          "routeDescription",
        +          "mode"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "hasLiveTraffic": {
        +      "description": "Google Maps APIのライブ路線・交通データを使用したか",
        +      "type": "boolean"
        +    },
        +    "latitude": {
        +      "type": "number"
        +    },
        +    "longitude": {
        +      "type": "number"
        +    },
        +    "markdownReport": {
        +      "description": "Markdown形式の詳細通勤レポート",
        +      "type": "string"
        +    },
        +    "transitScoreCategory": {
        +      "description": "利便性カテゴリ",
        +      "enum": [
        +        "excellent",
        +        "very_good",
        +        "good",
        +        "fair",
        +        "poor"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "latitude",
        +    "longitude",
        +    "closestStation",
        +    "closestStationDistanceKm",
        +    "closestStationWalkMin",
        +    "accessibilityScore",
        +    "destinations",
        +    "hasLiveTraffic",
        +    "transitScoreCategory",
        +    "markdownReport",
        +    "attribution"
        +  ],
        +  "type": "object"
        +}
    • Removedanalyze_renovation_yield
    • Removedassess_contract_risk
    • Changedassess_exterior_visuals1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "analysis": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "cons": {
        +          "description": "ネガティブな特徴",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "estimatedAgeVibe": {
        +          "description": "視覚的な推定築年数帯",
        +          "type": "string"
        +        },
        +        "exteriorQuality": {
        +          "description": "外観の状態や高級感・劣化具合",
        +          "type": "string"
        +        },
        +        "issuesIdentified": {
        +          "description": "懸念点 (電線、落書き、ゴミ置き場近傍など)",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "overallVibe": {
        +          "description": "周辺の雰囲気の要約",
        +          "type": "string"
        +        },
        +        "parkingAvailability": {
        +          "description": "敷地内または周辺の駐車スペース",
        +          "type": "string"
        +        },
        +        "pros": {
        +          "description": "ポジティブな特徴 (植栽の豊かさ、静かな環境、広い道路など)",
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "recommendationsJa": {
        +          "description": "不動産仲介・投資観点での推奨事項 (日本語)",
        +          "type": "string"
        +        },
        +        "roadCondition": {
        +          "description": "前面道路の幅員や舗装、歩道の有無",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "overallVibe",
        +        "exteriorQuality",
        +        "roadCondition",
        +        "parkingAvailability",
        +        "issuesIdentified",
        +        "pros",
        +        "cons",
        +        "estimatedAgeVibe",
        +        "recommendationsJa"
        +      ],
        +      "type": "object"
        +    },
        +    "attribution": {
        +      "type": "string"
        +    },
        +    "hasLiveAnalysis": {
        +      "description": "Gemini Vision APIによるライブ画像画像解析が行われたか",
        +      "type": "boolean"
        +    },
        +    "hasLiveImage": {
        +      "description": "Google Street View APIからライブ画像を取得できたか",
        +      "type": "boolean"
        +    },
        +    "imageUrl": {
        +      "description": "取得またはモックされたストリートビュー画像のURL (または Base64 埋め込み)",
        +      "type": "string"
        +    },
        +    "latitude": {
        +      "type": "number"
        +    },
        +    "longitude": {
        +      "type": "number"
        +    },
        +    "markdownReport": {
        +      "description": "Markdown形式の詳細レポート",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "imageUrl",
        +    "hasLiveImage",
        +    "hasLiveAnalysis",
        +    "latitude",
        +    "longitude",
        +    "analysis",
        +    "markdownReport",
        +    "attribution"
        +  ],
        +  "type": "object"
        +}
    • Changedassess_family_friendly_score1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "assetValueFactor": {
        +      "description": "教育環境による資産価値係数(%)",
        +      "type": "number"
        +    },
        +    "disasterRiskScore": {
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "keyInsights": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "overallScore": {
        +      "description": "ファミリー適性総合スコア",
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "pricePerSqm": {
        +      "type": "number"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "safety": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "crimeRate": {
        +          "description": "犯罪発生率(件/千人)",
        +          "type": "number"
        +        },
        +        "crimeScore": {
        +          "description": "安全性スコア(高い=安全)",
        +          "maximum": 100,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "dominantCrimeType": {
        +          "description": "主要犯罪類型",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "crimeScore",
        +        "crimeRate",
        +        "dominantCrimeType"
        +      ],
        +      "type": "object"
        +    },
        +    "schoolDistrict": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "educationScore": {
        +          "description": "教育環境スコア",
        +          "maximum": 100,
        +          "minimum": 0,
        +          "type": "number"
        +        },
        +        "elementarySchool": {
        +          "description": "学区の小学校名",
        +          "type": "string"
        +        },
        +        "juniorHighSchool": {
        +          "description": "学区の中学校名",
        +          "type": "string"
        +        },
        +        "nearbySchoolCount": {
        +          "description": "半径2km内の学校数",
        +          "type": "number"
        +        },
        +        "universityAdvancementRate": {
        +          "description": "大学進学率(%)",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "elementarySchool",
        +        "juniorHighSchool",
        +        "educationScore",
        +        "universityAdvancementRate",
        +        "nearbySchoolCount"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "overallScore",
        +    "schoolDistrict",
        +    "safety",
        +    "assetValueFactor",
        +    "disasterRiskScore",
        +    "pricePerSqm",
        +    "keyInsights",
        +    "recommendations"
        +  ],
        +  "type": "object"
        +}
    • Changedassess_property_risk1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "adjustedPriceImpact": {
        +      "description": "リスク考慮後の価格調整率(%)",
        +      "type": "number"
        +    },
        +    "floodRisk": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "description": {
        +          "type": "string"
        +        },
        +        "level": {
        +          "enum": [
        +            "low",
        +            "medium",
        +            "high"
        +          ],
        +          "type": "string"
        +        },
        +        "probability": {
        +          "maximum": 1,
        +          "minimum": 0,
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "level",
        +        "probability",
        +        "description"
        +      ],
        +      "type": "object"
        +    },
        +    "overallRiskScore": {
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "floodRisk",
        +    "overallRiskScore",
        +    "recommendations",
        +    "adjustedPriceImpact"
        +  ],
        +  "type": "object"
        +}
    • Removedaudit_zoning_compliance
    • Removedcompare_prefectures
    • Removedcomposite_value_score
    • Removedcross_analyze_real_estate_market
    • Removeddetect_arbitrage_signals
    • Removeddiscover_opportunities
    • Removeddrill_down_local_analysis
    • Removedevaluate_store_location
    • Changedfetch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "id": {
        +      "type": "string"
        +    },
        +    "metadata": {
        +      "additionalProperties": {},
        +      "propertyNames": {
        +        "type": "string"
        +      },
        +      "type": "object"
        +    },
        +    "text": {
        +      "type": "string"
        +    },
        +    "title": {
        +      "type": "string"
        +    },
        +    "url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "title",
        +    "text",
        +    "url",
        +    "metadata"
        +  ],
        +  "type": "object"
        +}
    • Removedforecast_demographic_shift
    • Changedforecast_land_price_trend1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "cagr": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ],
        +      "description": "年平均成長率(%)"
        +    },
        +    "city": {
        +      "type": "string"
        +    },
        +    "investmentSignal": {
        +      "enum": [
        +        "buy",
        +        "hold",
        +        "caution"
        +      ],
        +      "type": "string"
        +    },
        +    "keyDrivers": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "landUse": {
        +      "type": "string"
        +    },
        +    "latestPricePerSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "markdownReport": {
        +      "type": "string"
        +    },
        +    "prefecture": {
        +      "type": "string"
        +    },
        +    "riskFactors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "series": {
        +      "description": "実績 + 予測の時系列データ",
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "confidenceInterval": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "high": {
        +                "type": "number"
        +              },
        +              "low": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "low",
        +              "high"
        +            ],
        +            "type": "object"
        +          },
        +          "isForecast": {
        +            "type": "boolean"
        +          },
        +          "price_per_sqm": {
        +            "type": "number"
        +          },
        +          "year": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "year",
        +          "price_per_sqm",
        +          "isForecast"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "trendDirection": {
        +      "enum": [
        +        "rising",
        +        "stable",
        +        "declining"
        +      ],
        +      "type": "string"
        +    },
        +    "trendStrength": {
        +      "enum": [
        +        "strong",
        +        "moderate",
        +        "weak"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "prefecture",
        +    "city",
        +    "landUse",
        +    "latestPricePerSqm",
        +    "cagr",
        +    "trendDirection",
        +    "trendStrength",
        +    "series",
        +    "keyDrivers",
        +    "riskFactors",
        +    "investmentSignal"
        +  ],
        +  "type": "object"
        +}
    • Removedgenerate_area_report
    • Removedgenerate_contract_support_package
    • Removedget_chochou_profile
    • Removedget_future_timeline
    • Removedget_population_outlook
    • Removedget_real_estate_macro_snapshot
    • Removedget_vacancy_stats
    • Removedget_zoning_info
    • Removedopen_dashboard
    • Removedoptimize_portfolio_allocation
    • Changedportfolio_optimizer1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "assets": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "allocationPct": {
        +            "description": "推奨配分割合(%)",
        +            "type": "number"
        +          },
        +          "budgetManYen": {
        +            "type": "number"
        +          },
        +          "city": {
        +            "type": "string"
        +          },
        +          "currentPricePerSqm": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "expectedAnnualReturnPct": {
        +            "description": "期待年率リターン(%)",
        +            "type": "number"
        +          },
        +          "liquidityScore": {
        +            "description": "流動性スコア(高いほど売却しやすい)",
        +            "maximum": 10,
        +            "minimum": 1,
        +            "type": "number"
        +          },
        +          "prefecture": {
        +            "type": "string"
        +          },
        +          "propertyType": {
        +            "type": "string"
        +          },
        +          "recommendation": {
        +            "enum": [
        +              "strong_buy",
        +              "buy",
        +              "hold",
        +              "reduce",
        +              "sell"
        +            ],
        +            "type": "string"
        +          },
        +          "riskScore": {
        +            "description": "リスクスコア(低いほど安全)",
        +            "maximum": 10,
        +            "minimum": 1,
        +            "type": "number"
        +          },
        +          "strengthSummary": {
        +            "description": "このエリアの強み",
        +            "type": "string"
        +          },
        +          "weaknessSummary": {
        +            "description": "このエリアの弱み",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "prefecture",
        +          "city",
        +          "propertyType",
        +          "budgetManYen",
        +          "allocationPct",
        +          "expectedAnnualReturnPct",
        +          "riskScore",
        +          "liquidityScore",
        +          "currentPricePerSqm",
        +          "strengthSummary",
        +          "weaknessSummary",
        +          "recommendation"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "diversificationScore": {
        +      "description": "分散スコア(高いほど分散)",
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "investmentHorizon": {
        +      "type": "string"
        +    },
        +    "keyInsights": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "markdownReport": {
        +      "type": "string"
        +    },
        +    "optimizeFor": {
        +      "type": "string"
        +    },
        +    "portfolioReturnPct": {
        +      "description": "ポートフォリオ全体の期待年率リターン(%)",
        +      "type": "number"
        +    },
        +    "portfolioRiskScore": {
        +      "description": "ポートフォリオ全体のリスクスコア(1-10)",
        +      "type": "number"
        +    },
        +    "riskTolerance": {
        +      "type": "string"
        +    },
        +    "sharpeRatio": {
        +      "description": "シャープレシオ(リターン/リスク比)",
        +      "type": "number"
        +    },
        +    "topRecommendation": {
        +      "description": "最優先推奨エリア",
        +      "type": "string"
        +    },
        +    "totalBudgetManYen": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "optimizeFor",
        +    "riskTolerance",
        +    "investmentHorizon",
        +    "totalBudgetManYen",
        +    "assets",
        +    "portfolioReturnPct",
        +    "portfolioRiskScore",
        +    "diversificationScore",
        +    "sharpeRatio",
        +    "topRecommendation",
        +    "keyInsights"
        +  ],
        +  "type": "object"
        +}
    • Changedpredict_corporate_demand1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "corporateMetrics": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "avgCommuteMinutes": {
        +          "description": "平均通勤時間(分)",
        +          "type": "number"
        +        },
        +        "employeeTotal": {
        +          "description": "従業者総数",
        +          "type": "number"
        +        },
        +        "industryMix": {
        +          "items": {
        +            "additionalProperties": false,
        +            "properties": {
        +              "industry": {
        +                "type": "string"
        +              },
        +              "share": {
        +                "type": "number"
        +              }
        +            },
        +            "required": [
        +              "industry",
        +              "share"
        +            ],
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "majorCompanyCount": {
        +          "description": "大企業(従業員300+)数",
        +          "type": "number"
        +        },
        +        "totalEstablishments": {
        +          "description": "事業所数",
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "totalEstablishments",
        +        "majorCompanyCount",
        +        "employeeTotal",
        +        "avgCommuteMinutes",
        +        "industryMix"
        +      ],
        +      "type": "object"
        +    },
        +    "demandScore": {
        +      "description": "法人需要スコア",
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "growthPotential": {
        +      "enum": [
        +        "high",
        +        "medium",
        +        "low"
        +      ],
        +      "type": "string"
        +    },
        +    "humanFlowAlignment": {
        +      "description": "人流との整合性",
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "keyInsights": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "rentabilityScore": {
        +      "description": "賃料収益性スコア",
        +      "maximum": 100,
        +      "minimum": 0,
        +      "type": "number"
        +    },
        +    "summary": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "summary",
        +    "corporateMetrics",
        +    "demandScore",
        +    "rentabilityScore",
        +    "growthPotential",
        +    "humanFlowAlignment",
        +    "keyInsights",
        +    "recommendations"
        +  ],
        +  "type": "object"
        +}
    • Removedrecommend_renovation_targets
    • Removedreview_purchase_recommendation
    • Changedscenario_what_if1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "baseline": {
        +      "additionalProperties": false,
        +      "description": "現状ベースライン",
        +      "properties": {
        +        "humanFlowScore": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "investmentScore": {
        +          "type": "number"
        +        },
        +        "pricePerSqm": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "riskScore": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "pricePerSqm",
        +        "humanFlowScore",
        +        "investmentScore",
        +        "riskScore"
        +      ],
        +      "type": "object"
        +    },
        +    "city": {
        +      "type": "string"
        +    },
        +    "confidence": {
        +      "enum": [
        +        "high",
        +        "medium",
        +        "low"
        +      ],
        +      "type": "string"
        +    },
        +    "horizon": {
        +      "type": "string"
        +    },
        +    "humanFlowImpactPct": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "keyOpportunities": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "keyRisks": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "markdownReport": {
        +      "type": "string"
        +    },
        +    "prefecture": {
        +      "type": "string"
        +    },
        +    "priceImpactPct": {
        +      "description": "地価への影響(%。正=上昇)",
        +      "type": "number"
        +    },
        +    "projected": {
        +      "additionalProperties": false,
        +      "description": "シナリオ適用後予測",
        +      "properties": {
        +        "humanFlowScore": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "investmentScore": {
        +          "type": "number"
        +        },
        +        "pricePerSqm": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "riskScore": {
        +          "type": "number"
        +        }
        +      },
        +      "required": [
        +        "pricePerSqm",
        +        "humanFlowScore",
        +        "investmentScore",
        +        "riskScore"
        +      ],
        +      "type": "object"
        +    },
        +    "recommendations": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "riskImpactPct": {
        +      "type": "number"
        +    },
        +    "scale": {
        +      "type": "string"
        +    },
        +    "scenario": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "prefecture",
        +    "city",
        +    "scenario",
        +    "scale",
        +    "horizon",
        +    "baseline",
        +    "projected",
        +    "priceImpactPct",
        +    "humanFlowImpactPct",
        +    "riskImpactPct",
        +    "confidence",
        +    "keyOpportunities",
        +    "keyRisks",
        +    "recommendations"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "results": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "results"
        +  ],
        +  "type": "object"
        +}
    • Removedsearch_area_candidates
    • Removedsimulate_aichi_future
    • Changedsimulate_landscape_impact1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "avgHeight": {
        +      "type": "number"
        +    },
        +    "highImpactBuildings": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "distance": {
        +            "type": "number"
        +          },
        +          "height": {
        +            "type": "number"
        +          },
        +          "name": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "height",
        +          "distance"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "keyInsights": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "markdownReport": {
        +      "type": "string"
        +    },
        +    "maxHeight": {
        +      "type": "number"
        +    },
        +    "nearbyBuildingCount": {
        +      "type": "number"
        +    },
        +    "shadowPolygons": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "buildingName": {
        +            "type": "string"
        +          },
        +          "height": {
        +            "type": "number"
        +          },
        +          "polygon": {
        +            "items": {
        +              "items": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "number"
        +                }
        +              ],
        +              "type": "array"
        +            },
        +            "type": "array"
        +          },
        +          "shadowLengthM": {
        +            "type": "number"
        +          }
        +        },
        +        "required": [
        +          "buildingName",
        +          "height",
        +          "shadowLengthM",
        +          "polygon"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "sunPosition": {
        +      "additionalProperties": false,
        +      "properties": {
        +        "altitudeDeg": {
        +          "type": "number"
        +        },
        +        "azimuthDeg": {
        +          "type": "number"
        +        },
        +        "dateTime": {
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "azimuthDeg",
        +        "altitudeDeg",
        +        "dateTime"
        +      ],
        +      "type": "object"
        +    },
        +    "sunlightHoursEstimate": {
        +      "type": "number"
        +    },
        +    "totalShadowAreaSqm": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "sunPosition",
        +    "nearbyBuildingCount",
        +    "maxHeight",
        +    "avgHeight",
        +    "totalShadowAreaSqm",
        +    "sunlightHoursEstimate",
        +    "shadowPolygons",
        +    "highImpactBuildings",
        +    "keyInsights"
        +  ],
        +  "type": "object"
        +}
    • Removedsimulate_leveraged_cashflow
  2. 38 tool updatesv7.0.0
    • Addedanalyze_commute_accessibility
    • Changedanalyze_renovation_yield1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedassess_contract_risk2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / proposedTerms / propertyNames
        Added value: +{
        +  "type": "string"
        +}
    • Addedassess_exterior_visuals
    • Changedassess_family_friendly_score2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / latlng / additionalProperties
        Removed value: -false
    • Changedassess_property_risk2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / latlng / additionalProperties
        Removed value: -false
    • Addedaudit_zoning_compliance
    • Changedcompare_prefectures1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedcomposite_value_score2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / weights / additionalProperties
        Removed value: -false
    • Changedcross_analyze_real_estate_market1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changeddetect_arbitrage_signals1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changeddiscover_opportunities28 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedOutput schema / properties / cards / items / properties / creativeAngle / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / creativeAngle / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / agingRate / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / agingRate / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / commercialFacilities / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / commercialFacilities / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / corporateCount / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / corporateCount / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / educationScore / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / educationScore / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / humanFlowTrend / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / humanFlowTrend / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / humanFlowWeekday / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / humanFlowWeekday / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / medicalFacilities / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / medicalFacilities / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / population / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / population / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / priceChangeRate / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / priceChangeRate / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / pricePerSqm / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / pricePerSqm / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / riskScore / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / riskScore / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / evidence / properties / transportScore / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / cards / items / properties / evidence / properties / transportScore / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / cards / items / properties / uiActions / items / properties / args / propertyNames
        Added value: +{
        +  "type": "string"
        +}
    • Changeddrill_down_local_analysis1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedevaluate_store_location2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / customWeights / propertyNames
        Added value: +{
        +  "type": "string"
        +}
    • Changedfetch1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Addedforecast_demographic_shift
    • Changedforecast_land_price_trend1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedgenerate_area_report1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedgenerate_contract_support_package1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_chochou_profile1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_future_timeline1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_population_outlook1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_real_estate_macro_snapshot1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_vacancy_stats1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedget_zoning_info1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedopen_dashboard1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Addedoptimize_portfolio_allocation
    • Changedportfolio_optimizer2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / targets / items / additionalProperties
        Removed value: -false
    • Changedpredict_corporate_demand1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedquick_visual_summary1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedrecommend_renovation_targets1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedreview_purchase_recommendation25 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / floors / maximum
        Added value: +9007199254740991
      • removedInput schema / properties / proposedTerms / additionalProperties
        Removed value: -false
      • addedOutput schema / properties / keyNumbers / properties / askingToKojiRatio / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / askingToKojiRatio / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / askingToTransactionRatio / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / askingToTransactionRatio / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / downsideNetYield / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / downsideNetYield / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / grossYield / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / grossYield / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / kojiPricePerSqm / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / kojiPricePerSqm / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / netYield / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / netYield / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / paybackYears / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / paybackYears / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / pricePerSqm / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / pricePerSqm / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / pricePerTsubo / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / pricePerTsubo / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / rosenkaPerSqm / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / rosenkaPerSqm / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / keyNumbers / properties / transactionMedianPerSqm / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / keyNumbers / properties / transactionMedianPerSqm / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
    • Changedscenario_what_if1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedsearch1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedsearch_area_candidates1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedsimulate_aichi_future1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedsimulate_landscape_impact1 field changed
      • removedInput schema / additionalProperties
        Removed value: -false
    • Changedsimulate_leveraged_cashflow30 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • removedInput schema / properties / assumptions / additionalProperties
        Removed value: -false
      • addedInput schema / properties / assumptions / default / exitCostPct
        Added value: +3
      • addedInput schema / properties / assumptions / default / expenseGrowthPct
        Added value: +1
      • addedInput schema / properties / assumptions / default / marginalTaxRatePct
        Added value: +20
      • addedInput schema / properties / assumptions / default / rentGrowthPct
        Added value: +1
      • addedInput schema / properties / assumptions / default / simulationYears
        Added value: +10
      • removedInput schema / properties / loan / additionalProperties
        Removed value: -false
      • addedOutput schema / properties / district / anyOf
        Added value: +[
        +  {
        +    "type": "string"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / district / type
        Removed value: -[
        -  "string",
        -  "null"
        -]
      • addedOutput schema / properties / sensitivity / items / properties / minDscr / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / sensitivity / items / properties / minDscr / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / sensitivity / items / properties / tenYearIrrPct / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / sensitivity / items / properties / tenYearIrrPct / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / summaryKpis / properties / equityMultiple / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / summaryKpis / properties / equityMultiple / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / summaryKpis / properties / minDscr / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / summaryKpis / properties / minDscr / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / summaryKpis / properties / tenYearIrrPct / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / summaryKpis / properties / tenYearIrrPct / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / summaryKpis / properties / terminalSaleProceeds / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / summaryKpis / properties / terminalSaleProceeds / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / summaryKpis / properties / year1CashOnCashPct / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / summaryKpis / properties / year1CashOnCashPct / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / summaryKpis / properties / year1Dscr / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / summaryKpis / properties / year1Dscr / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / yearlyRows / items / properties / dscr / anyOf
        Added value: +[
        +  {
        +    "type": "number"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • removedOutput schema / properties / yearlyRows / items / properties / dscr / type
        Removed value: -[
        -  "number",
        -  "null"
        -]
      • addedOutput schema / properties / yearlyRows / items / properties / year / maximum
        Added value: +9007199254740991
      • addedOutput schema / properties / yearlyRows / items / properties / year / minimum
        Added value: +-9007199254740991
  3. 33 tool updatesv6.16.0
    • First observedanalyze_renovation_yield
    • First observedassess_contract_risk
    • First observedassess_family_friendly_score
    • First observedassess_property_risk
    • First observedcompare_prefectures
    • First observedcomposite_value_score
    • First observedcross_analyze_real_estate_market
    • First observeddetect_arbitrage_signals
    • First observeddiscover_opportunities
    • First observeddrill_down_local_analysis
    • First observedevaluate_store_location
    • First observedfetch
    • First observedforecast_land_price_trend
    • First observedgenerate_area_report
    • First observedgenerate_contract_support_package
    • First observedget_chochou_profile
    • First observedget_future_timeline
    • First observedget_population_outlook
    • First observedget_real_estate_macro_snapshot
    • First observedget_vacancy_stats
    • First observedget_zoning_info
    • First observedopen_dashboard
    • First observedportfolio_optimizer
    • First observedpredict_corporate_demand
    • First observedquick_visual_summary
    • First observedrecommend_renovation_targets
    • First observedreview_purchase_recommendation
    • First observedscenario_what_if
    • First observedsearch
    • First observedsearch_area_candidates
    • First observedsimulate_aichi_future
    • First observedsimulate_landscape_impact
    • First observedsimulate_leveraged_cashflow

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct aspect of real estate analysis (e.g., land price trends, family friendliness, disaster risk, portfolio optimization), with minimal overlap in purpose or output.

Naming Consistency3/5

Tool names mix verb_noun (e.g., assess_family_friendly_score), noun_verb (e.g., scenario_what_if), and simple verbs (e.g., search, fetch), creating an inconsistent pattern overall.

Tool Count5/5

12 tools cover a broad but focused range of real estate intelligence tasks, from forecasting and risk assessment to visualization and portfolio optimization, without feeling excessive.

Completeness4/5

The tool set covers major real estate analysis areas (land price, risk, accessibility, corporate demand, family-friendliness, portfolio, visual inspection). Missing potential features like rental yield or direct area comparison, but core needs are met.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    AI-powered property intelligence for instant zoning analysis, buildability assessments, ADU eligibility, flood risk, and development feasibility reports for any US address.
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Submarket-level US residential rental intelligence for AI agents. Search, compare, rank, and analyze rent data, trends, vacancy, affordability, and days on market across 1,000+ named submarkets in the 20+ largest US metros. ZIP-level and metro-level queries included. Always current, always expanding. Free tier available.
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sugukurukabe/japan-real-estate-intel-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server