Serveur MCP

JSON to Types

com.gumballtools/json-to-types
Outils développeur Public et accessible MCP 2025-11-25

Ce que fait ce MCP

Converts JSON samples into TypeScript interfaces and Zod schemas while noting type-inference limitations.

json_to_types
JSON to TypeScript and Zod
Convert a JSON sample into TypeScript interfaces and a matching Zod schema, and report where a single sample cannot establish the real type. Use 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: 1. ARRAYS. Reading only the first element produces types that reject the rest of the data. This merges every element into a union. 2. NULL VS ABSENT. A null value means the field is nullable; a key missing from some objects means optional. Different types, routinely conflated. 3. EMPTY CONTAINERS. Nothing can be inferred from [] or {}. This emits unknown and says so instead of inventing a plausible shape. It is also far cheaper in output tokens than generating types inline for a large payload, and the result is deterministic. Input: `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". Returns: `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.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['json'], 'properties': {'json': {'type': 'string', 'description': 'Raw JSON text â\x80\x94 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': {'type': 'string', 'description': 'Name for the top-level interface. Must be a valid TypeScript identifier. Defaults to "Root".'}}}
Ajouté
json_to_types
17 September 2026 12:35