evite-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@evite-mcpShow my upcoming events"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
evite-mcp
A Model Context Protocol server for Evite — read and act on your events as both guest (invitations received) and host (events you created): list events, view guest lists & RSVP tallies, RSVP, message guests, and create/edit events. Built on @chrischall/mcp-utils.
Status: read + write tools live. The five read tools work against Evite's internal API, authenticating from email/password (tier-1,
POST /ajax_login), a raw cookie env var, or a signed-in browser tab (fetchproxy bootstrap). The thirteen write tools are confirm-gated — withoutconfirm: truethey only return a dry-run preview and send nothing — and their endpoints are live-verified (seedocs/EVITE-API.md); a couple of request bodies are still assumed rather than captured (#3).
Tools
Six read tools (all read-only), thirteen confirm-gated write tools, plus evite_healthcheck:
Tool | Endpoint | Returns |
|
| your events + a totals breakdown ( |
|
| single-event detail (event, settings, location) |
|
| the guest list + RSVP responses (delivery status, views, short links) |
| (derived from guests) | just the RSVP summary (yes/no/maybe/noReply + head counts) |
|
| the event's Messages thread |
| scrapes | invitation template slugs (the |
Write tools (confirm-gated)
Every write tool takes confirm: boolean. Without confirm: true it performs no network call and returns a dry-run preview of exactly what would be sent — that is the safe default. Only confirm: true reaches the live path. Endpoints are verified; the CSRF token (X-CSRFToken, read fresh per request as it rotates) is attached centrally.
Tool | Endpoint | Action |
|
| RSVP for a guest (response + adult/kid head counts + optional note) |
|
| send a private message to one guest (body assumed) |
|
| broadcast a message to whole RSVP segments ( |
|
| upload a local image to the event's shared photo album (4-step GCS signed upload) |
|
| create an event draft (needs |
|
| edit an event (only the fields you pass change) |
|
| add guests to the draft (un-sent) list — |
|
| edit a draft guest's name/email/phone |
|
| remove a draft guest |
|
| "Send now" — emails the ready-to-send guests |
|
| cancel an event / delete a draft (destructive; reversible) |
|
| reinstate a cancelled event |
|
| copy an event into a fresh draft; returns the new event id |
The authoring flow is evite_create_event → evite_add_guest → evite_send. evite_send, evite_send_message, evite_broadcast, and evite_cancel_event have real-world effects (emails / cancellation notices), so their confirm-gating matters.
Related MCP server: mcp-gsuite
Architecture
Fetchproxy-archetype MCP. Evite has no public API, so the server calls Evite's internal /services/ web API using your session. src/auth.ts resolves that session in priority order:
EVITE_EMAIL+EVITE_PASSWORD(tier-1, preferred) — headless email/password form login: POST the creds tohttps://www.evite.com/ajax_login, then build the session from the responseSet-Cookiejar (x-evite-session,evtsession,csrftoken,x-evite-features). No browser bridge, no hand-copied cookie. Both vars must be set, or the resolver falls through. (Live.)EVITE_SESSION_COOKIE— a rawcookie:header copied from a signed-inevite.comtab (or set in CI). Used verbatim. (Live.)Fetchproxy bootstrap (fallback) — lift the session cookies (
x-evite-session,evtsession,x-evite-features,csrftoken) from a signed-inevite.combrowser tab via@fetchproxy/bootstrap. Bootstrap runs once; every API call then goes out via plain Nodefetch()with the cookies attached. Opt out withEVITE_DISABLE_FETCHPROXY=1. (Live.)
One tier is intentionally deferred (the resolver is shaped to slot it in):
Fetchproxy as transport (bot-wall retry through the browser bridge) — a fallback only needed if plain
fetchtrips a wall; not observed during discovery.
The thirteen write tools (rsvp, add/update/remove-guest, send, send-message, broadcast, upload-photo, create/update/cancel/reinstate/duplicate event) are confirm-gated (dry-run preview unless confirm: true). The single private client.write() helper attaches the CSRF token via one centralized header (CSRF_HEADER = X-CSRFToken; the csrftoken cookie rotates mid-session, so it's read fresh per request). Endpoints span three bases — REST /services/…, the legacy /ajax/event/{id}/… guest list, and the /tsunami/… messaging service — all live-verified; a couple of request bodies remain assumed (#3).
Development
npm install # resolves @chrischall/mcp-utils from a local tarball (see issue #4)
npm run build
npm testDocs & roadmap
Design spec:
docs/superpowers/specs/2026-05-31-evite-mcp-design.mdPlan 1 (scaffold + spike):
docs/superpowers/plans/2026-05-31-evite-mcp-scaffold-and-spike.mdPlan 2 (auth + read tools):
docs/superpowers/plans/2026-05-31-evite-mcp-auth-and-reads.mdInternal API reference (verified from a live session):
docs/EVITE-API.md
Open work: #3 — write endpoints + CSRF are now live-verified; only a couple of request bodies (send / send-message) remain assumed. #4 tracks publishing the shared lib. (Discovery #1, tier-1 email/password login #2, and the read tools are done.)
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/evite-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server