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

Connect Cursor to Nordva Launch

Cursor reads MCP servers from a JSON file, either per user or per project. Remote servers take a url and optional headers.

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 server to mcp.json

~/.cursor/mcp.json (or .cursor/mcp.json in a project)

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

Use the file in your home directory if the key should not live in the repository. A project-level .cursor/mcp.json containing a key belongs in .gitignore.

02Check the connection

Open Cursor Settings and find the MCP section (Customize > MCPs). nordva should be listed with its tools. In Agent mode, ask it to run setup_check.

Notes for Cursor

  • Cursor's agent decides when to call a tool from the tool descriptions; naming the tool in the prompt ("use publish_changelog_entry") removes the guesswork.
  • Tools that send email or remove content are flagged destructive by the server, and their descriptions tell the agent to confirm with you first.
  • 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