Mend
Server Details
Repair broken JSON without changing values, find the exact error, outline or query big payloads.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool maps to a distinct operation: validate, outline, query, repair. The only soft overlap is check vs repair, since mend_repair_json also reports validity and mend_check_json reports whether repair is possible; the descriptions mitigate this by framing check as diagnosis and repair as mutation, but an agent could still hesitate in edge cases.
All four tools use the same mend_ prefix plus a consistent verb_noun pattern (check_json, outline_json, query_json, repair_json). The shared _json suffix also makes the resource explicit and predictable.
Four tools is well-scoped for a focused JSON inspection/repair server, with each tool earning its place as a distinct step in the workflow. Nothing feels padded or missing at the surface level.
The surface covers the core lifecycle: diagnose (check), understand (outline), extract (query), and fix (repair), with repair implicitly handling formatting. Minor gaps exist around output-side operations such as minify/transform or emitting a repaired subtree as JSON, but agents can work around these via query results.
Available Tools
4 toolsmend_check_jsonValidate JSON and locate the exact errorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The text to validate. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description still adds real substance: strict RFC 8259 semantics equated to JSON.parse acceptance, the returned diagnostics (line, column, offending line with caret), repairability signaling, and a 100,000-character ceiling. That is genuine behavioral context an agent cannot get from the annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the 'Use when' trigger, followed by semantics, return value, and the sibling handoff. Every sentence contributes; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only validator with no output schema, the description supplies what structured fields do not: the validation standard, what the error report contains, the repairability flag, and the size limit. An agent has everything needed to call it and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter and schema coverage is 100%, with the schema already documenting 'text' and its maxLength. The description's 'Up to 100,000 characters' merely restates the schema constraint rather than adding format or syntax guidance. Baseline 3 for a fully documented single-parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('validate' text as strictly valid JSON) plus the distinguishing output ('whether text is strictly valid JSON, and if not, exactly where it breaks'). This clearly separates it from mend_repair_json, mend_outline_json and mend_query_json, which operate on already-valid JSON.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when you need to know whether text is strictly valid JSON' gives the triggering condition, and 'Use mend_repair_json to fix it' names the alternative tool with the condition that selects it. The agent knows both when to call this and where to go next.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mend_outline_jsonOutline the structure of a large JSON payloadARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The JSON (or JSON-ish text). | |
| max_depth | No | How many levels to expand. Default 4. | |
| max_items | No | How many array items to show when items differ. Default 6. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so the safety profile is covered. The description adds genuinely new behavior: it repairs malformed JSON first, and it discloses the 100,000-character ceiling. It stops short of describing error behavior or what happens when the payload exceeds the limit, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger condition and the payoff (token savings), with no filler. The middle sentence about repair is slightly interleaved but still earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by describing the return shape (keys, types, array lengths, sample items) and the size limit. Combined with the annotations and fully documented parameters, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so text, max_depth and max_items are already documented in the schema. The description only indirectly gestures at max_items via 'one example per repeated shape' and never mentions depth control, so it adds little beyond the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('returns a compact outline of the structure') and enumerates exactly what the outline contains: keys, types, array lengths, one example per repeated shape. This clearly separates it from mend_query_json (value extraction) and mend_check_json (validation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly prescribes the when ('Use before reading a big JSON response, log or export into context') and the follow-up ('Follow with mend_query_json to pull only the values you need'), naming the sibling and the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mend_query_jsonExtract values from JSON by pathARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| max | No | Maximum matches to return. Default 50. | |
| path | Yes | Path such as $.users[*].email, data.items[0], $..id, $.list[-1], $.list[1:3]. | |
| text | Yes | The JSON (or JSON-ish text). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower, and the description still adds real context: it repairs malformed input before extracting, returns path/type/value per match, and caps input at 100,000 characters. It leaves the default match cap (50) to the schema and says nothing about zero-match behavior, which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case, then path syntax, then return shape, then the repair and size caveats โ each clause contributes distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return contract and does so adequately ('each match with its exact path, type and value'), plus the auto-repair behavior and input size ceiling. Minor gaps remain: behavior on no matches and whether the 50-match default truncates silently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents text, path and max; the description's path examples duplicate much of the path description, though labeling $.. as 'recursive' adds a small clarifying gloss. The 100,000-character mention simply restates the text maxLength. Baseline 3 is appropriate when the schema carries the detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Extract values from JSON by path') and backs it with concrete path examples ($.users[0].name, $..email, $.list[1:3]), so the operation is unambiguous. It does not name the adjacent siblings (mend_outline_json, mend_check_json, mend_repair_json), so the routing signal is implied by 'without reading all of it' rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when you need specific fields from a JSON document without reading all of it' gives a clear triggering condition and implicitly contrasts with dumping the whole document. It stops short of explicit when-not-to or naming the sibling tools that handle structure/validation instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mend_repair_jsonRepair broken or LLM-generated JSONARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The broken JSON, or any text that contains JSON (a chat reply, a log line, a code block). | |
| indent | No | Spaces per indent level in the output. Default 2. Use 0 for one minified line. | |
| sort_keys | No | Sort object keys alphabetically. Default false (keep the original order). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description piles on genuinely useful context beyond that: deterministic (not heuristic) repair, values never rewritten so numbers and key order are preserved, output includes a per-fix list with line/column, valid input is reported rather than altered, and a 100,000-character ceiling. That is the behavioral disclosure an agent needs before deciding to trust the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The 'Use when...' clause is front-loaded and the length limit closes the block cleanly. The first sentence is a long run-on enumerating every malformed-input symptom, which is dense but each item is load-bearing for recognition; the reward/warning sentence about re-prompting a model earns its place too.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description compensates by describing the return: repaired formatted JSON plus a list of fixes with line and column, and the already-valid case. Combined with the input-size limit, an agent knows exactly what it will get back for a simple 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter (text, indent, sort_keys) is documented in the schema itself. The description only obliquely touches on formatting ('valid, formatted JSON') and never mentions indent or sort_keys, so it adds little beyond the structured fields. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('repair ... JSON') and immediately scopes the input classes (LLM output, API, log, config, copy-paste). It also implies the boundary with the validator sibling by noting 'If the text is already valid it says so,' so an agent can tell repair apart from check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit trigger list: JSON.parse errors, 'Unexpected token', 'Expecting property name', trailing commas, single quotes, fences, truncation, etc. It also motivates why to use this over re-prompting a model. It stops short of naming sibling tools like mend_check_json or mend_outline_json as alternatives, leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
mend_check_json - First observed
mend_outline_json - First observed
mend_query_json - First observed
mend_repair_json
Related MCP Connectors
Repair malformed JSON from LLM/agent output; optional JSON Schema coercion. Free + x402 paid.
Repair broken LLM JSON and check it against a JSON Schema. Flags cut-off output. Free trial.
Repair malformed JSON that fails a schema. Deterministic only; refuses to guess; signed receipt.
Remote MCP: JSON repair, JSON Schema validation, JSON to TypeScript, CSV to JSON and JSON to CSV.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceDeterministic JSON validation and repair for AI agents. Validates, repairs, schema-checks, and diffs JSON so long-running agents don't corrupt their session state with malformed writes.MIT
- AlicenseNot gradedqualityAmaintenanceProvides deterministic JSON repair and JSON Schema validation for malformed AI agent outputs, safely fixing unambiguous errors without an LLM and refusing ambiguous cases.88 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceJSON repair & validation MCP server for AI agents: fixes malformed JSON (trailing commas, truncation, etc.) and validates/coerces against a JSON Schema, with deterministic free tier and paid LLM-fallback.2 npm1MIT
- AlicenseNot gradedqualityDmaintenanceAI powered, self healing JSON validator. Pay/callMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.