Skip to main content

The Nordva Launch MCP server

A hosted Model Context Protocol server at https://mcp.nordva.dev. It gives an AI coding agent 36 tools over your project's changelog, waitlist, feedback and notifications, 21 of them read-only. There is nothing to install or run.

Get an API key → MCP setup in the docs

How it works

  • One endpoint, https://mcp.nordva.dev, speaking MCP over Streamable HTTP. The server is stateless: every request is a POST that returns JSON, and there is no session to keep alive.
  • Authentication is the Authorization header: Bearer followed by a Nordva Launch secret key. The key is forwarded to the REST API on each tool call and is never a tool argument, so it does not end up in transcripts.
  • The server has no database access of its own. Each tool is a call to api.nordva.dev, so plan limits, validation and error codes are identical to the REST API.
  • Tools that create something (publish, add to waitlist, invite, submit feedback, send notification) derive an Idempotency-Key from their arguments. An agent that retries the same call does not create a duplicate.
  • The MCP endpoint allows 120 requests a minute per key and 60 per IP address. The underlying API calls also count against the plan's API limit (30 a minute on Free, 120 on Indie, 500 on Builder).
  • Errors come back as the API's stable codes (PLAN_LIMIT_REACHED, VALIDATION_ERROR, RATE_LIMITED and so on) with a remediation message, and each tool description tells the agent which errors to retry and which to stop on.

All 36 tools

This list is read from the server's source when the site is built.

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