mcpField
Z
zod-contract-mock-forge-mcp

zod-contract-mock-forge-mcp

本地服务
github.com/vola-trebla开发工具023 周前更新

关于 zod-contract-mock-forge-mcp

zod-contract-mock-forge-mcp 是面向使用 Zod API 契约的开发者的 MCP 服务,可生成有效与无效负载、分析模式差异和演进,并搭建契约测试。

主要功能

  1. 01生成有效模拟数据及带种子的变体
  2. 02生成约束和联合类型违规数据
  3. 03从代码或文件解析 Zod 模式
  4. 04比较 Zod 模式与 OpenAPI
  5. 05评估模式变更是否造成破坏
  6. 06搭建 API 契约测试

适用场景

  1. 01为基于属性的测试创建多样负载
  2. 02检查 OpenAPI 与 Zod 定义是否偏离
  3. 03测试模式变更是否使现有样例失效
  4. 04为 API 生成契约测试框架

MCP 相关

向 MCP 客户端提供 Zod 模拟数据生成、违规数据生成、模式分析和契约测试工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"vola-trebla-zod-contract-mock-forge": {
"command": "npx",
"args": [
"-y",
"zod-contract-mock-forge-mcp"
]
}
}
}
启动命令npx -y zod-contract-mock-forge-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmzod-contract-mock-forge-mcp0.2.0

工具

10

收录的工具列表 · 更新于 3 周前

参数类型必填说明
schema_codestring是Zod schema 代码(例如:'z.object({ name: z.string() })')

详细介绍

zod-contract-mock-forge-mcp

npm version npm downloads CI License: MIT

一个 MCP 服务,可将 Zod 模式转换为模拟数据、违规数据和契约测试,让你的 AI Agent 无需手动构造负载,也能分析 API 契约。

问题

Zod 模式是运行时代码。没有这一层,AI Agent 无法执行这些模式、检查其约束,也无法生成有效或无效的负载。Agent 也无法发现模式与 OpenAPI 文档是否已悄然出现偏差,也无法判断模式变更是否会破坏现有测试样例。

工具

模拟数据生成
工具参数返回内容
generate_valid_mockschema_code、count?符合模式的有效模拟数据
generate_mock_variantsschema_code、count?、seed?N 个结构有效但取值各异的模拟数据——用于基于属性的测试
违规数据生成
工具参数返回内容
generate_boundary_violationsschema_code针对每项约束生成无效负载:缺失字段、类型不匹配、最小值/最大值、电子邮件/UUID/URL
generate_exhaustive_union_violationsschema_code为 z.union() 或 z.discriminatedUnion() 的每个分支生成针对各变体的违规数据
模式分析
工具参数返回内容
introspect_schemaschema_codeJSON Schema 表示——供大模型理解契约
read_schema_from_filefile_path、export_name?从 TypeScript/JS 文件中提取 Zod 模式表达式
detect_schema_driftzod_file_path、schema_export_name、openapi_file_path、openapi_schema_name?对比 Zod 与 OpenAPI——报告 missing_in_openapi、missing_in_zod、type_conflict、required_mismatch
evaluate_schema_evolutionschema_file_path、schema_export_name、old_schema_content?根据旧模式生成模拟数据,并用新模式验证——在测试运行前检测破坏性变更
契约测试
工具参数返回内容
scaffold_api_contract_testframework、base_url、endpoint、method、schema_code、test_name?Playwright、Jest、Vitest 或 MSW 的契约测试样板代码
suggest_contract_fixschema_code、payload验证 JSON 负载,并逐条说明违规之处及修复建议

设置

1. 安装
npm install -g zod-contract-mock-forge-mcp
2. 添加到编辑器
Cursor / VS Code(.cursor/mcp.json 或 .vscode/mcp.json)
{
  "mcpServers": {
    "zod-forge": {
      "command": "zod-contract-mock-forge-mcp"
    }
  }
}
Claude Code
claude mcp add zod-forge zod-contract-mock-forge-mcp

使用示例

My schema file is src/schemas/user.ts, exported as UserSchema.
My OpenAPI spec is docs/openapi.yaml.

1. introspect_schema — what are the constraints on this schema?
2. generate_mock_variants — give me 10 diverse valid payloads (seed: 42) for CI reproducibility
3. generate_exhaustive_union_violations — test every branch of the role discriminated union
4. detect_schema_drift — has the Zod schema diverged from the OpenAPI docs?
5. evaluate_schema_evolution — does my schema change break any existing mock data?

输出示例

generate_mock_variants — 生成 3 个多样且有效的模拟数据,用于 CI 的随机种子:

{
  "schema_id": "schema_a1b2c3d4",
  "count": 3,
  "all_valid": true,
  "variants": [
    { "name": "Colleen Rowe", "age": 37 },
    { "name": "Pat Reynolds", "age": 24 },
    { "name": "Veronica Konopelski", "age": 45 }
  ]
}

detect_schema_drift — OpenAPI 中缺少字段,Zod 中有多余字段:

{
  "drift_count": 2,
  "drifts": [
    {
      "field_path": "role",
      "drift_type": "missing_in_openapi",
      "zod_value": "string",
      "openapi_value": null
    },
    {
      "field_path": "email",
      "drift_type": "missing_in_zod",
      "zod_value": null,
      "openapi_value": "string"
    }
  ]
}

evaluate_schema_evolution — 新增必填字段导致现有模拟数据失效:

{
  "breaking_change": true,
  "sample_count": 20,
  "invalid_mock_count": 20,
  "failure_reasons": [
    {
      "field_path": "status",
      "zod_code": "invalid_type",
      "expected": "string",
      "received": "undefined",
      "affected_mock_count": 20
    }
  ]
}

脚本

npm run build        # compile TypeScript → dist/
npm run lint         # ESLint
npm run format       # Prettier --write
npm run format:check # Prettier check (used in CI)
npm test             # Vitest

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。