pydantic-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PYDANTIC_MCP_HOST | No | The host address to bind to when using HTTP transport. | |
| PYDANTIC_MCP_PORT | No | The port number to bind to when using HTTP transport. | |
| PYDANTIC_MCP_TRANSPORT | No | Transport method for the MCP server (e.g., 'stdio' or 'http'). | |
| PYDANTIC_MCP_ERROR_HISTORY_LIMIT | No | Limit for the number of errors kept in history. | |
| PYDANTIC_MCP_ALLOWED_IMPORT_ROOTS | No | Roots allowed for imports (e.g., paths to your application code). | |
| PYDANTIC_MCP_DEFAULT_SCAN_PACKAGES | No | Packages to scan for Pydantic models by default. | |
| PYDANTIC_MCP_IMPORT_TIMEOUT_SECONDS | No | Timeout for importing packages in seconds. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_modelsC | Discover exported Pydantic models in configured packages. |
| inspect_typeC | Resolve a Python type annotation or model into a structured description. |
| explain_modelC | Turn a model or type into a human-readable contract. |
| validate_dataC | Validate input against a model name or Python type expression. |
| serialize_dataD | Dump validated data using Pydantic serialization behavior. |
| generate_json_schemaC | Generate JSON Schema for a model or type. |
| create_example_payloadB | Generate example valid and invalid payloads for a target model or type. |
| compare_validation_modesC | Compare model, TypeAdapter, strict, and JSON-vs-Python validation behavior. |
| migrate_v1_to_v2C | Analyze a snippet or model source for common Pydantic v1-to-v2 migration issues. |
| parse_partial_jsonC | Best-effort parse partial JSON, then validate the parsed fragment. |
| generate_model_from_jsonC | Infer candidate Pydantic models from a JSON string or JSON-like payload. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| explain model | Explain a model's fields, constraints, defaults, aliases, and edge cases. |
| generate api contract docs | Turn a model or schema into docs for API consumers. |
| debug validation error | Given a validation trace, suggest the smallest payload fix. |
| design a model from example json | Infer a candidate Pydantic model from sample payloads. |
| review schema compatibility | Compare two models or schemas for breaking changes. |
| migrate to pydantic v2 | Inspect code and produce a migration checklist. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| server_capabilities | |
| project_settings | |
| project_import_roots | |
| recent_errors | |
| migration_rules | |
| models_index | |
| changed_models | |
| reference_overview |
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose with no overlap: compare_validation_modes analyzes validation behavior differences, create_example_payload generates test data, explain_model creates human-readable documentation, generate_json_schema produces JSON Schema, generate_model_from_json infers models from JSON, inspect_type resolves type annotations, list_models discovers available models, migrate_v1_to_v2 handles version migration, parse_partial_json processes incomplete JSON, serialize_data handles data serialization, and validate_data performs validation. The descriptions clearly differentiate their specific functions.
The naming follows a consistent verb_noun pattern throughout (e.g., compare_validation_modes, create_example_payload, explain_model) with all tools using snake_case. The only minor deviation is that 'list_models' uses a plural noun while others typically use singular nouns (e.g., 'explain_model'), but this is a small inconsistency that doesn't affect readability or predictability.
With 11 tools, this is well-scoped for a Pydantic-focused server. Each tool serves a distinct purpose in the Pydantic ecosystem (validation, schema generation, migration, serialization, etc.), and none feel redundant or unnecessary. The count aligns perfectly with providing comprehensive coverage for working with Pydantic models and validation.
The tool surface provides complete coverage for Pydantic operations: it includes model discovery (list_models), type inspection (inspect_type), schema generation (generate_json_schema), validation (validate_data, compare_validation_modes), serialization (serialize_data), migration support (migrate_v1_to_v2), example generation (create_example_payload), documentation (explain_model), and even specialized utilities like parsing partial JSON (parse_partial_json) and model inference (generate_model_from_json). No obvious gaps exist for typical Pydantic workflows.