Repair broken JSON without changing values, find the exact error, outline or query big payloads.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use when you need to know whether text is strictly valid JSON, and if not, exactly where it breaks. Strict RFC 8259 check (the same accept/reject as JSON.parse). Returns line, column, the offending line with a caret and whether Mend can repair it. Use mend_repair_json to fix it. Up to 100,000 characters.
The text to validate.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http mend https://mend.clawhard.com/mcp
Use when you need to know whether text is strictly valid JSON, and if not, exactly where it breaks. Strict RFC 8259 check (the same accept/reject as JSON.parse). Returns line, column, the offending line with a caret and whether Mend can repair it. Use mend_repair_json to fix it. Up to 100,000 characters.
| Argument | Type | Description |
|---|---|---|
| text* | string | The text to validate. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "The text to validate."
}
}
}Use before reading a big JSON response, log or export into context: returns a compact outline of the structure (keys, types, array lengths, one example per repeated shape) so you can plan a query without spending tokens on the whole document. Repairs the JSON first if needed. Follow with mend_query_json to pull only the values you need. Up to 100,000 characters.
| Argument | Type | Description |
|---|---|---|
| text* | string | The JSON (or JSON-ish text). |
| max_depth | integer | How many levels to expand. Default 4. |
| max_items | integer | How many array items to show when items differ. Default 6. |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "The JSON (or JSON-ish text)."
},
"max_depth": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "How many levels to expand. Default 4."
},
"max_items": {
"type": "integer",
"maximum": 20,
"minimum": 1,
"description": "How many array items to show when items differ. Default 6."
}
}
}Use when you need specific fields from a JSON document without reading all of it: $.users[0].name, $.items[*].id, $.a.b[-1], $.list[1:3], $..email (recursive). Returns each match with its exact path, type and value. Repairs the JSON first if needed, so broken input still works. Up to 100,000 characters.
| Argument | Type | Description |
|---|---|---|
| max | integer | Maximum matches to return. Default 50. |
| path* | string | Path such as $.users[*].email, data.items[0], $..id, $.list[-1], $.list[1:3]. |
| text* | string | The JSON (or JSON-ish text). |
{
"type": "object",
"required": [
"text",
"path"
],
"properties": {
"max": {
"type": "integer",
"maximum": 200,
"minimum": 1,
"description": "Maximum matches to return. Default 50."
},
"path": {
"type": "string",
"maxLength": 300,
"minLength": 1,
"description": "Path such as $.users[*].email, data.items[0], $..id, $.list[-1], $.list[1:3]."
},
"text": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "The JSON (or JSON-ish text)."
}
}
}Use when JSON from an LLM, API, log, config or copy-paste fails to parse (JSON.parse error, "Unexpected token", "Expecting property name"), or the user pastes JSON with trailing commas, single quotes, unquoted keys, comments, Python True/False/None, NaN, missing commas or brackets, a ```json fence, text around it, or output that was cut off. Deterministic repair: returns valid, formatted JSON plus a list of every fix with line and column. Values are never rewritten, so big numbers, number formatting and key order stay exactly as written (re-asking a model to "fix the JSON" changes data and costs tokens). If the text is already valid it says so. Up to 100,000 characters.
| Argument | Type | Description |
|---|---|---|
| text* | string | The broken JSON, or any text that contains JSON (a chat reply, a log line, a code block). |
| indent | integer | Spaces per indent level in the output. Default 2. Use 0 for one minified line. |
| sort_keys | boolean | Sort object keys alphabetically. Default false (keep the original order). |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 100000,
"minLength": 1,
"description": "The broken JSON, or any text that contains JSON (a chat reply, a log line, a code block)."
},
"indent": {
"type": "integer",
"maximum": 8,
"minimum": 0,
"description": "Spaces per indent level in the output. Default 2. Use 0 for one minified line."
},
"sort_keys": {
"type": "boolean",
"description": "Sort object keys alphabetically. Default false (keep the original order)."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 2, 2026.