Skip to main content

Connect Claude Desktop to Nordva Launch

Claude Desktop's config file starts local processes, so a remote server with a header is reached through the mcp-remote bridge. Node.js 18 or later must be installed.

Before you start

Create a secret key (it starts with nv_live_) under Dashboard → API keys. Publishable keys are meant for browsers and are refused by most tools.

Setup

01Add the bridge to the config file

claude_desktop_config.json (Settings → Developer → Edit Config)

{
  "mcpServers": {
    "nordva": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.nordva.dev",
        "--header",
        "Authorization:${NORDVA_AUTH}"
      ],
      "env": {
        "NORDVA_AUTH": "Bearer nv_live_..."
      }
    }
  }
}

The header value is passed through an environment variable because some platforms split arguments that contain a space. On macOS the file is in ~/Library/Application Support/Claude/, on Windows in %APPDATA%\Claude\.

02Check the connection

Quit and reopen Claude Desktop. The nordva tools should appear in the tools menu of a new chat. Ask it to run setup_check.

Notes for Claude Desktop

  • The Connectors screen in Claude Desktop and claude.ai expects OAuth. The Nordva Launch server authenticates with an API key header instead, which is why the bridge is needed there.
  • If the connection fails with 401, the Authorization header is missing or malformed. If a tool answers INVALID_API_KEY or KEY_REVOKED, the header arrived but the key is wrong.

Tools you get

Changelog

publish_changelog_entryPublish or schedule a changelog entryAll plans
list_changelog_entriesList recent changelog entriesAll plans
archive_changelog_entryRemove a changelog entry from public viewAll plans

Waitlist

add_to_waitlistAdd an email to a waitlistAll plans
import_waitlistImport an existing list into the waitlistAll plans
get_waitlist_statsGet waitlist stats and top referrers (admin view)All plans
get_waitlist_leaderboardGet the public-safe waitlist leaderboardIndie and Builder
invite_from_waitlistInvite people from the waitlistIndie and Builder
export_waitlistExport waitlist to CSV or JSONIndie and Builder
get_waitlist_settingsGet current waitlist pause state and custom copyAll plans
update_waitlist_settingsPause/resume waitlist or set custom landing-page copyAll plans
get_waitlist_embed_snippetGet HTML snippet to embed the waitlist on the developer's siteAll plans

Feedback

submit_feedbackSubmit, classify, and route user feedbackIndie and Builder
list_feedbackList recent feedback submissionsAll plans
update_feedbackMark feedback reviewed or resolved, or fix its categoryAll plans
configure_feedback_routingConfigure a feedback routing destination (email/linear/github/slack)All plans

Notifications

send_notificationSend an in-app notification to one of your usersBuilder
get_unread_notificationsList unread notificationsBuilder
mark_notifications_readMark notifications as readBuilder

Revenue

get_stripe_connection_statusCheck whether Stripe is connected and syncingAll plans
get_revenue_summaryGet MRR, subscriptions, growth and churn from StripeIndie and Builder
get_revenue_seriesGet revenue over time from StripeIndie and Builder
list_recent_paymentsList recent payments and cancellations from StripeIndie and Builder

Contacts

list_contactsList people across waitlist, feedback, subscribers and StripeAll plans
get_contactGet one person across every primitiveAll plans
update_contactSet a contact's stage or noteAll plans

Attribution

get_attribution_reportSee which signup sources produce paying customersIndie and Builder

Project and domains

get_insightsGet a summary of the project over a periodAll plans
setup_checkVerify Nordva Launch auth and report planAll plans
get_projectRead current project name and slugAll plans
update_projectRename project or change its public URL slugAll plans
register_allowed_originAdd a CORS-allowed origin to the projectAll plans
list_allowed_originsList the project's CORS-allowed originsAll plans
register_custom_domainAdd a custom hostname for the project's widget (Builder only)Builder
list_custom_domainsList the project's custom hostnamesAll plans
get_custom_domain_statusForce-refresh a custom domain's verification statusAll plans