Developers
API & MCP documentation
RSVPhere exposes your events as an MCP (Model Context Protocol) server and a REST API, so AI assistants like ChatGPT, Claude, Cursor and Codex — or your own code — can read and manage your guest lists on your behalf. 29 MCP tools, a clean OpenAPI spec, and secure auth for both.
MCP server URL
https://rsvphere.app/mcpTransport: MCP Streamable HTTP · Auth: OAuth 2.1 with dynamic client registration
REST API / OpenAPI spec
https://rsvphere.app/api/public/openapi.jsonAuth: OAuth sign-in (recommended for ChatGPT actions), or an API key via Authorization: Bearer <key> from your account settings.
One endpoint
Add the URL to any MCP client. Tools are discovered automatically.
OAuth secured
You sign in and approve the client. Every call runs as you, with your permissions.
Natural language
Ask "add these 40 guests and remind everyone still pending" — the assistant does it.
Which assistants can connect?
- Claude (Desktop, Web and Code): full MCP support with OAuth — the recommended way to use RSVPhere from a chat window.
- Cursor, Codex, Windsurf and other MCP clients: supported, add the same remote URL.
- ChatGPT: does not support the MCP protocol, but you can build a Custom GPT Action using the OpenAPI spec below. It authenticates with OAuth, so each user signs in with their own RSVPhere account, and ChatGPT can list events, read guest lists, and add invitees on their behalf.
Connect Claude Desktop
Open Claude Desktop → Settings → Developer → Edit Config and add the rsvphere entry below to claude_desktop_config.json, then restart Claude. Keep any servers you already have in mcpServers.
{
"mcpServers": {
"rsvphere": {
"url": "https://rsvphere.app/mcp"
}
}
}On first use Claude opens a browser window on RSVPhere. Sign in with your host account and approve the connection on the consent screen. Then ask “list my events” to confirm it works.
If your Claude build only supports stdio servers, bridge to the HTTP endpoint instead:
{
"mcpServers": {
"rsvphere": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://rsvphere.app/mcp"]
}
}
}Connect any other MCP client
Every MCP-capable client works the same way. Add a remote/HTTP MCP server, paste the URL above, and the client walks you through sign-in.
- In your assistant, add a new connector or MCP server and choose the remote/HTTP type.
- Paste
https://rsvphere.app/mcpas the server URL. - A browser window opens on RSVPhere. Sign in with your host account and approve the connection on the consent screen.
- The assistant lists the available tools. Try “list my events” to confirm the connection.
Connect ChatGPT as a Custom GPT Action
ChatGPT does not speak MCP, but it can call REST endpoints through a Custom GPT action. The action now uses OAuth, so each person who uses the GPT signs in with their own RSVPhere account instead of pasting a shared key.
- In ChatGPT, create a new Custom GPT and open Configure → Add actions.
- Choose Import from URL and paste
https://rsvphere.app/api/public/openapi.json. - Set the authentication type to OAuth. ChatGPT pre-fills the authorization and token URLs from the spec:
https://eskfjnwurmkciqdjdzdp.supabase.co/auth/v1/oauth/authorizehttps://eskfjnwurmkciqdjdzdp.supabase.co/auth/v1/oauth/token - Register an OAuth client to get a client ID and secret, using the callback URL ChatGPT shows you after saving the action:
Paste the returnedcurl -X POST https://eskfjnwurmkciqdjdzdp.supabase.co/auth/v1/oauth/clients/register \ -H "Content-Type: application/json" \ -d '{ "client_name": "My RSVPhere GPT", "redirect_uris": ["<callback URL shown by ChatGPT>"], "grant_types": ["authorization_code", "refresh_token"], "response_types": ["code"], "token_endpoint_auth_method": "client_secret_post" }'client_idandclient_secretinto ChatGPT, set scope toopenid email profile offline_accessand token exchange method to POST. - Save, then click Sign in with RSVPhere in the GPT and approve the consent screen. You can now ask things like “List my events”, “Who is attending the gala?”, or “Add Jane Doe to the launch event.”
Access tokens are short-lived. Because the action requests offline_access, the client also receives a refresh token and renews access silently — you stay connected without signing in again. If a token does expire mid-call, the API replies 401 with WWW-Authenticate: Bearer error="invalid_token", which tells the client to refresh at https://eskfjnwurmkciqdjdzdp.supabase.co/auth/v1/oauth/token (grant type refresh_token) and retry.
Prefer a script or a headless integration? The same endpoints still accept an API key from your account settings via Authorization: Bearer <key>.
Authentication
RSVPhere supports two authentication models, depending on how you connect.
- OAuth 2.1 (Claude, Cursor, ChatGPT actions): clients register (or self-register dynamically) and obtain a short-lived access token after you approve them on the consent screen. Every user of a shared GPT or connector signs in as themselves.
- API keys (scripts, servers): generate a key in your RSVPhere account settings and send
Authorization: Bearer <your-api-key>with every request. Revoke keys at any time from the same page.
In both cases the caller acts as you: it can only touch events you own or co-host, and plan limits apply exactly as they do in the app. Revoke OAuth access by removing the connector in your assistant; revoke API keys from your RSVPhere account settings.
Calling the MCP API directly
The MCP endpoint speaks JSON-RPC 2.0 over MCP Streamable HTTP. Requests must accept both JSON and SSE responses.
curl -X POST https://rsvphere.app/mcp \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "list_invitees",
"arguments": { "event_id": "…", "rsvp_status": "pending", "limit": 50 }
}
}'Use "method": "tools/list" to enumerate every tool with its JSON Schema. Tool results come back as MCP content blocks; read tools also return structured JSON where it is useful.
REST API examples
The REST API is simpler for code that doesn't speak MCP. Authenticate with an API key and use the endpoints described in the OpenAPI spec.
curl https://rsvphere.app/api/public/v1/events \
-H "Authorization: Bearer $RSVPHERE_API_KEY"
curl https://rsvphere.app/api/public/v1/events/<event-id>/stats \
-H "Authorization: Bearer $RSVPHERE_API_KEY"
curl -X POST https://rsvphere.app/api/public/v1/events/<event-id>/invitees \
-H "Authorization: Bearer $RSVPHERE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Doe",
"email": "jane@example.com"
}'Tool reference
29 tools across 7 groups. Parameters marked * are required. Tools tagged write change data; tools tagged Pro require a Pro plan.
Events
Create and manage the events you own or co-host.
list_eventsread-onlyList events you own or co-host, with RSVP counts.
—
get_eventread-onlyFull detail for one event, including functions, owners and RSVP settings.
event_id*
create_eventwriteCreate a new event. Respects your plan limits.
name*, event_date, event_time, location, description, rsvp_deadline, capacity, default_allow_guests, default_max_guests
update_eventwriteUpdate event details or RSVP settings.
event_id*, name, event_date, event_time, location, description, rsvp_deadline, capacity, is_active, rsvp_closed, welcome_message
event_statsread-onlyRSVP totals: attending, declined, pending, guests and seats used.
event_id*
Invitees & RSVPs
The guest list — add, edit, search and record responses.
list_inviteesread-onlyList invitees, filtered by status, tag or a name/email search.
event_id*, rsvp_status, tag, search, limit
add_inviteewriteAdd a single invitee.
event_id*, first_name*, last_name, email, phone, allow_guests, max_guests, notes
bulk_add_inviteeswriteAdd many invitees in one call.
event_id*, invitees*
update_inviteewriteUpdate contact details, guest allowance or notes.
invitee_id*, first_name, last_name, email, phone, allow_guests, max_guests, notes
delete_inviteewritePermanently remove an invitee and their guests.
invitee_id*
set_rsvp_for_inviteewriteRecord an RSVP on an invitee's behalf, optionally naming guests.
invitee_id*, attending*, guests
export_invitees_csvread-onlyReturn the full guest list as CSV text.
event_id*
Tags
Group guests for filtering, invite rules and reminders.
list_tagsread-onlyList the invitee tags defined on an event.
event_id*
create_tagwriteCreate an invitee tag.
event_id*, label*, color
set_invitee_tagswriteReplace the full set of tags on an invitee.
invitee_id*, tag_ids*
Co-hosts & owners
Who can manage the event, and who it is hosted by.
list_cohostsread-onlyList active co-hosts and pending invitations.
event_id*
invite_cohostwriteEmail an invitation to co-host. Sends real email.
event_id*, email*
remove_cohostwriteRemove a co-host or revoke a pending invitation.
host_id, invite_id
list_ownersread-onlyList the invitation owners (hosts of record).
event_id*
add_ownerwriteAdd an invitation owner.
event_id*, name*, role, organization, email
update_ownerwriteUpdate an owner's details.
owner_id*, name, role, organization, email
delete_ownerwriteRemove an invitation owner.
owner_id*
Functions
Sub-events inside a multi-function event.
list_functionsread-onlyList functions with per-function RSVP counts.
event_id*
create_functionwriteProAdd a function such as a ceremony or dinner.
event_id*, name*, description, function_date, function_time, location, capacity
Reminders & check-in
Nudge pending guests and run the door.
send_reminderwriteImmediately email a reminder to invitees filtered by RSVP status. Sends real email — confirm the audience first.
event_id*, subject*, body*, statuses*
check_in_lookupread-onlyFind a party by name or email and return their guests and check-in state.
event_id*, query*
confirm_check_inwriteMark an invitee and/or named guests as checked in.
invitee_id, guest_ids
Surveys
Post-event feedback.
list_surveysread-onlyList an event's post-event surveys with response counts.
event_id*
survey_results_summaryread-onlyAggregate responses: rating averages, choice tallies and free-text answers.
survey_id*, include_text_answers
Limits & good practice
- Tools that send email (
send_reminder,invite_cohost) send real messages immediately — always confirm the audience before running them. - Plan limits on events, invitees and Pro features are enforced server-side.
- Deletions (
delete_invitee,delete_owner) are permanent. - Keep calls bounded — use
limitand filters onlist_inviteesfor large guest lists.
Ready to plug your assistant in?
Create a free account, add your first event, then connect https://rsvphere.app/mcp to your AI assistant.