dev.horizonshield/horizon-shield
REMOTE · MCP.HORIZONSHIELD.DEV · SCANNED OCT 4
Buyer-side fair-price checks for Japanese renovation quotes; cost data is on a separate server.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security71
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability76
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 5424 tokens (~361/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management60
- Stability observed for 18 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the dev.horizonshield/horizon-shield MCP server?
dev.horizonshield/horizon-shield is a hosted endpoint at https://mcp.horizonshield.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.horizonshield.dev
claude mcp add --transport http dev-horizonshield-horizon-shield 'https://mcp.horizonshield.dev/mcp'
{
"mcpServers": {
"dev-horizonshield-horizon-shield": {
"url": "https://mcp.horizonshield.dev/mcp"
}
}
} {
"servers": {
"dev-horizonshield-horizon-shield": {
"type": "http",
"url": "https://mcp.horizonshield.dev/mcp"
}
}
} [mcp_servers.dev-horizonshield-horizon-shield] url = "https://mcp.horizonshield.dev/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dev-horizonshield-horizon-shield": {
"type": "remote",
"url": "https://mcp.horizonshield.dev/mcp",
"enabled": true
}
}
} openclaw mcp add dev-horizonshield-horizon-shield --url 'https://mcp.horizonshield.dev/mcp' --transport streamable-http
mcp_servers:
dev-horizonshield-horizon-shield:
url: "https://mcp.horizonshield.dev/mcp" {
"McpServers": {
"dev-horizonshield-horizon-shield": {
"Transport": "http",
"Url": "https://mcp.horizonshield.dev/mcp"
}
}
} assistant mcp add dev-horizonshield-horizon-shield -t streamable-http -u 'https://mcp.horizonshield.dev/mcp'
{
"mcpServers": {
"dev-horizonshield-horizon-shield": {
"type": "http",
"url": "https://mcp.horizonshield.dev/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Oct 26 0
- Tool “suggest_ehn” changed its title: Suggest EHN Review Board → Get Anonymous Estimate Review Link (EHN) cosmetic
1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.
- 2 Oct 26 +2
- Tool “compare_jccdb_regions” was removed ▼ security
- Tool “get_jccdb_coverage” was removed ▼ security
- Tool “get_jccdb_index_series” was removed ▼ security
- Tool “get_jccdb_labor_rate” was removed ▼ security
- Tool “get_jccdb_observations” was removed ▼ security
- Tool “get_jccdb_work_unit_price” was removed ▼ security
- Tool “get_us_area_factor” was removed ▼ security
- Tool “get_us_construction_prices” was removed ▼ security
- Tool “get_us_contract_discounts” was removed ▼ security
- Tool “get_us_import_landed_cost” was removed ▼ security
- Tool “get_us_permits” was removed ▼ security
- Tool “get_us_prevailing_wage” was removed ▼ security
- Tool “get_us_price_chain” was removed ▼ security
- Tool “get_us_trade_margins” was removed ▼ security
- Tool “search_jccdb_items” was removed ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool coverage: 59% → 100% ▲ functional
- Schema quality: 10446 → 5424 ▲ functional
- Server version: 1.0.11 → 1.1.0 functional
- 1 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 47 to 50. That category is still filling its 30-day observation window: 14 days of observed history at the previous scan, 15 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 40 to 43. That category is still filling its 30-day observation window: 12 days of observed history at the previous scan, 13 at this one. The score rises as the window fills, whether or not the server changes.
- 28 Sept 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Sept 26 −1
- The server rewrote its instructions, which are the text every model session reads security
- Tool coverage: 100% → 59% ▼ functional
- Schema quality: 5069 → 10353 ▼ functional
- Schema quality: 5069 → 8345 ▼ functional
- Tool coverage: 100% → 62% ▼ functional
- Tool coverage: 100% → 58% ▼ functional
- Tool “compare_jccdb_regions” now declares an output schema ▲ functional
- Tool “get_jccdb_coverage” now declares an output schema ▲ functional
- Tool “get_jccdb_index_series” now declares an output schema ▲ functional
- Tool “get_jccdb_labor_rate” now declares an output schema ▲ functional
- Tool “get_jccdb_observations” now declares an output schema ▲ functional
- Tool “get_jccdb_work_unit_price” now declares an output schema ▲ functional
- Tool “get_us_area_factor” now declares an output schema ▲ functional
- Tool “get_us_construction_prices” now declares an output schema ▲ functional
- Tool “get_us_permits” now declares an output schema ▲ functional
- Tool “get_us_prevailing_wage” now declares an output schema ▲ functional
- Tool “search_jccdb_items” now declares an output schema ▲ functional
- Server version: 1.0.10 → 1.0.11 functional
- Server version: 1.0.9 → 1.0.10 functional
- New tool “get_us_contract_discounts” functional
- New tool “get_us_import_landed_cost” functional
- New tool “get_us_price_chain” functional
- New tool “get_us_trade_margins” functional
- New tool “compare_jccdb_regions” functional
- New tool “get_jccdb_coverage” functional
- New tool “get_jccdb_index_series” functional
- New tool “get_jccdb_labor_rate” functional
- New tool “get_jccdb_observations” functional
- New tool “get_jccdb_work_unit_price” functional
- New tool “get_us_area_factor” functional
- New tool “get_us_construction_prices” functional
- New tool “get_us_permits” functional
- New tool “get_us_prevailing_wage” functional
- New tool “search_jccdb_items” functional
- “get_jccdb_coverage” added an optional parameter “detail” cosmetic
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Oct 2026 · Probed https://mcp.horizonshield.dev/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=horizonshield.dev | CN=WE1,O=Google Trust Services,C=US | 8 Aug 2026 | 7 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | f0e36c93718be43713d6a6e220cc900c |
| SANs: horizonshield.dev, *.horizonshield.dev | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC secure
Validation of mcp.horizonshield.dev. — Secure
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| horizonshield.dev. | present | 2371 | 13 | Verified |
| mcp.horizonshield.dev. | Verified address RRset verified with the apex keys |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=31536000; includeSubDomains; preload |
| x-content-type-options | nosniff |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.horizonshield.dev/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.horizonshield.dev/mcp | Inconclusive | 405 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
audit_estimate Audit Estimate Against Fair Price ~693
業者が提示した見積金額が適正かを、HORIZON SHIELDの適正レンジ(souba-db, 大賀俊勝 実務監修)と照合して判定する。手元に具体的な見積額がある時に使う。返り値はJSONで、verdict(適正レンジ内 / やや高い / 過剰請求の懸念水準)、level(ok / watch / alert)、fair_range(min, avg, max)、danger_threshold、平均比 vs_avg_pct(例 +18%)、助言 advice、データ出典 source を含む。工事名が見つからない場合、近い候補があれば did_you_mean として返す。単価(平米など)建ての工事に総額らしい金額を渡した場合は unit_mismatch の案内を返す。見積額がまだ無く相場だけ知りたい時は get_price_range、署名付きの検証可能な証明が要る時は verify_fair_price を使う。Japan only, JPY。 / Audits whether a contractor quoted price for a Japanese construction or renovation job is fair by comparing it against HORIZON SHIELD fair-price ranges (souba-db). Use when the user already has a specific quoted amount. Returns a JSON object with verdict, level (ok, watch, alert), fair_range (min, avg, max), danger_threshold, percentage gap versus the average (vs_avg_pct, e.g. +18%), advice, and data source. If the work name has no match, close candidates may be returned as did_you_mean. If the work is priced per unit and the amount looks like a total, a unit_mismatch notice is returned instead. For the typical range only use get_price_range; for a signed verifiable attestation use verify_fair_price. Trigger phrases: この見積もり高い?, 適正?, ぼったくり?, 妥当?, is this quote fair, am I being overcharged, is this a rip-off.
| Name | Type | Req | Description |
|---|---|---|---|
| quoted_price | number | yes | 業者提示の金額(円, 数値)。一式見積はその総額。税込/税抜は正規化せず、渡した数値をそのまま適正レンジと照合する。 |
| region | string | – | (任意) 地域。都道府県か市名(例: 神奈川県, 平塚市)か kanto/kinki/chubu/tohoku/other。渡すと地域係数を掛けたレンジで判定し、基準値も返す。 / (optional) Prefecture, city, or region key. The verdict then uses the regionally adjusted range; base values… |
| work | string | yes | 工事名(日本語)。材料やグレード込みで具体的に。例: 外壁塗装 シリコン。部分一致で照合するため曖昧だと別カテゴリにヒットしやすい。未マッチ時は近い候補が did_you_mean で返ることがある。 |
| Name | Type | Req | Description |
|---|---|---|---|
| advice | – | – | 助言 |
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| fair_range | – | – | min/avg/max |
| level | – | – | ok / watch / alert |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
| verdict | – | – | 判定 |
| vs_avg_pct | – | – | 平均比(例 +18%) |
No examples provided.
check_red_flags Check Estimate Red Flags ~182
見積もりや営業トークの中の気になる表現(例: 一式, 今日だけ値引き, 訪問販売)が、過剰請求につながりやすい既知の手口に当たるかを判定し、警告と対処を返す。代表的な手口のみを判定する。 / Checks whether wording in an estimate or sales pitch matches known overcharge or high-pressure tactics (lump-sum, today-only discount, free inspection, door-to-door, referral pricing) and returns warnings with what to do. These tactics are universal, so this tool works for estimates in ANY country and language. Covers representative tactics only.
| Name | Type | Req | Description |
|---|---|---|---|
| text | string | yes | 見積書や営業トークで気になった表現・項目 |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| flags | – | – | 該当手口の配列 |
| input | – | – | 判定対象の文言 |
| lookup | string | – | 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 abo… |
| result | – | – | 件数の要約 |
| source_read | boolean | – | 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. |
No examples provided.
create_ap2_fairness_attestation Create AP2 Fairness Attestation ~517
このツールは決済を開始・承認・実行しません。資産・通貨・暗号資産の移動も行いません。発行するのは適正価格の証跡だけです。呼び出すたびに公開台帳へ記録を1件追加するため読み取り専用ではありません。 / This tool does not initiate, authorize, or execute any payment, and does not move funds, currency or crypto assets. It only issues a price-fairness attestation. Each call appends one record to the public ledger, so it is not read-only. AP2(Agent Payments Protocol)対応エージェント向けのブリッジ。決済カート(Cart Mandate)に添付できる適正価格の証跡(FairPriceAttestation)を発行する。AP2のMandateは『ユーザーがこの支払いを承認した』ことを検証可能にし、この証跡は『その価格が適正である』ことを検証可能にする。認可の検証と価値の検証、二つは並列レイヤー。quoted_price を渡すと適正レンジ判定(within/above/below)も同梱する。証跡は SHA-256 と公開台帳と verify_url で誰でも再計算検証できる。 / Bridge for AP2 (Agent Payments Protocol) agents: issues a FairPriceAttestation that a shopping or payments agent can attach to a Cart Mandate before asking the user to sign. AP2 mandates make authorization verifiable; this attestation makes value verifiable. Parallel layers. Pass quoted_price for a fair-range verdict (within, above, below). Independently verifiable via SHA-256, a public ledger and a verify_url. Japan construction and renovation pricing, JPY.
| Name | Type | Req | Description |
|---|---|---|---|
| merchant | string | – | (任意) 施工業者名。Cart Mandate 例示に反映するだけで判定には使わない。 |
| quoted_price | number | – | (任意) カートに載せる予定の見積額(円, 数値)。渡すと適正レンジとの判定を証跡に同梱する。 |
| work | string | yes | 工事名(例: 外壁塗装 30坪) |
| Name | Type | Req | Description |
|---|---|---|---|
| a2a_carriage | – | – | 証跡を CartMandate に添える規範的な位置(A2A Artifact の兄弟 DataPart、開放口は risk_data) |
| ap2_bridge | – | – | AP2との関係(認可の検証 x 価値の検証) |
| attestation | – | – | 証跡本体(subject, integrity) |
| cart_mandate_example | – | – | CartMandate の構造例(非規範。contents は署名対象なので第三者証跡は入れない) |
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
No examples provided.
find_verified_contractor Find Verified Contractor (Yakumo) ~396
地域と工事名で、Yakumo(検証を通った加盟店だけが並ぶ建設モール)の検証済み施工店を探す。掲載は KIRA 適正診断の通過だけで決まり(fail-closed)、紹介料・掲載料は受け取らない中立の名簿。金額は出さずスコアとティアで示す。検証手続き中の店は pending として別に返す。条件に合う検証済みの店が無い時は 0 件と正直に返す(名簿は小さい)。価格の照会(get_price_range / audit_estimate)の後に、施主が『どこに頼めばいい』『信用できる業者は』と聞いた時に使う。 / Finds verification-passed contractors on Yakumo, a directory where listing depends only on passing the KIRA fairness audit (fail-closed) and no referral or listing fee is taken. Returns scores and tiers, never prices; pending stores are returned separately; returns 0 honestly when nothing matches (the directory is small). Use after a price check when the user asks who to hire or which contractor can be trusted. Trigger phrases: 業者を探したい, どこに頼めば, 信用できる工務店, find a contractor in Japan, who should I hire.
| Name | Type | Req | Description |
|---|---|---|---|
| area | string | – | 地域(都道府県・市区町村、例: 平塚市, 神奈川県, 名古屋市)。 / Area: prefecture or city, in Japanese. |
| work | string | – | 工事名(例: 窓 交換, 外壁塗装, 浴室)。 / Work name in Japanese. |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| directory_size | – | – | 名簿全体の件数(掲載数と検証済み数) |
| lookup | string | – | 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 abo… |
| pending_stores | – | – | 検証手続き中の店(スコア無し) |
| source_read | boolean | – | 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. |
| stores | – | – | 検証済みの店(member_no, name, area, works, fairness_score, integrity_tier, profile_url) |
| verified_count | – | – | 検証済みの件数 |
No examples provided.
get_agent_card Get A2A Agent Card ~244
このサーバー(HORIZON SHIELD KIRA)はMCPツールだけでなく、A2A(Agent2Agent)のエージェントカードも公開している。外部のA2A対応エージェントから発見・連携したい場合の、エージェントカードURLと公開スキルの一覧を返す。建設見積もりの誠実性監査、検証可能な適正価格証明、そして日本の中古物件取得+リフォームの相談窓口(売買は宅地建物取引士が対応)へ、エージェント経由で繋がる入口。 / Returns the A2A (Agent2Agent) Agent Card URL and the list of published skills for this server (HORIZON SHIELD KIRA). Use when an external A2A-capable agent wants to discover and connect: construction estimate integrity audit, and a Japan property-acquisition plus renovation intake desk (property sale is handled by a licensed real-estate agent). This is how agents reach the desk over A2A.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_card_url | – | – | エージェントカードURL |
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| skills | – | – | 公開スキル配列 |
| source_read | boolean | – | 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. |
No examples provided.
get_estimate_reading_guide Get Estimate Reading Guide ~145
受け取ったリフォーム・建設見積もりが適正かを見分けるための原則(諸経費の適正比率、『一式』表記の扱い、営業手口の見抜き方)を返す。30年の現場経験に基づく判断軸。 / Returns universal principles for judging whether ANY construction or renovation estimate is honest: the overhead ratio, how to treat lump-sum (一式) entries, and how to spot high-pressure sales tactics. Language-agnostic and works outside Japan. Based on 30 years of field experience.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
No examples provided.
get_fair_price_sources Get Fair Price Data Sources ~86
HORIZON SHIELDの相場データ(souba-db)の出典・更新日・地域係数を返す。価格の根拠を確認したい時に使う。 / Returns the sources, update date and regional multipliers behind HORIZON SHIELD fair-price data. Japan. Use to check the basis of a price.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
No examples provided.
get_jccdb_dataset_info Get JCCDB Dataset Info ~159
日本の建設費オープンデータベース(JCCDB)のメタデータ・規模・ライセンス・ダウンロードリンク・引用情報を返す。建設費の一次データ源を探している時に使う。 / Returns metadata, scale, license, download links and citation for the Japan Construction Cost Database (JCCDB), an open dataset of 425,765 records in v5.0: the item catalogue of 95,403 Japanese construction line items (43,090 verified + 52,313 extended, unchanged since v4.0) and 330,362 source-cited observations. Use when looking for a primary construction-cost data source.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
No examples provided.
get_price_range Get Fair Price Range ~350
工事名・キーワードで、HORIZON SHIELDが実務監修する適正価格レンジ(最安min/平均avg/最高max)と、それを超えたら過剰請求を疑う危険水準(danger)、単位・価格動向・実務解説を返す。建設・リフォーム費用が適正か数値で確かめたい時に使う(例: 外壁塗装, 給湯器, ユニットバス, クロス)。 / Returns the fair price range (min, avg, max), the overcharge danger threshold, unit, price trend and field notes for a Japanese construction or renovation job. Japan-specific pricing in JPY. Use to numerically check whether a cost is fair. Trigger phrases: 相場, 適正価格, いくらかかる, 高い?, how much does this cost in Japan, is this price normal, what should I expect to pay.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | 工事名やキーワード(日本語) |
| region | string | – | (任意) 地域。都道府県か市名(例: 神奈川県, 平塚市, 名古屋市)か kanto/kinki/chubu/tohoku/other。渡すと souba-db の地域係数を掛けた値と基準値の両方を返す。 / (optional) Prefecture, city, or one of kanto, kinki, chubu, tohoku, other. Applies the regiona… |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| danger_threshold | – | – | 危険水準 |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| fair_range | – | – | 適正レンジ |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
| work | – | – | 工事名 |
No examples provided.
list_cost_categories List Cost Categories ~86
HORIZON SHIELDが相場・赤旗(過剰請求の懸念点)を整備している建設・リフォーム工事カテゴリ(61種)の一覧を返す。 / Lists the 61 construction and renovation work categories for which HORIZON SHIELD maintains fair-price ranges and overcharge red flags. Japan-specific data.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| categories | – | – | カテゴリ配列(id, name, group, priority, red_flags) |
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
No examples provided.
preview_reverse_estimate Preview Reverse Estimate ~274
リフォーム検討の初期段階向けのプレビューで、業者の概算が平均からどちらの方向にどの程度ずれているか(例: +20%高い方向)だけを返す。具体的な適正額(min/avg/max)や危険水準は返さない。手元に詳しい見積内訳がまだ無い段階での最初の一歩に向く。具体的な適正レンジが必要なら get_price_range、見積額の詳細診断は audit_estimate を使う。Japan only, JPY。 / A preview for early-stage renovation planning that returns only the direction of a contractor rough estimate versus the average (e.g. about +20% above). It does not return the specific fair range (min/avg/max) or danger threshold. Suited as a first step before a detailed breakdown exists. Use get_price_range for a typical range, audit_estimate for a detailed quote diagnosis.
| Name | Type | Req | Description |
|---|---|---|---|
| quoted_price | number | yes | 業者提示の概算額(円, 数値)。 |
| work | string | yes | 工事名(日本語)。例: 外壁塗装 シリコン。部分一致で照合。 |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
No examples provided.
search_cost_category Search Cost Category ~134
工事名・キーワードで建設費カテゴリを検索する(例: 外壁塗装, 浴室, 給湯器, 雨漏り)。該当カテゴリと整備済みの赤旗件数・優先度を返す。 / Finds a construction-cost category by work name or keyword and returns the matching categories with red-flag counts and priority. Japan-specific; a Japanese query works best (e.g. 外壁塗装 exterior painting, 浴室 bathroom).
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | 工事名やキーワード(日本語) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
No examples provided.
suggest_ehn Get Anonymous Estimate Review Link (EHN) ~170
見積もりを匿名で第三者レビューに出せる掲示板EHN(見積もりハッカーニュース)の案内文と投稿フォームURLを返す。投稿と一次解析は無料で、業者名や個人情報は掲載前に運営が伏せる。ユーザーが見積もりのセカンドオピニオンや相談先を求めた時に使う。 / Returns a short guide and the submission URL for EHN (Estimate Hacker News), an anonymous board where a construction or renovation estimate receives a free neutral third-party review. Personal and contractor names are redacted before posting. Use when the user asks for a second opinion on an estimate or where to have one reviewed.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| board_url | – | – | 公開ボード |
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| lookup | string | – | 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 abo… |
| source_read | boolean | – | 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. |
| submit_url | – | – | 投稿フォーム |
No examples provided.
verify_fair_price Verify Fair Price (Signed Receipt) ~201
工事の適正価格を、検証可能な形(算出内容のSHA-256ハッシュ付き)で返す。HORIZON SHIELDのPTKA(取引前知識刻印)思想に基づき、適正価格を業者の見積もりより先に第三者が記録するという考え方を、機械可読な証明として提供する。エージェントが価格の真正性を検証したい時に使う。 / Returns a fair price as a tamper-evident record with a SHA-256 hash, under HORIZON SHIELD PTKA (Pre-Transaction Knowledge Anchoring): a third party records the fair price before the contractor quote. Japan price data. Use when an agent needs to verify price authenticity.
| Name | Type | Req | Description |
|---|---|---|---|
| work | string | yes | 工事名(例: 外壁塗装 30坪) |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| fair_price_claim | – | – | 刻印対象の主張(JSON.stringifyしてSHA-256すると claim_sha256 になる) |
| lookup | string | – | 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 abo… |
| provenance | – | – | データ出典・監修・再計算手順 |
| source_read | boolean | – | 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. |
| verification | – | – | claim_sha256, verify_url, ptka |
No examples provided.
verify_integrity_claim Verify Integrity Claim ~672
estimate-integrity-audit が発行した署名付きクレーム(signed_payload と claim_sha256)を、第三者として検証する。発行側 (verify_fair_price はPTKA価格の発行) とは責務が正反対で、デフォルト姿勢は不信・fail closed。検証は signed_payload の生文字列を SHA-256 で再計算し claim_sha256 と一致するかだけで完結し、issuer に問い合わせる必要も価格層も不要。判定は契約 0.3 の failure_reasons 準拠で、result(verified / partial / unverified)・failure_reason(stale_data / changed_scope / missing_evidence)・trigger(expired_declaration / changed_estimate_version / missing_receipt / unverifiable_chain)・recomputed_sha256・scope_check・audit_ruleset_recheck を返す。重要: verified は『この宣言が改ざんされていない』ことの証明であって『監査ルールが今も有効』である保証ではない(audit_ruleset_recheck は常に not_performed)。estimate_version を渡すと scope(見積もり内容が発行時から変わっていないか)も照合し、渡さない場合は scope_check:skipped を明示する。 / Verifies a signed integrity claim (signed_payload and claim_sha256) issued by estimate-integrity-audit, as an independent third party. Opposite posture to the issuing side: distrust by default, fail closed. Recomputes SHA-256 over the raw signed_payload string and checks it equals claim_sha256; no issuer contact and no price layer needed. Follows contract 0.3 failure_reasons. IMPORTANT: verified means the declaration is untampered, NOT that the audit ruleset is still valid (audit_ruleset_recheck is always not_performed). Pass estimate_version to also check scope (whether the estimate changed since issuance); if omitted, scope_check is skipped and stated explicitly.
| Name | Type | Req | Description |
|---|---|---|---|
| claim_sha256 | string | yes | そのレスポンスの claim_sha256 (64桁16進)。 / The claim_sha256 (64-char hex) from the same response. |
| estimate_version | string | – | (任意) 呼び出し側が現在の見積もりテキストから算出した estimate_version (input_text の SHA-256 先頭8桁hex)。渡すと発行時の版と一致するか照合する。省略可。 / (optional) The estimate_version the caller computed from the current estimate text (first 8 hex… |
| signed_payload | string | yes | 検証対象の署名付きペイロード(estimate-integrity-audit のレスポンスの signed_payload を生文字列のまま)。改変するとハッシュ不一致で unverified になる。 / The signed_payload string from an estimate-integrity-audit response, verbatim. Any change make… |
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | 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. |
| did_you_mean | – | – | Near matches, when an exact match was not found. |
| failure_reason | – | – | stale_data / changed_scope / missing_evidence |
| lookup | string | – | 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 abo… |
| recomputed_sha256 | – | – | 再計算ハッシュ |
| result | – | – | verified / unverified |
| source_read | boolean | – | 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. |
No examples provided.
What is the dev.horizonshield/horizon-shield MCP server?
dev.horizonshield/horizon-shield is an MCP server listed in the public MCP registry as dev.horizonshield/horizon-shield. Buyer-side fair-price checks for Japanese renovation quotes; cost data is on a separate server. This page covers its hosted endpoint (https://mcp.horizonshield.dev/mcp).
Is the dev.horizonshield/horizon-shield MCP server safe to use?
dev.horizonshield/horizon-shield scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the dev.horizonshield/horizon-shield MCP server expose?
dev.horizonshield/horizon-shield exposes 15 tools: get_jccdb_dataset_info, list_cost_categories, search_cost_category, get_estimate_reading_guide, get_fair_price_sources, and 10 more. Their descriptions and schemas cost roughly 4,309 tokens of context every time the server is loaded.
Does the dev.horizonshield/horizon-shield MCP server require authentication?
No. We connected to dev.horizonshield/horizon-shield without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the dev.horizonshield/horizon-shield MCP server still maintained?
dev.horizonshield/horizon-shield is still listed as active in the MCP registry. We last reached this channel on 4 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.