{
 "$schema": "https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json",
 "name": "com.clawhard/mend",
 "title": "Mend",
 "version": "1.0.0",
 "description": "Mend repairs broken JSON (trailing commas, single quotes, comments, Python literals, code fences, truncated output), tells you exactly where invalid JSON breaks, and outlines or queries big payloads. Runs in your browser, no account.",
 "websiteUrl": "https://mend.clawhard.com",
 "documentationUrl": "https://mend.clawhard.com/llms.txt",
 "iconUrl": "https://clawhard.com/icon-512.png",
 "serverInfo": {
  "name": "com.clawhard/mend",
  "title": "Mend",
  "version": "1.0.0"
 },
 "protocolVersion": "2025-06-18",
 "transport": "streamable-http",
 "endpoint": "https://mend.clawhard.com/mcp",
 "remotes": [
  {
   "type": "streamable-http",
   "url": "https://mend.clawhard.com/mcp"
  }
 ],
 "authentication": {
  "required": false
 },
 "capabilities": {
  "tools": {
   "listChanged": false
  },
  "prompts": {
   "listChanged": false
  },
  "resources": {
   "subscribe": false,
   "listChanged": false
  }
 },
 "tools": [
  {
   "name": "mend_repair_json",
   "title": "Repair broken or LLM-generated JSON",
   "description": "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": "mend_check_json",
   "title": "Validate JSON and locate the exact error",
   "description": "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": "mend_outline_json",
   "title": "Outline the structure of a large JSON payload",
   "description": "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": "mend_query_json",
   "title": "Extract values from JSON by path",
   "description": "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."
  }
 ],
 "prompts": [
  {
   "name": "mend_fix_my_json",
   "title": "Fix broken JSON",
   "description": "Repair JSON that will not parse and list every fix, without changing any value."
  }
 ],
 "publisher": {
  "name": "Clawhard Studio",
  "url": "https://clawhard.com",
  "contact": "support@clawhard.com"
 }
}