# MCP setup

> Connect Claude Desktop, Claude Code, Cursor or Windsurf to your Nordva Launch account.

Nordva Launch ships an MCP server at `https://mcp.nordva.dev` that exposes your API as tools any MCP-compatible client can call.

## Claude Code / Claude Desktop

```bash
claude mcp add --transport http nordva https://mcp.nordva.dev \
  --header "Authorization: Bearer nv_live_..."
```

Run it in your project's folder. The server is registered as `nordva`, for that folder only (add `--scope user` to use it in every project). Claude Code loads servers when it starts, so quit it and start it again in that folder (`/mcp` lists the Nordva tools), then ask:

> List my recent changelog entries.

Claude will call `list_changelog_entries` for you.

## Cursor

Add to `~/.cursor/mcp.json`:

```json
{
  "mcpServers": {
    "nordva": {
      "url": "https://mcp.nordva.dev",
      "transport": "http",
      "headers": {
        "Authorization": "Bearer nv_live_..."
      }
    }
  }
}
```

Reload Cursor → open the MCP panel → confirm `nordva` is connected.

## Windsurf

Windsurf (now Devin Desktop) keeps one MCP file for all your projects. Add to `~/.codeium/windsurf/mcp_config.json`:

```json
{
  "mcpServers": {
    "nordva": {
      "serverUrl": "https://mcp.nordva.dev",
      "headers": {
        "Authorization": "Bearer nv_live_..."
      }
    }
  }
}
```

The field is `serverUrl`, not `url`. In Cascade, refresh the MCP servers and confirm `nordva` is listed. `npx nordva init` writes this file for you.

## Available tools

| Tool | Description |
| --- | --- |
| `setup_check` | Verify auth, identify project, report plan and feature flags. |
| `publish_changelog_entry` | Create or schedule a changelog entry. |
| `list_changelog_entries` | List recent entries (default: 10). |
| `get_insights` | One-call summary of a period against the one before: signups and sources, changelog, feedback, revenue. |
| `get_revenue_summary` | MRR, new and churned subscriptions and collected revenue from your connected Stripe account or Lemon Squeezy store (read only). |
| `list_contacts` | People across waitlist, subscribers, feedback and payments: who is paying, where they came from. |
| `get_attribution_report` | Which signup sources produced paying customers. |
| `send_notification` | An in-app notification to one user, a group (by email, contact or a Contacts filter) or everyone, now or scheduled. |
| `preview_notification_audience` | How many people a group notification would reach, and who has no user id yet. |
| `reply_to_feedback` | Email a reply to the person who sent a feedback item. |
| `list_board_posts` | The ideas on your feedback board, suggestions waiting for approval included. |

Everything a secret key can do over REST has a tool, so an agent can build as well as read: publish and edit changelog entries, add and invite waitlist signups, change the waitlist emails, triage, reply to and export feedback, run the feedback board, send and schedule notifications, create webhooks and test them, record what a channel cost. What has no tool, on purpose: creating or deleting projects and API keys, and connecting Stripe or Lemon Squeezy. Those need your login in the dashboard.

The full list of tools with their arguments is at [launch.nordva.dev/mcp](https://launch.nordva.dev/mcp/), with setup pages for VS Code and Claude Desktop.

## Prompts

Prompts are ready-made instructions the server hands to your agent. In Claude Code they are slash commands, `/mcp__nordva__<name>`; other clients list them under prompts. Every one of them stops and asks before it publishes or changes anything.

| Prompt | What it does |
|---|---|
| `plan_integration` | Reads your codebase and writes `NORDVA_PLAN.md`: which parts of Launch fit, which files change, what to build first. See [Plan the integration with your AI agent](/guides/plan-with-ai/). |
| `draft_changelog_from_commits` | Reads the git log since your last published entry, keeps what users would notice, drafts an entry in the tone of your earlier ones, and publishes or schedules it only when you say so. Optional argument `since`: a date or a git ref. |
| `launch_day_checklist` | Checks the waitlist, changelog, webhooks, allowed origins, Stripe connection and how your code uses the keys, then lists what to fix before launch. |
| `triage_feedback_inbox` | Groups open feedback by what people are asking for, looks in your code for each, and ranks what to fix, build and answer. Optional argument `days`, default 14. |
| `weekly_founder_summary` | Signups and their sources, revenue change, and what users asked for, over the last week. Optional argument `days`. |

No tool connects Stripe or Lemon Squeezy and none accepts a key for either: you connect them once in the dashboard ([Stripe](/guides/revenue-stripe), [Lemon Squeezy](/guides/revenue-lemonsqueezy)), and the assistant will never ask for a key.

Run `setup_check` first: it returns the project ID, plan, and any setup warnings before you publish anything.

## Rate limits

Tool calls count against your plan's API rate limit. The MCP endpoint itself additionally allows 120 requests a minute per key and 60 per IP address. If you're hitting `RATE_LIMITED`, see [rate limits](/api-reference/rate-limits).

Source: https://docs.nordva.dev/mcp-setup/
