{"serverId":"mcp-registry/com.mfgcalcs/mfgcalcs","tools":[{"name":"get_calculator","fixed":{"name":"get_calculator","description":"Get a calculator's inputs (labels, units, defaults, min/max) and formula before running it. requiresPositive marks a field whose documented minimum of 0 is really exclusive. Use the tool slug from search_calculators. Try: {\"tool\":\"oee\"}","inputSchema":{"type":"object","required":["tool"],"properties":{"tool":{"type":"string","description":"Calculator slug, e.g. 'oee' or 'unit-cost'"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"get_change_events","fixed":{"name":"get_change_events","description":"Get every published or revised observation in order with a cursor. Poll by offset instead of re-pulling series. Same engine as /api/events and the vintage archive.","inputSchema":{"type":"object","properties":{"type":{"type":"string","description":"'published' or 'revised'"},"limit":{"type":"string","description":"Page size (bounded server-side)"},"since":{"type":"string","description":"Non-negative integer offset from a previous page's cursor; omit to start at 0"},"series":{"type":"string","description":"Series key, slug, title, alias, or archive key."},"artifact":{"type":"string","description":"Artifact filter, e.g. 'econData'."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":199,"tokensAfter":199},{"name":"get_citation","fixed":{"name":"get_citation","description":"Get a ready-to-paste citation for an MFG Calcs dataset — including, for vintage-tracked datasets, the ?asOf= URL that returns the numbers exactly as they read on the access date, so the citation stays checkable after revisions instead of rotting. Carries a stable site identifier rather than a DOI; none has been minted for this collection yet, and the payload says so. Call with no dataset for the catalogue of citable datasets. Same engine as /api/cite.","inputSchema":{"type":"object","properties":{"dataset":{"type":"string","description":"Dataset id from the catalogue; omit to list what is citable"},"accessed":{"type":"string","description":"ISO date (YYYY-MM-DD) the data was accessed; defaults to today"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":218,"tokensAfter":218},{"name":"get_freshness","fixed":{"name":"get_freshness","description":"Get the freshness contract for MFG Calcs' live data: every series with its measured publishing cadence, latest period, age in days, and an honest state (current | due | stale | unknown). This is the number that decides 'answer from memory or call the tool' — and the cheapest way to know whether a re-sync is worth it. Derived from the committed data-status census; stale series are reported as stale.","inputSchema":{"type":"object","properties":{"series":{"type":"string","description":"Series key, slug, title, or approved alias; omit for all series."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":174,"tokensAfter":174},{"name":"get_index","fixed":{"name":"get_index","description":"Fetch a published MFG Calcs index, board, ledger, forecast, vintage, revision record, seasonal series, or HS-NAICS map. Tariff targets distinguish the tracked manufacturing panel's observed effective calculated-duty rate; origins are statistically associated with those reported Calculated Duties, not causes. The selected index's JSON Schema branch lists its accepted fields; unsupported, dependent, or conflicting fields return invalid params. Try: {\"index\":\"get_state_cost_index\",\"filter\":\"Ohio\"}.","inputSchema":{"type":"object","oneOf":[{"properties":{"index":{"const":"get_tariff_index"},"points":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"rank_landed_cost"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"reshoring_score"},"limit":{},"filter":{}},"additionalProperties":false},{"properties":{"index":{"const":"get_tariff_bill"},"limit":{},"points":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_policy_premium"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_tariff_dollars_by_country"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_source_shift"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_tariff_effect"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_sourcing_diversification"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_import_price_movers"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_duty_free_routes"},"limit":{},"filter":{},"country":{},"scheduleYear":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_wage_board"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_forecast"},"limit":{},"filter":{}},"additionalProperties":false},{"properties":{"index":{"const":"get_forecast_accuracy"}},"additionalProperties":false},{"properties":{"index":{"const":"get_cost_pressure_index"},"points":{}},"additionalProperties":false},{"properties":{"index":{"const":"get_input_cost_diffusion"},"points":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_supply_chain_fragility"},"limit":{},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_state_cost_index"},"limit":{},"filter":{}},"additionalProperties":false},{"properties":{"index":{"const":"get_cost_pass_through"}},"additionalProperties":false},{"properties":{"index":{"const":"get_manufacturing_pmi"},"points":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","limit"]}}],"properties":{"index":{"const":"get_reshoring_break_even"},"limit":{},"filter":{}},"additionalProperties":false},{"properties":{"index":{"const":"get_tariff_action_ledger"}},"additionalProperties":false},{"properties":{"index":{"const":"get_eti_outlook"}},"additionalProperties":false},{"properties":{"asOf":{},"index":{"const":"get_vintages"},"limit":{},"filter":{}},"dependencies":{"asOf":["filter"]},"additionalProperties":false},{"properties":{"index":{"const":"get_revisions"},"limit":{},"since":{},"filter":{},"artifact":{}},"additionalProperties":false},{"properties":{"index":{"const":"get_seasonally_adjusted"},"filter":{}},"additionalProperties":false},{"allOf":[{"not":{"required":["filter","naics"]}}],"properties":{"index":{"const":"get_hs_naics"},"limit":{},"naics":{},"filter":{}},"additionalProperties":false}],"required":["index"],"properties":{"asOf":{"type":"string","maxLength":500,"description":"Vintage cutoff (YYYY-MM-DD)."},"index":{"type":"string","maxLength":500,"description":"Published target."},"limit":{"type":"string","maxLength":500,"description":"Rows: \"all\" or count."},"naics":{"type":"string","maxLength":500,"description":"Six-digit NAICS code for get_hs_naics."},"since":{"type":"string","maxLength":500,"description":"Revision cutoff (YYYY-MM-DD)."},"filter":{"type":"string","maxLength":500,"description":"Target selector; meaning depends on index."},"points":{"type":"string","maxLength":500,"description":"History: \"latest\", \"all\", or count."},"country":{"type":"string","maxLength":500,"description":"Duty-free origin."},"artifact":{"type":"string","maxLength":500,"description":"Revision artifact filter."},"scheduleYear":{"type":"string","maxLength":500,"description":"Duty-free HTS year."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":1444,"tokensAfter":1444},{"name":"get_provenance","fixed":{"name":"get_provenance","description":"Get the MFG Calcs Provenance Manifest: the verifiable record for every branded index and ledger on the site. For each one it returns a SHA-256 of the committed artifact and of every committed public-data input it was built from, plus the generator that reproduces it and the page that renders it. Use this to VERIFY a number before quoting it: re-hash the committed artifact (integrity), re-run the named generator on the committed inputs (reproducibility), and read the git history (timestamp). Take","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"get_receipts","fixed":{"name":"get_receipts","description":"Get the append-only archive of Ed25519-signed data receipts: every value signed for a series within the rolling window (current + previous signing year), revisions retained, each entry carrying its claim, claimHash, signature, and keyId. Call with no series for the catalogue plus the keyId→publicKey map and the permanent yearly ledger URLs. Same engine as /api/receipts. Try: {}","inputSchema":{"type":"object","properties":{"series":{"type":"string","description":"Series key, slug, title, or approved alias; omit for the catalogue."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":169,"tokensAfter":169},{"name":"get_revisions","fixed":{"name":"get_revisions","description":"Get every restatement of a published figure with its old value, new value, and first-known date. Filter by series, artifact, since, or limit; omit filters for the full record and per-series revision summary. Use it to judge whether a recent print needs a revision caveat. Cite the returned url.","inputSchema":{"type":"object","properties":{"limit":{"type":"string","maxLength":500,"description":"Max revisions to return."},"since":{"type":"string","maxLength":500,"description":"ISO date (YYYY-MM-DD); only later revisions."},"series":{"type":"string","maxLength":500,"description":"Series key, slug, title, approved alias, or archive key. Unknown or ambiguous values are errors."},"artifact":{"type":"string","maxLength":500,"description":"Artifact name to scope the record to."}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":237,"tokensAfter":237},{"name":"get_vintages","fixed":{"name":"get_vintages","description":"Get the MFG Calcs Vintage Archive: reproduce what a series said on a past date, before later revisions. Use series + asOf (YYYY-MM-DD) for the historical snapshot, series alone for its revision trail, or omit both for the catalogue. Multiple entries for one period indicate revision. Cite the returned url.","inputSchema":{"type":"object","properties":{"asOf":{"type":"string","maxLength":500,"description":"ISO date (YYYY-MM-DD). Returns the series as it stood on that date, ignoring every revision published since."},"limit":{"type":"string","maxLength":500,"description":"Max observations to return."},"series":{"type":"string","maxLength":500,"description":"Series key, slug, title, approved alias, or archive key; omit for the catalogue."}},"dependencies":{"asOf":["series"]},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":236,"tokensAfter":236},{"name":"get_whats_new","fixed":{"name":"get_whats_new","description":"Get the daily what-changed digest for the newest data day, in one call with links deeper: every agency series that published a new reading, every agency value restated (derived signals that recomputed are listed separately by name), every projection graded against its printed actual, and the day's Market Wire editions. Designed to be the first call of an agent's day: if `date` hasn't advanced since your last look, nothing moved. Empty days are reported empty with the reason, never padded. Try: {","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":172,"tokensAfter":172},{"name":"lookup_tariff","fixed":{"name":"lookup_tariff","description":"Look up U.S. manufacturing import tariffs: HTS General/Special fields, informational Chapter 99 references, observed effective calculated-duty rate, eligible families' aggregate customs unit value, source shares, and named-source HHI floor with retained-board coverage. Search by keyword, family, or HTS code. Schedule fields and Chapter 99 references do not establish entry liability; unit value is not a transaction price. USITC reference data, not a customs ruling. Cite the returned url. Try: {\"q","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"integer","maximum":10,"minimum":1,"description":"Max family matches, default 5; allowed range 1-10"},"query":{"type":"string","description":"Keyword, family key, or HTS code/prefix, e.g. 'bearings' or '8482'"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":241,"tokensAfter":241},{"name":"run_calculator","fixed":{"name":"run_calculator","description":"Run a manufacturing calculation. Provide inputs by field key or slugified label (see get_calculator); missing inputs use the calculator's documented defaults. Returns labeled results with units, the formula, and a citation URL that should be shared with the user. Inputs are checked against their documented min/max; an impossible value is refused by name. derivation.confidence grades the OUTPUT: \"none\" if any result row could not be computed. Try: {\"tool\":\"oee\"} (defaults fill every input)","inputSchema":{"type":"object","required":["tool"],"properties":{"tool":{"type":"string","description":"Calculator slug from search_calculators"},"inputs":{"type":"object","description":"Input values keyed by field key or label param, e.g. {\"availability\": 90}","additionalProperties":{"type":["number","string"]}}},"additionalProperties":false},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":247,"tokensAfter":247},{"name":"search_calculators","fixed":{"name":"search_calculators","description":"Search MFG Calcs' library of 5,000+ manufacturing calculators (machining, molding, welding, OEE, cost estimating, energy, quality, maintenance, and more). Returns matching calculators with their tool slug for run_calculator. Try: {\"query\":\"OEE\"}","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number","description":"Max results, default 10"},"query":{"type":"string","description":"What to calculate, e.g. 'OEE' or 'injection molding cycle time'"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":157,"tokensAfter":157},{"name":"search_site","fixed":{"name":"search_site","description":"Search everything on mfgcalcs.com beyond calculators: 64 live economic data series (imports, prices, wages, energy), 57 tariff families, state cost data, calculator categories, and datasets. Returns typed matches with URLs to cite. Use search_calculators for the 5,000+ calculators themselves. Try: {\"query\":\"industrial electricity price\"}","inputSchema":{"type":"object","required":["query"],"properties":{"limit":{"type":"number","description":"Max matches, default 10, max 25"},"query":{"type":"string","description":"Anything: 'steel imports', 'fastener tariff', 'texas electricity'"}},"additionalProperties":false},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":184,"tokensAfter":184}],"toolsChanged":14,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}