generate_model_from_json
Create Pydantic models automatically from JSON data to enable structured validation and schema generation for Python applications.
Instructions
Infer candidate Pydantic models from a JSON string or JSON-like payload.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| json_input | Yes | ||
| model_name | No | GeneratedModel |
Implementation Reference
- src/pydantic_mcp/helpers.py:1012-1040 (handler)The core implementation of the generate_model_from_json logic, which performs JSON parsing, model inference, and model rendering.
def generate_model_from_json_report( json_input: Any, *, model_name: str, ) -> ToolResponse: try: payload = json.loads(json_input) if isinstance(json_input, str) else json_input except json.JSONDecodeError as exc: return make_response( diagnostics=[ Diagnostic( level="error", message="Input is not valid JSON.", code="invalid_json", context={"error": str(exc)}, ) ], result={"ok": False, "code": None, "models": [], "input_kind": "invalid"}, ) effective_model_name = _sanitize_model_name(model_name) models: dict[str, GeneratedModelSpec] = {} root_model = _infer_root_model(payload, effective_model_name, models=models) models[root_model.name] = root_model ordered_models = list(models.values()) code = _render_generated_models(ordered_models) return make_response( diagnostics=[ - src/pydantic_mcp/tools.py:293-298 (handler)The tool entry point that wraps the generation logic.
def generate_model_from_json( json_input: object, model_name: str = "GeneratedModel", ) -> ToolResponse: """Infer candidate Pydantic models from a JSON string or JSON-like payload.""" return generate_model_from_json_report(json_input, model_name=model_name) - src/pydantic_mcp/server.py:45-45 (registration)Registration of the generate_model_from_json tool in the MCP server setup.
"generate_model_from_json",