Distill
REMOTE · DATA.SPENCERMCW.COM
Pre-computed answers with sources and confidence, paid per call over x402 (USDC on Base).
Available components
Last scanned (21 hours ago)
Scores higher than 52% of remote servers
Unreachable for 1 day in a row. Last reached 3 Nov 2026.
Category Finance and Payments
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security11
- TLS not yet verified: we couldn't open a connection to check the certificate. View diagnostics → Unverified
- Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS not yet verified: we couldn't read the response headers to check for it. View diagnostics → Unverified
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability0
- Transport check failed: declared streamable-http, but we couldn't connect to verify it. See how to fix → View diagnostics → Fail
Schema Quality & AI Usability0
- Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list.Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Tool Safety0
- Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list.Unverified
Capabilities0
- Capabilities not yet verified: we couldn't read the endpoint's capabilities.Unverified
Unverified: 5 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 0
- Endpoint reachability: reachable → unreachable ▼ security
- HSTS header: fail → unverified ▼ security
- Stability: 0.43 → unverified ▼ security
- Tool safety: pass → unverified ▼ security
- TLS certificate: pass → unverified ▼ security
- Transport: pass → fail ▼ security
- Authorization: Authorisation not yet verified: we couldn't confirm whether this endpoint requires it. security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- First check of Schema quality: unverified functional
- 2 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 26 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.
- 24 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 23 Oct 26 +1
- Tool “hospital_changes” rewrote its description, which is the text the model reads security
- Tool “hospital_compare” rewrote its description, which is the text the model reads security
- Tool “hospital_payers” rewrote its description, which is the text the model reads security
- Tool “hospital_prices” rewrote its description, which is the text the model reads security
- Tool “tax_changes” rewrote its description, which is the text the model reads security
- Tool “tax_sales_rate” rewrote its description, which is the text the model reads security
- Tool “tax_sales_rate_batch” rewrote its description, which is the text the model reads security
- Schema quality: 3479 → 8942 ▼ functional
- Tool coverage: 90% → 82% ▼ functional
- New tool “drug_nadac” functional
- New tool “drug_nadac_changes” functional
- New tool “drug_nadac_search” functional
- New tool “medicare_partd_changes” functional
- New tool “medicare_partd_coverage” functional
- New tool “medicare_partd_plan” functional
- New tool “medicare_pfs_changes” functional
- New tool “medicare_pfs_localities” functional
- New tool “medicare_pfs_rate” functional
- New tool “sanctions_address” functional
- New tool “sanctions_address_batch” functional
- New tool “sanctions_changes” functional
- Tool “hospital_changes” changed its title: Hospital price and file changes, as a paged feed → What changed in hospital prices this week? Colorado hospital price, payer-rate, file and status change records, computed by Distill by diffing the hospitals’ price-transparency files cosmetic
- Tool “hospital_compare” changed its title: One billing code across up to 10 named hospitals, one normalized row each → How do these hospitals compare on price for one procedure? Cash, gross and negotiated-rate statistics for a CPT, HCPCS or MS-DRG code at up to 10 Colorado hospitals, normalized by Distill from their price-transparency files cosmetic
- Tool “hospital_payers” changed its title: Negotiated prices for one billing code in one area, per canonical payer and plan type → What has each insurer negotiated for a procedure in this area? Negotiated prices by canonical payer (Aetna, Cigna, UnitedHealthcare, Medicare Advantage, …) and plan type for one code near a Colorado ZIP, computed by Distill from hospital price-transparency files cosmetic
- Tool “hospital_prices” changed its title: Posted hospital prices for one billing code near a US ZIP code or point → 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 cosmetic
- Tool “tax_changes” changed its title: Quarterly sales-tax rate and boundary changes in the Streamlined Sales Tax states → Which US sales tax rates or boundaries changed this quarter? Rate, ZIP+4 and boundary change records for the 24 Streamlined Sales Tax states, computed by Distill from each state’s SST files cosmetic
- Tool “tax_sales_rate” changed its title: The sales-tax rate at a US ZIP+4, ZIP or street address in a Streamlined Sales Tax state → 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 cosmetic
- Tool “tax_sales_rate_batch” changed its title: Sales-tax rates for up to 100 US locations in one call (Streamlined Sales Tax states) → 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 cosmetic
- 22 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://data.spencermcw.com/mcp
TLS unreached
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of data.spencermcw.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| spencermcw.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Inconclusive
We could not reach the endpoint well enough to judge its authorisation posture.
| Result | Inconclusive |
|---|
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://data.spencermcw.com/mcp | Unreachable | ||
| http (plaintext) | http://data.spencermcw.com/mcp | HTTPS enforced |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
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, fro… ~347
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. Updated weekly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| ndc | string | yes | The NDC: 11 digits (00378410591) or dashed (0378-4105-91, 5-4-2, 5-3-2 or 4-4-2). |
No output schema declared.
No examples provided.
drug_nadac_changes Which drug acquisition costs changed this week? NADAC per-unit cost changes and NDCs added or dropped, with CMS’s stated reason, 2025 on, from CMS’s weekly NADAC files ~400
Which drug acquisition costs changed this week? NADAC per-unit cost changes and NDCs added or dropped, with CMS’s stated reason, 2025 on, from CMS’s weekly NADAC files. Change records between consecutive weekly NADAC files (2025 on): an NDC whose per-unit NADAC changed (with CMS’s primary reason from the NADAC Comparison file when it gives one), an NDC added (old null) or dropped (new null). Each record cites the sha256 of the files of both weeks. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated weekly. Price: $0.05 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| field | string | – | – |
| limit | integer | – | – |
| ndc | string | – | The NDC: 11 digits (00378410591) or dashed (0378-4105-91, 5-4-2, 5-3-2 or 4-4-2). |
| since | string | – | Only records detected after this time (ISO 8601); a record is detected on its week’s as-of day. |
| week | string | – | Only the changes of the weekly file with this as-of date, e.g. 2026-10-21. |
No output schema declared.
No examples provided.
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 ~316
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. Updated weekly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | At most this many descriptions (default 10). |
| name | string | yes | Drug name words, e.g. "atorvastatin 40" or "insulin glargine". |
No output schema declared.
No examples provided.
hospital_changes What changed in hospital prices this week? Colorado hospital price, payer-rate, file and status change records, computed by Distill by diffing the hospitals’ price-transparency files ~410
What changed in hospital prices this week? Colorado hospital price, payer-rate, file and status change records, computed by Distill by diffing the hospitals’ price-transparency files. Change records from diffing consecutive weekly builds: a hospital republishing its file (source raw_sha256), items and payer rates that appear, disappear or change price, a hospital’s status or file date changing, and the canonical payer of a payer/plan name changing. Keys: source `<source_id>`; hospital `<hospital id>`; item `<source_id>|<type>|<code>|<setting>|<billing_class>|<modifiers>`; rate `<item key>|<payer name>|<plan name>|<methodology>` (names as the hospital writes them; one rate per methodology, empty when none is given); plan `<payer name>|<plan name>`. Money is integer micro-USD (unit usd_micro). Each record cites the sha256 of the file versions it came from. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated weekly. Price: $0.05 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". Confidence: Change records are diffs of consecutive serving DBs, computed deterministically; confidence is the feed’s freshness only: 1 within 14 days of the newest build, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | next_cursor from the previous page. |
| limit | integer | – | Records per page (default 100). |
| since | string | – | Only records detected at or after this time (ISO 8601). |
No output schema declared.
No examples provided.
hospital_compare How do these hospitals compare on price for one procedure? Cash, gross and negotiated-rate statistics for a CPT, HCPCS or MS-DRG code at up to 10 Colorado hospitals, normalized by Distill from their… ~714
How do these hospitals compare on price for one procedure? Cash, gross and negotiated-rate statistics for a CPT, HCPCS or MS-DRG code at up to 10 Colorado hospitals, normalized by Distill from their price-transparency files. For each named hospital: whether it posts the code, and over its items for the code (only those without modifiers when it posts any, so a professional -26 or bilateral -50 line does not skew the row) nearest-rank statistics of its gross charges, discounted cash prices and negotiated dollar amounts across payers and plans, the range of negotiated percentages, the de-identified minimum and maximum, and the number of payers. The same filters as hospital.prices. Hospital ids come from hospital.prices (or pass a CMS certification number). Not charged when none of the hospitals is known. Updated weekly. 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". 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. Rows are each hospital’s items for the code as compared. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| billing_class | string | – | Optional: facility or professional (items posted for both always match). |
| code | string | yes | The billing code: CPT (5 characters, e.g. 99213), HCPCS Level II (a letter and 4 digits, e.g. J1885) or MS-DRG (3 digits, e.g. 470). |
| code_type | string | – | Optional: the code type. Inferred from the code’s shape when omitted. |
| hospitals | string | yes | One to ten hospital ids (e.g. co-060001) or CMS certification numbers, comma-separated. |
| payer | string | – | Optional: a canonical payer_id (e.g. aetna, cigna, unitedhealthcare, anthem, medicare, medicaid). hospital.payers lists the payers with prices for a code. |
| plan | string | – | Optional: text the plan name (or payer name) contains as the hospital writes it, case-insensitive, e.g. "PPO" or "Medicare Advantage". |
| plan_type | string | – | Optional: the canonical plan type. |
| setting | string | – | Optional: inpatient or outpatient (items posted for both always match). |
No output schema declared.
No examples provided.
hospital_payers What has each insurer negotiated for a procedure in this area? Negotiated prices by canonical payer (Aetna, Cigna, UnitedHealthcare, Medicare Advantage, …) and plan type for one code near a Colorado… ~583
What has each insurer negotiated for a procedure in this area? Negotiated prices by canonical payer (Aetna, Cigna, UnitedHealthcare, Medicare Advantage, …) and plan type for one code near a Colorado ZIP, computed by Distill from hospital price-transparency files. Every payer’s negotiated dollar amounts for the code at the hospitals within the radius, grouped by canonical payer_id (the stable id behind the many ways hospitals write a payer’s name), plan type and methodology (a per diem and a case rate are never pooled): how many hospitals and rates, and nearest-rank statistics. Payers with the most hospitals first. Percentage-only rates are left out (they have no dollar amount; hospital.prices shows them). The payer_ids here are what the payer filter of hospital.prices and hospital.compare takes. Updated weekly. 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". Confidence: Mean over every rate in the payer rows returned of normalize × quality × freshness, with the same factors as hospital.prices (normalize: the stored per-rate payer canonicalization confidence, rule 1, model 0.9, fallback 0.6; quality: 1 valid v3.0, 0.85 with conformance errors, 0.7 after header repair; freshness: 1 while last_updated_on is at most 365 days old, then halving every 180 days, 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The billing code: CPT (5 characters, e.g. 99213), HCPCS Level II (a letter and 4 digits, e.g. J1885) or MS-DRG (3 digits, e.g. 470). |
| code_type | string | – | Optional: the code type. Inferred from the code’s shape when omitted. |
| lat | number | – | Latitude of the point (with lon). |
| lon | number | – | Longitude of the point (with lat). |
| plan_type | string | – | Optional: the canonical plan type. |
| radius_miles | number | – | Search radius in miles (default 25, at most 100). |
| setting | string | – | Optional: inpatient or outpatient (items posted for both always match). |
| zip | string | – | A 5-digit ZIP code (its Census ZCTA point). Give a zip, or lat and lon. |
No output schema declared.
No examples provided.
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 t… ~799
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. Updated weekly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| billing_class | string | – | Optional: facility or professional (items posted for both always match). |
| code | string | yes | The billing code: CPT (5 characters, e.g. 99213), HCPCS Level II (a letter and 4 digits, e.g. J1885) or MS-DRG (3 digits, e.g. 470). |
| code_type | string | – | Optional: the code type. Inferred from the code’s shape when omitted. |
| lat | number | – | Latitude of the point (with lon). |
| limit | integer | – | How many hospitals to return, nearest first (default 10, at most 50). |
| lon | number | – | Longitude of the point (with lat). |
| payer | string | – | Optional: a canonical payer_id (e.g. aetna, cigna, unitedhealthcare, anthem, medicare, medicaid). hospital.payers lists the payers with prices for a code. |
| plan | string | – | Optional: text the plan name (or payer name) contains as the hospital writes it, case-insensitive, e.g. "PPO" or "Medicare Advantage". |
| plan_type | string | – | Optional: the canonical plan type. |
| radius_miles | number | – | Search radius in miles (default 25, at most 100). |
| setting | string | – | Optional: inpatient or outpatient (items posted for both always match). |
| zip | string | – | A 5-digit ZIP code (its Census ZCTA point). Give a zip, or lat and lon. |
No output schema declared.
No examples provided.
medicare_partd_changes Which Medicare Part D formularies changed this month? Drugs added or dropped, tier, prior-authorization, step-therapy and quantity-limit changes and plan premium changes, computed by Distill from CMS… ~409
Which Medicare Part D formularies changed this month? Drugs added or dropped, tier, prior-authorization, step-therapy and quantity-limit changes and plan premium changes, computed by Distill from CMS’s monthly formulary files. Change records between consecutive monthly CMS Part D formulary files of a plan year: a drug (RxCUI) added to or dropped from a formulary, its tier, prior authorization, step therapy or quantity limit changed; a plan added or dropped, its premium, deductible or formulary changed. Each record cites the sha256 of both files. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated monthly. Price: $0.05 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| entity | string | – | – |
| key | string | – | A plan (H0028-063-000), an RxCUI (all formularies) or <formulary id>:<RxCUI>. |
| limit | integer | – | – |
| plan_year | integer | – | The plan (benefit) year, e.g. 2027 for open enrollment (default: the current year). |
| since | string | – | Only records detected after this time (ISO 8601). |
No output schema declared.
No examples provided.
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… ~559
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. Updated monthly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| county | string | – | County name, with state, e.g. Denver. |
| county_code | string | – | The SSA state-county code, e.g. 06150 (Denver, CO). |
| kind | string | – | pdp, ma or all (default). |
| limit | integer | – | At most this many plans (default 20). |
| ndc | string | – | An 11-digit NDC as the formulary file lists it (one per RxCUI); prefer rxcui. |
| plan_year | integer | – | The plan (benefit) year, e.g. 2027 for open enrollment (default: the current year). |
| rxcui | string | – | The drug’s RxNorm concept id (RxCUI), e.g. 617311 for atorvastatin 40 mg oral tablet. |
| state | string | – | Two-letter state code, with county. |
No output schema declared.
No examples provided.
medicare_partd_plan What does this Medicare Part D plan cost and cover? Premium, deductible, service area, cost sharing by tier and one drug’s terms for a contract-plan-segment id, computed by Distill from CMS’s monthly… ~427
What does this Medicare Part D plan cost and cover? Premium, deductible, service area, cost sharing by tier and one drug’s terms for a contract-plan-segment id, computed by Distill from CMS’s monthly formulary files. From CMS’s monthly Part D formulary public use file: a plan by contract-plan-segment (e.g. H0028-063-000) with its formulary id, monthly premium, deductible, service area, and the initial-coverage 30-day cost sharing of every tier at each pharmacy type; with rxcui or ndc, whether the plan covers that drug and on what terms. Updated monthly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| ndc | string | – | An 11-digit NDC as the formulary file lists it (one per RxCUI); prefer rxcui. |
| plan | string | yes | Contract-plan-segment, e.g. H0028-063-000 or S4802-089-000. |
| plan_year | integer | – | The plan (benefit) year, e.g. 2027 for open enrollment (default: the current year). |
| rxcui | string | – | The drug’s RxNorm concept id (RxCUI), e.g. 617311 for atorvastatin 40 mg oral tablet. |
No output schema declared.
No examples provided.
medicare_pfs_changes What changed in the Medicare Physician Fee Schedule this quarter? RVU, status, conversion-factor, GPCI and OPPS-cap change records between CMS releases, 2025 on, computed by Distill from CMS’s RVU fi… ~413
What changed in the Medicare Physician Fee Schedule this quarter? RVU, status, conversion-factor, GPCI and OPPS-cap change records between CMS releases, 2025 on, computed by Distill from CMS’s RVU files. Change records between consecutive CMS relative value file releases (2025A on): a code’s RVUs, status or global days; a code added or dropped; the conversion factors; a locality’s GPCIs; the OPPS cap prices. Each record cites the sha256 of both release files. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated quarterly. Price: $0.05 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". Confidence: Freshness only (the amounts and change records are computed from the CMS files deterministically): 1 until the first day of the calendar quarter after the files were last checked, then halving every 30 days. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | – | Only changes to this code (any modifier, any locality). |
| cursor | string | – | – |
| entity | string | – | – |
| limit | integer | – | – |
| release | string | – | Only changes that took effect with this release, e.g. 2026A. |
| since | string | – | Only records Distill detected after this time (ISO 8601). |
No output schema declared.
No examples provided.
medicare_pfs_localities How does Medicare’s allowed amount for one code vary across the US? Physician Fee Schedule amounts in all 109 Medicare localities (or one state’s) with the national amount and range, computed by Dist… ~485
How does Medicare’s allowed amount for one code vary across the US? Physician Fee Schedule amounts in all 109 Medicare localities (or one state’s) with the national amount and range, computed by Distill from CMS’s RVU and GPCI files. The facility and non-facility allowed amounts (non-QP) for one code in each of the 109 Medicare payment localities, or those of one state, with the national amount (all GPCIs 1.0) and the range: how much the same service is allowed for across the country. From CMS’s relative value files for the release in force on the date. Updated quarterly. 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". Confidence: Freshness only (the amounts and change records are computed from the CMS files deterministically): 1 until the first day of the calendar quarter after the files were last checked, then halving every 30 days. 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The HCPCS Level II or CPT code, e.g. 99213, 70551 or G0439. |
| date | string | – | The date of service, YYYY-MM-DD (default: today, UTC): picks the release in force. |
| modifier | string | – | Optional modifier with its own RVUs: 26 (professional component), TC (technical component) or 53. Omit for the global service. |
| release | string | – | A quarterly release instead of a date, e.g. 2026D (A from 1 Jan, B Apr, C Jul, D Oct). |
| state | string | – | Two-letter state code, e.g. CO. |
No output schema declared.
No examples provided.
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, 2… ~656
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. Updated quarterly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | The HCPCS Level II or CPT code, e.g. 99213, 70551 or G0439. |
| date | string | – | The date of service, YYYY-MM-DD (default: today, UTC): picks the release in force. |
| locality | string | – | A Medicare locality as MAC-locality, e.g. 04112-01 (Colorado). |
| modifier | string | – | Optional modifier with its own RVUs: 26 (professional component), TC (technical component) or 53. Omit for the global service. |
| release | string | – | A quarterly release instead of a date, e.g. 2026D (A from 1 Jan, B Apr, C Jul, D Oct). |
| setting | string | – | Only this setting’s amount (default: both). |
| zip | string | – | A 5-digit ZIP or ZIP+4 (80218 or 80218-1234). |
No output schema declared.
No examples provided.
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… ~406
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. Updated daily. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | A digital currency address as used on its chain: EVM 0x… (any case), Bitcoin (1…, 3…, bc1…), Tron T…, Solana, Monero, …. |
No output schema declared.
No examples provided.
sanctions_address_batch Are any of these crypto addresses on OFAC’s SDN sanctions list? Up to 100 addresses screened in one call, checked by Distill against OFAC’s own SDN file ~277
Are any of these crypto addresses on OFAC’s SDN sanctions list? Up to 100 addresses screened in one call, checked by Distill against OFAC’s own SDN file. The same answer as sanctions.address for each address, in order, from one SDN publication. An address that is not one (spaces, too long) carries its own error; the call is still one price. No address is stored. Updated daily. Price: $0.05 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| addresses | array | yes | – |
No output schema declared.
No examples provided.
sanctions_changes Which crypto addresses did OFAC add to or remove from the SDN list? Per-publication change records (added, removed, entry updated), computed by Distill from OFAC’s own SDN files ~374
Which crypto addresses did OFAC add to or remove from the SDN list? Per-publication change records (added, removed, entry updated), computed by Distill from OFAC’s own SDN files. Change records between consecutive SDN publications, diffed by Distill from OFAC’s SDN.XML: a digital currency address added to or removed from an entry, and an entry with an address whose name or programs changed. Each record cites the sha256 of both publications’ files. Pages of up to 100, oldest first; pass next_cursor back as cursor. The history starts at history_from. Updated daily. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| kind | string | – | – |
| limit | integer | – | – |
| publication | string | – | Only the changes of the SDN publication of this date, e.g. 2026-10-15. |
| since | string | – | Only records detected after this time (ISO 8601). |
No output schema declared.
No examples provided.
tax_changes Which US sales tax rates or boundaries changed this quarter? Rate, ZIP+4 and boundary change records for the 24 Streamlined Sales Tax states, computed by Distill from each state’s SST files ~327
Which US sales tax rates or boundaries changed this quarter? Rate, ZIP+4 and boundary change records for the 24 Streamlined Sales Tax states, computed by Distill from each state’s SST files. Change records read from the states’ rate and boundary files: rates that change, begin or end; ZIP+4 and 5-digit ZIP ranges whose jurisdictions change; new files posted. Each record cites the sha256 of the files it came from. Pages of up to 100, oldest first; pass next_cursor back as cursor. Updated quarterly. Price: $0.05 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". Confidence: Freshness only (change records are read from the state files deterministically): 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.
| Name | Type | Req | Description |
|---|---|---|---|
| cursor | string | – | – |
| effective_from | string | – | Only changes effective on or after this day. |
| entity | string | – | – |
| limit | integer | – | – |
| since | string | – | Only records detected after this time (ISO 8601). |
| state | string | – | Two-letter state code, e.g. WA. |
No output schema declared.
No examples provided.
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… ~514
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. Updated quarterly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | – | Optional street address line with house number, e.g. "1010 E Alder St" or "PO Box 12"; matched against the state address records when it publishes them. |
| date | string | – | The sale date, YYYY-MM-DD (default: today, UTC). From the first day of the previous quarter onward. |
| zip | string | yes | A 5-digit ZIP code or a ZIP+4 (98101-3143 or 981013143). |
No output schema declared.
No examples provided.
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 e… ~317
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. Updated quarterly. 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". 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.
| Name | Type | Req | Description |
|---|---|---|---|
| locations | array | yes | – |
No output schema declared.
No examples provided.
How do I install the Distill MCP server?
Distill is a hosted endpoint at https://data.spencermcw.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · data.spencermcw.com
claude mcp add --transport http com-spencermcw-data-distill 'https://data.spencermcw.com/mcp'
What is the Distill MCP server?
Distill is an MCP server listed in the public MCP registry as com.spencermcw.data/distill. Pre-computed answers with sources and confidence, paid per call over x402 (USDC on Base). This page covers its hosted endpoint (https://data.spencermcw.com/mcp).
Is the Distill MCP server safe to use?
Distill scores 66 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Distill MCP server expose?
Distill exposes 19 tools: tax_sales_rate, tax_sales_rate_batch, tax_changes, hospital_prices, hospital_compare, and 14 more. Their descriptions and schemas cost roughly 8,733 tokens of context every time the server is loaded.
Does the Distill MCP server require authentication?
Its publisher declares no required credentials for Distill. We have not been able to confirm that against the live endpoint, and a server can require authorisation without declaring it here.
Is the Distill MCP server still maintained?
Distill is still listed in the MCP registry, though our most recent checks did not reach this channel. We last reached this channel on 3 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.