horizon-shield
Was dieses MCP kann
Audits Japanese construction and renovation estimates against fair-price data, detects pricing red flags, verifies signed attestations, and finds vetted contractors.
Tools
Eingabeschema
{'type': 'object', 'required': ['work', 'quoted_price'], 'properties': {'work': {'type': 'string', 'description': '工事名(日本語)。材料やグレード込みで具体的に。例: 外壁塗装 シリコン。部分一致で照合するため曖昧だと別カテゴリにヒットしやすい。未マッチ時は近い候補が did_you_mean で返ることがある。'}, 'region': {'type': 'string', 'description': '(任意) 地域。都道府県か市名(例: 神奈川県, 平塚市)か kanto/kinki/chubu/tohoku/other。渡すと地域係数を掛けたレンジで判定し、基準値も返す。 / (optional) Prefecture, city, or region key. The verdict then uses the regionally adjusted range; base values are returned too.'}, 'quoted_price': {'type': 'number', 'description': '業者提示の金額(円, 数値)。一式見積はその総額。税込/税抜は正規化せず、渡した数値をそのまま適正レンジと照合する。'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'level': {'description': 'ok / watch / alert'}, 'advice': {'description': '助言'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'verdict': {'description': '判定'}, 'fair_range': {'description': 'min/avg/max'}, 'vs_avg_pct': {'description': '平均比(例 +18%)'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '見積額の適正診断。verdict・level(ok/watch/alert)・fair_range・danger_threshold・平均比・助言・出典。 / Quote audit verdict with fair range and advice.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': '見積書や営業トークで気になった表現・項目'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'flags': {'description': '該当手口の配列'}, 'input': {'description': '判定対象の文言'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'result': {'description': '件数の要約'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '既知の過剰請求・強引営業の手口との照合結果。該当した手口と警告・対処。 / Matched overcharge or high-pressure tactics with warnings.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'spec': {'type': 'string', 'description': '規格(例: 21-8-25(20))。 / Specification.'}, 'layer': {'enum': ['material', 'labor', 'work', 'equipment', 'index', 'wage', 'bid_item', 'cost_sqft', 'spending', 'house_price', 'cost_limit'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'description': '品目名。 / Item name.'}, 'country': {'enum': ['JP', 'US'], 'type': 'string'}, 'normalize': {'enum': ['exact', 'namacon'], 'type': 'string', 'description': 'exact(既定: 規格の文字が同じものだけ)/ namacon(生コンの規格を局をまたいで束ねる: セメント・呼び強度-スランプ-骨材・水セメント比・単位セメント量)。 / namacon groups ready-mix concrete specs across bureaus.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'groups': {'description': '規格・単位・値の種類ごとの組(最小・中央・最大) / groups with min, median, max'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'by_status': {'description': '状態別の件数 / counts by status'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'computed_note': {'description': '計算した値の説明 / computed fields'}}, 'description': '地域ごとの最新の値の比較。 / Latest value per region.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['work'], 'properties': {'work': {'type': 'string', 'description': '工事名(例: 外壁塗装 30坪)'}, 'merchant': {'type': 'string', 'description': '(任意) 施工業者名。Cart Mandate 例示に反映するだけで判定には使わない。'}, 'quoted_price': {'type': 'number', 'description': '(任意) カートに載せる予定の見積額(円, 数値)。渡すと適正レンジとの判定を証跡に同梱する。'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'ap2_bridge': {'description': 'AP2との関係(認可の検証 x 価値の検証)'}, 'attestation': {'description': '証跡本体(subject, integrity)'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'a2a_carriage': {'description': '証跡を CartMandate に添える規範的な位置(A2A Artifact の兄弟 DataPart、開放口は risk_data)'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'cart_mandate_example': {'description': 'CartMandate の構造例(非規範。contents は署名対象なので第三者証跡は入れない)'}}, 'description': 'AP2 Cart Mandate 向けの適正価格証跡。attestation(FairPriceAttestation)・cart_mandate_example・a2a_carriage(規範的な添付位置=A2A の兄弟 DataPart)・verify_url。 / FairPriceAttestation for an AP2 Cart Mandate, carried as a sibling A2A DataPart.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'area': {'type': 'string', 'description': '地域(都道府県・市区町村、例: 平塚市, 神奈川県, 名古屋市)。 / Area: prefecture or city, in Japanese.'}, 'work': {'type': 'string', 'description': '工事名(例: 窓 交換, 外壁塗装, 浴室)。 / Work name in Japanese.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'stores': {'description': '検証済みの店(member_no, name, area, works, fairness_score, integrity_tier, profile_url)'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'directory_size': {'description': '名簿全体の件数(掲載数と検証済み数)'}, 'pending_stores': {'description': '検証手続き中の店(スコア無し)'}, 'verified_count': {'description': '検証済みの件数'}}, 'description': '地域・工事名に合う検証済み施工店(Yakumo)。stores(検証済み)・pending_stores(手続き中)・directory_size・neutrality。金額なし。 / Verification-passed contractors with pending ones listed separately; no prices.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'skills': {'description': '公開スキル配列'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'agent_card_url': {'description': 'エージェントカードURL'}}, 'description': 'A2Aエージェントカードの場所と公開スキル一覧。 / A2A Agent Card URL and published skills.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '見積もりが誠実かを判断する普遍原則(諸経費比率・一式表記・営業手口)。 / Universal principles for judging an estimate.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '相場データ(souba-db)の出典・更新日・地域係数。 / Sources, update date and regional multipliers behind the fair-price data.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'geo': {'type': 'string', 'description': '地域(都道府県・州)。 / Region.'}, 'layer': {'enum': ['material', 'labor', 'work', 'equipment', 'index', 'wage', 'bid_item', 'cost_sqft', 'spending', 'house_price', 'cost_limit'], 'type': 'string'}, 'detail': {'type': 'boolean', 'description': 'true で出典ごとの行も返す(既定は要約: layer ごとの件数と出典の系統の上位 5。米国の非公開の層の件数も付く)。 / true for per-source rows; the default is a summary.'}, 'country': {'enum': ['JP', 'US'], 'type': 'string'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'absent': {'description': '無い組み合わせ / combinations not ingested'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'matrix': {'description': '国 x 種類 x 出典の件数 / rows by country, layer and source'}, 'total_rows': {'description': '行数 / total rows'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '観測層に何があるか。 / What the observation layers hold.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': 'JCCDB(日本建設費オープンデータベース)のメタデータ。規模・ライセンス・ダウンロードリンク・引用情報。 / JCCDB dataset metadata: scale, license, links, citation.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': '終わり(含む)。 / End period (inclusive).'}, 'from': {'type': 'string', 'description': '始め(2020, 2020Q1, 2020-01, FY2020)。 / Start period.'}, 'limit': {'type': 'integer', 'maximum': 20, 'minimum': 1}, 'query': {'type': 'string', 'description': '系列名(例: NHCCI)。 / Series name.'}, 'country': {'enum': ['JP', 'US'], 'type': 'string'}, 'source_id': {'type': 'string'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'series': {'description': '系列(時点と値、前年同期比は computed:true) / series with computed year-over-year'}, 'yoy_note': {'description': '前年同期比の説明 / year-over-year note'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '建設費の指数の系列。 / Construction cost index series.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'job': {'type': 'string', 'description': '職種(例: 大工, 左官, 特殊作業員)。 / Trade in Japanese.'}, 'pref': {'type': 'string', 'description': '都道府県。 / Prefecture.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'history': {'type': 'boolean', 'description': 'true で年ごとの系列。 / true for the yearly series.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'description': '都道府県 x 職種の賃金(8 時間あたり) / wage per 8 hours by prefecture and trade'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'periods': {'description': '時点 / periods'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'sources_used': {'description': '出典 / sources'}}, 'description': '公共工事設計労務単価。 / MLIT public-works design labor rates.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'geo': {'type': 'string', 'description': '地域: 都道府県名・JIS コード(29, JP-29)、州名・略号・FIPS(California, CA, US-06)。 / Region: prefecture name or JIS code, U.S. state name, abbreviation or FIPS.'}, 'pref': {'type': 'string', 'description': '都道府県(奈良県 / 奈良 / nara)。 / Prefecture.'}, 'layer': {'enum': ['material', 'labor', 'work', 'equipment', 'index', 'wage', 'bid_item', 'cost_sqft', 'spending', 'house_price', 'cost_limit'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': '品目名(例: 生コンクリート)。 / Item name.'}, 'offset': {'type': 'integer', 'minimum': 0}, 'period': {'type': 'string', 'description': '時点(2026, 2026-09, 2025Q4, FY2025)。 / Period.'}, 'status': {'enum': ['published_pdl', 'published_cc_by', 'public_domain', 'published_open_terms', 'published_restricted_not_copied', 'publication_based_not_public', 'not_set'], 'type': 'string'}, 'country': {'enum': ['JP', 'US'], 'type': 'string'}, 'source_id': {'type': 'string', 'description': '出典 ID(get_jccdb_coverage で分かる)。 / Source id.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'description': '1 行 1 観測(値・単位・状態・license・attribution・evidence_url) / one row per observation'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'by_status': {'description': '状態別の件数 / counts by price status'}, 'next_offset': {'description': '続きの offset / next page'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'license_note': {'description': '利用条件 / licence note'}}, 'description': '地域・時点・値(か非公開の理由)の観測。 / Observations by region and date, with price status.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'pref': {'type': 'string', 'description': '都道府県。 / Prefecture.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': '工種・品目(例: 掘削)。 / Work item.'}, 'offset': {'type': 'integer', 'minimum': 0}, 'period': {'type': 'string'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'packages': {'description': '施工パッケージの単価 / unit price packages'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'composition_rows_attached': {'description': '添えた構成比の行数 / attached composition rows'}}, 'description': '工事の単価と構成比。 / Public-works unit prices with composition ratios.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': '工事名やキーワード(日本語)'}, 'region': {'type': 'string', 'description': '(任意) 地域。都道府県か市名(例: 神奈川県, 平塚市, 名古屋市)か kanto/kinki/chubu/tohoku/other。渡すと souba-db の地域係数を掛けた値と基準値の両方を返す。 / (optional) Prefecture, city, or one of kanto, kinki, chubu, tohoku, other. Applies the regional multiplier and returns base values alongside.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'work': {'description': '工事名'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'fair_range': {'description': '適正レンジ'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'danger_threshold': {'description': '危険水準'}}, 'description': '適正価格レンジ(min/avg/max)・過剰請求の危険水準・単位・価格動向・実務解説。 / Fair price range with overcharge danger threshold.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'geo': {'type': 'string', 'description': '州・郡・ZIP(zip:28533)・市(Cherry Point, NC)・国外(country:JP)。 / State, county, ZIP, city or overseas country.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'minimum': 0}, 'installation': {'type': 'string', 'description': '施設の名前(例: Fort Bragg)。 / Installation name.'}, 'include_history': {'type': 'boolean'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'sites': {'description': '施設ごとの係数 / factors by installation'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'acf_stats': {'description': '係数の要約 / factor summary'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'state_adjustment_factor': {'description': 'USACE の州の係数 / USACE state factor'}}, 'description': '米国の場所ごとの建設費の係数。 / U.S. location cost factors.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'geo': {'type': 'string', 'description': '州・郡 FIPS(county:06037)・都市圏 CBSA(cbsa:31080)・市(Austin, TX)・郡の名前(Los Angeles County, CA)。 / State, county FIPS, CBSA, place or county name.'}, 'layer': {'enum': ['labor', 'wage', 'work', 'equipment', 'index', 'spending', 'cost_sqft', 'cost_limit', 'bid_item', 'house_price', 'material'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': '品目・職種(英語。例: excavation, carpenters)。 / Item or occupation in English.'}, 'state': {'type': 'string', 'description': '州名・略号・FIPS(California, CA, 06, カリフォルニア)。 / State name, abbreviation or FIPS.'}, 'offset': {'type': 'integer', 'minimum': 0}, 'period': {'type': 'string', 'description': '時点(2024, 2025-05, 2025Q4, FY2026)。 / Period.'}, 'source_id': {'type': 'string'}, 'include_national': {'type': 'boolean', 'description': '州を指定したとき全国一律・地域一律の行も返す(既定 true。郡・都市圏・市では既定 false)。 / Include national and regional rows (default true for a state).'}}}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'description': '1 行 1 観測 / one row per observation'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'by_layer': {'description': '種類別の件数 / counts by layer'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'license_note': {'description': '利用条件 / licence note'}}, 'description': '米国の公的な建設費データ(USCCDB)。 / U.S. public construction cost data (USCCDB).', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'basis': {'enum': ['MSRP Discount', 'Over MSRP', 'Catalog Off', 'Discount off List Price', 'Discount off shelf price', 'Discount off shelf price (range)', 'Cost Plus', 'N/A', 'See below'], 'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'query': {'type': 'string', 'description': 'メーカー・製品系列・分野・業者の語(英語)。 / Manufacturer, product line, category or vendor words.'}, 'offset': {'type': 'integer', 'minimum': 0}, 'vendor': {'type': 'string'}, 'source_id': {'enum': ['wa-des-23623', 'wa-des-11121', 'naspo-mro-ak'], 'type': 'string'}, 'manufacturer': {'type': 'string'}}}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'description': '契約・メーカーごとの値引き率と kake_ratio / discount and kake ratio'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'summary_by_vendor': {'description': 'メーカーごとの要約 / summary by vendor'}}, 'description': '米国の公共契約の値引き率。 / Discount rates in U.S. public contracts.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'hs': {'type': 'string', 'description': 'HS の頭 2〜10 桁(例 7214 棒鋼)。 / HS code prefix.'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'description': '英語の品名。 / Product name in English.'}, 'country': {'type': 'string', 'description': '相手国(英語の国名か Census の国コード 4 桁)。 / Partner country.'}, 'top_countries': {'type': 'integer', 'maximum': 20, 'minimum': 1}}}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'description': 'HS 10 桁ごとの CIF・関税・単価 / CIF, duty and unit cost by HS code'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'how_to_cite': {'description': '引用の仕方 / how to cite'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '米国の輸入の陸揚げ原価。 / U.S. landed import cost by HS code.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'geo': {'type': 'string', 'description': "州・郡(FIPS か 'Multnomah County, OR')・都市圏(cbsa:38900)・市(Austin, TX)。無ければ全国。 / State, county, CBSA or place; national if omitted."}, 'year': {'type': 'string', 'description': '年(2024)。 / Year.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'offset': {'type': 'integer', 'minimum': 0}, 'source': {'enum': ['all', 'bps', 'city'], 'type': 'string'}, 'structure': {'enum': ['1-unit', '2-units', '3-4 units', '5+ units'], 'type': 'string'}}}
Ausgabeschema
{'type': 'object', 'properties': {'bps': {'description': 'Census BPS の棟数・戸数・工事額 / Census BPS'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'city_permits': {'description': '市の許可の申告工事額の分布 / city permit valuations'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '米国の建築許可。 / U.S. building permits.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1}, 'state': {'type': 'string', 'description': '州名・略号・FIPS。 / State.'}, 'trade': {'type': 'string', 'description': '職種(英語。例: carpenter, electrician, laborer)。 / Trade in English.'}, 'county': {'type': 'string', 'description': '郡 FIPS 5桁か郡の名前(Los Angeles)。 / County FIPS or name.'}, 'offset': {'type': 'integer', 'minimum': 0}, 'decision': {'type': 'string', 'description': '決定番号(例 CA20260001)。 / Wage determination number.'}, 'construction_type': {'type': 'string', 'description': 'Building / Heavy / Highway / Residential。 / Construction type.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'rates': {'description': '基本時給と付加給付(決定番号・出典つき) / base wage and fringe with decision number'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'coverage_note': {'description': '取り込んだ州の範囲 / state coverage'}}, 'description': 'Davis-Bacon の一般賃金決定。 / Davis-Bacon general wage determinations.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'hs': {'type': 'string', 'description': 'HS の頭 2〜10 桁(例 2523 セメント、4412 合板、3917 樹脂管、6907 タイル)。 / HS code prefix.'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'description': '英語の品名(例 plywood, portland cement, pvc pipe, ceramic tiles)。 / Product name in English.'}, 'include_thin': {'type': 'boolean', 'description': '取引の薄い品目も入れる(既定は外す)。 / Include thinly traded items.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'description': '品目ごとの陸揚げ・卸・小売・元請(式・出典・sha256) / landed, wholesale, retail, contractor with formula and sources'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'markups': {'description': '元請の上乗せ率(州の交通局の原本) / contractor markups from state DOT originals'}, 'how_to_cite': {'description': '引用の仕方 / how to cite'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '米国の流通の各段の推計(計算して返す)。 / U.S. distribution-chain estimates, computed on request.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {'year': {'type': 'string'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1}, 'naics': {'type': 'string', 'description': 'NAICS の頭(4233 建材卸、423720 配管・暖房卸、4441 建材小売、444110 ホームセンター)。 / NAICS prefix.'}, 'query': {'type': 'string', 'description': '業種の語(英語。例 plumbing, paint)。 / Industry words in English.'}, 'trade': {'enum': ['wholesale', 'retail'], 'type': 'string'}, 'history': {'type': 'boolean', 'description': 'true で年ごと。 / All years.'}, 'commodity': {'type': 'string', 'description': 'BEA の品目の語(英語。例 cement, lighting)。 / BEA commodity words.'}, 'include_bea': {'type': 'boolean'}}}
Ausgabeschema
{'type': 'object', 'properties': {'rows': {'description': 'NAICS ごとの粗利率と kake_cost_ratio / margins and cost ratio by NAICS'}, 'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'margin_index': {'description': 'マージン物価指数 / trade-margin price indexes'}}, 'description': '米国の卸と小売の粗利率。 / U.S. wholesale and retail gross margins.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'categories': {'description': 'カテゴリ配列(id, name, group, priority, red_flags)'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '整備済みの建設・リフォーム工事カテゴリ(61種)の一覧。 / The 61 maintained construction and renovation cost categories.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['work', 'quoted_price'], 'properties': {'work': {'type': 'string', 'description': '工事名(日本語)。例: 外壁塗装 シリコン。部分一致で照合。'}, 'quoted_price': {'type': 'number', 'description': '業者提示の概算額(円, 数値)。'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '概算が平均からどちらの方向にどの程度ずれているかのプレビュー。具体的な適正額は含まない。 / Direction-only preview versus the average.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': '工事名やキーワード(日本語)'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': '工事名・キーワードに該当したカテゴリと、整備済み赤旗件数・優先度。 / Matched cost category with red-flag count and priority.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'query': {'type': 'string', 'description': '品目名(日本語。例: 生コンクリート 21-8-25)。 / Item name in Japanese.'}, 'category': {'type': 'string', 'description': '(任意) JCCDB のカテゴリ名で絞る。 / optional JCCDB category.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'description': '当たった件数 / matches'}, 'items': {'description': '品目(名前・カテゴリ・単位・evidence_url) / line items with evidence URLs'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'observations_by_layer': {'description': '観測層にある件数 / observation rows by layer'}}, 'description': 'JCCDB の品目の目録(95,403、v5.0 は観測を含め計425,765件)の名前検索。 / Name search over the JCCDB item catalogue (95,403 line items; v5.0 has 425,765 records including observations).', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'properties': {}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'board_url': {'description': '公開ボード'}, 'submit_url': {'description': '投稿フォーム'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}}, 'description': 'EHN(見積もりハッカーニュース)への案内文と投稿URL。 / Guide and submission URL for the EHN anonymous review board.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['work'], 'properties': {'work': {'type': 'string', 'description': '工事名(例: 外壁塗装 30坪)'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'provenance': {'description': 'データ出典・監修・再計算手順'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'verification': {'description': 'claim_sha256, verify_url, ptka'}, 'fair_price_claim': {'description': '刻印対象の主張(JSON.stringifyしてSHA-256すると claim_sha256 になる)'}}, 'description': '検証可能な適正価格レシート。fair_price_claim(主張)・verification(claim_sha256, verify_url, PTKA)・provenance(出典)。 / Tamper-evident fair-price receipt with hash, verify_url and PTKA anchor.', 'additionalProperties': True}
Eingabeschema
{'type': 'object', 'required': ['signed_payload', 'claim_sha256'], 'properties': {'claim_sha256': {'type': 'string', 'description': 'そのレスポンスの claim_sha256 (64桁16進)。 / The claim_sha256 (64-char hex) from the same response.'}, 'signed_payload': {'type': 'string', 'description': '検証対象の署名付きペイロード(estimate-integrity-audit のレスポンスの signed_payload を生文字列のまま)。改変するとハッシュ不一致で unverified になる。 / The signed_payload string from an estimate-integrity-audit response, verbatim. Any change makes the hash mismatch and the result unverified.'}, 'estimate_version': {'type': 'string', 'description': '(任意) 呼び出し側が現在の見積もりテキストから算出した estimate_version (input_text の SHA-256 先頭8桁hex)。渡すと発行時の版と一致するか照合する。省略可。 / (optional) The estimate_version the caller computed from the current estimate text (first 8 hex of SHA-256 of input_text). If provided, scope is checked against the issued version.'}}}
Ausgabeschema
{'type': 'object', 'properties': {'count': {'type': 'number', 'description': 'How many records matched. 0 means the source was read and nothing matched. It never means the source could not be read, that returns isError: true.'}, 'lookup': {'enum': ['ok', 'absent'], 'type': 'string', 'description': 'ok = the source was read and something matched. absent = the source was read and nothing matched. A source that could NOT be read never appears here: that returns isError: true and makes no claim about what does or does not exist.'}, 'result': {'description': 'verified / unverified'}, 'source_read': {'type': 'boolean', 'description': 'true on every successful result. A failed lookup does not return a result at all, so this is never false, it is declared so a consumer can assert on it.'}, 'did_you_mean': {'description': 'Near matches, when an exact match was not found.'}, 'failure_reason': {'description': 'stale_data / changed_scope / missing_evidence'}, 'recomputed_sha256': {'description': '再計算ハッシュ'}}, 'description': '署名済みクレームの第三者検証結果(fail closed)。result(verified/unverified)・failure_reason・recomputed_sha256・scope_check。 / Third-party verification result, fail closed.', 'additionalProperties': True}
Letzte Tool-Änderungen
Ähnliche MCP-Server
BeeL
Provides Spanish company administration and VeriFactu-compliant invoicing, including customers, products, invoice issuance, corre…
corply
Supports company formation and corporate administration including incorporation documents, signatures, cap tables, corporate acti…
FalaZuki Finance BR
Provides Brazil-focused financial calculations and rules for investments, credit, taxes, payroll, labor costs, debt, budgeting, a…
XBOSS
Accesses Korean tax, social insurance, payroll, cash receipt, e-tax invoice, and certificate filing services.
Sirenic
Provides European company registry, financial, procurement, sanctions, regulatory, insolvency, ownership, and ongoing due-diligen…
Xearno Tools
Provides financial, tax, employment-benefit, lending, pricing, and business calculators using jurisdiction-specific rules and cur…
schedule-iii
Transforms Indian company trial balances into controlled Schedule III financial statement workbooks with account mappings, disclo…
editalmd
Searches Brazilian public procurement opportunities and documents, tracks deadlines and alerts, and supports tender document acce…