{
 "cite": {
  "title": "Axion Gateway — one MCP endpoint fronting every Axion Labs data door, with named source, validation method and check date per door",
  "url": "https://open.getaxionlabs.com/doors",
  "publisher": "Axion Labs — mcp.getaxionlabs.com",
  "checked": "2026-09-06",
  "source": {
   "name": "Axion Labs door registry — per-door named source, validation method and check date (doors.json)",
   "url": "https://open.getaxionlabs.com/doors.json"
  },
  "rule": null,
  "license": "free to quote with the URL"
 },
 "name": "Axion Gateway",
 "tagline": "One connection, every Axion door. Every answer sourced and validated.",
 "what": "A single MCP endpoint that fronts every tool the Axion Labs data estate serves — UK private parking appeals, NYC parking and camera violations, and UK Making Tax Digital — plus a registry tool that publishes, for each door, the named source behind it, the validation method applied to it, and the date the source was last checked. Connect once instead of three times, and read the trust block before you act on an answer.",
 "endpoint": "https://mcp.getaxionlabs.com/mcp",
 "transport": "Streamable HTTP",
 "tools": [
  "popla_outcomes",
  "violation_dismissal_rates",
  "borough_odds",
  "search_mtd_answers",
  "get_mtd_answer",
  "parking_route",
  "mtd_scope",
  "denial_clock",
  "screening_dispute",
  "nyc_ticket",
  "list_doors"
 ],
 "zones": [
  {
   "zone": "appealsdesk.co.uk",
   "topic": "UK private parking appeals — operator routes, deadlines, POPLA outcomes",
   "tools": [
    "popla_outcomes",
    "parking_route"
   ],
   "data": {
    "operators": 217,
    "popla_operators_with_outcomes": 80,
    "popla_years": [
     "2023",
     "2024",
     "2025"
    ]
   }
  },
  {
   "zone": "nycticketfacts.com",
   "topic": "NYC parking and camera violations — live plate lookup, dismissal rates, borough odds",
   "tools": [
    "violation_dismissal_rates",
    "borough_odds",
    "nyc_ticket"
   ],
   "data": {
    "violation_types": 80,
    "rates_computed": "2026-08-31",
    "source_dataset": "nc67-uf89"
   }
  },
  {
   "zone": "mtdfacts.co.uk",
   "topic": "UK Making Tax Digital for Income Tax — sourced answers and their GOV.UK pages",
   "tools": [
    "search_mtd_answers",
    "get_mtd_answer",
    "mtd_scope"
   ],
   "data": {
    "answers": 35,
    "checked_against_govuk": "14 August 2026"
   }
  }
 ],
 "lanes": {
  "parking": {
   "zone": "appealsdesk.co.uk",
   "jurisdiction": "UK",
   "topic": "UK private parking charge notices — route, deadlines, POPLA record"
  },
  "nyc": {
   "zone": "nycticketfacts.com",
   "jurisdiction": "US-NY",
   "topic": "NYC parking and camera violations — open tickets, hearing odds, clocks"
  },
  "mtd": {
   "zone": "mtdfacts.co.uk",
   "jurisdiction": "UK",
   "topic": "UK Making Tax Digital for Income Tax — scope, thresholds, deadlines"
  },
  "denial": {
   "zone": "denialfacts.com",
   "jurisdiction": "US",
   "topic": "US health-insurance claim denials — appeal clocks, external review, who to call"
  },
  "screening": {
   "zone": "screeningfacts.com",
   "jurisdiction": "US",
   "topic": "US tenant and employment screening — dispute route, FCRA clock, CFPB record"
  },
  "registry": {
   "zone": "open.getaxionlabs.com",
   "jurisdiction": "global",
   "topic": "the Axion Doors registry — source, validation method and check date per door"
  }
 },
 "tool_categories": [
  {
   "tool": "popla_outcomes",
   "lane": "parking",
   "kind": "statistics",
   "categories": [
    "parking",
    "uk",
    "statistics",
    "appeals"
   ]
  },
  {
   "tool": "violation_dismissal_rates",
   "lane": "nyc",
   "kind": "statistics",
   "categories": [
    "parking",
    "us-ny",
    "statistics"
   ]
  },
  {
   "tool": "borough_odds",
   "lane": "nyc",
   "kind": "statistics",
   "categories": [
    "parking",
    "us-ny",
    "statistics"
   ]
  },
  {
   "tool": "search_mtd_answers",
   "lane": "mtd",
   "kind": "lookup",
   "categories": [
    "tax",
    "uk",
    "search"
   ]
  },
  {
   "tool": "get_mtd_answer",
   "lane": "mtd",
   "kind": "lookup",
   "categories": [
    "tax",
    "uk",
    "reference"
   ]
  },
  {
   "tool": "parking_route",
   "lane": "parking",
   "kind": "workflow",
   "categories": [
    "parking",
    "uk",
    "deadlines",
    "appeals",
    "workflow"
   ]
  },
  {
   "tool": "mtd_scope",
   "lane": "mtd",
   "kind": "workflow",
   "categories": [
    "tax",
    "uk",
    "deadlines",
    "thresholds",
    "workflow"
   ]
  },
  {
   "tool": "denial_clock",
   "lane": "denial",
   "kind": "workflow",
   "categories": [
    "health-insurance",
    "us",
    "deadlines",
    "appeals",
    "workflow"
   ]
  },
  {
   "tool": "screening_dispute",
   "lane": "screening",
   "kind": "workflow",
   "categories": [
    "consumer-reports",
    "us",
    "fcra",
    "disputes",
    "workflow"
   ]
  },
  {
   "tool": "nyc_ticket",
   "lane": "nyc",
   "kind": "workflow",
   "categories": [
    "parking",
    "us-ny",
    "deadlines",
    "lookup",
    "workflow"
   ]
  },
  {
   "tool": "list_doors",
   "lane": "registry",
   "kind": "registry",
   "categories": [
    "registry",
    "global",
    "provenance"
   ]
  }
 ],
 "superseded_tools": {
  "operator_route_lookup": {
   "superseded_by": "parking_route",
   "reason": "parking_route returns everything operator_route_lookup did — route, window, source, POPLA record — and the computed deadlines with it, in the same one call.",
   "still_served_at": "https://mcp.appealsdesk.co.uk/mcp"
  },
  "deadline_calculator": {
   "superseded_by": "parking_route",
   "reason": "parking_route computes the same three deadlines from the same site endpoint, and returns the route and the operator's POPLA record alongside them instead of leaving a second call to find out where the appeal goes.",
   "still_served_at": "https://mcp.appealsdesk.co.uk/mcp"
  },
  "plate_lookup": {
   "superseded_by": "nyc_ticket",
   "reason": "nyc_ticket calls plate_lookup's own handler unchanged and adds the 30-day hearing clock and the judgment/boot timeline to the same payload. Same data, same store-nothing promise, one fewer call.",
   "still_served_at": "https://mcp.nycticketfacts.com/mcp"
  }
 },
 "entity": {
  "@context": "https://schema.org",
  "@graph": [
   {
    "@type": "Organization",
    "@id": "https://getaxionlabs.com/#axionlabs",
    "name": "Axion Labs",
    "url": "https://getaxionlabs.com/",
    "email": "hello@getaxionlabs.com",
    "description": "Axion Labs is a small, family-run independent publishing studio. We publish plain-English answers built from public records: GOV.UK and HMRC guidance on Making Tax Digital, the CFPB consumer complaint database, US federal health-insurance claim data, New York City parking-ticket records, and UK parking operator and appeal-body decisions. Every figure names its source and the date we read it. We are not lawyers, not an agency, and not affiliated with any company, insurer, council or government body we write about. We take no commission, no referral fee and no advertising, and we rank no product. Andrew at Axion Labs writes the pages and answers the mail: hello@getaxionlabs.com.",
    "founder": {
     "@id": "https://getaxionlabs.com/#andrew"
    },
    "sameAs": [
     "https://appealsdesk.co.uk/",
     "https://mtdfacts.co.uk/",
     "https://denialfacts.com/",
     "https://nycticketfacts.com/",
     "https://screeningfacts.com/",
     "https://kit.getaxionlabs.com/",
     "https://mcp.getaxionlabs.com/",
     "https://github.com/endrezsoltdios-sketch",
     "https://github.com/endrezsoltdios-sketch/axion-readers",
     "https://registry.modelcontextprotocol.io/v0/servers?search=com.getaxionlabs%2Faxion-gateway"
    ]
   },
   {
    "@type": "Person",
    "@id": "https://getaxionlabs.com/#andrew",
    "name": "Andrew at Axion Labs",
    "email": "hello@getaxionlabs.com",
    "url": "https://getaxionlabs.com/",
    "worksFor": {
     "@id": "https://getaxionlabs.com/#axionlabs"
    }
   }
  ]
 },
 "why_not_a_registry": "MCP registries verify the server — who published it, whether the namespace is owned, whether the package scans clean. None of them verifies the answer. This gateway publishes how each answer was checked, because that is what an agent about to act on a deadline actually needs.",
 "no_drift": "The gateway registers the same tool modules the individual zone servers register, and those modules import the sites' own data files. There is one copy of each tool and one copy of each dataset, so this endpoint and the zone endpoints cannot disagree. Amended 10 September 2026, and the amendment is the honest part: the gateway's tool LIST is no longer identical to the union of the zone servers' lists. Five composed workflow tools were added here (one per lane, each answering a whole question in one call), and three zone tools whose whole answer a workflow tool now returns were retired here — operator_route_lookup and deadline_calculator into parking_route, plate_lookup into nyc_ticket. All three are still served, unchanged, by their zone servers; `superseded_tools` names where. Nothing about the ANSWERS changed: nyc_ticket calls plate_lookup's own handler, parking_route calls appealsdesk's own /api/answer, denial_clock and screening_dispute call theirs, and mtd_scope runs mtdfacts' own verdict function.",
 "third_party_doors": "Not yet admitted. When they are, it will be against a published bar — named source and dates on every fact, a validation method with evidence it has rejected something, an honest 402 envelope if priced, uptime-probe consent, no stealth model substitution, and claimset-compatible provenance — not against a listing fee. The bar, in full: https://open.getaxionlabs.com/verification-bar.md",
 "registry": "https://open.getaxionlabs.com/doors.json",
 "for_agents": "https://open.getaxionlabs.com/for-agents",
 "passport": "https://mcp.getaxionlabs.com/.well-known/agent-door.json",
 "fair_use": "60 requests per minute per IP, enforced. Excess answers HTTP 429 with retry-after. Free, no account, no key — just do not tight-loop retries; cache tool results where your task allows.",
 "delivery_assertion": "Every tool response is asserted as the caller receives it — non-empty content, no blank blocks, JSON that parses. A response failing the assertion is replaced by a named, structured error (never a silent empty answer), and the failure is logged. Rationale: APIFlow-Bench (arXiv 2608.29128) measured 77% of failing long agent runs reaching the right answer and losing it at delivery.",
 "rate_limiter_bound": true,
 "operator": "Axion Labs — hello@getaxionlabs.com (a person answers)",
 "cost": "Free. No account, no key, no payment path.",
 "host": "mcp.getaxionlabs.com"
}