Skip to main content
Glama
README.md
# shipmcp

Production-grade MCP server template. Ship a server that passes `mcpguard` from commit #1.

## Why

Most MCP servers are born insecure: unpinned deps, secrets in logs, unvalidated inputs, over-broad filesystem access. Then they fail audits, get flagged, or worse — never get checked. shipmcp flips the default: **secure by construction, audited in CI**.

## Quick start

```bash
git clone <this-template> my-mcp-server
npm i && npm run build
SHIPMCP_NAME=my-mcp-server EXAMPLE_API_KEY=xxx npm start
```

Add your client config (pin the version — rug-pull insurance):

```json
{
  "mcpServers": {
    "my-mcp-server": {
      "command": "npx",
      "args": ["-y", "my-mcp-server@0.1.0"]
    }
  }
}
```

## The rules baked into this template

1. **Inputs validated with zod before any logic** (`src/tools/example.ts`)
2. **Single tool inventory** (`src/tools/index.ts`) — your attack surface, one file, reviewable
3. **Secrets from env at call time, values never logged**, stdout reserved for the protocol
4. **Fail-fast config check** at boot (name the missing key, never the value)
5. **CI self-audit** — every build runs `mcpguard deep` on the package itself; critical findings fail the build
6. Version pinning guidance for users, SECURITY.md with disclosure policy included

## Pro ($99 one-time)

| | Free | Pro |
|---|---|---|
| Template + CI | ✅ | ✅ |
| API-key auth middleware (per-user keys, revocable) | ❌ | ✅ |
| Sliding-window rate limiter | ❌ | ✅ |
| Opt-in telemetry stub (GDPR-safe, no PII) | ❌ | ✅ |
| Deploy configs (Fly/Railway/Docker) | ❌ | ✅ |
| "Audited by mcpguard" badge license | ❌ | ✅ |

Buy: [Lemon Squeezy — $99 one-time](https://aiyumk.lemonsqueezy.com/buy/d7334cfd-2076-418b-b7e5-31a16e65fcff) — instant checkout, single-project license.

## License

MIT for the template. Pro modules under `pro/` are source-available, single-project license.