SpecShield MCP Server
The SpecShield MCP Server acts as an API-change deploy gate, letting you analyze API specification changes to determine if they are safe to ship before they reach consumers. All tools are read-only, accept specs as inline content or file paths, and support OpenAPI and Pact formats.
is_change_safe: The primary tool — returns asafeToMergeverdict, risk level, blocking reasons, and recommended action to determine if an API change will break existing consumers.explain_breaking_changes: Details what breaks and why, including developer/consumer impact and suggested migration steps.generate_migration_guide: Produces a markdown migration guide with safe rollout steps, optionally tailored to a specific language (Java, Node, Python, Go, cURL, or generic).generate_release_notes: Creates markdown release notes grouped by breaking changes, additions, and other changes, customized for developer, customer, or internal audiences.compare_specs: Performs a raw diff between two specs, listing breaking changes, additions, modifications, and warnings along with a risk score and compatibility summary.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SpecShield MCP ServerIs it safe to deploy this API change?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
SpecShield MCP Server
The API-change deploy gate for AI coding agents. Ask "is it safe to ship this API change to my consumers?" right inside Claude, Cursor, and other MCP clients — and catch breaking changes before they reach your consumers.
It's a thin adapter over the SpecShield backend. Every tool is read-only / analyze-only — it never modifies your code.
Why not just diff specs? Plenty of tools (including free ones) list breaking changes. SpecShield's job is the decision: can I deploy this? — the deploy gate is the hero tool here.
⚙️ In CI/CD instead of an agent? The
specshieldCLI runs the same breaking-change andcan-i-deploychecks in your pipeline (GitHub Action, exit codes). Same job, two entry points: this server for AI agents, the CLI for CI/CD.
Tools
# | Tool | What it answers |
1 |
| Is this change safe to merge/deploy? Will it break consumers? ( |
2 |
| What breaks, developer & consumer impact, suggested migration |
3 |
| Migration guide (markdown) + safe rollout steps |
4 |
| Release notes for developer / customer / internal |
5 |
| The raw diff (breaking / additions / modifications / warnings) + risk score |
6 |
| API governance ruleset beyond breaking changes (missing operationId, error responses, security scheme, pagination, versioning…) → located findings + suggested fixes. Paid (Team+) |
Tools 1–5 accept specs inline (baseSpecContent / targetSpecContent) or by path
(baseSpecPath / targetSpecPath). run_governance_review reviews a single spec
(specContent / specPath).
🔒 run_governance_review is a paid feature — a FREE API key returns a
payment_required error. Upgrade at specshield.io/pricing.
Full setup, verification & troubleshooting: docs/mcp-server-setup.md.
Related MCP server: swagger-mcp
Install
Requires Node.js ≥ 20 and a SpecShield API key (from specshield.io/account).
npx -y specshield-mcp-serverClaude Desktop
claude_desktop_config.json:
{
"mcpServers": {
"specshield": {
"command": "npx",
"args": ["-y", "specshield-mcp-server"],
"env": { "SPECSHIELD_API_KEY": "ss_your_key_here" }
}
}
}Claude Code
claude mcp add specshield --env SPECSHIELD_API_KEY=ss_your_key_here -- npx -y specshield-mcp-serverCursor
~/.cursor/mcp.json (or the project .cursor/mcp.json):
{
"mcpServers": {
"specshield": {
"command": "npx",
"args": ["-y", "specshield-mcp-server"],
"env": { "SPECSHIELD_API_KEY": "ss_your_key_here" }
}
}
}Configuration
Env var | Required | Default | Purpose |
| yes | — | Your SpecShield API key. Store it as a secret; never commit it. |
| no |
| Backend base URL (override for self-hosted/staging). |
| no |
| Per-request timeout. |
| no |
|
|
Example prompts (lead with the deploy gate)
*"Here are my old and new
openapi.yaml— is it safe to ship this API change to my consumers?"*"Compare
v1.yamlandv2.yamland tell me if I can deploy, and why not.""Explain the breaking changes between these two specs and how consumers should migrate."
"Generate customer-facing release notes for this API change."
Security & privacy
API key required. Sent only as the
X-Api-Keyheader to your configured backend.Read-only / analyze-only. No mutation tools, no shell execution, no arbitrary file access (a spec file is read only when you explicitly pass a path).
No secret or spec logging. The server never logs spec content, API keys, or request bodies; error messages are redacted and machine-readable.
Specs are sent to your configured SpecShield backend for analysis.
Local development
npm install
npm run build # tsc → dist/
npm test # vitest (no network)
npm run lint
npm run smoke # boots the server against a stubbed backend and lists tools
npm start # run the built server over stdioLicense
MIT © SpecShield Software Private Limited
Available Tools
5 toolscompare_specsCompare two API specsARead-only
Compares two API specs and lists breaking changes, additions, modifications, and warnings with a risk score and compatibility summary. For a merge/deploy decision prefer is_change_safe. Analyzes API contract compatibility only; it does NOT modify code.
| Name | Required | Description | Default |
|---|---|---|---|
| specFormat | No | ||
| baseSpecPath | No | Path to the base (old) spec file. | |
| failOnBreaking | No | If true, the header flags when any breaking change is present. | |
| targetSpecPath | No | Path to the target (new) spec file. | |
| baseSpecContent | No | Inline base (old) spec content. | |
| targetSpecContent | No | Inline target (new) spec content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool 'does NOT modify code' and 'analyzes API contract compatibility only,' which is consistent but slightly redundant. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines the function, second gives usage guidance. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description lists the output components (breaking changes, additions, modifications, warnings, risk score, compatibility summary). Parameters are well-documented in the input schema. All necessary context is present for correct tool invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 83% (5 of 6 parameters have descriptions). The tool description does not add any additional parameter details beyond what the schema provides, so it meets the baseline for high coverage but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool compares two API specs and lists breaking changes, additions, modifications, and warnings with a risk score and compatibility summary. It also distinguishes from sibling tool 'is_change_safe' by noting that for merge/deploy decisions the latter is preferred.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance: 'For a merge/deploy decision prefer is_change_safe.' This tells the agent when to use this tool versus an alternative, and it also clarifies that the tool analyzes but does not modify code.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_breaking_changesExplain the breaking changesARead-only
Explains what breaks in an API spec change and why, with developer impact, likely consumer impact, and suggested migration steps. Analyzes API contract compatibility only; it does NOT modify code.
| Name | Required | Description | Default |
|---|---|---|---|
| baseSpecPath | No | Path to the base (old) spec file. | |
| targetSpecPath | No | Path to the target (new) spec file. | |
| baseSpecContent | No | Inline base (old) spec content. | |
| targetSpecContent | No | Inline target (new) spec content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and non-destructive. The description adds that the tool analyzes compatibility only and returns impact and migration steps, providing useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words. Concisely conveys what the tool does and its constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains return content (developer impact, consumer impact, migration steps). It could mention input constraints like required parameter combinations, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a clear description. The description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Explains what breaks in an API spec change and why' and lists specific outputs. It also distinguishes from siblings by noting it does not modify code.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for analyzing API contract compatibility and explicitly states it does not modify code, but lacks explicit guidance on when to choose this over siblings like compare_specs or generate_migration_guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_migration_guideGenerate a migration guideARead-only
Generates a migration guide (markdown) and safe rollout steps for the breaking changes in an API spec change. Analyzes API contract compatibility only; it does NOT modify code.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| baseSpecPath | No | Path to the base (old) spec file. | |
| targetSpecPath | No | Path to the target (new) spec file. | |
| baseSpecContent | No | Inline base (old) spec content. | |
| targetSpecContent | No | Inline target (new) spec content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds clarity by stating it 'analyzes API contract compatibility only' and 'does NOT modify code', which reinforces the non-destructive nature and provides additional behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the key purpose, and contains no unnecessary words. Every sentence contributes to understanding the tool's function and constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description conveys that the output is a markdown guide and safe rollout steps. It also clarifies the scope (API contract compatibility only). This is sufficient for a tool with moderate complexity. A higher score would require more detail on parameter relationships or output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (80%), so the baseline is 3. The description does not add extra meaning to the parameters; it does not explain when to use file paths versus inline content. The language enum is mentioned but not elaborated. The description adds marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool generates a migration guide (markdown) and safe rollout steps for breaking changes in an API spec change. It distinguishes itself from siblings like compare_specs or explain_breaking_changes by specifying the output format and the focus on safe rollout steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus its siblings. It does not mention prerequisites, alternatives, or when not to use it, leaving the agent to infer usage context from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_release_notesGenerate release notesARead-only
Generates release notes (markdown) for an API spec change, grouped into breaking changes, additions, and other changes, tailored to an audience. Analyzes API contract compatibility only; it does NOT modify code.
| Name | Required | Description | Default |
|---|---|---|---|
| audience | No | ||
| baseSpecPath | No | Path to the base (old) spec file. | |
| targetSpecPath | No | Path to the target (new) spec file. | |
| baseSpecContent | No | Inline base (old) spec content. | |
| targetSpecContent | No | Inline target (new) spec content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false. Description reinforces no code modification and adds scope (API contracts only). This is consistent and adds context beyond annotations, though it could mention openWorldHint (e.g., no side effects besides reading).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 29 words, front-loaded with action and outcome. No unnecessary details, every part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 5 parameters, high schema coverage, and no output schema, the description adequately explains output (markdown, grouped) and purpose. It could mention that output is returned as markdown string, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80% (4/5 parameters documented). The description does not add further explanation beyond what the schema provides, such as clarifying the 'audience' enum values. Baseline 3 is appropriate as schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool generates release notes in markdown from API spec changes, grouped into breaking/additions/other, tailored to audience. It explicitly says it does not modify code, distinguishing it from sibling tools like compare_specs or generate_migration_guide.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description states it analyzes API contract compatibility only and does not modify code, providing implicit guidance on when to use (for release notes) and when not (for actual code changes). However, it does not explicitly name alternative tools or provide when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
is_change_safeIs this API change safe to ship?ARead-only
THE DEPLOY GATE. Analyzes whether an API spec change is safe to merge/deploy — will it break existing consumers? Returns a safeToMerge verdict, a risk level, the exact blocking reasons, and a recommended action. Use this before merging or releasing an API change to catch breaking changes before they reach your consumers. Analyzes API contract compatibility only; it does NOT modify code.
| Name | Required | Description | Default |
|---|---|---|---|
| specFormat | No | ||
| environment | No | Optional target environment, e.g. staging or production. | |
| baseSpecPath | No | Path to the base (old) spec file. | |
| targetSpecPath | No | Path to the target (new) spec file. | |
| baseSpecContent | No | Inline base (old) spec content. | |
| targetSpecContent | No | Inline target (new) spec content. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe, read-only operation. The description adds value by stating it analyzes API contract compatibility only and returns a verdict, risk level, reasons, and action. It does not contradict annotations and provides useful context beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is highly concise, front-loading the core purpose ('THE DEPLOY GATE') and then succinctly covering what it does, what it returns, when to use it, and what it does not do. Every sentence serves a clear function with no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the return values (verdict, risk level, reasons, action) adequately since there is no output schema. The parameters are well-documented in the schema. Sibling tools are listed but not explicitly differentiated. Overall, the context is complete for the tool's intended use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 6 parameters with 83% description coverage, so the schema already documents most parameters well. The tool description does not add additional meaning or syntax details beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is a deploy gate that analyzes API spec changes for safety, and it lists the specific outputs (safeToMerge verdict, risk level, etc.). However, it does not explicitly differentiate itself from siblings like compare_specs or explain_breaking_changes, which could cause confusion about when to use this tool over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this before merging or releasing an API change,' providing clear when-to-use guidance. It also states it does not modify code, implying a read-only analysis. However, it does not mention when not to use it or alternative tools for different needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clear, distinct purpose: compare_specs provides a full diff, explain_breaking_changes offers detailed impact, generate_migration_guide creates migration steps, generate_release_notes writes release notes, and is_change_safe gives a deploy verdict. No two tools overlap in functionality.
Four tools follow a verb_noun pattern (compare_specs, explain_breaking_changes, generate_migration_guide, generate_release_notes), while is_change_safe uses a different verb_phrase structure. The naming is largely consistent and readable, but the one deviation prevents a perfect score.
With 5 tools covering the core workflow of API spec change analysis—from comparison to safety check to documentation generation—the count is well-scoped and appropriate for the server's focused purpose.
The tool set covers the complete lifecycle for API spec change management: comparing specs, explaining breaking changes, generating migration guides and release notes, and providing a safety gate for deployment. No obvious gaps given the server's stated role of analysis without modification.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
API governance for AI agents. Detects breaking changes, scores blast radius, blocks unsafe calls.
Read-only AI coding tools for change verification, release readiness, capacity, and guidance.
Detect breaking changes, generate changelogs, diff, and validate OpenAPI specs.
Discover, compare, and monitor 1,400+ APIs directly from your AI coding agent.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to monitor web documentation for changes, perform semantic search with RAG, and analyze breaking changes in APIs.9
- AlicenseBqualityDmaintenanceEnables natural language exploration of OpenAPI/Swagger specs, allowing users to register APIs, browse endpoints, describe schemas, and detect breaking changes through conversational queries.9214MIT
- AlicenseAqualityCmaintenanceEnables AI agents to map cross-repository dependencies, detect breaking changes in API contracts, and assess impact across services.10MIT
- AlicenseAqualityCmaintenanceEnables AI clients to validate OpenAPI specs, compare versions, detect breaking changes, and generate changelogs.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/specshield-io/specshield-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server