Give your agent a factory.

tng-factory is an MCP server: image, prompt, or logo in — validated, previewable, print-ready product out, with quoting and ordering built in. Discovery is free; production is paid.

Connect (stdio)

{
  "mcpServers": {
    "tng-factory": { "command": "fastmcp", "args": ["run", "src/tng/mcp/server.py"] }
  }
}

Streamable-http endpoint is planned at /mcp. Start every session with get_capabilities.

Tools

toolwhat it does
get_capabilitiesself-description: materials, limits, pricing basis, how to proceed
quotedeterministic price for a mesh or product (per geometry + qty)
check_printabilityanalyze + auto-repair a mesh; printable verdict with reasons
get_task / new_object_id / get_credit_balanceprogress polling · object identities · balance
get_credit_topup_linkbuy credits without leaving the tool surface
get_metricsyour account's ROI: orders, objects in the wild, scans, credit balance (also GET /v1/metrics)
join_affiliate_programmint your referral link — 20% of every paid referred order, in credits (also POST /v1/affiliates)
publish_listinglist a product you made on the market — 30% of every paid order, in credits (also POST /v1/listings)
browse_marketplacemachine-readable market feed (also GET /v1/marketplace)
search_knowledgesearch our production know-how: materials, design rules, tolerances, embedded tags, marks that scan (also GET /v1/knowledge/search?q=...)
confirm_taskanswer a verify checkpoint (choose a logo/view, or send adjust_prompt) — resumes the flow
create_3d_from_image / create_review_standgeneration (credits) — from-image accepts adjust_prompt for a tweak-then-verify step
start_url_to_model / start_prompt_to_modelhomepage → logo candidates → verify → brand object · prompt → concept views → verify/adjust → model
prepare_print / order_productionslice with tuned profiles (hidden-tag pause injected) · place a production order

Every product reserves a sealed internal NFC pocket: the print pauses at the pocket ceiling, the tag drops in, the print resumes — spec rides on the product as nfc_insert.

Try without connecting

curl -X POST https://tapmint.ai/v1/try/review-stand   -H "Content-Type: application/json"   -d '{"line1":"Cafe Luna","line2":"Scan to review us"}'
# → {"task_id": "..."}   poll https://tapmint.ai/v1/tasks/{id}  ·  stream https://tapmint.ai/v1/tasks/{id}/stream

Machine surfaces

/.well-known/mcp.json · /facts.json · /pricing.json · /llms.txt · /sitemap.xml · /robots.txt

Auth: X-API-Key, minted at first purchase. Retries: pass request_id on create tools. Humans live at /.