# zod-contract-mock-forge-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/vola-trebla/zod-contract-mock-forge-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/zod-contract-mock-forge-mcp

## Description
MCP server for deterministic mock generation and API contract scaffolding using Zod schemas

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "zod-contract-mock-forge-mcp": {
    "command": "npx",
    "args": ["-y","zod-contract-mock-forge-mcp"]
  }
}
```

## Documentation & README

# zod-contract-mock-forge-mcp

[![npm version](https://img.shields.io/npm/v/zod-contract-mock-forge-mcp.svg)](https://www.npmjs.com/package/zod-contract-mock-forge-mcp)
[![npm downloads](https://img.shields.io/npm/dm/zod-contract-mock-forge-mcp.svg)](https://www.npmjs.com/package/zod-contract-mock-forge-mcp)
[![CI](https://github.com/vola-trebla/zod-contract-mock-forge-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/vola-trebla/zod-contract-mock-forge-mcp/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

An MCP server that turns Zod schemas into mocks, violations, and contract tests — so your AI agent can reason about API contracts without manually crafting payloads.

## The Problem

Zod schemas are runtime code. An AI agent cannot execute them, introspect their constraints, or generate valid/invalid payloads without this layer. The agent also cannot detect when the schema and the OpenAPI docs silently diverged, or whether a schema change breaks existing test fixtures.

## Tools

### Mock generation

| Tool                     | Arguments                        | What it returns                                                           |
| ------------------------ | -------------------------------- | ------------------------------------------------------------------------- |
| `generate_valid_mock`    | `schema_code`, `count?`          | Valid mock data matching the schema                                       |
| `generate_mock_variants` | `schema_code`, `count?`, `seed?` | N structurally valid but value-diverse mocks — for property-based testing |

### Violation generation

| Tool                                   | Arguments     | What it returns                                                                                |
| -------------------------------------- | ------------- | ---------------------------------------------------------------------------------------------- |
| `generate_boundary_violations`         | `schema_code` | Invalid payloads for each constraint: missing fields, type mismatches, min/max, email/uuid/url |
| `generate_exhaustive_union_violations` | `schema_code` | Per-variant violations for every branch of a `z.union()` or `z.discriminatedUnion()`           |

### Schema analysis

| Tool                        | Arguments                                                                          | What it returns                                                                                             |
| --------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| `introspect_schema`         | `schema_code`                                                                      | JSON Schema representation — for LLM understanding of the contract                                          |
| `read_schema_from_file`     | `file_path`, `export_name?`                                                        | Extracts the Zod schema expression from a TypeScript/JS file                                                |
| `detect_schema_drift`       | `zod_file_path`, `schema_export_name`, `openapi_file_path`, `openapi_schema_name?` | Diffs Zod vs OpenAPI — reports `missing_in_openapi`, `missing_in_zod`, `type_conflict`, `required_mismatch` |
| `evaluate_schema_evolution` | `schema_file_path`, `schema_export_name`, `old_schema_content?`                    | Generates mocks from old schema, validates against new — detects breaking changes before tests run          |

### Contract testing

| Tool                         | Arguments                                                                  | What it returns                                                            |
| ---------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
| `scaffold_api_contract_test` | `framework`, `base_url`, `endpoint`, `method`, `schema_code`, `test_name?` | Contract test boilerplate for Playwright, Jest, Vitest, or MSW             |
| `suggest_contract_fix`       | `schema_code`, `payload`                                                   | Validates a JSON payload and explains each violation with a fix suggestion |

## Setup

### 1. Install

```bash
npm install -g zod-contract-mock-forge-mcp
```

### 2. Add to your editor

#### Cursor / VS Code (`.cursor/mcp.json` or `.vscode/mcp.json`)

```json
{
  "mcpServers": {
    "zod-forge": {
      "command": "zod-contract-mock-forge-mcp"
    }
  }
}
```

#### Claude Code

```bash
claude mcp add zod-forge zod-contract-mock-forge-mcp
```

## Example usage

```
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?
```

## Example output

**`generate_mock_variants`** — 3 diverse valid mocks, seeded for CI:

```json
{
  "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`** — field missing in OpenAPI, extra field in Zod:

```json
{
  "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`** — new required field breaks existing mocks:

```json
{
  "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
    }
  ]
}
```

## Scripts

```bash
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
```

## License

MIT

