MCP server
Connect AI assistants like Claude and Cursor to Eventship using the Model Context Protocol. Manage events, attendees, tickets, and more through natural language.
Quick start
Claude Desktop / Claude Code (recommended)
No API key required — authentication is handled automatically via OAuth. Add this to your Claude MCP settings:
{
"mcpServers": {
"eventship": {
"type": "streamable-http",
"url": "https://mcp.eventship.com/mcp"
}
}
}
When you first use the server, you'll be prompted to sign in with your Eventship account. The OAuth flow handles everything automatically.
API keys (for other clients)
Clients that don't support OAuth (like Cursor) can use an API key instead. Both OAuth and API keys support full read and write access. Host management tools require a Pro plan.
- Go to eventship.com/host-profiles
- Navigate to the API keys section
- Create a new key (starts with
es_live_ores_test_)
Setup by client
Claude Desktop / Claude Code
Add to your Claude MCP settings — no API key needed:
{
"mcpServers": {
"eventship": {
"type": "streamable-http",
"url": "https://mcp.eventship.com/mcp"
}
}
}
Cursor
Add to .cursor/mcp.json in your project or global settings. Cursor requires an API key:
{
"mcpServers": {
"eventship": {
"type": "streamable-http",
"url": "https://mcp.eventship.com/mcp",
"headers": {
"Authorization": "Bearer es_live_your_key_here"
}
}
}
}
Local installation (stdio)
For development or advanced usage, run the server locally:
# Install
pip install eventship-mcp
# Run
EVENTSHIP_API_KEY="es_live_your_key_here" eventship-mcp
Then configure your MCP client to use stdio transport:
{
"mcpServers": {
"eventship": {
"command": "eventship-mcp",
"env": {
"EVENTSHIP_API_KEY": "es_live_your_key_here"
}
}
}
}
Available tools
Discovery
| Tool | Description |
|---|---|
search_events |
Search public events by location, keyword, category, host, or date range. Supports past events via include_past and organizer-scoped lookup via host_slug. No API key required. Renders an interactive event carousel in ChatGPT Apps. |
recommend_events |
Get personalized event recommendations based on your profile, interests, and location. Requires OAuth. |
search |
ChatGPT/MCP-spec text search returning {id, title, url} for citation. Biased toward signed-in user's saved location. Renders an interactive event carousel in ChatGPT Apps. Requires OAuth. |
fetch |
ChatGPT/MCP-spec event lookup by slug returning {id, title, text, url, metadata} for citation. Requires OAuth. |
Your events
| Tool | Description |
|---|---|
my_events |
List events you're registered for, optionally filtered by date range (e.g. this week, next month). Upcoming only. Requires OAuth. |
register_for_event |
Register for a free event by slug. Handles registration questions. Requires OAuth. |
start_paid_checkout |
Start a paid checkout for an event. Returns a Stripe-hosted URL that the user opens in a browser to enter card details — the MCP server never sees payment info. Once paid, the registration is created automatically via webhook. Requires OAuth. |
Host selection
| Tool | Description |
|---|---|
list_my_hosts |
List the hosts the current user manages. Pass a returned id as host_id to list_events, create_event, or import_event_from_url when you manage more than one. Event-scoped tools (anything taking an event_slug) derive the host from the event and don't need this. OAuth only — API keys are already scoped to a single host. |
Event management
| Tool | Description |
|---|---|
list_events | List events you manage (upcoming and past) |
get_event | Get full event details by slug |
create_event | Create a new event as draft, or publish live immediately |
import_event_from_url | Bring your own event over from another platform (Eventbrite, Luma, Meetup, Partiful) by creating a draft on Eventship. Does not give access to the source event's attendees — it's a one-shot scrape, not a sync. For looking up someone else's event, use search_events + get_event. |
update_event | Update event details |
Attendees
| Tool | Description |
|---|---|
list_attendees |
List event attendees. Name, profile slug, and primary company are always returned. Hosts additionally see email, status, ticket type, check-in, and registration date. Confirmed registered attendees see only the public fields when the host has shared the guest list. |
Broadcast
| Tool | Description |
|---|---|
send_event_broadcast |
Email your event's attendees, with optional filtering by registration status and ticket type. Subject defaults to "📣 {event title} update" if omitted. |
preview_broadcast_recipient_count |
Preview how many recipients a broadcast would reach with the given filters, before sending. |
Ticket types
| Tool | Description |
|---|---|
list_ticket_types | List ticket types for an event |
create_ticket_type | Create a new ticket type (name, price, quantity) |
update_ticket_type | Update a ticket type |
delete_ticket_type | Delete a ticket type (fails if sales exist) |
Registration questions
| Tool | Description |
|---|---|
list_questions | List registration questions for an event |
get_registration_insights | AI-summarized aggregate of confirmed attendees' answers (Pro) |
create_question | Add a registration question (text, select, multiselect, etc.) |
update_question | Update a registration question |
delete_question | Remove a registration question |
Venues
| Tool | Description |
|---|---|
lookup_venue | Search for venues where Eventship events have been held. Returns upcoming events by default; pass include_past=true to switch to strictly past events (most recent first). Modes are exclusive. |
Authentication
| Method | How it works | Scope |
|---|---|---|
| OAuth (Claude) | Automatic — sign in when prompted | All hosts where you are a lead — read and write access |
| API key | Authorization: Bearer es_live_... |
Single host — read and write access |
OAuth is used by Claude Desktop and Claude Code. You sign in with your Eventship account and the server automatically resolves which hosts you manage. No API key needed.
API keys are for clients that don't support OAuth (Cursor, local stdio). Each key is tied to a single host, and the host is automatically resolved from the key — no host ID needed.
Key concepts
- Slugs — Events are identified by URL-friendly slugs
(e.g.
summer-meetup-2026). Use slugs for all event operations. - Timezones — All event times use the event's timezone
(e.g.
America/Los_Angeles), not UTC. - Event statuses —
draft→live→cancelled. Events past their end date show as "completed" in the UI. - Draft & live — Events are created as drafts by default.
Set
publish: trueto go live immediately, or publish later from the dashboard.
Examples
Create an event
Ask your AI assistant:
"Create a free networking event called 'SF Founders Happy Hour'
on July 15th at 6pm at The Battery in San Francisco."
The assistant calls create_event with the title, date, venue, and address.
The event is created as a draft by default, or published live if requested.
Check attendees
"Show me who has registered for my next event."
The assistant calls list_events, then list_attendees for the upcoming event.
Search for events
"Find tech events happening in San Francisco this month."
The assistant calls search_events with SF coordinates, a query for "tech",
and a date range for the current month.
Support
- Email: [email protected]
- REST API reference: developer.eventship.com
- Website: eventship.com