{"house":"historiai.health","transport":"stateless streamable HTTP; plain JSON responses","mcp":"https://historiai.health/api/mcp","tools":[{"name":"record_search","title":"Search the served record","description":"Search verbatim public-domain episodes. Returns bounded excerpts with canonical episode/work ids, named works and authors, source ids, public receipt URLs where filed, and explicit result-count/truncation state.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":120},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"required":["query"],"additionalProperties":false}},{"name":"figure_lookup","title":"Find curated figures","description":"Find curated people, legendary figures, or deities named in the record. Each result carries source provenance and a nullable curation_receipt_url where a public curation receipt is filed; staged, held, candidate, and misfiled drawers remain withheld.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":120},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"required":["query"],"additionalProperties":false}},{"name":"event_search","title":"Find curated deeds","description":"Find curated events by label, with the record's honest date and disambiguation fields, source provenance, and a nullable curation_receipt_url where filed.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":120},"limit":{"type":"integer","minimum":1,"maximum":10,"default":5}},"required":["query"],"additionalProperties":false}},{"name":"work_lookup","title":"Open a work's catalog card","description":"Return one served work's bibliographic card and a bounded first page of stable episode addresses; it does not reproduce the whole work.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[a-z0-9][a-z0-9._-]*$"}},"required":["slug"],"additionalProperties":false}},{"name":"receipt_lookup","title":"Open a public receipt","description":"Return one public receipt with its full checksum, sources, evidence, and explicit what-this-does-not-prove clauses.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[a-z0-9][a-z0-9._-]*$"}},"required":["slug"],"additionalProperties":false}},{"name":"episode_lookup","title":"Open one served episode","description":"Return one exact live episode with a bounded verbatim excerpt, canonical work/ref address, source id, and separately labeled episode/work receipt URLs where filed.","inputSchema":{"type":"object","properties":{"id":{"type":"string","minLength":9,"maxLength":200,"pattern":"^episode:[a-zA-Z0-9:._-]+$"}},"required":["id"],"additionalProperties":false}},{"name":"work_contents","title":"Page through a work's episode addresses","description":"Return deterministic cursor pagination over every live episode address in one work; totals, next cursor, truncation, and separate episode/work receipts are explicit.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[a-z0-9][a-z0-9._-]*$"},"cursor":{"type":"string","minLength":3,"maxLength":420,"description":"Opaque next cursor returned by a prior work_contents page; omit for the first page."},"limit":{"type":"integer","minimum":1,"maximum":50,"default":25}},"required":["slug"],"additionalProperties":false}},{"name":"timeline_lookup","title":"Read a bounded chronology corridor","description":"Return curated chronology rungs and deeds in an explicit bounded year range. Dates remain the editor's receipted frame, never arithmetic inference.","inputSchema":{"type":"object","properties":{"start_year":{"type":"integer","minimum":-5000,"maximum":3000},"end_year":{"type":"integer","minimum":-5000,"maximum":3000},"limit":{"type":"integer","minimum":1,"maximum":25,"default":20}},"required":["start_year","end_year"],"additionalProperties":false}},{"name":"person_lookup","title":"Open one discriminated identity","description":"Return one exact curated person identity and its bounded grounded claims, distinct from generic figure/name drawers and source-author labels.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[a-z0-9][a-z0-9._-]*$"}},"required":["slug"],"additionalProperties":false}},{"name":"witness_lookup","title":"Open one historical witness profile","description":"Return one exact curated source-profile with bounded grounded claims, served works, witnessed deeds, sources, and filed receipts.","inputSchema":{"type":"object","properties":{"slug":{"type":"string","minLength":1,"maxLength":120,"pattern":"^[a-z0-9][a-z0-9._-]*$"}},"required":["slug"],"additionalProperties":false}},{"name":"historiai_reception_of","title":"How a target has been fought over (curated pilot store)","description":"Open the curated reception store for one handle — a witness slug, entry slug, or bounded label. Each receipted fight is served separately: reader, target, attribution doubts on the nameplate, and claim-by-claim grounds with the attacked passage beside the attack where both verify. Coverage is the pilot store the response counts, never the history of scholarship; divergence is served, never smoothed, and the house speaks no verdict of its own.","inputSchema":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":46,"pattern":"^[^%_\\\\]+$","description":"A handle for the fight's target or reader: a witness slug (herodotus), a reception entry slug (plutarch-v-herodotus), or a short bounded label fragment. LIKE wildcard characters (%, _, \\) are rejected."}},"required":["target"],"additionalProperties":false}},{"name":"historiai_compare_accounts","title":"One deed, the ancient accounts side by side","description":"Resolve one curated deed (slug or bounded label; several matches return the candidate set with disambiguation notes, never a guess) and serve its curated witness index: every account with role, span, verified verbatim anchor quotes, and per-witness divergence notes, divergence leading. Covers only deeds in the curated witness index; an absent deed is a curation gap, never a finding about the past.","inputSchema":{"type":"object","properties":{"event":{"type":"string","minLength":1,"maxLength":46,"pattern":"^[^%_\\\\]+$","description":"A handle for one curated deed: its slug (salamis-480) or a short bounded label fragment. Ambiguity returns the candidate set, never a guess. LIKE wildcard characters (%, _, \\) are rejected."}},"required":["event"],"additionalProperties":false}},{"name":"historiai_who_is","title":"Which one? — the discriminated identities under a name","description":"Search the curated person register (a pilot slice whose exact size the response states, not antiquity) for the identities under one name. The answer is the candidate set with identity, discrimination, and career claims plus receipts — the desk never scores homonyms and never equates an author with a person by string. Zero candidates returns honest silence plus the record's name-grained curated figure drawers.","inputSchema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":46,"pattern":"^[^%_\\\\]+$","description":"One name to discriminate (thucydides, scipio). The answer is the curated candidate set, never a scored guess. LIKE wildcard characters (%, _, \\) are rejected."}},"required":["name"],"additionalProperties":false}}],"note":"This public shelf is read-only and narrower than the protected family rooms. Carry source_ids when quoting. Figure/event curation receipts and episode/work receipts stay separately labeled and nullable; a missing receipt, timeout, error, or empty result is never evidence of historical absence."}