{"name":"json-repair-mcp-server","version":"0.1.0","description":"Pay-per-call MCP server for deterministic JSON repair + JSON Schema validation, settled in USDC on Base via x402.","mcpEndpoint":"http://x402.agentfund.net/mcp","transport":"streamable-http (stateless JSON)","payment":{"protocol":"x402","asset":"USDC","network":"eip155:8453","payTo":"0xe22F691ed420143BfdAB022A14e7d6873b33EEf9","mode":"production"},"tools":[{"name":"structured_json_repair","title":"Structured JSON Repair","price":"$0.01","description":"Repair messy or invalid JSON (the kind LLMs and tools often emit) into clean, valid JSON, and optionally validate/coerce it against a JSON Schema. Pure deterministic compute — no network or model calls.\n\nWhat it fixes: trailing commas, single-quoted strings, unquoted keys, Python literals (None/True/False), NaN/Infinity, Markdown code-fence wrappers, and truncated/garbled tails.\n\nWhen to use: you received text that should be JSON but JSON.parse fails, or you have JSON that must conform to a specific schema and want types coerced (e.g. \"36\" -> 36, \"true\" -> true).\n\nWhen NOT to use: the input is already known-valid JSON and no schema check is needed.\n\nArgs:\n  - input (string, required): the raw/malformed JSON text.\n  - schema (object, optional): a JSON Schema (draft 2020-12) to validate and coerce against.\n  - coerce (boolean, optional, default true): coerce primitive types to satisfy the schema before validating.\n\nReturns structuredContent:\n  {\n    \"ok\": boolean,        // true if valid JSON (and schema-valid when a schema was given)\n    \"data\": any,          // the repaired/validated JSON value; null if unfixable\n    \"changed\": boolean,   // true if any repair or coercion modified the input\n    \"errors\": string[],   // actionable messages when ok is false\n    \"repairs\": string[]   // description of each fix applied\n  }"},{"name":"tabular_to_json","title":"Tabular to JSON","price":"$0.03","description":"Convert messy tabular text into clean, typed JSON rows. Auto-detects CSV, TSV, or a Markdown table and returns one JSON object per row plus an inferred column/type summary. Pure deterministic compute — no network or model calls.\n\nWhat it handles: delimiter sniffing (comma/semicolon/tab/pipe), quoted fields with embedded commas and newlines, BOM, ragged rows (padded/truncated), Markdown separator rows and escaped pipes, header auto-detection, and per-column type inference (integer/number/boolean/null/string).\n\nWhen to use: you have CSV/TSV/Markdown-table text (often emitted by tools or LLMs) and want structured, typed rows — optionally validated/coerced against a JSON Schema.\n\nWhen NOT to use: the data is already clean JSON, or it is HTML/xlsx/binary (not supported).\n\nArgs:\n  - input (string, required): raw tabular text.\n  - format (\"auto\"|\"csv\"|\"tsv\"|\"markdown\", default \"auto\"): force a format or auto-detect.\n  - hasHeader (\"auto\"|\"true\"|\"false\", default \"auto\"): whether the first row is a header.\n  - inferTypes (boolean, default true): coerce cells to number/integer/boolean/null; else keep strings.\n  - schema (object, optional): JSON Schema (draft 2020-12) to validate/coerce each row object against.\n\nReturns structuredContent:\n  {\n    \"ok\": boolean,                 // false if the input cannot be parsed as a table\n    \"format\": \"csv\"|\"tsv\"|\"markdown\",\n    \"columns\": [{ \"name\": string, \"type\": string }],\n    \"rows\": [{ ... }],             // one object per row, keyed by column name\n    \"rowCount\": number,\n    \"changed\": boolean,            // true if any normalization/coercion happened\n    \"errors\": string[],            // actionable messages when ok is false\n    \"repairs\": string[]            // description of each normalization applied\n  }"}],"discovery":"http://x402.agentfund.net/.well-known/x402"}