MCP App Store
by KeenEthics

Overview

Whether you're getting into AI or training for a fall marathon, you can find likeminded people on Luma. Join a paper reading or run club to get one step closer to your goals. Luma powers millions of events around the world. So whether you're into knitting or kiting, you'll be able to find something to join. If you're hosting an event, you can use this connector to help keep track of and manage your upcoming events.

Tools

add_calendar_event

ChatGPT
List an existing event on a calendar you manage, without making the calendar a host. Pass a Luma event with { platform: 'luma', event_id }, or an event hosted off Luma with { platform: 'external', url, name, start_at, duration_interval, timezone } plus optional geo_address_json and free-text host. It's approved immediately unless submission_mode is pending. If the Luma event already has a pending submission, automatic approval approves it and notifies its original submitter. To make a new event the calendar hosts, use create_event instead. Undo the listing with remove_calendar_events; delivered notifications cannot be recalled.

add_calendar_to_organization

ChatGPT
Move a team calendar you manage into an organization you admin (see list_organizations). The calendar gets the organization's plan, and any Luma Plus subscription it had on its own is canceled. Personal calendars and calendars already in another organization can't be added. Returns the same calendar shape as get_calendar.

add_host

ChatGPT
Add a host to an event you manage, by email. manager hosts (the default) can edit the event and its guests; check-in hosts can only check guests in at the door; none hosts appear on the event page without management access. Hidden hosts (is_visible: false) get access without appearing on the event page; check-in hosts are always hidden. The person is emailed an invite, and gets a Luma account if they don't have one. Adding existing check-in staff as manager upgrades them; use update_host for other changes to an existing host. Only works on standalone events, not series. Returns the event's hosts, hidden ones included.

add_organization_admins

ChatGPT
Make people admins of an organization you admin, by email. Organization admins get full manage access to every calendar in the organization, can add and remove other admins, and manage its plan. Each new admin is emailed, and anyone without a Luma account gets one; existing admins are skipped. Returns the organization's admins after the add.

add_registration_question

ChatGPT
Add a question guests answer when registering for an event you manage. It's appended after the existing questions; use reorder_registration_questions to move it. question_type picks the kind of answer: text (set multiline for a text area), select (with options; set multiple for multi-select), agree-check, phone-number, url, company (set collect_job_title to also ask for a job title), terms (a link or markdown content_md guests must accept), or a social profile: instagram, linkedin, twitter, github, telegram, youtube. Company, terms, and each social profile type can appear at most once per event, and labels must be unique. Returns the new question with its id.

add_to_membership

ChatGPT
Add someone by email to a free membership tier of a calendar you manage, approved right away. They're added to the calendar's contacts if they aren't already, and get the tier's welcome email, which uses one of the calendar's weekly sends. Only free tiers: paid tiers have to be joined by the member, or comped in the Luma app. Fails if they already have a membership; use update_membership_status to approve a pending one. Confirm with the user before adding.

apply_calendar_contact_tag

ChatGPT
Tag up to 500 contacts on a calendar you manage. People who aren't contacts of the calendar are skipped and counted in skipped_count; add them with import_calendar_contacts first. Contacts who already have the tag are unchanged.

apply_calendar_event_tag

ChatGPT
Tag up to 50 Luma events on a calendar you manage, including pending submissions. Pass event IDs (evt-) from list_calendar_events. External listings and events not on the calendar are skipped and counted in skipped_count. Events that already have the tag are unchanged.

approve_calendar_events

ChatGPT
Approve up to 50 pending event submissions on a calendar you manage. Find submissions with list_calendar_events using status: 'pending', then pass their ids. Each event becomes visible on the calendar and its submitter is notified. This preserves any management access granted with the submission. Only pending submissions can be approved. Each ID succeeds or fails on its own; failures are listed under errors.

create_blast

ChatGPT
Email a message to the guests of an event you manage — now, or at scheduled_for. Goes to going (approved) guests unless you pass recipient_groups, which can target other statuses or only holders of a ticket type. Blasts go out in the background, count against the calendar's send limit, and can't be recalled once sent, so confirm the message and audience with the user first. Returns the blast, with status: 'scheduled' until it's sent.

create_calendar

ChatGPT
Create a team calendar you manage, for publishing a series of events and building an audience. Only the name is required; a default avatar and matching tint color are picked when omitted. Optionally set the city (location: { type: 'lookup', query: 'Miami Beach, FL' }), launch status, website, and social handles, in the same formats as update_calendar. Pass organization_id to create it inside an organization you admin, on the organization's plan. Add events with create_event. Returns the same calendar shape as get_calendar.

create_calendar_contact_tag

ChatGPT
Create a tag for organizing contacts on a calendar you manage. Tag names are unique per calendar. Apply it with apply_calendar_contact_tag or while importing with import_calendar_contacts. Returns the calendar's contact tags.

create_calendar_event_tag

ChatGPT
Create a tag for grouping events on a calendar you manage, such as “Workshops” or “Meetups”. Visitors can filter the calendar page by tag. Tag names are unique per calendar. Apply it with apply_calendar_event_tag. Returns the calendar's event tags.

create_coupon

ChatGPT
Create a coupon code that guests enter when registering. Pass event_id for one event, or calendar_id for a code that works on every event on the calendar; an event's own coupon with the same code takes priority. The discount is a percent, or a fixed amount in the currency's smallest unit (cents for USD). Pass ticket_type_id (event coupons only) to limit it to one ticket type; if that type is hidden, the code unlocks it, and percent_off: 0 makes an unlock code that keeps the price. Unlimited uses unless you pass remaining_count. Codes are case-insensitive and must be unique on the event or calendar. The code, discount, and ticket type can't be changed later. Returns the coupon.

create_event

ChatGPT
Create an event on a calendar you manage (see list_calendars). Events are public by default; pass visibility to change this. Queues a confirmation email to the host. For in-person venues, prefer geo_address_json: { type: 'lookup', query }; unmatched addresses are stored as text. Use search_places first for ambiguous venues. For online events, pass meeting_url, or create_meeting to have Luma create a Zoom or Google Meet link. Omit all location fields for location TBD. Require registration approval with ticket_types[].require_approval: true. Pass registration_questions to collect answers at registration; see add_registration_question for question types. Returns the get_event manage view, including the event URL.

create_ticket_type

ChatGPT
Add a ticket type to an event you manage. Returns the new ticket type.

delete_blast

ChatGPT
Delete a blast on an event you manage. Deleting a scheduled blast cancels the send. Deleting a sent blast removes the post from the event page, but the emails already delivered stay delivered. Confirm with the user first.

delete_calendar_contact_tag

ChatGPT
Delete a contact tag on a calendar you manage and take it off every contact that has it. The contacts themselves stay. Confirm with the user first. Returns the calendar's remaining contact tags.

delete_calendar_event_tag

ChatGPT
Delete an event tag on a calendar you manage and take it off every event that has it. The events themselves stay on the calendar. Confirm with the user first. Returns the calendar's remaining event tags.

delete_registration_question

ChatGPT
Delete a registration question from an event you manage. Guests' existing answers are preserved and remain visible in guest details. Confirm with the user first when the event has registrations.

delete_ticket_type

ChatGPT
Delete a ticket type from an event you manage. Guests already registered with it keep their tickets, so confirm with the user first when the type has registrations. Fails if it's the event's last visible ticket type.

get_calendar

ChatGPT
Get information about a calendar that you have manage access for.

get_event

ChatGPT
Get information for an event, scoped to your role. Managers get full settings (view: 'manage'): the description as description_md markdown, hosts with contact info, ticket_types, registration_questions (with the IDs the question tools take), and guest_counts by status. Guests, invitees, and non-manager hosts get the guest-facing event summary (view: 'guest'), with location and meeting details once approved. Public events can be looked up by anyone (view: 'public'); private events you have no connection to return not found.

get_event_feedback_summary

ChatGPT
Get the post-event ratings for an event you manage: how many guests rated it, the average, and how many gave each rating. Ratings are 1-5 stars, not a 0-10 NPS scale. This counts every rating, including ones without a written comment. Use list_event_feedback for the written comments.

get_guest

ChatGPT
Get detailed information for a guest on an event you manage, including contact information, registration answers, check-in code, tickets, and order and refund amounts. id can be the guest ID (gst-), ticket key, guest key (g-), or the user's email.

get_self

ChatGPT
Get the authenticated user (the Luma account whose OAuth token is in use), including their public profile: username, bio, website, and social handles.

import_calendar_contacts

ChatGPT
Add up to 500 people to the contacts of a calendar you manage, by email, so you can invite them to events and send them newsletters. Nobody is emailed. Imports run in the background and count against the calendar's import limit; people who are already contacts don't count, so re-importing them is a way to tag them in bulk. Existing Luma users keep their own name. Optionally tag everyone in the import with existing contact tags (see list_calendar_contact_tags).

invite_guests

ChatGPT
Email invites to up to 100 guests for an event you manage. Sends run in the background and count against the calendar's send limit. Existing invitees and registrants are skipped; unsubscribed people and those blocking the host are also skipped and listed under skipped. Resolve names without emails through search_people first, asking the user to disambiguate plausible matches before inviting.

list_blasts

ChatGPT
List the blasts (emails to guests) on an event you manage, newest first. Each has the message as content_md markdown, its audience as recipient_groups, and for sent blasts the recipient_count and email_open_count. status is scheduled until the send finishes, then sent; quarantined means it's held for review. can_reschedule is true until a blast is sent.

list_calendar_admins

ChatGPT
List the direct admins of a calendar you manage. Admins of the calendar's organization also manage it but aren't listed here; see list_organization_admins.

list_calendar_contact_tags

ChatGPT
List the tags used to organize contacts on a calendar you manage. Returns tag IDs, names, and colors. Use the IDs or names to filter list_calendar_contacts.

list_calendar_contacts

ChatGPT
List or search the audience of a calendar you manage, without needing an event. Returns names, emails, tags, registration and check-in counts, revenue in USD cents, and membership details. Search by name or email; filter by tag names or IDs (matching any tag), membership tier, or membership status. Use list_calendar_contact_tags to find available tags. Sort by join date (created_at, the default), name, registrations (event_approved_count), check-ins (event_checked_in_count), or revenue. Always sorted descending: newest first for join date, highest first for counts and revenue, Z–A for names. Paginated.

list_calendar_event_tags

ChatGPT
List the tags used to group events on a calendar you manage. Returns tag IDs, names, and colors. list_calendar_events shows each event's tags by name.

list_calendar_events

ChatGPT
List events on a calendar you manage (see list_calendars), including events you don't host. Upcoming events sort soonest-first; past events newest-first. platform: 'luma' entries are Luma events: access: 'manage' permits editing; access: 'view' means listed events managed elsewhere, with city-level locations. Pending submissions have access: 'view' until approved. Use get_event for full details. platform: 'external' entries are listings for events hosted off Luma: url links to the event elsewhere and host is free text. They have no access, and the event tools (get_event, update_event, guests) don't apply; only approve_calendar_events / reject_calendar_events apply while pending, and remove_calendar_events once approved. Paginated.

list_calendars

ChatGPT
List calendars you manage — as a direct admin or through an organization you admin. Sorted by name. Returns the same calendar shape as get_calendar.

list_coupons

ChatGPT
List the coupons on an event or calendar you manage, sorted by code. Pass exactly one of event_id or calendar_id. Calendar coupons work on every event on the calendar but aren't listed under an event. A remaining_count of 1000000 means unlimited, and 0 means used up or invalidated. ticket_type_id is set when the coupon only applies to that ticket type. Paginated.

list_event_feedback

ChatGPT
List the written post-event feedback guests left on an event you manage: each guest's star rating (1-5) and comment, newest first. Ratings without a comment aren't listed, and you can't see who left them, so guests can rate honestly without putting their name on it. get_event_feedback_summary counts every rating. Paginated.

list_events

ChatGPT
List events you're hosting or attending, with your relationship and accessible location or meeting details. Upcoming events sort soonest-first; past events newest-first. Use get_event for full details. Paginated.

list_guests

ChatGPT
List guests registered or invited to an event you manage, including contact information, registration answers, check-in codes, and event_tickets. Use get_guest for a single guest's order and refund amounts in event_ticket_orders. Paginated.

list_membership_tiers

ChatGPT
List the membership tiers of a calendar you manage, including hidden ones (is_hidden). Returns tier IDs, names, pricing (access_info), and registration questions. Use the IDs with add_to_membership or to filter list_calendar_contacts by tier. Paginated.

list_organization_admins

ChatGPT
List the admins of an organization you admin (see list_organizations). Organization admins manage every calendar in the organization.

list_organization_calendars

ChatGPT
List the calendars in an organization you admin (see list_organizations). Sorted by name. Returns the same calendar shape as get_calendar. Paginated.

list_organizations

ChatGPT
List organizations you admin. Organizations group team calendars under one plan. Use an id with list_organization_calendars, list_organization_admins, or add_calendar_to_organization.

list_pending_calendar_events

ChatGPT
List upcoming pending event submissions across every calendar you manage (see list_calendars), soonest first, so you can find the queues that need review without checking each calendar. Pass organization_id (see list_organizations) to only include that organization's calendars. Each entry has the same shape as list_calendar_events with status: 'pending', plus the calendar it was submitted to. Approve or reject with approve_calendar_events / reject_calendar_events using that calendar's id. Paginated.

lookup_entity

ChatGPT
Resolve a Luma URL (luma.com or lu.ma) or slug to an event or calendar's type, ID, and basic details. Use shared links here first, then pass the ID to other tools. Private links expose only basic metadata, not guest lists, private locations, or management access. Returns entity: null if unmatched; this is not a slug availability check.

reject_calendar_events

ChatGPT
Reject up to 50 pending event submissions on a calendar you manage. Find submissions with list_calendar_events using status: 'pending', then pass their ids. Submitters aren't emailed unless you pass notify_submitter: true or a plain-text message explaining the rejection, which is sent to every submitter in the call. Only pending submissions can be rejected; to take an already-approved event off the calendar, use remove_calendar_events. This does not cancel the underlying events. Each ID succeeds or fails on its own; failures are listed under errors.

remove_calendar_admins

ChatGPT
Remove admins from a calendar you manage, by email (see list_calendar_admins). This removes only the direct admin role: organization admins keep managing the calendar through the organization (see list_organization_admins). On a Luma Plus calendar, the paid admin seat count shrinks to match. Every email must belong to a current admin, and at least one admin must remain. Returns the calendar's admins after the removal.

remove_calendar_events

ChatGPT
Remove up to 50 approved events from a calendar you manage, the same as removing them from the calendar dashboard. Find them with list_calendar_events, then pass their ids. Removed events no longer appear on the calendar, their calendar tags are cleared, and any management access the calendar had through the listing is revoked. Submitters are not notified, and the underlying events are not cancelled or changed. Events the calendar hosts itself can't be removed; hide them with update_event (visibility) or cancel them instead. For pending submissions, use reject_calendar_events. Each ID succeeds or fails on its own; failures are listed under errors.

remove_host

ChatGPT
Remove a host from an event you manage, by email (see hosts on get_event). The event creator can't be removed. Returns the event's remaining hosts.

remove_organization_admins

ChatGPT
Remove admins from an organization you admin, by email (see list_organization_admins). This removes only the organization admin role: anyone who is also a direct admin of one of its calendars keeps that access (see list_calendar_admins). Every email must belong to a current admin, and at least one admin must remain. Returns the organization's admins after the removal.

reorder_registration_questions

ChatGPT
Change the order guests see the registration questions in on an event you manage. Pass every question's ID from registration_questions on get_event, in the new order; a list that skips or repeats a question is rejected. Guests' existing answers stay attached. Returns the reordered questions.

search_cover_images

ChatGPT
Search Luma’s gallery of stock event cover images by keyword, e.g. “dinner party” or “hackathon”. Each result has an image_url to pass as cover_url to create_event or update_event, plus a description, tags, and dominant colors to help pick one that fits the event.

search_events

ChatGPT
Search upcoming public events on Luma by keyword. Pass location (free text, geocoded server-side) to return only events in that area — an empty result means nothing matched there, so retry without location for worldwide matches. Or pass latitude/longitude to rank events near that point first, followed by matches from elsewhere. Narrow to a time window with after/before (filtering on event start time) — only upcoming events are searchable. Returns a single ranked page of concise event summaries with any location or meeting details available to you.

search_people

ChatGPT
Find people to invite to an event you manage, limited to members of calendars you admin and imported contacts, ranked by connection strength. Includes this event's approval_status and invited_at. Ask the user before inviting if multiple people plausibly match or the top match is unclear; ranking doesn't prove identity. Results without email can't be invited through invite_guests. Paginated.

search_places

ChatGPT
Search Google Maps for a venue or address and get up to 5 candidates. Use it to confirm the right place with the user before creating or updating an event, then pass the chosen place_id as geo_address_json: { type: 'google', place_id }. Skip it when the address is unambiguous — geo_address_json: { type: 'lookup', query } resolves the top result directly.

unapply_calendar_contact_tag

ChatGPT
Take a tag off up to 500 contacts on a calendar you manage. The tag and the contacts stay; use delete_calendar_contact_tag to delete the tag itself. People who aren't contacts of the calendar are counted in skipped_count.

unapply_calendar_event_tag

ChatGPT
Take a tag off up to 50 events on a calendar you manage. The tag and the events stay; use delete_calendar_event_tag to delete the tag itself. Events not on the calendar are counted in skipped_count.

update_blast

ChatGPT
Edit a blast on an event you manage. Only the fields you pass change. Before a blast is sent, everything can change, including scheduled_for and recipient_groups. After it's sent, only subject and content_md can — that updates the post on the event page, not the emails already delivered. Blasts under review can't be edited. Returns the updated blast.

update_calendar

ChatGPT
Update a team calendar you manage: name, URL slug, short description, avatar (an image already uploaded to the Luma CDN), tint color, launch status, city, website, or social handles (Instagram, X/Twitter, YouTube, TikTok, LinkedIn). Only provided fields change; pass null or an empty string to clear a website or handle. Handles accept a bare handle, an @handle, or a profile URL. A taken slug returns an error; to move a slug between two calendars you manage, change the old calendar's slug first. Set the city with location: { type: 'lookup', query: 'Miami Beach, FL' }, or null to clear it; the calendar's timezone and coordinate follow the city. launched means Active; coming-soon shows a placeholder page while visitors can still follow and submit events; archived stops new follows and visitor event submissions. Personal calendars can't be updated here. Returns the same calendar shape as get_calendar.

update_calendar_contact_status

ChatGPT
Remove, block, or restore a contact on a calendar you manage. removed takes them off your contacts, so they stop getting your invites and newsletters, but they can follow again on their own. blocked also stops them from following the calendar or joining its events. active restores a removed or blocked contact. The contact isn't notified. Contacts with a paid membership can't be removed or blocked here, since that cancels the membership without a refund; the user has to do it in the Luma app. Confirm with the user before removing or blocking.

update_calendar_contact_tag

ChatGPT
Rename or recolor a contact tag on a calendar you manage (see list_calendar_contact_tags). Only the fields you pass change. Returns the calendar's contact tags.

update_calendar_event_tag

ChatGPT
Rename or recolor an event tag on a calendar you manage (see list_calendar_event_tags). Only the fields you pass change. Returns the calendar's event tags.

update_coupon

ChatGPT
Change how many uses a coupon has left or when it's valid, on an event or calendar you manage. Only the fields you pass change; pass null for valid_start_at or valid_end_at to clear it. Coupons can't be deleted: set remaining_count to 0 to invalidate one, and raise it again to reactivate. The code, discount, and ticket type can't change, so create a new coupon for different terms. Returns the updated coupon.

update_event

ChatGPT
Update an event you manage; omitted fields stay unchanged. Changes affect the live event page. For in-person venues, prefer geo_address_json: { type: 'lookup', query }; for online events, use meeting_url, or create_meeting for a new Zoom or Google Meet link. Changes to the name, time, or location can send push notifications; set email_guests: true only when the user also wants email notifications. Returns the get_event manage view.

update_guest_status

ChatGPT
Approve, decline, waitlist, or move back to pending a guest on an event you manage. guest_id accepts the guest ID (gst-), a ticket key, a guest key (g-), or the guest's email. The guest is emailed about the change unless send_email is false. Returns the updated guest.

update_guest_tickets

ChatGPT
Add or remove tickets on a guest of an event you manage, such as moving someone to a VIP ticket or giving them an extra ticket. Added tickets are complimentary ($0) even on paid ticket types and can go over capacity. Removed tickets are invalidated without a refund, and the guest must keep at least one ticket. Ticket IDs are in event_tickets on get_guest; ticket type IDs are in ticket_types on get_event. Guests with a payment in progress can't be changed. Only works on standalone events, not series. Returns the updated guest.

update_host

ChatGPT
Change a host's access level or visibility on an event you manage, by email (see hosts on get_event). manager hosts can edit the event and its guests; check-in hosts can only check guests in at the door and are never shown on the event page; none hosts appear on the event page with no access. Only the fields you pass change. The event creator's access level can't be changed. Returns the event's hosts, hidden ones included.

update_registration_question

ChatGPT
Update a registration question on an event you manage. Only the fields you pass change, and guests' existing answers stay attached. A question's type can't change: delete it and add a new one instead. options and terms replace the current ones in full, so pass the whole list. Returns the updated question.

update_self

ChatGPT
Update your own public Luma profile: name, bio, avatar (an image already uploaded to the Luma CDN), username, website, or social handles (Instagram, X/Twitter, YouTube, TikTok, LinkedIn). Only provided fields change; pass null or an empty string to clear the bio, website, or a handle. Handles accept a bare handle, an @handle, or a profile URL. Changing username moves your profile to https://luma.com/user/<username>; links to the old username stop working and someone else can claim it, so only change it when asked. Email can't be changed here. Returns the same user shape as get_self.

update_ticket_type

ChatGPT
Update a ticket type on an event you manage. Only the fields you pass change. Returns the updated ticket type.

get_calendar

Claude

get_event

Claude

get_guest

Claude

get_self

Claude

list_calendars

Claude

list_events

Claude

list_guests

Claude

search_events

Claude

Capabilities

Writes

Similar Apps