Skip to main content
20% off 3 months · code LAUNCH20 · until 31 October

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_..."

Run it in your project's folder. The name comes before the URL. By default the server is added for that folder only and stored outside the repository; add --scope user to make it available in every project. Claude Code loads servers when it starts, so quit and start it again in that folder; /mcp lists the Nordva tools.

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
get_changelog_entryRead one changelog entryAll plans
update_changelog_entryEdit, reschedule or publish an unpublished changelog entryAll plans
archive_changelog_entryRemove a changelog entry from public viewAll plans
draft_changelog_from_commitsDraft a changelog entry from commits (never publishes)All plans
list_changelog_labelsList changelog labelsAll plans
create_changelog_labelCreate a changelog labelAll plans
update_changelog_labelRename or recolour a changelog labelAll plans
delete_changelog_labelDelete a changelog labelAll plans
get_changelog_settingsRead the changelog widget settingsAll plans
update_changelog_settingsChoose the changelog widget's reactionsAll plans
get_changelog_entry_statsNumbers for one changelog entryAll plans
get_changelog_statsNumbers for the latest changelog entriesAll plans
get_changelog_after_readingWhat happened after people read an entryBuilder
list_changelog_subscribersList changelog email subscribersAll plans
set_changelog_subscriber_labelsChange which labels a subscriber followsAll plans
get_changelog_widget_viewSee the changelog widget as one person sees itAll plans
record_changelog_widget_eventTest the changelog widget: record a view, reaction or clickAll plans

Waitlist

add_to_waitlistAdd an email to a waitlistAll plans
import_waitlistImport an existing list into the waitlistAll plans
list_waitlist_signupsList the people on 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
list_waitlist_email_templatesRead the waitlist emailsAll plans
preview_waitlist_email_templatePreview a waitlist email before saving itAll plans
save_waitlist_email_templateChange the wording of a waitlist emailBuilder
reset_waitlist_email_templateGo back to the default waitlist emailAll plans
send_waitlist_announcementSend one announcement email to the waitlistIndie and Builder
list_waitlist_announcementsPast waitlist announcements and their progressAll plans
get_announcement_reportLaunch report: told → clicked → paidIndie and Builder

Feedback board

get_board_settingsRead the feedback board's settingsAll plans
update_board_settingsSwitch the feedback board on or off, or change itAll plans
list_board_postsList the ideas on the feedback boardAll plans
create_board_postAdd an idea to the feedback boardAll plans
update_board_postApprove, plan, ship or edit an idea on the boardAll plans
delete_board_postDelete an idea from the boardAll plans

Feedback

submit_feedbackSubmit, classify, and route user feedbackAll plans
list_feedbackList recent feedback submissionsAll plans
get_feedbackRead one feedback itemAll plans
update_feedbackMark feedback reviewed or resolved, or fix its categoryAll plans
reply_to_feedbackEmail a reply to the person who sent feedbackAll plans
bulk_update_feedbackMark many feedback items at onceAll plans
export_feedbackExport feedback as CSVAll plans
configure_feedback_routingConfigure a feedback routing destination (email/linear/github/slack)All plans
get_feedback_routingSee where feedback is forwardedAll plans
remove_feedback_routingStop forwarding feedback to a destinationAll plans

Notifications

send_notificationSend an in-app notification to one user or to everyoneAll plans
preview_notification_audienceSee who a group notification would reachAll plans
list_notificationsList sent notifications with reach and readsAll plans
get_notificationRead one sent notificationAll plans
delete_notificationDelete a sent notificationAll plans
get_unread_notificationsSee what a user's bell showsAll plans
mark_notifications_readMark notifications read for a userAll plans
archive_notificationArchive a notification for one userAll plans
record_notification_clickRecord a click on a notificationAll plans
set_notification_reactionSet a user's reaction to a notificationAll plans
get_notification_settingsNotification settings, usage and warningsAll plans
update_notification_settingsChange notification settingsAll plans
create_notifications_signing_secretCreate the notifications signing secret (shown once)All plans
rotate_notifications_signing_secretRotate the notifications signing secret (new one shown once)All plans

Revenue

get_stripe_connection_statusCheck whether Stripe is connected and syncingAll plans
get_lemonsqueezy_connection_statusCheck whether Lemon Squeezy is connected and syncingAll plans
get_revenue_summaryGet MRR, subscriptions, growth and churn from Stripe or Lemon SqueezyAll plans
get_revenue_seriesGet revenue over time from Stripe or Lemon SqueezyAll plans
get_revenue_by_sourcePaying customers and revenue by source or countryAll plans
get_revenue_economicsWhat a customer is worth: ARPA, churn, 12-month LTVAll plans
list_recent_paymentsList recent payments and cancellations from Stripe and Lemon SqueezyAll plans

Contacts

list_contactsList people across waitlist, feedback, subscribers and paymentsAll plans
get_contactGet one person across every primitiveAll plans
get_contact_journeyOne person's visits before they signed up or paidBuilder
update_contactSet a contact's stage, note, details or consentsAll plans
list_contact_fieldsList the detail names and consents in use on contactsAll plans
export_contactsExport contacts as a CSV download linkIndie and Builder

Attribution

get_attribution_reportSee which signup sources produce paying customersAll plans
add_channel_costRecord what a marketing channel costIndie and Builder
list_channel_costsList recorded marketing spendIndie and Builder
delete_channel_costRemove a recorded spend entryIndie and Builder

Web analytics

get_analytics_summaryWeb analytics: the headline numbersAll plans
get_analytics_timeseriesWeb analytics: visits per day or hourAll plans
get_analytics_breakdownWeb analytics: by source, page, place or deviceAll plans
get_live_visitorsWeb analytics: right nowAll plans
list_visitorsWeb analytics: everyone who came, one row per visitorAll plans
get_visitorWeb analytics: one visitor's historyBuilder
get_analytics_mapWeb analytics: where visits came from, as map pointsAll plans
get_analytics_statusWeb analytics: is the script sending?All plans
get_analytics_usageWeb analytics: events this month against the planAll plans
get_analytics_settingsWeb analytics: the snippet and the site's domainsAll plans
update_analytics_settingsWeb analytics: set the site's domains, tracking mode, or turn collection on/offAll plans
export_analyticsWeb analytics: take the data out as CSV or JSONAll plans
identify_visitorWeb analytics: link a visitor to a userAll plans
list_funnelsWeb analytics: the project's funnelsAll plans
create_funnelWeb analytics: create a funnelAll plans
get_funnel_reportWeb analytics: where visitors drop offAll plans
delete_funnelWeb analytics: delete a funnelAll plans
get_goalsWeb analytics: goals and how many reach themAll plans
create_analytics_proxy_keyWeb analytics: key for serving the script from your own domainAll plans
delete_analytics_proxy_keyWeb analytics: remove the proxy keyAll plans

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
create_publishable_keyMake the project's publishable (browser) keyAll 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
remove_allowed_originRemove a site from the browser allowlistAll plans
remove_custom_domainDisconnect a custom domainBuilder
list_webhooksList webhook endpoints and their healthAll plans
create_webhookAdd a webhook endpointIndie and Builder
update_webhookChange a webhook's events, note or statusIndie and Builder
test_webhookSend a test event to a webhook nowIndie and Builder
delete_webhookDelete a webhook endpointIndie and Builder
list_webhook_deliveriesRecent deliveries to one webhook endpointIndie and Builder