Integrations

How AI agents can manage your waitlist

Connect the Enlist MCP server to Claude Code or Cursor and let your coding agent wire the entire waitlist integration in one prompt.

MCPAI agentsClaudeCursor

The typical waitlist integration takes 20-30 minutes: create an account, read the API docs, write a route handler, wire up the form, test it. That's fine. But if you're using a coding agent, you can cut that to one prompt.

What the MCP server does

Enlist ships an MCP server at https://api.enlist.dev/mcp. Connect it once with your API key. Your agent gets access to eight tools:

ToolWhat it does
create_waitlistCreates a new waitlist and returns its ID
list_waitlistsLists all waitlists with live signup counts
add_signupAdds a signup and returns position, total, referral code
list_signupsReturns paginated signups for a waitlist
get_waitlist_statsDaily series, email engagement, referrer breakdown
get_signup_positionLooks up a specific email's position
remove_signupRemoves a signup by ID (positions don't shift)
list_waitlist_fieldsLists the custom field definitions for a waitlist

The key is configured once on the server connection and never passed as a tool argument. The agent can call every tool without ever seeing the key, so it can't accidentally echo it into a file or a commit.

Setting up in Claude Code

claude mcp add --transport http enlist https://api.enlist.dev/mcp \
  --header "Authorization: Bearer en_live_your_key"

Setting up in Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):

{
  "mcpServers": {
    "enlist": {
      "url": "https://api.enlist.dev/mcp",
      "headers": { "Authorization": "Bearer en_live_your_key" }
    }
  }
}

What to prompt

Once connected, one message is enough:

"Add a waitlist to this Next.js project. Create a new waitlist called 'my-launch', then wire up a route handler at /api/waitlist that accepts a POST with an email field and returns the signup position and total."

The agent will:

  1. Call create_waitlist to create the waitlist and get its ID
  2. Write the route handler with the waitlist ID and your API key as an env var reference
  3. Write a form component that posts to the handler and displays the position

You don't need to look up the API docs, copy-paste a curl example, or manually create the waitlist in the dashboard.

Managing signups from the agent

The tools work both ways. Once signups are coming in, you can ask the agent to query them:

"How many signups do we have? Break it down by source."

The agent calls get_waitlist_stats and returns the breakdown directly in chat.

"What position is user@example.com?"

The agent calls get_signup_position and tells you.

When this matters

Agent-native integrations aren't a novelty. They change the operational workflow. Instead of switching between your editor and a dashboard, you query your waitlist from the same context where you're building the product. The tools reach waitlists and signups only — never billing, keys, or account settings. remove_signup does delete, so scope the key you connect with accordingly.

Related posts

How AI agents can manage your waitlist · Enlist