# spm-mcp

**Cursor for product management.** Expert document review as MCP tools.

AI made engineering 10x faster. But deciding *what* to build didn't get faster. SPM fixes the input with 30 domain-specific expert reviews that score your product documents against the standards senior PMs actually use.

```bash
npx spm-mcp
```

## The problem

AI agents build what you specify, including every blind spot. A vague spec used to waste a sprint. Now it ships to production in hours. SPM catches the blind spots before they become shipped code.

## What SPM reviews

Not just PRDs. Every document in the PM lifecycle:

- **Strategy:** Product Roadmap, Growth Strategy, Go-to-Market, OKR Planning, Product Vision
- **Analysis:** Competitive Analysis, Market Research, Product Metrics, Stakeholder Management
- **Execution:** User Stories, Feature Spec, Sprint Planning, PRD to Jira, Release Notes, Test Cases
- **Discovery:** Problem Statement, Persona, Jobs-to-be-Done, Opportunity Assessment

30 built-in expert reviews. Or bring your own template with `spm_create_custom_nano_app` -- paste your favorite PRD or describe your sections, and SPM creates a personalized review in seconds.

## Quick start

### Option A: Guided setup (recommended)

```bash
npx spm-mcp
```

First run auto-detects no API key and walks you through setup:
1. Opens your browser to sign in
2. You generate an API key on your Profile page
3. Paste it back in the terminal
4. Key saved to `~/.spm/config.json`. Done.

### Option B: Manual setup

```bash
# 1. Get your key at https://superproductmanager.ai?utm_source=npm&utm_medium=readme&utm_campaign=mcp > Profile > Generate API Key
# 2. Set it
export SPM_API_KEY=spm_k_your_key_here
# 3. Run
npx spm-mcp
```

### Option C: claude.ai connector (recommended for non-terminal users)

Connect SPM directly inside claude.ai with an interactive onboarding dashboard:

1. Go to [spm-mcp.superproductmanager.ai](https://spm-mcp.superproductmanager.ai) to get your personalized connector URL
2. In claude.ai, go to Settings > Connectors > Add custom connector
3. Paste your URL and click Add
4. Switch to **Cowork** mode, type "get started"

SPM renders an interactive welcome dashboard right in the chat. Pick a built-in review template or paste your own PRD to create a custom one.

> **Watch the 2-minute setup video**: [youtube.com/watch?v=1s8EpRJCJ68](https://www.youtube.com/watch?v=1s8EpRJCJ68)

## Tools

| Tool | What it does |
|------|-------------|
| `spm_create_custom_nano_app` | **Start here.** Paste your favorite PRD, describe your template sections, or pass evaluation criteria. Creates a personalized review that uses your terminology and covers your sections. |
| `spm_list_nano_apps` | Browse 30 built-in expert reviews if you don't have your own template. |
| `spm_analyze` | Score a document against expert expectations. Every gap scored 0-1.0 with evidence. |
| `spm_clarify` | Decision-forcing questions for the weakest gaps. Questions escalate when you give vague answers. |
| `spm_evaluate` | Re-score gaps after clarification rounds. Tracks progress. Use after every 3 rounds of `spm_clarify`. |
| `spm_improve` | Generate paste-ready improvements grounded in your answers, not AI hallucination. |

## How it works

```
Your document
    > spm_analyze     Scores every gap 0-1.0 against expert expectations
    > spm_clarify     Asks the questions your stakeholder would ask
    > spm_evaluate    Re-scores. Did the gap close?
    > spm_improve     Generates improvements from YOUR answers
```

The clarification questions are the product. They surface the assumptions you've been carrying without examining. When you dodge, they escalate: evidence first, then action directives, then assumptions made on your behalf. Like a principal PM review, not a chatbot.

## Example: Bring your own template

```
You:    Here's my team's PRD template [pastes PRD]
SPM:    Detected 9 sections. Created "PRD Review" with 5 expectations:

        Expectation                  | Rules                          | Checks
        Problem & Goal               | Problem, Goal                  | Data-backed problem, measurable goal
        Users & Solution             | Target Users, Proposed Solution| Specific personas, buildable solution
        Metrics & Timeline           | Success Metrics, Timeline      | Baselines, phased delivery
        Technical & Risks            | Technical Approach, Risks      | Dependencies, mitigations
        Out of Scope                 | Out of Scope                   | Explicit boundary list

You:    Looks good. Analyze this PRD.
SPM:    [scores against YOUR expectations, not generic ones]
```

## Example: Built-in review

```
You:    Analyze this PRD with prd_critique
SPM:    4 expectations scored. Problem Definition: 43/100. Success Metrics: 15/100.

You:    Clarify the weakest gap
SPM:    "Is operator churn or player registration drop-off your primary counter-metric?"

You:    Operator churn. If >20% revert to WhatsApp, we've failed.
SPM:    [re-evaluates] Counter-metric: 0 > 0.9. Now targeting: Instrumentation plan.

You:    Improve the success metrics section
SPM:    [generates paste-ready content grounded in your "operator churn" decision]
```

Average documents improve from 35% to 82% in three rounds.

## Setup for AI coding assistants

### Claude Code

```bash
claude mcp add spm -- npx spm-mcp
```

Or add to `.claude/settings.json`. If you ran `npx spm-mcp` setup already, the key is in `~/.spm/config.json` and no env var is needed:

```json
{
  "mcpServers": {
    "spm": {
      "command": "npx",
      "args": ["spm-mcp"]
    }
  }
}
```

### Cursor

Add to MCP settings:

```json
{
  "spm": {
    "command": "npx",
    "args": ["spm-mcp"],
    "env": {
      "SPM_API_KEY": "spm_k_your_key_here"
    }
  }
}
```

### Windsurf

Add to MCP configuration with the same command and env structure.

## Environment variables

| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `SPM_API_KEY` | Only if no `~/.spm/config.json` | n/a | Your API key. Run `npx spm-mcp` for guided setup. |
| `SPM_SUPABASE_URL` | No | Production | Override for development |
| `SPM_SUPABASE_ANON_KEY` | No | Production | Override for development |
| `SPM_CLOUD_FUNCTIONS_BASE` | No | Production | Override Cloud Functions URL |

API key resolution order: `SPM_API_KEY` env var > `~/.spm/config.json` > setup prompt.

## Security

- **No filesystem access.** SPM never reads your local files, SSH keys, or credentials.
- **No postinstall scripts.** Nothing runs on `npm install`.
- **Minimal env access.** Reads 4 optional env vars and `~/.spm/config.json`. No broad `process.env` access.
- **Network calls only when tools are invoked.** Not on import, not on install.
- **Source included.** TypeScript source ships alongside compiled JS for auditability.
- **Zero known vulnerabilities.** `npm audit` clean.

## Also available as

- **Chrome extension.** Reviews documents inside Google Docs, Notion, ClickUp, Linear. [Install from Chrome Web Store](https://chromewebstore.google.com/detail/super-product-manager/ocpjfedoogmpbkhpojdkfdimkbiamihg?utm_source=npm&utm_medium=readme&utm_campaign=mcp)
- **Web app.** Paste any document, full analysis in 30 seconds. [superproductmanager.ai](https://superproductmanager.ai?utm_source=npm&utm_medium=readme&utm_campaign=mcp)

## Links

- [Website](https://superproductmanager.ai?utm_source=npm&utm_medium=readme&utm_campaign=mcp)
- [claude.ai Connector Setup](https://spm-mcp.superproductmanager.ai)
- [Setup Video Tutorial](https://www.youtube.com/watch?v=1s8EpRJCJ68)
- [Chrome Extension](https://chromewebstore.google.com/detail/super-product-manager/ocpjfedoogmpbkhpojdkfdimkbiamihg?utm_source=npm&utm_medium=readme&utm_campaign=mcp)

## License

MIT
