Command Palette

Search for a command to run...

UnylyUnyly
Browse all

SchemaGuard

FreeNot checked

API schema drift monitor for detecting breaking changes in OpenAPI specs.

GitHubEmbed

About

API schema drift monitor for detecting breaking changes in OpenAPI specs.

README

API Schema Drift Monitor — detect breaking changes in OpenAPI specs before they break your consumers.

npm version License: MIT

Why

APIs break silently. A field gets renamed, an endpoint gets removed, an enum value disappears — and downstream consumers break in production. SchemGuard catches these before deploy.

Install

npm install -g schemaguard

Usage

Diff two specs

schemaguard diff old-api.yaml new-api.yaml

Output:

Found 11 change(s):

❌ BREAKING CHANGES (9):
──────────────────────────────────────────────────
  ⛔ [endpoint-removed]
     Endpoint removed: DELETE /pets/{petId}
     at: DELETE /pets/{petId}

  ⛔ [field-type-changed]
     Parameter type changed: petId (string → integer)
     at: GET /pets/{petId} > param petId
  ...

🚨 9 breaking change(s) detected — deployment blocked.

CI mode

schemaguard ci --spec ./openapi.yaml --baseline ./main-openapi.yaml
  • Exit 0 = no breaking changes, safe to deploy
  • Exit 1 = breaking changes detected, blocks the pipeline
  • Exit 2 = error (invalid spec, file not found)

Lint a spec

schemaguard lint ./openapi.yaml

Checks for missing operationId, missing descriptions, no security schemes, etc.

JSON output

schemaguard diff old.yaml new.yaml --format json

Returns structured JSON for programmatic consumption by agents and CI tools.

What it detects

Breaking changes (exit code 1)

Rule Description
endpoint-removed An endpoint was deleted
method-removed An HTTP method was removed from a path
required-param-added A new required parameter was added
param-removed An existing parameter was removed
request-field-made-required A request field became required
field-type-changed A field's type was changed
response-field-removed A response field was removed
enum-value-removed An enum value was narrowed
auth-requirement-changed Security schemes were modified
response-code-removed A response status code was removed

Non-breaking changes (info only)

Rule Description
endpoint-added A new endpoint was added
optional-param-added A new optional parameter was added
response-field-added A new response field was added
enum-value-added An enum value was widened
description-changed Description or summary text changed
deprecated An endpoint was marked as deprecated

GitHub Actions

- name: Check API compatibility
  run: npx schemaguard ci --spec ./openapi.yaml --baseline ./baseline.yaml

Programmatic API

import { parseSpec, diffSpecs, formatDiff } from 'schemaguard';

const oldSpec = parseSpec('./v1.yaml');
const newSpec = parseSpec('./v2.yaml');
const result = diffSpecs(oldSpec, newSpec);

if (result.hasBreakingChanges) {
  console.log(`${result.breaking.length} breaking changes found`);
}

License

MIT

from github.com/sethclawd-prog/schemaguard

Installing SchemaGuard

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/sethclawd-prog/schemaguard

FAQ

Is SchemaGuard MCP free?

Yes, SchemaGuard MCP is free — one-click install via Unyly at no cost.

Does SchemaGuard need an API key?

No, SchemaGuard runs without API keys or environment variables.

Is SchemaGuard hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install SchemaGuard in Claude Desktop, Claude Code or Cursor?

Open SchemaGuard on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare SchemaGuard with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs