Skip to main content

Connect Claude Code to Nordva Launch

Claude Code connects to remote MCP servers over HTTP directly. One command registers the server under the name nordva.

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

01Register the server

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

The name comes before the URL. By default the server is added for the current project only and stored outside the repository; add --scope user to make it available in every project.

02Or share it with the team without sharing the key

.mcp.json

{
  "mcpServers": {
    "nordva": {
      "type": "http",
      "url": "https://mcp.nordva.dev",
      "headers": {
        "Authorization": "Bearer ${NORDVA_API_KEY}"
      }
    }
  }
}

Claude Code expands ${NORDVA_API_KEY} from the environment, so the file can be committed while each developer keeps their own key in their shell profile.

03Check the connection

Run claude mcp list, or type /mcp inside a session. nordva should show as connected. Then ask Claude to run setup_check: it reports the project, the plan and which features are unlocked.

Notes for Claude Code

  • Tools appear to the model as mcp__nordva__<tool>, which is the form to use in permission allowlists.
  • Read-only tools are marked as such by the server; Claude Code still asks before the first call to each tool unless you allow it.
  • 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