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.
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:
| Tool | What it does |
|---|---|
create_waitlist | Creates a new waitlist and returns its ID |
list_waitlists | Lists all waitlists with live signup counts |
add_signup | Adds a signup and returns position, total, referral code |
list_signups | Returns paginated signups for a waitlist |
get_waitlist_stats | Daily series, email engagement, referrer breakdown |
get_signup_position | Looks up a specific email's position |
remove_signup | Removes a signup by ID (positions don't shift) |
list_waitlist_fields | Lists 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:
- Call
create_waitlistto create the waitlist and get its ID - Write the route handler with the waitlist ID and your API key as an env var reference
- 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.