# specshield-mcp-server

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/specshield-io/specshield-mcp-server  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/specshield-mcp-server

## Description
The API-change deploy gate for AI coding agents. Read-only breaking-change detection.

## 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": {
  "specshield-mcp-server": {
    "command": "npx",
    "args": ["-y","specshield-mcp-server"]
  }
}
```

## Documentation & README

# 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](https://specshield.io) 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 [`specshield` CLI](https://www.npmjs.com/package/specshield) runs the same breaking-change and `can-i-deploy` checks 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_change_safe`** ⭐ | Is this change safe to merge/deploy? Will it break consumers? (`safeToMerge` + risk + blocking reasons) |
| 2 | `explain_breaking_changes` | What breaks, developer & consumer impact, suggested migration |
| 3 | `generate_migration_guide` | Migration guide (markdown) + safe rollout steps |
| 4 | `generate_release_notes` | Release notes for developer / customer / internal |
| 5 | `compare_specs` | The raw diff (breaking / additions / modifications / warnings) + risk score |
| 6 | `run_governance_review` 🔒 | 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](https://specshield.io/pricing).

> Full setup, verification & troubleshooting: **[docs/mcp-server-setup.md](https://github.com/specshield-io/specshield-mcp-server/blob/HEAD/docs/mcp-server-setup.md)**.

## Install

Requires **Node.js ≥ 20** and a SpecShield API key (from
[specshield.io/account](https://specshield.io/account)).

```bash
npx -y specshield-mcp-server
```

### Claude Desktop
`claude_desktop_config.json`:
```json
{
  "mcpServers": {
    "specshield": {
      "command": "npx",
      "args": ["-y", "specshield-mcp-server"],
      "env": { "SPECSHIELD_API_KEY": "ss_your_key_here" }
    }
  }
}
```

### Claude Code
```bash
claude mcp add specshield --env SPECSHIELD_API_KEY=ss_your_key_here -- npx -y specshield-mcp-server
```

### Cursor
`~/.cursor/mcp.json` (or the project `.cursor/mcp.json`):
```json
{
  "mcpServers": {
    "specshield": {
      "command": "npx",
      "args": ["-y", "specshield-mcp-server"],
      "env": { "SPECSHIELD_API_KEY": "ss_your_key_here" }
    }
  }
}
```

## Configuration

| Env var | Required | Default | Purpose |
|---------|----------|---------|---------|
| `SPECSHIELD_API_KEY` | **yes** | — | Your SpecShield API key. Store it as a secret; never commit it. |
| `SPECSHIELD_API_URL` | no | `https://api.specshield.io` | Backend base URL (override for self-hosted/staging). |
| `SPECSHIELD_TIMEOUT_MS` | no | `30000` | Per-request timeout. |
| `SPECSHIELD_LOG_LEVEL` | no | `info` | `debug` \| `info` \| `warn` \| `error` (logs go to stderr). |

## 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.yaml` and `v2.yaml` and 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-Key` header 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

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

## License

MIT © SpecShield Software Private Limited

