Luma Events MCP Server
The Luma Events MCP Server lets you manage Luma calendar events, guests, invitations, and ticketing through an AI client. Key capabilities:
Event Management
Verify connection – Check your Luma API key and authenticated user
List events – Browse approved or pending events with date filters and pagination
Get event – Retrieve complete details for a single event
Create / Update event – Create or modify events (name, dates, timezone, capacity, location, visibility, registration settings); requires confirmation
Delete event – Preview then permanently cancel/delete an event, with refund handling for paid events (irreversible; requires confirmation)
Guest Management
Get / List guests – Look up a guest by ID, ticket key, or email; list guests filtered by approval status
Add guests – Register guests directly with status, ticket assignment, and optional email notification (requires confirmation)
Update guest status – Change a guest's status (approved, declined, pending, waitlist) with explicit refund choice for paid tickets
Update guest tickets – Add complimentary tickets or remove tickets (non-refunding) for a guest
Registration summary – Count guests by approval state and check-in status without exposing personal identities
Invitations & Waitlist
Send invites – Send soft email (and SMS) invitations to a list of recipients (requires confirmation)
Invite from another event – Build a deduplicated audience from a past event's guests and send soft invitations to a target event, with a privacy-safe preview before confirming
Approve waitlisted guests – Approve up to 90 waitlisted guests per run, resumable for large waitlists, with optional approval email (requires confirmation)
Ticket Types
List / Get ticket types – View all ticket types for an event, including hidden ones
Create / Update ticket type – Create or modify free, paid, or flexible-price ticket types with visibility, capacity, and sale date settings (requires confirmation)
Delete ticket type – Preview then delete a ticket type (blocked if tickets have been sold or it's the last visible option)
Host & Staff Management
Add / Update host – Add or change a visible or hidden event host or check-in staff member (requires confirmation)
Remove host – Preview then remove a host from an event
All write operations require explicit user confirmation via a confirmed parameter, and higher-impact actions return a preview before execution.
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., "@Luma Events MCP Serverlist 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.
Luma Events MCP Server
The Luma Events MCP Server connects AI tools directly to your Luma calendar. It lets agents create and manage events, work with guests and tickets, organize hosts, send invitations, approve waitlists, and summarize registrations through natural-language requests.
Built for event organizers who want Luma operations inside Codex, Cursor, or another modern MCP client—without giving up explicit confirmation before important changes.
This is an independent, community-built project and is not affiliated with or endorsed by Luma.
Version 0.7.4 uses MCP2025-06-18 for compatibility with stable releases
of Codex, Cursor, Claude Code, Gemini CLI, and Grok CLI. Experimental clients
configured to require MCP 2026-07-28 must switch back to 2025-06-18.
For Codex 0.146.0 or newer, run
codex features disable mcp_2026_07_28 before restarting Codex.
Use cases
Event operations: Create, update, inspect, and safely delete events.
Guest management: Add guests, change approval states, and manage guest tickets.
Ticketing: Create free, paid, or flexible-price ticket types and control sales.
Host coordination: Add managers or check-in staff and control public visibility.
Audience growth: Invite people from past events without exposing preview identities.
Registration intelligence: Review attendance, waitlists, and check-ins from aggregate data.
Quick start · Tools · Safety · Examples · Development
Quick start
Prerequisites
Node.js 20 or newer.
A Luma calendar with API access.
A calendar API key from the Luma API settings.
An MCP client that supports the
2025-06-18protocol revision, such as a current version of OpenAI Codex or Cursor.
Your API key controls which calendar the server can access. Treat it like a password: do not commit it, paste it into issues, or include it in screenshots.
Interactive installation
Run the setup wizard without cloning the repository:
npx -y luma-events setupReleases through0.7.2 used the package name
@blackie360/luma-events-mcp. Run the shorter command above once to update
existing client configurations to luma-events.
_ _ _ __ __ _
| | | | | | \/ | / \
| | | | | | |\/| | / _ \
| |___| |_| | | | |/ ___ \
|_____|\___/|_| |_/_/ \_\
EVENTS MCP
Safe setup for your AI clientsThe wizard:
Opens with a compact ASCII banner and numbered setup stages, with color only when the terminal supports it.
Detects installed Codex, Cursor, Claude Code, Gemini CLI, and Grok CLI clients.
Lets you select one, several, or all detected clients with ↑/↓, Space, and Enter. Press
ato select or clear all clients.Prompts you to paste your Luma calendar API key with masked terminal input.
Verifies the key with Luma before changing anything.
Shows the exact installation plan and waits for final confirmation.
Configures each selected client and reports individual successes or failures.
The API key is stored once and is never included in client command arguments or MCP configuration. POSIX systems apply owner-only file permissions; Windows stores the file inside the current user's application-data directory:
Linux and macOS:
~/.config/luma-events-mcp/credentials.jsonWindows:
%APPDATA%\luma-events-mcp\credentials.json
Existing Cursor configuration is merged rather than replaced, and the original file is backed up first. Preview detection without requesting a key or changing configuration with:
npx -y luma-events setup --dry-runClient | Setup adapter |
OpenAI Codex |
|
Cursor | Safe merge into the global |
Claude Code |
|
Gemini CLI |
|
Grok CLI |
|
Restart the configured clients after setup, then ask:
Verify my Luma connection.
Manual installation
Use the following client-specific configuration when you do not want to use the interactive wizard.
Install in OpenAI Codex
Export your Luma API key in the environment that starts Codex:
export LUMA_API_KEY="your-luma-api-key"Add the following to ~/.codex/config.toml:
[mcp_servers.luma-events]
command = "npx"
args = [
"-y",
"--package",
"luma-events@latest",
"luma-events"
]
env_vars = ["LUMA_API_KEY"]Restart Codex or open a new chat, then ask:
Verify my Luma connection.
Codex supports env_vars for forwarding selected local environment variables
to a stdio MCP server. This keeps the key out of the tracked project and the
MCP definition.
Install in Cursor
Add this server to your Cursor MCP configuration:
{
"mcpServers": {
"luma-events": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"--package",
"luma-events@latest",
"luma-events"
],
"env": {
"LUMA_API_KEY": "your-luma-api-key"
}
}
}
}Prefer Cursor's secret or environment-variable support when available instead
of storing the key directly in a configuration file. Restart Cursor, open
Cursor Settings → Tools & MCP, enable luma-events, and verify the
connection.
Install in another MCP client
Any client that supports local stdio MCP servers can launch the npm package:
{
"mcpServers": {
"luma-events": {
"command": "npx",
"args": [
"-y",
"--package",
"luma-events@latest",
"luma-events"
],
"env": {
"LUMA_API_KEY": "your-luma-api-key"
}
}
}
}Configuration syntax and secret handling vary by client. Consult your client's MCP documentation if it uses a different server key or environment format.
Install globally
npm install --global luma-events
luma-events setupRunning luma-events without a subcommand starts the stdio server. It
normally appears idle when run directly because an MCP client is expected to
communicate with it over standard input and output.
Related MCP server: eventbrite-mcp
Confirmation and safety
Every write tool requires confirmed=true. Until then, the server performs no
write and either returns a structured preview or asks the client to show the
proposed arguments.
Higher-impact operations provide additional safeguards:
Event deletion previews the exact event, guest impact, and paid-event refund choice.
Guest status changes require a refund decision when captured paid tickets are involved.
Guest ticket previews explain that additions are complimentary and removals do not refund.
Ticket-type deletion verifies that the ticket belongs to the selected event.
Host removal matches the requested email case-insensitively before proceeding.
Cross-event audience previews return counts rather than guest identities.
Waitlist approvals are limited to resumable batches of 90 guests.
Confirmation makes the intended action explicit; it does not make a destructive action reversible. Review the event, target, notification, and refund details before approving a write.
Tools
The server exposes 23 tools. Read tools are marked read-only in MCP discovery; destructive and potentially non-idempotent operations include matching MCP annotations so clients can apply their own approval policies.
Connection and events
Tool | What it does | Write behavior |
| Checks the API key and returns the authenticated Luma user. | Read-only |
| Lists approved or pending events with date filters and pagination. | Read-only |
| Returns complete details for one event. | Read-only |
| Creates an event with registration, location, visibility, and capacity settings. | Confirmation required |
| Updates selected event fields. | Confirmation required |
| Uses Luma's two-step cancellation flow and reports guest/refund impact. | Preview, confirmation, destructive |
Guests and registrations
Tool | What it does | Write behavior |
| Finds one guest by ID, ticket key, guest key, or email. | Read-only; returns personal data |
| Lists event guests, optionally filtered by approval status. | Read-only; returns personal data |
| Counts registration states and check-ins without returning identities. | Read-only |
| Registers guests as approved, pending approval, or waitlisted. | Confirmation required |
| Moves one guest between approved, declined, pending, and waitlist states. | Preview, confirmation, refund-aware |
| Adds complimentary tickets or invalidates existing tickets. | Preview, confirmation, non-idempotent |
| Approves up to 90 waitlisted guests per resumable run. | Confirmation required |
Ticket types
Tool | What it does | Write behavior |
| Lists visible ticket types and optionally includes hidden ones. | Read-only |
| Returns one ticket type by ID. | Read-only |
| Creates free, paid, or flexible-price ticket types. | Confirmation required |
| Changes pricing, availability, approval, visibility, or sale settings. | Confirmation required |
| Verifies event ownership and previews the exact ticket type. | Preview, confirmation, destructive |
Luma may reject ticket-type deletion when tickets have already been sold or when the target is the event's last visible ticket type.
Hosts
Tool | What it does | Write behavior |
| Adds a visible or hidden manager, check-in host, or no-access host. | Confirmation required |
| Changes a host's access level or public visibility. | Confirmation required |
| Resolves and previews the host before removal. | Preview, confirmation, destructive |
Luma can omit hidden hosts from an event response. When that happens, the removal preview clearly marks the requested email as unverified.
Invitations and audiences
Tool | What it does | Write behavior |
| Sends soft invitations in batches of 100 by email and, when linked, SMS. | Confirmation required |
| Builds a deduplicated audience from earlier events and removes existing target-event guests. | Identity-free preview, confirmation required |
Example prompts
Discover and understand
"Verify my Luma connection."
"Show my upcoming Luma events."
"Summarize registrations for my next event."
"List every ticket type for this event, including hidden tickets."
Manage events and guests
"Prepare an event for Friday at 5 PM, but do not create it until I confirm."
"Add these guests as pending approval after showing me the proposed change."
"Preview approving this guest and tell me whether a refund choice is involved."
"Preview replacing this guest's workshop ticket without sending email."
Grow and operate
"Show how many guests are waitlisted, then approve a safe batch after I confirm."
"Preview guests from my last event who are not already on my next event."
"Invite that previewed audience after I confirm."
"Add this person as hidden check-in staff after I confirm."
"Preview deleting this event, including guest and refund impact."
Screenshots
Discover available capabilities

List upcoming events

Analyze guest attendance
Guest identities have been redacted from this public example.

Configuration
Variable | Required | Default | Description |
| No after setup | Stored credential | Calendar-scoped API key. An environment value overrides the stored key. |
| No |
| Alternate API base for tests or compatible proxies. |
| No | Platform credential path | Override the stored credential file location. |
| No | Platform config directory | Override the setup directory containing |
The server does not load .env files automatically. For source development,
copy the included template and load it into your shell:
cp .env.example .env
set -a
source .env
set +aNever commit .env or LUMA_API_KEY.
Build from source
Clone the repository:
git clone https://github.com/Blackie360/luma-events-mcp.git
cd luma-events-mcpInstall dependencies and build:
corepack enable
pnpm install
pnpm buildStart the local stdio server:
pnpm startThe generated production entry point is dist/index.js. The repository also
includes project-local Cursor configuration, MCP plugin configuration, and
Codex/Cursor plugin manifests.
Development
# Type-check the project
pnpm check
# Build and run the complete test suite
pnpm test
# Inspect the package that would be uploaded to npm
pnpm packprepack runs the compiler and full test suite before creating the archive.
Tests cover confirmation guards, event deletion, API errors, pagination,
resumable waitlist approval, invitation batching, audience deduplication,
refund rules, ticket invariants, host matching, privacy-conscious previews, and
MCP discovery. The integration suite launches the packaged stdio server,
pins negotiation to MCP 2025-06-18, and verifies all 23 tools. Setup tests
cover client detection, selection, masked-secret ordering, API-key verification,
consent, restrictive file permissions, Cursor configuration preservation, and
secret non-disclosure.
Project structure
.
├── .codex-plugin/plugin.json # Codex plugin metadata
├── .cursor/mcp.json # Project-local Cursor configuration
├── .cursor-plugin/plugin.json # Cursor plugin metadata
├── .github/workflows/ # Trusted npm publishing workflow
├── .mcp.json # Plugin MCP server configuration
├── docs/images/ # Redacted README screenshots
├── scripts/prepare-release.mjs # Automatic release version synchronization
├── src/index.ts # Server and Luma API integration
├── src/index.test.ts # Unit tests
├── src/mcp.integration.test.ts # MCP integration tests
├── src/setup.ts # Interactive multi-client setup wizard
├── src/setup.test.ts # Setup and credential-safety tests
├── package.json
└── tsconfig.jsonAutomatic release process
Every non-release commit that reaches main—through a direct push or a merged
branch—runs .github/workflows/publish.yml. The serialized workflow:
Uses the version in
package.jsonwhen that version has not been published.Otherwise advances the highest published stable version by one patch.
Synchronizes the npm package, runtime, Codex, and Cursor versions.
Runs the type-checker, all tests, the production build, and
git diff --check.Commits generated release metadata when needed and creates the matching tag.
Publishes through npm trusted publishing and creates a GitHub Release.
Release commits use chore: release vX.Y.Z and are pushed with the workflow's
GITHUB_TOKEN, so GitHub does not create a recursive workflow run. The
workflow concurrency guard ensures that only one npm publication runs at a
time. Maintainers can also start the same process manually with
Actions → Publish npm package → Run workflow.
Security and privacy
Use a calendar-scoped API key with only the access the integration needs.
The setup wizard stores the key once, uses owner-only permissions on POSIX, and keeps it out of client arguments.
Keep API keys, guest information, and registration answers out of commits and issues.
Prefer
registration_summarywhen aggregate counts are enough.Use
list_guestsandget_guestonly for legitimate event operations.Review every preview before confirming guest, ticket, host, invitation, or deletion writes.
Remember that disabling email does not necessarily suppress Luma's in-app notification.
Rotate a key immediately if it is exposed.
To report a vulnerability, use a private security report rather than a public issue whenever possible.
Contributing
Contributions are welcome:
Fork the repository.
Create a focused branch.
Add or update tests for the change.
Run
pnpm checkandpnpm test.Open a pull request that explains the change and its motivation.
Do not include real API keys, guest identities, or private event data in tests, commits, issues, or pull requests.
Support
Report bugs and request features through GitHub Issues.
Review published changes in GitHub Releases.
Install the latest package from npm.
API
The server uses Luma's official API at https://public-api.luma.com. Request
shapes are based on Luma's
OpenAPI specification. API keys are
scoped to the calendar and permissions configured in Luma.
License
This project is available under the MIT License.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceAn MCP server for the Luma Events API that enables creating, updating, and managing events and guests.Last updated6
- Alicense-qualityDmaintenanceAn MCP server that provides comprehensive event management and ticketing capabilities through the Eventbrite API v3.Last updated69MIT
- Flicense-qualityBmaintenanceMCP server for managing events on Meetup.com and Luma via AI assistants like Claude.Last updated2
- Flicense-qualityDmaintenanceA simple MCP server for event scheduling and automation.Last updated
Related MCP Connectors
MCP server for managing Prisma Postgres.
An MCP server for deep research or task groups
A MCP server built for developers enabling Git based project management with project and personal…
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/Blackie360/luma-events-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server