Koskamo

HORIZON SHIELD WebMCP MCP server

A public read-only MCP server acting as an intake desk for property renovation estimates in Japan. It allows agents to route requests, run full audits, intake estimates, scan tactics, and draft broadcasts using tools like route_request and run_full_audit.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

HORIZON SHIELD WebMCP logo, by HORIZON SHIELDCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-07Published by HORIZON SHIELD
MCP endpoint (Streamable HTTP)
https://web.horizonshield.dev/mcp
Vendor documentation

What its tools do

5 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

5 of 5 have a description · 5 of 5 declare behavior hints · 5 of 5 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Run full audit on construction estimates
  • Intake new renovation estimates
  • Diagnose estimate issues via prompts
  • Scan market tactics

Source and maintenance

Community listingRegistry 1.0.4
Maintenance checked

Protocol and capabilities

Server
hs-webmcp 1.0.4
MCP protocol negotiated in check
2025-11-25
Tools
5 advertised
Resources
5 advertised
Resource templates
2 advertised
Prompts
2 advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": false
  },
  "logging": {},
  "prompts": {
    "listChanged": false
  },
  "resources": {
    "subscribe": false,
    "listChanged": false
  },
  "completions": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

HORIZON SHIELD の中立な建設費・見積もり窓口(KIRA)。施主の見積もりが適正かを、独立第三者の立場で一次診断する。tools: route_request(一文で聞けば正しい窓口に決定的に振り分ける単一入口。旧名 ask も受ける), run_full_audit(診断+手口+発信下書きを一括。旧名 orchestrate も受ける), intake_estimate(工種+金額で適正診断→EHN導線), scan_tactics(過剰請求の手口+一次ソース), draft_broadcast(注意喚起の発信下書き)。resources: souba(工種カテゴリ/価格レンジ)・JCCDB(オープン建設費DB)・EHN(無料の第三者チェック)を参照データとして公開。prompts: diagnose_my_estimate / how_to_read_an_estimate。価格は検証可能な一次データのみ、断定せず確認を促す、契約は急かさない、自動投稿しない。Japan, JPY。

Tools

5 advertised

route_request — 一文で聞けば、正しい窓口に繋ぐ
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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(証明していないこと)が入る。

route_request input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "ask": {
      "type": "string",
      "description": "やりたいことを一文で。例:「外壁塗装80万は高いですか」「jidec:entry:9 は本物ですか」"
    },
    "ref": {
      "type": "string",
      "description": "(任意)検証したい引用ID。jidec:entry:N / 64桁hex / エントリ番号"
    },
    "work": {
      "type": "string",
      "description": "(任意)工事名。分かっているなら渡すと推測を挟まない。"
    },
    "amount": {
      "type": "number",
      "minimum": 0,
      "description": "(任意)業者提示の金額(円)"
    }
  }
}
route_request output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether the request was handled."
    },
    "next": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Tool names to call next."
    },
    "limits": {
      "type": "string",
      "description": "What this answer does NOT prove. Always present."
    },
    "result": {
      "type": "object",
      "description": "The answering desk's payload.",
      "additionalProperties": true
    },
    "verify": {
      "type": "string",
      "description": "URL where the caller can recompute and check the claim."
    },
    "message": {
      "type": "string",
      "description": "Reason when ok is false."
    },
    "routed_out": {
      "type": "boolean",
      "description": "True when the question was routed to an external desk rather than answered here."
    },
    "answered_by": {
      "type": "string",
      "description": "Which desk answered: the router itself, an internal audit, the ledger, or a guide fallback."
    }
  },
  "additionalProperties": true
}
route_request annotations
{
  "title": "一文で聞けば、正しい窓口に繋ぐ",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
run_full_audit — 集客→診断→発信 一括実行
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

run_full_audit input schema
{
  "type": "object",
  "required": [
    "work"
  ],
  "properties": {
    "work": {
      "type": "string",
      "description": "工事名やキーワード(日本語)。例: 外壁塗装, トイレ, シロアリ"
    },
    "quoted_price": {
      "type": "number",
      "minimum": 0,
      "description": "(任意)業者提示の金額(円)。あればKIRA適正診断も実行する。"
    }
  }
}
run_full_audit output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether the flow ran."
    },
    "flow": {
      "type": "string",
      "description": "The fixed step order that was executed."
    },
    "work": {
      "type": "string",
      "description": "The work item the flow was run for."
    },
    "steps": {
      "type": "object",
      "description": "One entry per step: intake, scan_tactics, draft_broadcast. A step may be skipped or fail without failing the flow.",
      "additionalProperties": true
    },
    "notice": {
      "type": "string",
      "description": "Standing caveat: first-party prices only, drafts only, no auto-posting."
    },
    "source": {
      "type": "string",
      "description": "Which server produced this."
    },
    "message": {
      "type": "string",
      "description": "Reason when ok is false."
    }
  },
  "additionalProperties": true
}
run_full_audit annotations
{
  "title": "集客→診断→発信 一括実行",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
intake_estimate — 見積もり適正診断(KIRA)
Advertised by the server during the last successful anonymous check.
Advertised read-only

施主の建設・リフォーム見積もりを受け付け、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.

intake_estimate input schema
{
  "type": "object",
  "required": [
    "work",
    "quoted_price"
  ],
  "properties": {
    "work": {
      "type": "string",
      "description": "工事名(日本語)。例: 外壁塗装 シリコン"
    },
    "quoted_price": {
      "type": "number",
      "minimum": 0,
      "description": "業者提示の金額(円)"
    }
  }
}
intake_estimate output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether the quote was accepted for audit."
    },
    "next": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Suggested follow-up tools or paths, including the free third-party check."
    },
    "audit": {
      "type": "object",
      "description": "The fair-price verdict from the internal KIRA audit.",
      "additionalProperties": true
    },
    "source": {
      "type": "string",
      "description": "Which server produced this."
    },
    "message": {
      "type": "string",
      "description": "Reason when ok is false."
    }
  },
  "additionalProperties": true
}
intake_estimate annotations
{
  "title": "見積もり適正診断(KIRA)",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
scan_tactics — 過剰請求の手口スキャン
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

ある工事・キーワードに関する『過剰請求の手口』を、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.

scan_tactics input schema
{
  "type": "object",
  "required": [
    "work"
  ],
  "properties": {
    "work": {
      "type": "string",
      "description": "工事名やキーワード(日本語)。例: 外壁塗装, シロアリ, 火災保険"
    }
  }
}
scan_tactics output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether tactics were found."
    },
    "source": {
      "type": "string",
      "description": "Which server produced this."
    },
    "scan_mode": {
      "type": "string",
      "description": "How the set was assembled."
    },
    "disclaimer": {
      "type": "string",
      "description": "Awareness material. Not a price verdict on any specific quote."
    },
    "primary_sources": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Where each tactic is documented publicly."
    },
    "verified_tactics": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Documented overcharge tactics for the work type."
    }
  },
  "additionalProperties": true
}
scan_tactics annotations
{
  "title": "過剰請求の手口スキャン",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
draft_broadcast — 注意喚起の発信下書き
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

ある工事の過剰請求への注意喚起を発信する下書き(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.

draft_broadcast input schema
{
  "type": "object",
  "required": [
    "work"
  ],
  "properties": {
    "work": {
      "type": "string",
      "description": "工事名やキーワード(日本語)。例: 外壁塗装, トイレ, 火災保険"
    }
  }
}
draft_broadcast output schema
{
  "type": "object",
  "required": [
    "ok"
  ],
  "properties": {
    "ok": {
      "type": "boolean",
      "description": "Whether a draft was produced."
    },
    "notice": {
      "type": "string",
      "description": "This is a DRAFT. A human finalises it. Nothing is posted."
    },
    "source": {
      "type": "string",
      "description": "Which server produced this."
    },
    "post_targets": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": true
      },
      "description": "Per-channel draft text (note long form, X short form) with backlinks."
    },
    "price_source": {
      "type": "string",
      "description": "Which first-party data any figure in the draft came from."
    }
  },
  "additionalProperties": true
}
draft_broadcast annotations
{
  "title": "注意喚起の発信下書き",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

2 advertised

diagnose_my_estimate — 見積もりを診断する

Advertised by the server during the last successful anonymous check.

手元の見積もり(工種と金額)を、KIRAの中立診断とEHN導線で読み解く手順を組み立てる。

work
工事名(例: 外壁塗装 シリコン) (required)
quoted_price
業者提示の金額(円)
how_to_read_an_estimate — 見積書の読み方

Advertised by the server during the last successful anonymous check.

見積書のどこを見るべきか(一式・諸経費・期限つき値引き等)を工種に沿って解説する手順。

work
工事名(任意)

Resources

5 advertised

about-horizon-shield — HORIZON SHIELD とは

Advertised by the server during the last successful anonymous check.

この窓口と運営(中立・第三者・紹介料なし)の説明

about-horizon-shield URI
horizon://about

MIME type: text/markdown

jccdb-dataset-info — JCCDB データセット情報

Advertised by the server during the last successful anonymous check.

日本建設費オープンDB(計526,128件)のメタ・ライセンス・出典・引用

jccdb-dataset-info URI
jccdb://dataset

MIME type: application/json

souba-categories — 工事カテゴリ一覧

Advertised by the server during the last successful anonymous check.

相場・赤旗を整備した工種カテゴリ(61種)

souba-categories URI
souba://categories

MIME type: application/json

souba-sources — 相場データの出典

Advertised by the server during the last successful anonymous check.

fair-price データの出典・更新日・地域係数

souba-sources URI
souba://sources

MIME type: application/json

ehn-info — 見積もりハッカーニュース(EHN)

Advertised by the server during the last successful anonymous check.

匿名で見積もりを第三者チェックする無料掲示板の説明

ehn-info URI
ehn://board

MIME type: text/markdown

souba-category-search — 工事カテゴリ検索

Advertised by the server during the last successful anonymous check.

工種名でカテゴリを部分一致検索する

souba-category-search URI template
souba://category/{query}

MIME type: application/json

souba-price-range — 相場価格レンジ

Advertised by the server during the last successful anonymous check.

工種の適正価格レンジ(min/avg/max)を返す

souba-price-range URI template
souba://price/{work}

MIME type: application/json

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
402 ms
95th percentile latency
402 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 402 ms · metadata changed · 5 tool(s), 5 resource(s), 2 resource template(s), 2 prompt(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http horizon-shield-webmcp https://web.horizonshield.dev/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add horizon-shield-webmcp --url https://web.horizonshield.dev/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable horizon-shield-webmcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "horizon-shield-webmcp": {
      "url": "https://web.horizonshield.dev/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "horizon-shield-webmcp": {
      "type": "streamableHttp",
      "url": "https://web.horizonshield.dev/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start horizon-shield-webmcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "horizon-shield-webmcp": {
      "type": "http",
      "url": "https://web.horizonshield.dev/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http horizon-shield-webmcp https://web.horizonshield.dev/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://web.horizonshield.dev/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "horizon-shield-webmcp": {
      "serverUrl": "https://web.horizonshield.dev/mcp"
    }
  }
}

Let your agent find its tools

Find servers like HORIZON SHIELD WebMCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.