{"name":"io.github.tekinnnnn/unstringify","slug":"tekinnnnn-unstringify","title":"unstringify","description":"Fix broken JSON by line, validate, convert, read CSV/NDJSON/logs as records, unpack, compare. Local.","url":"https://mcp.market/server/tekinnnnn-unstringify","rating":null,"grade":"C","score":65,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":10,"stars":null,"forks":null,"downloads_week":28,"last_push_at":null,"license":"SEE LICENSE IN LICENSE"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":null,"website":"https://unstringify.com/docs/mcp","version":"0.1.1","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@unstringify/mcp","version":"0.1.1","runtimeHint":"npx","transport":{"type":"stdio"}}],"tools":[{"name":"compare","description":"Compare two documents by structure \\u2014 keys sorted, whitespace ignored, one row per path that differs \\u2014 or two sets of rows (CSV, NDJSON, a log) by key: which records were added, removed, changed, and in which fields. Formatting differences are not differences.","write_action":false,"price_micros":0,"input_schema":null},{"name":"convert","description":"Convert between JSON, YAML, XML, CSV, NDJSON, a Markdown table and TypeScript interfaces. A document into rows takes its main list of records, the rest of the document repeated on every row (the way pandas normalizes); rows into JSON is one array. Targets:","write_action":false,"price_micros":0,"input_schema":null},{"name":"fix_json","description":"Fix broken JSON (or YAML, XML) with named, line-by-line fixes: single quotes, unquoted keys, trailing commas, Python True/False/None, missing commas, a truncated file, a code fence around it. Returns the fixed text, each fix by line and kind, and whether the result is valid now. Deterministic \\u2014 no guessing at content.","write_action":false,"price_micros":0,"input_schema":null},{"name":"read_records","description":"Read CSV, TSV, NDJSON, a Markdown table or a raw log as records \\u2014 one JSON value per row, the header as keys, a log line split by the best known shape (JSON lines, logfmt, nginx, syslog\\u2026) or your regex with named groups. Returns the records, the counts (rows, broken, raw lines kept), the columns and the level counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"unpack","description":"Open every string value that holds JSON, XML or YAML \\u2014 an SNS envelope\\u2019s Message, a Kibana row\\u2019s message column, a double-encoded field \\u2014 in place: the literal is replaced by what it held and every other byte stays where it was. NDJSON is unpacked one line at a time. Pass `path` (a JSON path such as $.Message) to open one value only.","write_action":false,"price_micros":0,"input_schema":null},{"name":"validate","description":"Say whether text is valid JSON, YAML or XML, and where it is not: line, column, the parser\\u2019s message, and a hint when the engine has one. Detects the format when not told.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":65,"grade":"C","scanned_at":"2026-09-20T00:26:14.401Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T00:26:14.345Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":2,"max":10,"notes":["no repository or website to verify"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"packages":[{"registryType":"npm","identifier":"@unstringify/mcp","version":"0.1.1","found":true,"license":"SEE LICENSE IN LICENSE","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-07T17:47:37.501Z","weeklyDownloads":28}],"repo":{"found":false},"icon":{"url":"https://unstringify.com/favicon.ico","source":"site","width":256,"height":256},"presence":{"stars":null,"forks":null,"downloadsWeek":28,"license":"SEE LICENSE IN LICENSE","lastPushAt":null,"score":10}}}},"grade_history":[],"reviews":[]}