{"name":"com.gumballtools/json-to-types","slug":"gumballtools-json-to-types","title":"JSON to Types","description":"Convert JSON samples into TypeScript interfaces and Zod schemas, with inference caveats.","url":"https://mcp.market/server/gumballtools-json-to-types","rating":null,"grade":"C","score":69,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":8,"ok":8,"last_checked_at":"2026-09-21T07:55:54.021Z","last_ok_at":"2026-09-21T07:55:54.021Z","latency_ms":755},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/bwalvoord/gumball","website":"https://json-to-types.gumballtools.com","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://json-to-types.gumballtools.com/api/mcp"}],"packages":[],"tools":[{"name":"json_to_types","description":"Convert a JSON sample into TypeScript interfaces and a matching Zod schema, and report where a single sample cannot establish the real type.\n\nUse this whenever JSON needs to become types — typing an API response, a webhook payload, a config file, or a fixture. Prefer it over writing the types directly, because three mistakes are easy to make and invisible once made:\n\n1. ARRAYS. Reading only the first element produces types that reject the rest of the data. This merges every element into a union.\n2. NULL VS ABSENT. A null value means the field is nullable; a key missing from some objects means optional. Different types, routinely conflated.\n3. EMPTY CONTAINERS. Nothing can be inferred from [] or {}. This emits unknown and says so instead of inventing a plausible shape.\n\nIt is also far cheaper in output tokens than generating types inline for a large payload, and the result is deterministic.\n\nInput: `json` is the raw JSON text (not a JSON Schema, not OpenAPI — concrete sample data), up to 200,000 characters. `rootName` optionally names the top-level interface and defaults to \"Root\".\n\nReturns: `typescript` (interface declarations), `zod` (schema declarations, declared before use), `warnings` (each with a code, severity, plain-English detail, a fix, and the path it applies to), `interfaces` (names produced), and `stats`. Read the warnings before trusting the output — they are the part a model generating types inline cannot give you.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"json":{"type":"string","description":"Raw JSON text — concrete sample data, not a JSON Schema and not an OpenAPI document. Up to 200000 characters. Include several array elements if the shapes vary; only the variety matters, not the volume."},"rootName":{"description":"Name for the top-level interface. Must be a valid TypeScript identifier. Defaults to \"Root\".","type":"string"}},"required":["json"],"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":69,"grade":"C","scanned_at":"2026-09-20T11:37:12.570Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T11:37:12.509Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1466ms"]},"poisoning":{"score":15,"max":15,"notes":["1 tool descriptions checked"]},"auth":{"score":10,"max":15,"notes":["open endpoint, read-only tools"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[],"inputs":{"probes":[{"url":"https://json-to-types.gumballtools.com/api/mcp","reachable":true,"authRequired":false,"latencyMs":1466,"serverInfo":{"name":"json-to-types","version":"0.1.0"}}],"packages":[],"repo":{"found":false,"owner":"bwalvoord","repo":"gumball","error":"repo not found"},"icon":{"url":null,"source":"none"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}