Luma Events MCP Server

Luma Events MCP Server

An MCP server for managing Luma events, including listing, creating, updating events and guest registrations with privacy-conscious summaries.

Category
Visit Server

README

Luma Events MCP Server

An open-source Model Context Protocol (MCP) server for managing Luma events from MCP-compatible AI clients.

The server connects to the calendar associated with your Luma API key. It can list and inspect events, create or update events after explicit confirmation, inspect guest registrations, and return privacy-conscious registration summaries.

Features

  • Verify the configured Luma API connection.
  • List approved or pending calendar events.
  • Retrieve complete details for an event.
  • Create events after explicit user confirmation.
  • Update event details and registration settings after explicit confirmation.
  • List guests for event operations.
  • Count registration states and check-ins without returning guest identities.
  • Paginate automatically when producing registration summaries.

Write operations are guarded by a required confirmed value. MCP clients should show the proposed event details to the user and obtain explicit approval before calling a write tool.

Screenshots

Discover available capabilities

The Luma Events MCP server describing its available tools and confirmation safeguards

List upcoming events

The Luma Events MCP server listing upcoming calendar events

Analyze guest attendance

Guest identities have been redacted from this public example.

Aggregate guest attendance insights with guest names redacted

Available tools

verify_connection

Checks the API key and returns the authenticated Luma user.

list_events

Lists calendar events. Supports date ranges, approval status, pagination limits, and pagination cursors.

get_event

Returns complete details for a single event.

create_event

Creates an event after explicit confirmation. Supports event names, dates, timezones, descriptions, capacity, online meeting URLs, physical locations, visibility, registration, waitlist, and guest-list settings.

update_event

Updates selected event fields after explicit confirmation.

list_guests

Lists event guests, optionally filtered by approval status. This tool may return personal information and should only be used for legitimate event operations.

registration_summary

Returns totals by registration state and the number of checked-in guests without exposing names or email addresses.

Requirements

  • Node.js 20 or newer
  • pnpm
  • A Luma calendar with API access
  • A Luma API key
  • An MCP-compatible client such as Cursor or Codex

Getting a Luma API key

Generate a calendar API key by following the Luma API documentation. The key determines which calendar the server can access.

Treat the key as a secret. Never commit it, include it in screenshots, or place it directly in a tracked MCP configuration file.

Installation

Clone the repository and enter this plugin directory:

git clone https://github.com/Blackie360/luma-events-mcp.git
cd luma-events-mcp

Install dependencies and build the server:

corepack enable
pnpm install
pnpm build

The production entry point is generated at dist/index.js.

Configuration

The server requires the following environment variable:

export LUMA_API_KEY="your-luma-api-key"

An optional API base URL can be supplied for testing or compatible proxies:

export LUMA_API_BASE="https://public-api.luma.com"

The server does not load .env files automatically. For local development, you can create an ignored .env file and load it into your shell before running the server:

set -a
source .env
set +a

Example .env:

LUMA_API_KEY=your-luma-api-key

Running locally

Build and start the stdio MCP server:

pnpm build
pnpm start

The process communicates over standard input and output, so it normally appears idle when started directly. An MCP client is expected to launch and communicate with it.

Connecting an MCP client

Configure your client to run the built server with Node.js. Use absolute paths unless the client supports a working-directory option.

{
  "mcpServers": {
    "luma-events": {
      "command": "node",
      "args": ["/absolute/path/to/plugins/luma-events/dist/index.js"]
    }
  }
}

Make LUMA_API_KEY available to the environment that launches your MCP client, or use the client's secure secret/environment-variable configuration. Restart the client after updating its environment or MCP configuration.

This repository also includes:

  • .mcp.json for clients that support plugin-provided MCP configuration.
  • .codex-plugin/plugin.json with Codex plugin metadata.

After connecting, ask the client to run verify_connection before using the other tools.

Example prompts

  • "Verify my Luma connection."
  • "Show my upcoming Luma events."
  • "Show the details for the next event."
  • "Summarize registrations for my next event."
  • "Prepare an event for Friday at 5 PM, but do not create it until I confirm."
  • "Close registration for this event after showing me the proposed change."

Development

Run the TypeScript compiler checks:

pnpm check

Build the project:

pnpm build

Run the test suite:

pnpm test

The test suite covers write confirmation, API error reporting, registration pagination, and privacy-conscious summaries.

Project structure

.
├── .codex-plugin/plugin.json  # Codex plugin metadata
├── .mcp.json                  # Plugin MCP server configuration
├── src/index.ts               # MCP server and Luma API integration
├── src/index.test.ts          # Node.js tests
├── package.json               # Scripts and dependencies
└── tsconfig.json              # TypeScript configuration

Security and privacy

  • Never commit LUMA_API_KEY or any .env file.
  • Review requested changes before confirming write operations.
  • Use list_guests only when guest-level data is necessary.
  • Prefer registration_summary when only aggregate counts are required.
  • Keep dependencies updated and report vulnerabilities privately to the maintainers.

Contributing

Contributions are welcome:

  1. Fork the repository.
  2. Create a focused branch.
  3. Add or update tests for your change.
  4. Run pnpm check and pnpm test.
  5. Open a pull request explaining the change and its motivation.

Please avoid including API keys, guest information, or other private event data in issues, tests, commits, or pull requests.

API

The server uses Luma's official API at https://public-api.luma.com. API keys are scoped to the calendar and permissions configured in Luma.

License

This project is available under the MIT License.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured