Skip to main content
ClaudeWave

Lint and generate CLAUDE.md / AGENTS.md / Cursor rules, and turn a project description into a full build spec. CLI + library + MCP server.

MCP ServersOfficial Registry0 stars0 forksTypeScriptMITUpdated today
ClaudeWave Trust Score
95/100
Verified
Passed
  • Open-source license (MIT)
  • Actively maintained (<30d)
  • Clear description
  • Topics declared
  • Documented (README)
Last scanned: 9/19/2026
Install in Claude Code / Claude Desktop
Method: NPX · specpack
Claude Code CLI
claude mcp add specpack -- npx -y specpack
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "specpack": {
      "command": "npx",
      "args": ["-y", "specpack"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Use cases

MCP Servers overview

# specpack

**Lint and generate the files your AI coding agent reads** — `CLAUDE.md`, `AGENTS.md`, `.cursorrules`,
Cursor rules — and turn a project description into a full build spec. CLI, library and MCP server.

```bash
npx specpack audit          # bloat score for the agent files in this repo (offline)
npx specpack init           # write a lean AGENTS.md from your manifests (offline)
npx specpack spec --describe "Booking app for dog groomers with deposits and SMS reminders"
```

[![npm](https://img.shields.io/npm/v/specpack.svg)](https://www.npmjs.com/package/specpack)
[![CI](https://github.com/THE-KIPDEV/specpack/actions/workflows/ci.yml/badge.svg)](https://github.com/THE-KIPDEV/specpack/actions/workflows/ci.yml)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

`CLAUDE.md` / `AGENTS.md` are loaded into the agent's context **on every session**. Every line that
restates `package.json`, pastes a file tree or tells the model to "write clean code" costs tokens and
competes with the two rules that actually matter. `specpack audit` finds those lines; `specpack init`
starts you at the trimmed end.

Node ≥ 18. No account needed. `audit` and `init` never touch the network.

---

## `specpack audit` — how much of your memory file does nothing?

Each line is classified **keep**, **cut** (removing it changes nothing: role-play preamble, generic
advice, restated manifests, duplicates, emphasis inflation, prose) or **offload** (true but
situational: file trees, schema dumps, endpoint lists, long code blocks, setup/deploy sections — move
them to their own file and reference them with `@docs/…`). Same rules as the browser tool at
[prompt-generator-website.com/claude-md-audit](https://prompt-generator-website.com/claude-md-audit).

Real output on a typical file:

```text
$ npx specpack audit CLAUDE.md
CLAUDE.md  59% bloat  · 44 lines · ~341 tokens every session
  10 keep · 12 cut · 15 offload of 37 non-empty lines · ceiling 200, trimmed files land near 60
  Over half of this file is doing nothing. It is not neutral weight — it is what your real rules are competing against.

     3  cut     You are an expert senior full-stack developer with 10 years of experience.
        ↳ role-play preamble: CLAUDE.md is project memory, not a system prompt. "You are an expert…" costs tokens and changes nothing about the code produced.
     4  cut     Please always write clean, readable and maintainable code.
        ↳ default behaviour: Removing this line does not make the model write worse code — it already tries to do this. It only dilutes the lines that matter.
     5  cut     IMPORTANT: follow best practices at all times.
     …
    12  cut     - Next.js 15.1
        ↳ restates a manifest: package.json / composer.json / requirements.txt already state this, and the agent reads them. Keep it only if the version pin has a non-obvious reason.
     …
    18  offload ## Database schema
        ↳ situational section: Only a fraction of your sessions need this. Move the section to its own file and point at it with @docs/… so it loads when the task asks for it.
     …
    31  offload src/
        ↳ file tree: Root of a pasted directory tree. The agent can run ls and get the real one — a copy goes stale after the first refactor.
     …
  Trimmed copy (8 lines): specpack audit CLAUDE.md --trimmed
```

Without arguments it audits every agent file in the current directory: `CLAUDE.md`, `AGENTS.md`,
`.cursorrules`, `.windsurfrules`, `.github/copilot-instructions.md`, `CLAUDE.local.md`,
`.cursor/rules/*.mdc`. `-` reads stdin.

| Option | |
|---|---|
| `--trimmed` | print only the keep-only version (`> CLAUDE.trimmed.md`) |
| `--json` | every line with verdict, rule and reason, plus stats and the trimmed file |
| `--all` | also list the kept lines and why |
| `--max-bloat <pct>` | exit code 1 when a file is above the threshold |

### In CI

```yaml
# .github/workflows/agent-files.yml
name: Agent files
on: [pull_request]
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npx -y specpack audit --max-bloat 30
```

## `specpack init` — a lean AGENTS.md from what the repo already says

Reads `package.json` (scripts, lockfile → package manager, framework), `tsconfig.json`, the Prisma
schema, `pyproject.toml` / `requirements*.txt` (uv, Poetry), `composer.json`, `go.mod`, `Cargo.toml`,
`Gemfile`, `Makefile`, Docker Compose, `.nvmrc`, `.env.example`, `.claude/commands`. Only what a file
states is written: nothing is guessed, no patch versions, no "You are an expert" preamble. Sections with
nothing detected are left out.

Real output on a Next.js + Prisma repository:

```text
$ npx specpack init
✓ Wrote AGENTS.md (37 lines, 0% bloat)
  Scanned from package.json, tsconfig.json, prisma/schema.prisma, .nvmrc, docker-compose.yml, .env.example, .gitignore, .claude/commands/.
```

```markdown
# AGENTS.md — ledgerly

Invoicing app for freelancers. A web application.

## Stack
- Next.js (App Router)
- Tailwind CSS
- Zod
- Stripe
- Vitest
- Playwright
- ESLint
- TypeScript (strict)
- Prisma + PostgreSQL (schema: prisma/schema.prisma)
- Local services via Docker Compose (docker-compose.yml): db

## Commands
- `pnpm dev` — `next dev --turbopack -p 3001` (port 3001)
- `pnpm build` — `next build`
- `pnpm start` — `next start`
- `pnpm test` — `vitest run`
- `pnpm test:e2e` — `playwright test`
- `pnpm lint` — `next lint`
- `pnpm db:migrate` — `prisma migrate dev`
- `pnpm db:seed` — `tsx prisma/seed.ts`
- `docker compose up -d`

## Project rules
These are things the agent cannot guess from the code. Follow them exactly.
- Use pnpm (pnpm-lock.yaml), not npm or yarn — another package manager ignores the lockfile.
- Runtime: Node 20 (.nvmrc).
- Environment variables are listed in `.env.example`; the real `.env` is git-ignored — do not commit it.
<!-- Add the rules the code cannot tell the agent, one per line: the directory scheduled for deletion,
     money stored in cents, the command that must never run against staging. -->
```

Then add the rules only you know under **Project rules** — that is the part that matters.

| Option | |
|---|---|
| `--format agents` | `AGENTS.md` (default) |
| `--format claude` | `CLAUDE.md` — imports `@AGENTS.md` when it exists, plus Claude Code specifics (slash commands, `.mcp.json` servers) |
| `--format cursor` | `.cursor/rules/project.mdc` (always-applied rule) |
| `--format all` | the three |
| `--dry-run` / `--force` | preview / overwrite (existing files are never overwritten otherwise) |

## `specpack spec` — a full build spec for a new project

For a project that does not exist yet, [prompt-generator-website.com](https://prompt-generator-website.com)
turns a questionnaire (7 project types: SaaS, e-commerce, business site, marketplace, blog, web app,
landing page) into a complete specification — stack, database schema, authentication, type-specific
features, pages, design, SEO, security, legal, deployment, file structure — plus `AGENTS.md`,
`CLAUDE.md`, `.cursor/rules/project.mdc`, `.cursorrules`, `.windsurfrules` and
`.github/copilot-instructions.md` that keep the agent on-spec for the whole build.

```bash
# AI drafts the answers from a description (10–40 s), then the spec is generated
npx specpack spec --describe "Booking app for dog groomers with deposits and SMS reminders" --out ./groombook

# your own answers (see GET /questions in the API)
npx specpack spec --answers answers.json --type saas

# or answer the questionnaire in the terminal
npx specpack spec
```

The spec engine is deterministic: the same answers always give the same bytes. Free without an
account: **2 specs and 3 AI drafts**. More: a 7-day Pass or Pro at
[prompt-generator-website.com/pricing](https://prompt-generator-website.com/pricing); then
`specpack login pgw_…` (or `SPECPACK_API_KEY`). `specpack whoami` shows what is left.

## MCP server

Seven tools for Claude Code, Cursor, Windsurf, VS Code and any MCP client:

| Tool | Where it runs | |
|---|---|---|
| `audit_agent_file` | local | bloat score, lines to cut/offload with reasons, trimmed copy |
| `draft_agent_file` | local | lean AGENTS.md / CLAUDE.md / Cursor rule from the manifests (returns it, writes nothing) |
| `list_project_types` | API | the 7 project types |
| `get_questionnaire` | API | every question for a type; **the agent fills it from the conversation and the repo** |
| `generate_spec` | API | spec + agent files, written to `output_dir` if given (`files` picks which). No AI on the server |
| `draft_answers` | API | AI fills the questionnaire from a description (uses an AI draft) |
| `get_usage` | API | plan and what is left |

**Claude Code**

```bash
claude mcp add specpack -- npx -y specpack mcp
```

**Cursor** (`.cursor/mcp.json`), **Windsurf**, **Claude Desktop**

```json
{
  "mcpServers": {
    "specpack": { "command": "npx", "args": ["-y", "specpack", "mcp"], "env": { "SPECPACK_API_KEY": "" } }
  }
}
```

**Remote, nothing to install** (streamable HTTP; `audit_agent_file` and `draft_agent_file` read local files, so they only exist in the local server):
`https://prompt-generator-website.com/mcp` — optional header `Authorization: Bearer pgw_…`.

```bash
claude mcp add --transport http specpack https://prompt-generator-website.com/mcp
```

## Library

```ts
import { audit, scanProject, renderAgentsMd, SpecpackClient } from "specpack";

const { stats, lines, trimmed } = audit(fs.readFileSync("CLAUDE.md", "utf8"));
console.log(`${stats.bloat}% bloat`, lines.filter((l) => l.verdict === "cut").length, "lines to cut");

const agentsMd = renderAgentsMd(scanProject("."));

const client = new SpecpackClient({ apiKey: process.env.SPECPACK_API_KEY });
const draft = await client.draft("A booking app for dog groomers");
const spec = await client.createSpec(draft.type, draft.answers); // spec.spec, spec.files["AGENTS.md"]…
```

`createMcpServer()` is exported from `specpack/mcp`. API errors are `SpecpackError` with `code`
(`quota_exceede
agents-mdai-codingclaude-codeclaude-mdclicursorcursorruleslintermcpmcp-server

What people ask about specpack

What is THE-KIPDEV/specpack?

+

THE-KIPDEV/specpack is mcp servers for the Claude AI ecosystem. Lint and generate CLAUDE.md / AGENTS.md / Cursor rules, and turn a project description into a full build spec. CLI + library + MCP server. It has 0 GitHub stars and its last recorded update is dated 2026-09-18.

How do I install specpack?

+

You can install specpack by cloning the repository (https://github.com/THE-KIPDEV/specpack) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is THE-KIPDEV/specpack safe to use?

+

Our security agent has analyzed THE-KIPDEV/specpack and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.

Who maintains THE-KIPDEV/specpack?

+

THE-KIPDEV/specpack is maintained by THE-KIPDEV. The last recorded GitHub activity is dated 2026-09-18, with 0 open issues.

Are there alternatives to specpack?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy specpack to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: THE-KIPDEV/specpack
[![Featured on ClaudeWave](https://claudewave.com/api/badge/the-kipdev-specpack)](https://claudewave.com/repo/the-kipdev-specpack)
<a href="https://claudewave.com/repo/the-kipdev-specpack"><img src="https://claudewave.com/api/badge/the-kipdev-specpack" alt="Featured on ClaudeWave: THE-KIPDEV/specpack" width="320" height="64" /></a>

More MCP Servers

specpack alternatives