Skip to content

Permit Verdicts

by okwithit9-debug · remote · no sign-in to list tools · v0.3.0 · published by GitHub user okwithit9-debug

Building-permit verdicts by address, with cited records. SF, Seattle, Austin, NYC. Pay per call.

Final · 1Changes · 3

10 tools: 1 do something that can't be undone, 3 change things and 6 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http permit-verdicts https://permit-api-production-7375.up.railway.app/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "attest_price_event" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Can't be undone 1Claude Code: ask
  • attest_price_eventSettlement verdict plus a citable record: a signed decision_id, an integrity hash over the evidence, and every candle that determined the outcome.1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "attest_price_event" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Settlement verdict plus a citable record: a signed decision_id, an integrity hash over the evidence, and every candle that determined the outcome. Use this when the answer may later have to be defended to a counterparty, not when you just need to know. KEEP THE decision_id — it is self-contained, so anyone you show it to can authenticate it for free and re-check it for $0.02 without you supplying anything else. Paid: $0.25 in USDC via x402.

    Annotations the server declares

    • title: Attested settlement record
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 3Claude Code: ask
  • check_permit_activityFREE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    FREE. Quick check on whether a street address has building-permit activity on record: how many permits, how many are open, and when the last activity was. No permit detail and no verdict — use get_permit_verdict for those. Full paid feeds for humans: https://permitverdict.com/pricing

    Annotations the server declares

    • title: Check permit activity (free)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • decode_decision_idFREE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    FREE. Read what a Permit Verdict decision_id claims and check whether we actually issued it. The id is signed by the same wallet that receives payment, so forgery and after-the-fact editing are both detectable. Needs no payment. This tells you the record is genuine; it does NOT tell you the verdict is still correct — use verify_decision for that. Full paid feeds for humans: https://permitverdict.com/pricing

    Annotations the server declares

    • title: Decode and authenticate a decision_id (free)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • verify_decisionRe-resolve an attested settlement against the price venues right now and report whether it still holds: CONFIRMED, CHANGED or INDETERMINATE.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Re-resolve an attested settlement against the price venues right now and report whether it still holds: CONFIRMED, CHANGED or INDETERMINATE. Call this whenever someone hands you a decision_id you are about to rely on — an attestation proves what was said at the time, but only a fresh resolution proves it is still true. Exchanges revise candle history, and a venue that was unreachable at issue time may answer differently now. Paid: $0.02 in USDC via x402 — cheaper than resolving fresh because you are checking someone else's answer rather than buying a new one.

    Annotations the server declares

    • title: Verify an attested settlement
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 6Claude Code: allow
  • find_active_projectsFREE PREVIEW (5 results).No findings

    Why it is in this group

    • The name "find_active_projects" says "find": a word for reading.
    Description, as the server wrote it
    FREE PREVIEW (5 results). Recently permitted construction projects in a covered city, filtered by declared budget. Use feed='investor' instead to surface expired and abandoned permits (stalled projects, often motivated owners). Full paid feeds for humans: https://permitverdict.com/pricing

    Annotations the server declares

    • title: Find active construction projects (free preview)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_crypto_spotLive cross-venue spot price with venue agreement and spread.No findings

    Why it is in this group

    • The name "get_crypto_spot" says "get": a word for reading.
    Description, as the server wrote it
    Live cross-venue spot price with venue agreement and spread. A wide spread means venues disagree and any settlement in that range is contestable. Paid: $0.01 in USDC via x402.

    Annotations the server declares

    • title: Cross-venue spot price
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_permit_verdictAddress-level building-permit intelligence for a covered city: normalized permit history + activity signals + a decision-ready verdict with cited public records.No findings

    Why it is in this group

    • The name "get_permit_verdict" says "get": a word for reading.
    Description, as the server wrote it
    Address-level building-permit intelligence for a covered city: normalized permit history + activity signals + a decision-ready verdict with cited public records. Paid: $2.00 in USDC on base via x402.

    Annotations the server declares

    • title: Get permit verdict for an address
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_jurisdictionsList cities covered by the Permit Intelligence API, with pricing and payment details.No findings

    Why it is in this group

    • The name "list_jurisdictions" says "list": a word for reading.
    Description, as the server wrote it
    List cities covered by the Permit Intelligence API, with pricing and payment details. Free. Full paid feeds for humans: https://permitverdict.com/pricing

    Annotations the server declares

    • title: List covered cities
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_settlement_assetsFREE.No findings

    Why it is in this group

    • The name "list_settlement_assets" says "list": a word for reading.
    Description, as the server wrote it
    FREE. Which crypto assets, venues, operators and modes the settlement oracle supports, plus pricing. Full paid feeds for humans: https://permitverdict.com/pricing

    Annotations the server declares

    • title: List settlement oracle coverage (free)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • resolve_price_eventSettlement verdict for a crypto price event.No findings

    Why it is in this group

    • The name "resolve_price_event" says "resolve": a word for reading.
    Description, as the server wrote it
    Settlement verdict for a crypto price event. Answers 'did this asset trade or close above/below a threshold during a window?' with YES/NO/DISPUTED/UNRESOLVED, per-venue evidence from Hyperliquid, Coinbase and Kraken, and stated confidence. (Binance is configured but blocks this host's region; it is reported unavailable rather than silently counted.) Use mode='close' when a market settles on candle closes and mode='touch' when any intrabar print counts — they give different answers and that difference is the most common settlement dispute. Paid: $0.05 in USDC via x402.

    Annotations the server declares

    • title: Resolve a crypto price event
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.3.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http permit-verdicts https://permit-api-production-7375.up.railway.app/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__permit-verdicts__list_jurisdictions",
      "mcp__permit-verdicts__find_active_projects",
      "mcp__permit-verdicts__list_settlement_assets",
      "mcp__permit-verdicts__resolve_price_event",
      "mcp__permit-verdicts__get_crypto_spot",
      "mcp__permit-verdicts__get_permit_verdict"
    ],
    "ask": [
      "mcp__permit-verdicts__check_permit_activity",
      "mcp__permit-verdicts__decode_decision_id",
      "mcp__permit-verdicts__verify_decision",
      "mcp__permit-verdicts__attest_price_event"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as permit-verdicts. Review it before you use it.