MFG Calcs MCP
An official MCP server operated by MFG Calcs that allows AI agents to access the entire platform via Model Context Protocol. It provides keyless access to 5,384 manufacturing calculators, live U.S. manufacturing data, tariff rates, cost indices, and forecasting tools, enabling agents to perform calculations, look up data series, and retrieve cited answers.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://www.mfgcalcs.com/api/mcpWhat its tools do
17 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to mfgcalcs.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Run manufacturing calculators for CNC, welding, or packaging
- Look up live U.S. tariff rates and cost indices
- Retrieve cited manufacturing data and forecasts
- Perform site-wide search across calculators and data
Source and maintenance
Protocol and capabilities
- Server
- mfgcalcs 1.0.0
- MCP protocol negotiated in check
- 2025-03-26
- Tools
- 17 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
17 advertised
search_calculators
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"}
{
"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
}get_calculator
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"}
{
"type": "object",
"required": [
"tool"
],
"properties": {
"tool": {
"type": "string",
"description": "Calculator slug, e.g. 'oee' or 'unit-cost'"
}
},
"additionalProperties": false
}run_calculator
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)
{
"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
}lookup_tariff
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: {"query":"steel"}
{
"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
}get_index
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"}.
{
"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
}get_provenance
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). Takes no arguments. The hashes prove the artifacts are intact and reproducible, not the correctness of the underlying government data. Cite the returned url.
{
"type": "object",
"properties": {},
"additionalProperties": false
}search_site
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"}
{
"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
}get_whats_new
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: {}
{
"type": "object",
"properties": {},
"additionalProperties": false
}get_receipts
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: {}
{
"type": "object",
"properties": {
"series": {
"type": "string",
"description": "Series key, slug, title, or approved alias; omit for the catalogue."
}
},
"additionalProperties": false
}get_freshness
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.
{
"type": "object",
"properties": {
"series": {
"type": "string",
"description": "Series key, slug, title, or approved alias; omit for all series."
}
},
"additionalProperties": false
}get_change_events
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.
{
"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
}get_citation
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.
{
"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
}get_vintages
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.
{
"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
}get_revisions
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.
{
"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
}optimize_sourcing
Solve the cheapest legal supplier mix as a real linear program: given candidate suppliers with unit costs, tariff rates, freight and capacities, return the exact cost-minimizing allocation under a demand requirement, per-supplier capacity limits, and an optional diversification cap on any one supplier's share. Solved by HiGHS, the open-source solver inside SciPy, so this is the PROVEN optimum with dual prices, not a heuristic ranking. Answers 'how should I split this volume?', 'what does the diversification cap actually cost me?', and 'which supplier's capacity is the binding constraint?'. Pass suppliers as a JSON array of objects with name and unitCost, plus optional tariffPct, freightPerUnit and capacity; landed cost per unit is unitCost x (1 + tariffPct/100) + freightPerUnit. Call it with no arguments for the parameter documentation and a runnable example. The LP text is echoed back so the run is reproducible. Cite the returned url.
{
"type": "object",
"properties": {
"demand": {
"type": "string",
"description": "Total units to allocate, e.g. '1000'."
},
"suppliers": {
"type": "string",
"description": "JSON array, e.g. [{\"name\":\"vietnam\",\"unitCost\":9.8,\"tariffPct\":8,\"freightPerUnit\":1.1},{\"name\":\"domestic\",\"unitCost\":12.5,\"freightPerUnit\":0.4,\"capacity\":700}]. Omit for usage docs."
},
"maxSharePct": {
"type": "string",
"description": "Diversification cap: the most any single supplier may take, in percent, e.g. '60'."
}
},
"additionalProperties": false
}ask
Answer manufacturing questions from committed data; deterministic, no LLM. Missing subjects and product ties ask for clarification. Calculators collect required inputs, retain corrections via `context`, and run when complete; defaults appear only in explicit worked examples. Statistics name period, frequency, scope and measure. `detail`: `answer` is compact, `evidence` adds scoped evidence and calculator guidance, `full` is default. Pass returned `context` for follow-ups. Shared by MFGChat, MFGSearch and `/api/answer`. Cite resolved sources. Try: {"query":"OEE","detail":"evidence"}
{
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "A full question, e.g. 'tariff on fasteners' or 'diesel price'"
},
"detail": {
"enum": [
"answer",
"evidence",
"full"
],
"type": "string",
"default": "full",
"description": "Response depth. `answer` is compact; `evidence` adds scoped evidence and adjacent facts; `full` preserves the compatibility-default forensic payload. Defaults to `full`."
},
"context": {
"type": "string",
"maxLength": 1024,
"description": "Optional. The `context` string from a previous ask response. Pass it to ask a follow-up: 'and what about vietnam' or 'why did it go up' then resolve against the earlier subject instead of being answered on their own."
}
},
"additionalProperties": false
}brief
Describe a SITUATION rather than a question and get every fact bearing on it, each answered and cited. `ask` for one figure, `brief` for a decision. Names what it could not establish. Try: {"situation":"sourcing bearings from china"}
{
"type": "object",
"required": [
"situation"
],
"properties": {
"situation": {
"type": "string",
"description": "In plain words: 'importing $250,000 of aluminium from vietnam'."
}
},
"additionalProperties": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 2 of 2 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 586 ms
- 95th percentile latency
- 586 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 586 ms · metadata changed · 17 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http mfg-calcs-mcp https://www.mfgcalcs.com/api/mcpCodex
codex mcp add mfg-calcs-mcp --url https://www.mfgcalcs.com/api/mcpCursor
{
"mcpServers": {
"mfg-calcs-mcp": {
"url": "https://www.mfgcalcs.com/api/mcp"
}
}
}Cline
{
"mcpServers": {
"mfg-calcs-mcp": {
"type": "streamableHttp",
"url": "https://www.mfgcalcs.com/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"mfg-calcs-mcp": {
"type": "http",
"url": "https://www.mfgcalcs.com/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http mfg-calcs-mcp https://www.mfgcalcs.com/api/mcpClaude Desktop
https://www.mfgcalcs.com/api/mcpWindsurf
{
"mcpServers": {
"mfg-calcs-mcp": {
"serverUrl": "https://www.mfgcalcs.com/api/mcp"
}
}
}Let your agent find its tools
Find servers like MFG Calcs MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run MFG Calcs MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.