Hammer Worlds
A hammer world is a corpus that publishes what it cannot answer. It arrives as an MCP server, hands out figures with receipts attached, checks the claims you write against those receipts, and refuses by name where a question is outside what its sources can settle.
Install
The plugin connects your agent to the hosted world at https://worlds.hammer.ai/mcp.
No corpus is downloaded and no key is pasted. You sign in once in the browser.
The free tier is rate limited and needs no card. Source, licence and the
change history are in the plugin repository.
/plugin marketplace add hmmrlabs/hammer-plugin
/plugin install hammer-worlds@hammer Choose user scope when prompted, so the world is reachable from every directory. Then open the connection and complete browser sign-in.
Open Cowork › Customize › Plugins. Under Personal plugins choose +, then Add marketplace. Add hmmrlabs/hammer-plugin, install Hammer Worlds, and complete connector sign-in.
codex plugin marketplace add hmmrlabs/hammer-plugin
codex plugin add hammer-worlds@hammer Complete browser sign-in during installation or from the installed connection.
npx skills add hmmrlabs/hammer-plugin --skill hammer-worlds -a <profile> --yes Where the client installs only the skill, add https://worlds.hammer.ai/mcp through its MCP settings and sign in there.
Remove and re-add. The plugin moved to the repository root that day and older installs point at a path that no longer exists, so they stopped updating without saying so. If the version reads 0.1.0 you are on the orphaned install. Exact commands are in the repository README. After reinstalling, reconnect the MCP connection: a client that connected before a world deploy holds the old tool list.
First call
Ask the world how to use it before asking it anything else. hello_world
lists the skills this build ships, the closed vocabularies each tool accepts,
and the questions the corpus cannot answer. hello_world with
skill set to one of those names returns that skill from the same
build that answers you, so the routing and the answers come from one image.
If you hold a goal rather than a question, call frontier with the
goal in your own words and the claims it rests on. Each leaf comes back as
settled here, naming the tool; settled elsewhere, naming a corpus in the
register; yours to declare; or refused, with the nearest question this world does answer.
What W-01 answers
Healthcare coverage, vintage AUG 31, 2026, build 13. Rate tools
accept 115 billing codes and these payers:
aetna, anthem, bcbs-mn, centene, cigna, hcsc, highmark, independence-blue-cross, unitedhealthcare.
The full code vocabulary is declared in each tool's own entry in tools/list.
ROUTING
hello_world- How to use this world: the skills it ships, what it cannot answer, how to read a refusal.
frontier- Where each part of a goal would be settled: here, elsewhere, yours to declare, or refused.
knowledge_navigate- Search the source register and the corpus by text, node or table selector.
catalogue- Every world this deployment serves, including the ones you cannot reach, with what each refuses. Needs no access code.
PUBLISHED RATES AND SCHEDULES
rate_position- What a payer published it pays for a code, positioned against the fee schedule that anchors it.
rate_comparison- Two to four codes’ payer rates side by side under one receipt.
fee_components- How the Medicare Physician Fee Schedule splits a code into professional and technical components.
stack_check- Whether a code pair carries a Medicaid NCCI edit. No row is unknown, never permission.
interpretation_requirement- Who a coverage article says may furnish and interpret a code.
HOSPITAL FILINGS
filed_charge- What a hospital filed as its standard charge for an inpatient admission under 45 CFR 180.
filer_inventory- What one hospital filer carries, so a call that prices something is a call that answers.
hospital_variance- How far apart providers are on one published quality measure.
EVIDENCE
hypertension_evidence- One published effect size at a time, with interval, population and PMID.
prognostic_association- One observational association per answer, in people nobody randomised.
treatment_effect- One randomised effect per answer, kept in a separate tool from the observational ones.
cohort_figures- How many people, and by what means somebody counted.
comorbidity_edges- A name that refuses and says where its corpus went. Kept declared so the absence is a stated fact rather than a missing tool.
CALCULATORS OVER YOUR DECLARED INPUTS
declared_inputs- Bring your own aggregate figures under a declared basis and get a handle the calculators read.
screening_yield- Predictive values and the confusion table for a declared test and population.
deferred_versus_avoided- Two totals, never summed: cost that arrives later and cost that never arrives.
regression_to_mean_expectation- What a cohort selected for being extreme will measure next period, before anybody intervened.
competing_event_coupling- How much of a readmission rate’s movement is the survivor denominator moving.
measure_reliability- How much of a measured rate is the provider and how much is the sample.
withhold_earnback- What a measure result is worth under a capitation withhold.
tournament_position- Where a declared score sits against declared cut points.
cost_of_care_exposure- Size an exposure over a declared population on figures you declare.
savings_methodology- Classify a declared savings mechanism as hard or soft against the buyer’s definitions.
candidate_screen- The screen that runs before the pitch: your candidate programmes through an ordered routing.
CORPUS HANDOFF FROM THE READER
saved_corpora- Every corpus you saved on the CMS Coverage Tracker, newest first, with the query behind each, its row count and the vintages it was cut at.
open_corpus- Open a saved corpus by id. Returns the manifest: the query, the vintages, how each computed column was derived, the licence, the checksum, and a pointer to the rows.
submit_corpora- Ask the person you are talking to for a file of their own data by declaring the columns and constraints you need. One-shot link, validated in their browser before upload and again on the server. Refuses protected health information.
redeem_code- Redeem an access code for the worlds it grants.
request_access- File a request for a world you cannot reach, naming what you are trying to find out. Grants nothing by itself.
RANGES, CHECKS AND THE AUDIT TRAIL
simulate- Run a world estimator over distributions you declare rather than points.
sensitivity- Which of your assumptions actually moves the answer.
interval_check- Check a number you already believe against what the model produced.
decision_navigate- What would have to change for the decision to flip.
network_infer- Build a prior from a small declared network.
claim_check- Arithmetic over the figures in a payload decides whether a claim is entailed. Never reads your sentence.
judgement_check- Reads the English and decides whether the sentence is one the answer supports.
model_advisory- Three trained models on a sentence before you write it: advice, never a verdict, and it changes nothing claim_check decides.
say_world- How to say what the world told you to one named kind of reader, and which of its refusals that reader needs in front of them.
deliver- Puts the checked report in the audit log beside its receipts.
The skills the build serves
Routing lives in the world, not in the plugin. The plugin carries one skill
about the discipline of reading a world; the W-01 build serves 8 more
out of the same image that answers the tool calls, so the routing can never
describe a version that is no longer deployed. Fetch one with
hello_world and skill set to its name.
hammer-coverage-navigate- Routing: which tool answers this question, and what the corpus does not license you to write.
hammer-building-the-evidence- The method from a commercial goal to a claim that survives the buyer’s own scrutiny.
hammer-cost-of-care-case- The plan-side seat. Opens with the paid-amount wall, because no compartment here produces one.
hammer-vendor-evidence- The case a health plan will read, and what gets a submission declined.
hammer-provider-contracting- What a named provider’s contracts look like, and why a filed charge never crosses with a published rate.
hammer-provider-quality- The provider-side screen that runs before the pitch rather than after it.
hammer-savings-classification- Hard against soft, over a closed vocabulary of six mechanisms, and why the two are never added.
hammer-writing-the-deliverable- When the answer is not the deliverable: section order, the two appendices, and the audit trail.
Hand a corpus from the reader to your agent
coverage.hammer.ai is the CMS coverage record in dated vintages, queried in your browser. Nothing leaves the browser until you choose to hand off. Four steps, and the same four take a private corpus.
- 1 · PRESERVE
Every source captured with its vintage. A month not captured cannot be recovered later, because the upstream file is gone.
- 2 · PUBLISH
Re-sorted into row groups and served as Parquet over range requests, so a filtered query downloads the part of the file it needs. Queries run in the browser and nothing leaves it.
- 3 · HAND OFF
The reader mints an authenticated corpus manifest: the selected rows, the source vintages, and the query definition, addressed by a short id.
- 4 · RETRIEVE
An agent running the plugin signs in, pulls the manifest, and reproduces the result against the preserved files months later, after the upstream database has been rebuilt underneath it.
In practice: filter on the reader, save the selection as a corpus, and you get a
short id of the form cvt-YYYY-MM-DD-<hex>. In your agent,
saved_corpora lists what you saved and open_corpus
returns the manifest: the query, the vintages it was cut at, how each computed
column was derived, the licence, and the parquet checksum. The result reproduces
months later, after CMS has rebuilt the database underneath it.
The reverse direction also exists. Mid-analysis, an agent can call
submit_corpora to ask you for a file of your own data, declaring the
columns it needs. The file is checked against that declaration in your browser
before a byte is uploaded, lands in your corpora and nobody else's, and is kept
for as long as you chose. Requests declaring protected health information are refused.
Reading a receipt
- Reporting floor
- A cell with fewer than ten underlying rows is withheld, and the answer says so by payer and count. No figure is served below the floor, and no cell is averaged into something that looks stable.
- Vintage
- The date an input was read. A rate answer carries the rate extract's vintage and the fee schedule's vintage separately, because they move on different clocks. A claim carried across vintages must be rechecked, never inherited.
- Basis
- Measured was read from a register this world holds. Cited was published elsewhere with its source attached. Assumption was declared by you. A figure computed from inputs of more than one basis carries the weakest.
- n
- A count of contract rows in the extract, not of transactions or of providers who perform the service. Each cell says what its n counts, and an n from a layered tree is never compared with an n from a curated one.
- Receipt
- Redeemed against the world's name, vintage and build together. A receipt naming a different vintage is a different world's. Two worlds' answers never compose into a third claim.
- Claim report
- Every answer built on a world closes with one: each sentence you wrote, beside the verdict it got from
claim_checkorjudgement_check, and the receipt it rests on. Onlyentailedlicenses writing a claim down.
Refusals
A refusal is a value and not an error. It comes back as an ordinary result
with kind: "refusal", a reason, and the sentence the evidence
will not support. The healthcare world ships 25 refusal
classes, listed with what would settle each.
Vintage and archive
Upstream payer files are typically removed after about 90 days, so a figure that leaves an endpoint cannot reliably be reconstructed from it later. Every snapshot this world was built from is preserved and dated. The free tier serves the current vintage. Team and above serve the archive.
Help
Issues and pull requests on the plugin repository. Anything else, including a code or payer you need that is not in the vocabulary, to hello@hammer.ai.