# HORIZON SHIELD: Construction Estimate Auditor for Japan (KIRA)

> Agent intake desk for property renovation. Read only, CORS open, fail closed, receipts recompute.

- name: io.github.ogasurfproject-jpg/horizon-shield-webmcp
- version: 1.0.4
- connection class: R0 (autonomous)
- trust: 90/100 flags: duplicate-repo
- quality: 88/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.ogasurfproject-jpg%2Fhorizon-shield-webmcp
- tools: https://api.protogrid.dev/v1/servers/io.github.ogasurfproject-jpg%2Fhorizon-shield-webmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "horizon-shield-webmcp": {
      "type": "http",
      "url": "https://web.horizonshield.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 85
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-99% ~updated-47d-ago -duplicate-repo(9 names)
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 88/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 1 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 5 of 5 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,435 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: 2 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 5, about 1,435 tokens to load them all
- tool set hash: 44d1e05d7233827fb4b053b34401ea12
- tools last changed: 2026-10-04T13:01:45.892Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.ogasurfproject-jpg/horizon-shield-webmcp.svg)](https://protogrid.dev/servers/io.github.ogasurfproject-jpg/horizon-shield-webmcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-04 `route_request` changed (description)
  - before: Check whether a construction or renovation quote in JAPAN is fairly priced, against the open JCCDB (425,765 records: line items and observations) and Bitcoin-anchored verification records. Single entry point: pass one sentence. USE WHEN: the user has a quote or a price for building/renovation work in Japan and wants to know if it is reasonable; or wants to check a HORIZON SHIELD receipt or a jidec: citation; or asks about overcharging tactics used by contractors; or is looking for a verified contractor. DO NOT USE WHEN: the work is outside Japan; the question is not about construction or renovation; the user has already signed or paid and needs consumer-protection help; or there is an active emergency (gas smell, collapse, water not stopping). In those cases this tool does not answer - it returns the appropriate outside destination instead, and says so. Every reply carries verify (a URL that checks the answer) and limits (what the answer does NOT prove). Routing is a deterministic keyword table, not an LLM, so the same input always routes the same way. Examples: "is 800,000 yen high for exterior wall painting?" / "is jidec:entry:9 genuine?" / "how do I refuse a door-to-door sales pitch?" 日本の建設・リフォーム見積もりが適正かを確認する単一入口。日本語の一文で渡してよい。適正診断・台帳(JIDEC)の記録検証・過剰請求の手口・検証済み加盟店の4方向へ決定的に振り分ける。日本国外/建設以外/契約後の紛争/緊急時は**答えずに適切な外部の窓口を返す。**返り値には必ず verify(検証URL)と limits(証明していないこと)が入る。
  - after: Check whether a construction or renovation quote in JAPAN is fairly priced, against the open JCCDB (526,128 records: line items and observations) and Bitcoin-anchored verification records. Single entry point: pass one sentence. USE WHEN: the user has a quote or a price for building/renovation work in Japan and wants to know if it is reasonable; or wants to check a HORIZON SHIELD receipt or a jidec: citation; or asks about overcharging tactics used by contractors; or is looking for a verified contractor. DO NOT USE WHEN: the work is outside Japan; the question is not about construction or renovation; the user has already signed or paid and needs consumer-protection help; or there is an active emergency (gas smell, collapse, water not stopping). In those cases this tool does not answer - it returns the appropriate outside destination instead, and says so. Every reply carries verify (a URL that checks the answer) and limits (what the answer does NOT prove). Routing is a deterministic keyword table, not an LLM, so the same input always routes the same way. Examples: "is 800,000 yen high for exterior wall painting?" / "is jidec:entry:9 genuine?" / "how do I refuse a door-to-door sales pitch?" 日本の建設・リフォーム見積もりが適正かを確認する単一入口。日本語の一文で渡してよい。適正診断・台帳(JIDEC)の記録検証・過剰請求の手口・検証済み加盟店の4方向へ決定的に振り分ける。日本国外/建設以外/契約後の紛争/緊急時は**答えずに適切な外部の窓口を返す。**返り値には必ず verify(検証URL)と limits(証明していないこと)が入る。
- 2026-09-27 `route_request` changed (description)
  - before: Check whether a construction or renovation quote in JAPAN is fairly priced, against 95,403 open catalogue items and Bitcoin-anchored verification records. Single entry point: pass one sentence. USE WHEN: the user has a quote or a price for building/renovation work in Japan and wants to know if it is reasonable; or wants to check a HORIZON SHIELD receipt or a jidec: citation; or asks about overcharging tactics used by contractors; or is looking for a verified contractor. DO NOT USE WHEN: the work is outside Japan; the question is not about construction or renovation; the user has already signed or paid and needs consumer-protection help; or there is an active emergency (gas smell, collapse, water not stopping). In those cases this tool does not answer - it returns the appropriate outside destination instead, and says so. Every reply carries verify (a URL that checks the answer) and limits (what the answer does NOT prove). Routing is a deterministic keyword table, not an LLM, so the same input always routes the same way. Examples: "is 800,000 yen high for exterior wall painting?" / "is jidec:entry:9 genuine?" / "how do I refuse a door-to-door sales pitch?" 日本の建設・リフォーム見積もりが適正かを確認する単一入口。日本語の一文で渡してよい。適正診断・台帳(JIDEC)の記録検証・過剰請求の手口・検証済み加盟店の4方向へ決定的に振り分ける。日本国外/建設以外/契約後の紛争/緊急時は**答えずに適切な外部の窓口を返す。**返り値には必ず verify(検証URL)と limits(証明していないこと)が入る。
  - after: Check whether a construction or renovation quote in JAPAN is fairly priced, against the open JCCDB (425,765 records: line items and observations) and Bitcoin-anchored verification records. Single entry point: pass one sentence. USE WHEN: the user has a quote or a price for building/renovation work in Japan and wants to know if it is reasonable; or wants to check a HORIZON SHIELD receipt or a jidec: citation; or asks about overcharging tactics used by contractors; or is looking for a verified contractor. DO NOT USE WHEN: the work is outside Japan; the question is not about construction or renovation; the user has already signed or paid and needs consumer-protection help; or there is an active emergency (gas smell, collapse, water not stopping). In those cases this tool does not answer - it returns the appropriate outside destination instead, and says so. Every reply carries verify (a URL that checks the answer) and limits (what the answer does NOT prove). Routing is a deterministic keyword table, not an LLM, so the same input always routes the same way. Examples: "is 800,000 yen high for exterior wall painting?" / "is jidec:entry:9 genuine?" / "how do I refuse a door-to-door sales pitch?" 日本の建設・リフォーム見積もりが適正かを確認する単一入口。日本語の一文で渡してよい。適正診断・台帳(JIDEC)の記録検証・過剰請求の手口・検証済み加盟店の4方向へ決定的に振り分ける。日本国外/建設以外/契約後の紛争/緊急時は**答えずに適切な外部の窓口を返す。**返り値には必ず verify(検証URL)と limits(証明していないこと)が入る。

Full history: https://api.protogrid.dev/v1/servers/io.github.ogasurfproject-jpg%2Fhorizon-shield-webmcp/changes

## Remotes

- https://web.horizonshield.dev/mcp (streamable-http, auth none, reachable true, uptime30d 0.9916667)

## Packages

_none_

## Tools (5)

- `draft_broadcast`: ある工事の過剰請求への注意喚起を発信する下書き(note用長文・X用短文)を生成し、HORIZON SHIELDの該当解説ページ(実在URL)への被リンクを添える。価格はKIRA(検証可能SHA-256付き)の一次データのみ。推測の数字は入れない。下書きであり公開前に運営者が最終版にする(自動投稿しない)。 / Generates broadcast DRAFTS with backlinks. Verifiable first-party prices only. Draft; operator finalizes. No auto-posting.
USE WHEN: the operator wants note/X draft text warning about overcharging for a given work type.
DO NOT USE WHEN: the caller wants a verdict on a specific quote (call intake_estimate) or the tactic list itself (call scan_tactics). Output is a DRAFT for a human to finalise. This tool never posts.
- `intake_estimate`: 施主の建設・リフォーム見積もりを受け付け、HORIZON SHIELD KIRA(内部・中立)の適正価格診断へ橋渡しする集客窓口。工事名と業者提示額を渡すと、適正かどうかの判定と、無料の第三者チェック(EHN)への導線を返す。価格の断定はせず、確認すべき点を渡す。 / Intake desk: bridges a homeowner quote to the KIRA fair-price audit and returns the verdict plus a free third-party check (EHN) path.
USE WHEN: a homeowner has a specific quoted price for a named construction or renovation work item in Japan and wants to know whether that price is reasonable.
DO NOT USE WHEN: there is no price yet (call ask), the caller wants the known overcharge tactics rather than a verdict on their own quote (call scan_tactics), or the caller wants publishable text (call draft_broadcast). Returns a verdict and a free third-party check path. It does not draft or post.
- `route_request`: Check whether a construction or renovation quote in JAPAN is fairly priced, against the open JCCDB (526,128 records: line items and observations) and Bitcoin-anchored verification records. Single entry point: pass one sentence.
USE WHEN: the user has a quote or a price for building/renovation work in Japan and wants to know if it is reasonable; or wants to check a HORIZON SHIELD receipt or a jidec: citation; or asks about overcharging tactics used by contractors; or is looking for a verified contractor.
DO NOT USE WHEN: the work is outside Japan; the question is not about construction or renovation; the user has already signed or paid and needs consumer-protection help; or there is an active emergency (gas smell, collapse, water not stopping). In those cases this tool does not answer - it returns the appropriate outside destination instead, and says so.
Every reply carries verify (a URL that checks the answer) and limits (what the answer does NOT prove). Routing is a deterministic keyword table, not an LLM, so the same input always routes the same way.
Examples: "is 800,000 yen high for exterior wall painting?" / "is jidec:entry:9 genuine?" / "how do I refuse a door-to-door sales pitch?"
日本の建設・リフォーム見積もりが適正かを確認する単一入口。日本語の一文で渡してよい。適正診断・台帳(JIDEC)の記録検証・過剰請求の手口・検証済み加盟店の4方向へ決定的に振り分ける。日本国外/建設以外/契約後の紛争/緊急時は**答えずに適切な外部の窓口を返す。**返り値には必ず verify(検証URL)と limits(証明していないこと)が入る。
- `run_full_audit`: 1回の呼び出しで HORIZON SHIELD の集客→診断→注意喚起→発信を一気通貫で回す司令塔。work(と任意の quoted_price)を渡すと、内部で intake(KIRA適正診断)・scan_tactics(検証済み手口+一次ソース)・draft_broadcast(発信下書き+被リンク)を順に実行し、結果を1つに束ねて返す。価格は検証可能な一次データのみ。発信は下書きで自動投稿しない。 / One-call orchestrator returning audit + tactics + broadcast draft. Verifiable first-party prices only. Drafts only, no auto-posting.
USE WHEN: the caller wants all three steps (audit, tactics, broadcast draft) for one named work item in a single call and will act on the combined result.
DO NOT USE WHEN: only one step is needed. Call intake_estimate for a verdict on a specific quote, scan_tactics for the documented overcharge tactics, or draft_broadcast for publishable text. If the request is still a free-form question with no work item, call ask first. This tool never posts anything.
- `scan_tactics`: ある工事・キーワードに関する『過剰請求の手口』を、HORIZON SHIELD(大賀俊勝30年監修)の検証済みデータ(内部KIRA)から返し、一次ソース(国民生活センター/消費者庁/EHN実例ボード)の在処を添える。価格判定ではなく注意喚起。推測で新事例を断定しない。 / Returns verified overcharge tactics and points to primary sources. Awareness, not a price verdict.
USE WHEN: the caller wants the documented overcharge tactics for a work type or keyword, together with their primary sources.
DO NOT USE WHEN: the caller has their own quote and wants a verdict on it (call intake_estimate), or wants publishable text (call draft_broadcast). This returns awareness material and never a price verdict on a specific quote.
