{
  "schemaVersion": "0.1",
  "name": "MachineWorth",
  "description": "Economic intelligence for robotic work. Discover, compare, evaluate, and estimate the economics of robots and autonomous machines. All records are evidence-graded; calculators are transparent estimates, never advice.",
  "documentation": "https://machineworth.com/methodology/",
  "contact": "https://machineworth.com/about/",
  "principles": [
    "Read tools return evidence-graded dataset records; they never invent facts.",
    "Absence of a field means MachineWorth has not verified it, not that a value is zero.",
    "Calculators produce estimates from inputs only and are not investment, financing, or operational advice.",
    "Prefer citing the source_url on each record when relaying a claim."
  ],
  "dataEndpoints": {
    "robots": "https://machineworth.com/api/robots.json",
    "robot": "https://machineworth.com/api/robots/{slug}.json",
    "manufacturers": "https://machineworth.com/api/manufacturers.json",
    "industries": "https://machineworth.com/api/industries.json",
    "useCases": "https://machineworth.com/api/use-cases.json"
  },
  "clientTools": "https://machineworth.com/assets/js/webmcp.js",
  "tools": [
    {
      "name": "searchMachines",
      "aliases": [
        "searchRobots"
      ],
      "type": "read",
      "invocation": {
        "method": "GET",
        "url": "https://machineworth.com/api/robots.json",
        "note": "Filter client-side by query/category/industry/commercialStatus."
      },
      "input": {
        "query": "string?",
        "category": "string?",
        "industry": "string?",
        "task": "string?",
        "commercialStatus": "string?",
        "limit": "integer?"
      },
      "output": "{count, results:[{slug,name,manufacturer,category,commercial_status,payload_kg,price_estimate_usd,price_evidence,url}]}"
    },
    {
      "name": "getMachine",
      "aliases": [
        "getRobot"
      ],
      "type": "read",
      "invocation": {
        "method": "GET",
        "url": "https://machineworth.com/api/robots/{slug}.json"
      },
      "input": {
        "slug": "string"
      },
      "output": "Full evidence-graded robot record."
    },
    {
      "name": "getManufacturer",
      "type": "read",
      "invocation": {
        "method": "GET",
        "url": "https://machineworth.com/api/manufacturers.json"
      },
      "input": {
        "slug": "string"
      },
      "output": "Manufacturer record + its machines."
    },
    {
      "name": "compareMachines",
      "type": "compute",
      "invocation": {
        "runtime": "webmcp|client"
      },
      "input": {
        "slugs": "string[]"
      },
      "output": "Side-by-side specs, status, economics, evidence."
    },
    {
      "name": "findMachinesForTask",
      "type": "read",
      "input": {
        "task": "string",
        "industry": "string?",
        "limit": "integer?"
      },
      "output": "Evidence-graded matches for a task."
    },
    {
      "name": "findMachinesWithinBudget",
      "type": "read",
      "input": {
        "maxUsd": "number?",
        "minUsd": "number?",
        "category": "string?"
      },
      "output": "Machines within an estimated price band (labeled estimates)."
    },
    {
      "name": "calculateROI",
      "type": "compute",
      "invocation": {
        "runtime": "webmcp|client",
        "module": "https://machineworth.com/assets/js/mw-economics.js"
      },
      "input": {
        "acquisition": "purchase|raas",
        "numRoles": "number",
        "fullyLoadedWage": "number",
        "shifts": "number",
        "robotPrice": "number",
        "raasMonthly": "number",
        "integrationCost": "number",
        "annualMaintenance": "number",
        "annualEnergy": "number",
        "usefulLifeYears": "number",
        "utilizationPct": "number",
        "numRobots": "number"
      },
      "output": "{results:{...payback, fiveYearROIPct, ...}, economicSignal, economicSignalReason, disclaimer}"
    },
    {
      "name": "calculateTotalCostOfOwnership",
      "type": "compute",
      "input": {
        "robotPrice": "number",
        "integrationCost": "number",
        "annualMaintenance": "number",
        "annualEnergy": "number",
        "usefulLifeYears": "number",
        "numRobots": "number"
      },
      "output": "{annualizedTotalCostOfOwnership, upfrontInvestment, annualRobotOperatingCost}"
    },
    {
      "name": "getEconomicSignal",
      "type": "compute",
      "input": {
        "numRoles": "number",
        "fullyLoadedWage": "number",
        "robotPrice": "number",
        "utilizationPct": "number"
      },
      "output": "{economicSignal, reason, score, payback}"
    },
    {
      "name": "assessRobotReadiness",
      "type": "compute",
      "status": "planned",
      "input": {
        "industry": "string",
        "task": "string"
      },
      "output": "Readiness checklist (roadmap; not in MVP)."
    },
    {
      "name": "getEvidenceSummary",
      "type": "read",
      "input": {
        "slug": "string"
      },
      "output": "Best evidence level, claims, deployments, sources."
    },
    {
      "name": "getDeploymentHistory",
      "type": "read",
      "input": {
        "slug": "string"
      },
      "output": "Documented deployments with evidence + source."
    },
    {
      "name": "identifyMissingInformation",
      "type": "read",
      "input": {
        "slug": "string"
      },
      "output": "Fields not yet verified for a machine."
    },
    {
      "name": "estimateFinancing",
      "type": "compute",
      "input": {
        "price": "number",
        "downPayment": "number",
        "aprPct": "number",
        "termMonths": "integer"
      },
      "output": "Illustrative loan payment; NOT an offer."
    },
    {
      "name": "requestBuyerGuide",
      "type": "action",
      "invocation": {
        "method": "open_url",
        "url": "https://machineworth.com/guide/"
      },
      "input": {
        "industry": "string?",
        "useCase": "string?",
        "robot": "string?"
      },
      "output": "URL to the buyer-guide form (non-sensitive intent fields only)."
    }
  ]
}