Pydantic模型检查工具

pydantic-mcp是一个用于检查Pydantic模型和Python类型契约的MCP服务器,适用于需要确定性验证、序列化、模式生成和模型解释的LLM工作流程。

  • by BitingSnakes
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BitingSnakes/pydantic-mcp

使用说明

乙内酰亚胺

pydantic-mcp 是一个用于检查Pydantic模型和Python类型合约的MCP服务器。它是为需要确定性验证、序列化、模式生成、模型解释和迁移帮助的LLM工作流而构建的。

特性

  • 发现Pydantic BaseModel 跨配置包的类。
  • 从导入路径、短模型名称、Python类型表达式或内联模型片段中解析目标。
  • 使用验证任意有效载荷 TypeAdapter 或模型行为。
  • 以Python或JSON模式序列化已验证的数据。
  • 生成验证和序列化JSON模式。
  • 解释字段、默认值、别名、装饰器、约束和嵌套模型。
  • 生成有效和无效的示例有效载荷。
  • 从示例JSON有效载荷推断候选Pydantic模型。
  • 比较严格/非严格和Python与JSON验证行为。
  • 分析常见的Pydantic v1到v2迁移问题。
  • 使用解析部分JSON pydantic_core.from_json.
  • 公开MCP工具、资源、提示以及HTTP健康/就绪路由。

工具

  • list_models
  • inspect_type
  • explain_model
  • validate_data
  • serialize_data
  • generate_json_schema
  • create_example_payload
  • generate_model_from_json
  • compare_validation_modes
  • migrate_v1_to_v2
  • parse_partial_json

资源

  • pydantic://server/capabilities
  • pydantic://project/settings
  • pydantic://project/import-roots
  • pydantic://project/errors/recent
  • pydantic://project/models/changed
  • pydantic://models/index
  • pydantic://models/{qualified_name}
  • pydantic://schemas/{qualified_name}?mode=validation|serialization
  • pydantic://examples/{qualified_name}
  • pydantic://migration/rules
  • pydantic://reference/overview

提示

  • explain model
  • generate api contract docs
  • debug validation error
  • design a model from example json
  • review schema compatibility
  • migrate to pydantic v2

跑

安装依赖项:

uv sync

溢出stdio:

uv run python mcp_server.py --transport stdio

通过HTTP运行:

uv run python mcp_server.py --transport http --host 127.0.0.1 --port 8000

健康终点:

  • GET /healthz
  • GET /readyz

配置

重要环境变量:

  • PYDANTIC_MCP_ALLOWED_IMPORT_ROOTS
  • PYDANTIC_MCP_DEFAULT_SCAN_PACKAGES
  • PYDANTIC_MCP_IMPORT_TIMEOUT_SECONDS
  • PYDANTIC_MCP_ERROR_HISTORY_LIMIT
  • PYDANTIC_MCP_TRANSPORT
  • PYDANTIC_MCP_HOST
  • PYDANTIC_MCP_PORT

例子:

PYDANTIC_MCP_ALLOWED_IMPORT_ROOTS=your_app.models \
PYDANTIC_MCP_DEFAULT_SCAN_PACKAGES=your_app.models \
uv run python mcp_server.py --transport stdio

这些值必须指向运行时环境中的可导入应用程序包。对于本地烟雾测试,存储库在以下位置提供了一个可安装的示例包 pydantic_mcp_sample_app,但生产部署应该指向您自己的应用程序模块。

测试

just test