MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Payments & trading

Distill

Pre-computed answers with sources and confidence, paid per call over x402 (USDC on Base).

Checks passed
13 / 22

1 failed · 8 not measured

Median response
557 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
9

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 557 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name distill.

  • Pass
    Lists tools

    tools/list returned 9 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 557 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 557 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    43 of 44 parameters have a description (98%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-10-21T05:05:52.658366Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Distill

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http distill https://data.spencermcw.com/mcp

Capabilities

Tools 9

distill_status

How fresh is each Distill dataset right now? For every dataset: the as_of and last check its answers carry, the refresh cadence, the next expected update, its current confidence and whether it is late. Read from live answers: each dataset’s probe route answers its example, and the status reports what that answer says. fresh: checked within its cadence; due: within one and a half cadences; stale: later; unavailable: no answer now. Free; also at /status (HTML) and /status.json. Refreshed daily (live freshness: /status). Price: free. Answers in a summary view of about 2,500 tokens; view: "full" for every row. Confidence: The lowest current confidence among the datasets listed (each by its own route’s formula), 0 when one is unavailable. Freshness of the data behind each route; it does not check any single answer.

Discovered
drug_nadac

What do US pharmacies pay for this drug? CMS’s National Average Drug Acquisition Cost (NADAC) per unit for an NDC, the generic’s NADAC for a brand and the weekly price history since January 2025, from CMS’s NADAC files on data.medicaid.gov. From CMS’s weekly NADAC files on data.medicaid.gov (2025 on): the current per-unit NADAC of one NDC, its effective date and explanation codes, the corresponding generic’s NADAC for a brand, the range over NDCs with the same description, and every price period since January 2025. An NDC never listed answers 404 and is not charged; one no longer listed answers with listed: false and its last NADAC. Refreshed weekly (live freshness: /status). Price: $0.01 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: Freshness only (the values are CMS’s, read deterministically): 1 until 9 days after the latest weekly file’s as-of date, then halving every 14 days. National Average Drug Acquisition Cost as CMS publishes it weekly: a survey average of what retail pharmacies pay per unit, not a retail price, a reimbursement rate, a quote or medical advice. See /terms.

Discovered
drug_nadac_search

Which NDCs match this drug name, and what do pharmacies pay for them? NADAC search by name (e.g. “atorvastatin 40”) with NDC counts and current per-unit cost ranges, from CMS’s weekly NADAC file. Matches the words of a name (each as a prefix, e.g. "atorvastatin 40") against the NDC descriptions in the latest weekly NADAC file, best match first, and gives each description’s pricing unit, classification, number of NDCs, current per-unit NADAC range and up to five NDCs to look up with drug.nadac. Refreshed weekly (live freshness: /status). Price: $0.01 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: Freshness only (the values are CMS’s, read deterministically): 1 until 9 days after the latest weekly file’s as-of date, then halving every 14 days. National Average Drug Acquisition Cost as CMS publishes it weekly: a survey average of what retail pharmacies pay per unit, not a retail price, a reimbursement rate, a quote or medical advice. See /terms.

Discovered
hospital_prices

What does a procedure cost at hospitals near this ZIP? Cash price, gross charge and every insurer’s negotiated rate for a CPT, HCPCS or MS-DRG code at Colorado hospitals, normalized by Distill from the hospitals’ federally required price files. From the machine-readable standard-charge files hospitals must publish (45 CFR 180), parsed and normalized: for each hospital within the radius that posts the code, nearest first, the gross charge, the discounted cash price, the de-identified minimum and maximum, and every payer and plan’s negotiated dollar amount or percentage (with the v3.0 median, 10th and 90th percentile allowed amounts), payers canonicalized to a stable payer_id. Filters: payer, plan type, plan name text, setting, billing class. A summary gives nearest-rank statistics over the hospitals returned. Served states: Colorado. An area with no hospital posting the code answers 404 and is not charged. Refreshed monthly (live freshness: /status). Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: Mean over the returned rows (each rate; an item with no rate counts once) of normalize × quality × freshness. Normalize: the stored per-rate normalize confidence (payer canonicalization: rule 1, model 0.9, fallback 0.6; rate basis for rates with no dollar amount: rule 1, model 0.9, fallback 0.75; 1 for an item with no rate). Quality of the MRF: 1 valid against the v3.0 schema, 0.85 parsed with conformance errors, 0.7 parsed only after header repair. Freshness: 1 while the MRF’s last_updated_on is at most 365 days old, then halving every 180 days (0.5 with no date), times 1 within 14 days of our fetch, then halving every 30 days. Posted standard charges from hospital machine-readable files (45 CFR 180): posted rates, not a quote; not medical or financial advice. What you pay depends on your plan, your care and the hospital. See /terms.

Discovered
medicare_partd_coverage

Which Medicare Part D plans in this county cover this drug, at what tier and cost? Every PDP and Medicare Advantage drug plan with tier, prior authorization, step therapy, quantity limit, premium and copay, plan years 2026 and 2027, computed by Distill from CMS’s monthly formulary files. From CMS’s monthly Part D formulary public use file: every stand-alone (PDP) and Medicare Advantage drug plan sold in the county (by SSA county code, or state and county name), whether its formulary covers the drug (RxCUI, or the NDC the file lists), and on what terms: tier, prior authorization, step therapy, quantity limit, negotiated-drug flag, the plan’s premium and deductible, and the 30-day initial-coverage cost sharing for that tier at each pharmacy type. Covering plans come lowest tier first, then lowest premium. Pass plan_year=2027 for open enrollment. Employer and PACE plans are not in the file. Refreshed monthly (live freshness: /status). Price: $0.02 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: Freshness only (the plans and terms are read from the CMS file deterministically): 1 until 45 days after the served file’s date (CMS posts one a month), then halving every 30 days. Medicare Part D formulary and plan data as of the CMS public use file’s date (file_date), processed by Distill; the Medicare Plan Finder (medicare.gov/plan-compare) may have newer information. Not enrollment, coverage or medical advice; confirm with the plan. See /terms.

Discovered
medicare_pfs_rate

What does Medicare pay for this CPT or HCPCS code at this ZIP? Physician Fee Schedule facility and non-facility allowed amounts with the RVUs and GPCIs behind them, any US ZIP or Medicare locality, 2025 on, computed by Distill from CMS’s quarterly RVU files. From CMS’s quarterly relative value files (RVU25A on): the facility and non-facility allowed amounts for one code (and modifier) in the locality of a ZIP, ZIP+4 or MAC-locality id, with the RVUs, GPCIs and conversion factor (non-QP and QP) behind them, the OPPS cap, the limiting charge, the payment indicators and the same amounts in every release since 2025A. Pass exactly one of zip or locality. Codes CMS does not price (status other than A, R, T) answer with null amounts; unknown codes and ZIPs answer 404 and are not charged. Refreshed quarterly (live freshness: /status). Price: $0.01 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: agreement × freshness. Agreement: for a 5-digit ZIP that CMS splits across localities by ZIP+4, the share of its ZIP+4 codes in the answered locality; 1 for a ZIP+4, a locality or a ZIP in one locality. Freshness: 1 until the first day of the calendar quarter after the CMS files were last checked, then halving every 30 days. The amounts themselves are exact (they agree with CMS’s carrier payment files to the cent). Medicare Physician Fee Schedule amounts computed from CMS’s published RVU, GPCI and conversion-factor files: what Original Medicare allows a participating clinician (before deductible and coinsurance), not what another payer pays; not a quote, not medical, billing or coding advice. See /terms. CPT® codes are served as codes only: their descriptors are AMA copyright and are never included (nor dental CDT descriptors). CPT is a registered trademark of the American Medical Association. HCPCS Level II descriptions are CMS’s.

Discovered
sanctions_address

Is this crypto address on OFAC’s SDN sanctions list? SDN entry, program, asset and list date for Bitcoin, Ethereum and EVM, Tron, Solana and other addresses, checked by Distill against OFAC’s own SDN file. Matches one digital currency address (Bitcoin, Ethereum and every EVM chain, Tron, Solana, Monero, …) against the “Digital Currency Address” identifiers of OFAC’s Specially Designated Nationals list, read from OFAC’s Sanctions List Service SDN.XML and refreshed daily. Returns whether it is listed in the latest publication, each listing’s SDN entry (UID, name, type, programs), asset and chain, the publication date, and any earlier listing a later publication removed. Not listed is an answer too. Exact match only; not a compliance determination. The address is not stored. Refreshed daily (live freshness: /status). Price: $0.005 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: Freshness only (the list is OFAC’s, matched exactly): 1 until 3 days after the last check of OFAC’s Sanctions List Service, then halving every 3 days. Facts from the OFAC SDN list as published on the date stated: an exact match of the address as given (EVM and Bech32 addresses case-insensitively). Not legal advice and not a compliance determination: no ownership (50% rule) analysis, no indirect exposure, no other sanctions list. Computed by Distill from OFAC’s SDN.XML. See /terms.

Discovered
tax_sales_rate

What is the sales tax rate at this US address, ZIP+4 or ZIP? The combined rate and each state, county, city and district rate in the 24 Streamlined Sales Tax states (WA, OH, MI, NJ, TN, …), computed by Distill from each state’s SST rate and boundary files. From the state’s own Streamlined Sales Tax rate and boundary files (24 states: AR, GA, IA, IN, KS, KY, MI, MN, NC, ND, NE, NJ, NV, OH, OK, RI, SD, TN, UT, VT, WA, WI, WV, WY). Matches an address when the state publishes address records, else the ZIP+4 record, else the 5-digit record (the lowest rate in the ZIP, per SSUTA 305). Returns each jurisdiction’s rate, the combined rate, and the period it holds, for any sale date from the first day of the previous quarter on (default today). Locations outside these states answer 404 and are not charged. Refreshed quarterly (live freshness: /status). Price: $0.005 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: agreement × freshness. Agreement: for a 5-digit ZIP answer, the share of that ZIP’s ZIP+4 records with the same combined rate; for a ZIP+4 answer, the share of address records inside it with the same rate; 1 for an address match or when the state publishes nothing finer. Freshness: 1 until the next SST posting deadline (the 1st of Mar, Jun, Sep or Dec) after the files were last checked, then halving every 30 days. Not tax advice. Rates as published by the state in its Streamlined Sales Tax rate and boundary files for the stated effective period; verify with the state. See /terms.

Discovered
tax_sales_rate_batch

What sales tax applies to each of these orders? Combined and per-jurisdiction rates for up to 100 US addresses, ZIP+4s or ZIPs in one call, 24 Streamlined Sales Tax states, computed by Distill from each state’s SST rate and boundary files. The same answer as tax.sales_rate for each location, in order. A location that fails (outside the SST states, a bad date) carries its own error; the call is still one price. Refreshed quarterly (live freshness: /status). Price: $0.1 per call. Free tier: 3 free calls a day per IP, at most 3 rows per answer, taken by an unpaid call unless its _meta["distill/free-tier"] is "skip". Answers in a summary view of about 3,000 tokens; view: "full" for every row. Confidence: The lowest per-location confidence in the batch; each is agreement × freshness. Agreement: for a 5-digit ZIP answer, the share of that ZIP’s ZIP+4 records with the same combined rate; for a ZIP+4 answer, the share of address records inside it with the same rate; 1 for an address match or when the state publishes nothing finer. Freshness: 1 until the next SST posting deadline (the 1st of Mar, Jun, Sep or Dec) after the files were last checked, then halving every 30 days. Not tax advice. Rates as published by the state in its Streamlined Sales Tax rate and boundary files for the stated effective period; verify with the state. See /terms.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected557 ms9