api-contract-validator
Cloudflare Workers MCP server: api-contract-validator
Should I use this
Quality & Safety
Findings (1)
- LOWin lint_api_schema
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"api-contract-validator": {
"url": "https://api.lazy-mac.com/api-contract-validator/mcp"
}
}
}Remote endpoints
https://api.lazy-mac.com/api-contract-validator/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
⚪validate_openapi_spec(spec, strict)
Validate an OpenAPI 3.x or AsyncAPI spec JSON. Returns structural errors, missing required fields, and warnings.
Input Schema
{
"type": "object",
"properties": {
"spec": {
"type": "object",
"description": "OpenAPI or AsyncAPI spec as a JSON object"
},
"strict": {
"type": "boolean",
"description": "Treat warnings as errors (default: false)",
"default": false
}
},
"required": [
"spec"
]
}⚪diff_request_response(spec, request, response)
Compare a real HTTP request/response against an OpenAPI spec contract. Returns per-field violations.
Input Schema
{
"type": "object",
"properties": {
"spec": {
"type": "object",
"description": "OpenAPI spec JSON object"
},
"request": {
"type": "object",
"description": "HTTP request to validate",
"properties": {
"method": {
"type": "string",
"description": "HTTP method"
},
"path": {
"type": "string",
"description": "Request path (e.g. /users/123)"
},
"body": {
"type": "object",
"description": "Request body"
},
"contentType": {
"type": "string",
"description": "Content-Type (default: application/json)"
},
"params": {
"type": "object",
"properties": {
"query": {
"type": "object"
},
"path": {
"type": "object"
}
}
}
},
"required": [
"method",
"path"
]
},
"response": {
"type": "object",
"description": "HTTP response to validate (optional)",
"properties": {
"statusCode": {
"type": "integer"
},
"body": {
"type": "object"
},
"contentType": {
"type": "string"
}
}
}
},
"required": [
"spec",
"request"
]
}⚪lint_api_schema(spec, rules)
Lint an API spec for quality and best practice compliance. Rules: operation-id-kebab-case, response-success-required, tags-defined, no-empty-description, security-defined.
Input Schema
{
"type": "object",
"properties": {
"spec": {
"type": "object",
"description": "OpenAPI spec JSON object"
},
"rules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Rules to apply (defaults to all)"
}
},
"required": [
"spec"
]
}⚪generate_mock_from_spec(spec, path, method, statusCode)
Generate mock response data from an OpenAPI spec. Uses examples, defaults, formats, and type heuristics.
Input Schema
{
"type": "object",
"properties": {
"spec": {
"type": "object",
"description": "OpenAPI spec JSON object"
},
"path": {
"type": "string",
"description": "Target path (optional; generates all if omitted)"
},
"method": {
"type": "string",
"description": "HTTP method (used with path)"
},
"statusCode": {
"type": "string",
"description": "Response status code (default: 200)",
"default": "200"
}
},
"required": [
"spec"
]
}🟢check_breaking_changes(spec_old, spec_new)
Compare two OpenAPI spec versions to detect breaking changes: removed paths/operations, new required parameters, removed response codes, operationId renames.
Input Schema
{
"type": "object",
"properties": {
"spec_old": {
"type": "object",
"description": "Previous spec version"
},
"spec_new": {
"type": "object",
"description": "New spec version"
}
},
"required": [
"spec_old",
"spec_new"
]
}Community
Evidence