Skip to main content
Glama
montaguegabe

luma-events-mcp

by montaguegabe

Luma Events MCP Server

An MCP server for the Luma Events API. Create, update, and manage events and guests.

Current Status

This server works well for managing and tweaking existing events. However, event creation has limited options—some settings like registration mode (approval required vs. open registration) aren't yet exposed. Event duplication is also not currently supported.

Contributions welcome to expand the available event settings.

Related MCP server: Pulumi Events MCP

Requirements

Development

uv run mcp dev luma.py

Installation

Add to your MCP client config:

{
  "mcpServers": {
    "luma-events": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/luma",
        "run",
        "python",
        "-m",
        "luma"
      ],
      "env": {
        "LUMA_API_KEY": "your-api-key"
      }
    }
  }
}

Available Tools

9 tools
add_hostA

Add a host to a Luma event.

Args:
    event_id: The unique identifier of the event (e.g., "evt-ABC123")
    email: Email address of the host to add
    name: Name of the host (ignored if they already have a Luma profile)

Returns:
    Result of adding host or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
emailYes
event_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It discloses one useful behavior, that name is ignored if a Luma profile exists, and mentions a generic result/error return, but it does not cover permissions, duplicate-host behavior, idempotency, or side effects such as notifications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well organized: a clear purpose sentence, an Args list, and a Returns line. Every sentence provides useful information, with no filler, and the core purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple three-string-parameter mutation with an output schema, the description covers the resource, all parameters with useful semantics, one edge-case behavior, and the return shape. It lacks explicit usage exclusions and deeper behavioral caveats, but an agent can select and invoke the tool correctly for the stated purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates well by adding an example format for event_id, clarifying email's role, and explaining the behavior of name for existing Luma profiles. It does not specify email validation or explicitly note name's optionality, but the provided semantics are sufficient for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-object statement, 'Add a host to a Luma event,' which clearly identifies the action and resource. This distinguishes it from sibling tools such as list_events, get_guests, and update_event, none of which perform host addition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives or provide when-not-to-use guidance. The intended usage is only implied by the tool's purpose and name, so the agent must infer that this is the tool for adding hosts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_eventB

Create a new Luma event.

Args:
    name: The title of the event
    start_at: Start time in ISO 8601 format (e.g., "2024-12-31T23:59:00Z")
    location: Event location with place_id (Google Maps) and optional description
    end_at: End time in ISO 8601 format (optional)
    description_md: Event description in Markdown format (optional)
    cover_url: URL for the event cover image (optional)

Returns:
    The created event data or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
end_atNo
locationYes
start_atYes
cover_urlNo
description_mdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the return value ('created event data or an error message') but does not disclose whether creation is idempotent, whether authentication or specific permissions are required, whether the operation is reversible, or what side effects occur. The verb 'create' implies mutation but adds no depth beyond that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the one-line purpose, followed by a cleanly organized Args list and a Returns line. Every section earns its place and there is no fluff. It is appropriately sized for a six-parameter tool, though the per-parameter descriptions are minimal rather than richly detailed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All six parameters and the return value are covered, and an output schema exists so return-format detail is unnecessary. However, for a mutation tool with zero annotations and several query-like siblings, the description lacks sibling routing, auth/prerequisite information, and side-effect disclosure, leaving an agent to guess when this is the correct call and what the consequences are.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at 0%, the description fully compensates by documenting all six parameters with meaningful semantics: name is the title, start_at/end_at get ISO 8601 format with a concrete example, location is explained as a place_id from Google Maps with optional description, and optionality flags are provided for the four optional fields. This goes well beyond the bare schema names, though the descriptions are terse and only start_at gets a full example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence 'Create a new Luma event.' names a specific verb (create) and resource (Luma event), which makes the purpose immediately clear. It also implies differentiation from sibling tools like list_events, get_event, and update_event by the verb alone, even though those siblings are not explicitly named.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives such as update_event for modifying an existing event or list_events for viewing. The use case is only implied by the verb 'create'; there are no prerequisites, no exclusions, and no mention of sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_all_past_guestsA

Get all unique guests from all past events.

Returns:
    De-duplicated list of Guest objects (by email)
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden. It clearly discloses the de-duplication key (email), the source scope (all past events), and the return shape (list of Guest objects). It does not cover edge cases like empty results or ordering, but for a zero-parameter read tool this is solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short lines, no filler. The core behavior is front-loaded and the return format is stated separately and clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only lookup with an output schema available, the description provides everything an agent needs: what the tool returns and how results are deduplicated. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is effectively complete and there is nothing for the description to add. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (get), resource (guests), and scope (all past events), and adds the de-duplication behavior. The description makes clear this tool is different from generic guest-listing siblings like get_guests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The scope is implied by context: use this when you need unique guests from past events. However, there is no explicit statement of when not to use it or what alternatives like get_guests or list_events are better for.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_eventA

Get details about a Luma event.

Args:
    event_id: The unique identifier of the event (e.g., "evt-ABC123")

Returns:
    The event data or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. It states the input (event_id) and the return ('event data or an error message'), but does not explicitly confirm it is read-only, describe error conditions, or mention any side effects. The 'Get' wording implies safety, and the error-message note adds transparency, so this is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-organized: a one-line purpose, an Args section, and a Returns section. Every sentence earns its place, and the key purpose is front-loaded. There is no unnecessary detail or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter get operation with an output schema, the description covers the essential invocation details: what the tool does, what identifier to pass, and what to expect back. It does not address API-specific behaviors like auth or rate limits, but those are less critical for a simple read-by-id tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only the field name and type with no description, so the description's Args section is essential. It explains that event_id is the unique identifier and gives a concrete example format ('evt-ABC123'), adding real meaning beyond the schema. It does not restate that the parameter is required, but the schema already marks it required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Get details about a Luma event', clearly stating a specific verb and resource. It differentiates this from guest-related getters (get_guest, get_guests) by focusing on the event, though it does not explicitly contrast with list_events or the mutation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing 'Get details about a Luma event' implies this tool is for retrieving a single event's details by ID, which provides some usage context. However, it does not mention when to use list_events instead, nor does it explicitly exclude alternatives like get_guest or get_guests.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_guestA

Get a specific guest for a Luma event.

Args:
    event_id: The unique identifier of the event (e.g., "evt-ABC123")
    guest_id: The unique identifier of the guest

Returns:
    Guest data or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes
guest_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only mentions that guest data or an error message is returned; it does not state read-only intent, auth requirements, not-found behavior, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: a clear leading purpose sentence, followed by Args and Returns sections with no filler. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with two required parameters and an output schema, the description covers the inputs and return. It lacks usage guidance and behavioral detail, but it is complete enough to invoke the tool correctly for its core purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does add the semantic roles ('unique identifier of the event' and 'unique identifier of the guest') and an example format for event_id, but guest_id remains under-specified with no example or format hint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: get a specific guest for a Luma event. This clearly distinguishes it from sibling tools like get_guests or get_event, since it is scoped to one guest.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use the tool: when a single guest is needed. However, it never explicitly contrasts it with sibling alternatives such as get_guests for listing all guests or get_all_past_guests, so an agent must infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_guestsB

Get all guests for a Luma event.

Args:
    event_id: The unique identifier of the event (e.g., "evt-ABC123")

Returns:
    List of guests or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
event_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states return type ('List of guests or an error message') but discloses nothing about permissions, scope of 'all' (current vs past), pagination, or side effects. The ambiguous scope is especially relevant given the get_all_past_guests sibling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At one summary line plus args/returns, the description is compact and well-structured. The most important information (what the tool does) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter getter, the description covers the essentials: action, parameter, example, return. But it remains terse and does not clarify the distinction with get_all_past_guests or any constraints on guest lists, leaving an agent to guess about behavioral boundaries.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides only the property name and type with 0% coverage, so the description's argument section is the main documentation. It explains event_id as 'unique identifier of the event' and gives a concrete example format 'evt-ABC123', which adds real meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a clear verb-resource pair: 'Get all guests for a Luma event' and highlights the plural 'all guests' scope, which separates it from get_guest. It does not explicitly contrast with get_all_past_guests, leaving a small sibling distinction gap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool over siblings. The description does not mention that get_all_past_guests should be used for past events or get_guest for a single guest, so an agent gets no selection help.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_eventsA

List all events for the default calendar.

Returns:
    List of events or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears the transparency burden. It discloses that this is a listing operation returning a list or an error message, which covers the basic behavior, but it omits potential details such as pagination, ordering, authentication expectations, or any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two compact sentences with the core operation front-loaded and a minimal return-type statement. Every sentence earns its place and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool, the description gives the scope ('default calendar'), the action, and the return shape. An output schema exists to carry event-field details, so the main remaining ambiguity — what 'default calendar' means in context — is minor at this level of complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters and schema coverage is effectively 100%. Per the baseline rule for zero-parameter tools, this is a 4; there is no parameter meaning left for the description to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List all events for the default calendar.' The word 'all' and the scoping to a default calendar distinguish it clearly from siblings like get_event, create_event, and update_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The primary use case is implied by the action phrase, but the description does not explicitly say when to choose this tool over get_event for a single event or how it relates to create_event/update_event. No alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_invitesB

Send invites to guests for a Luma event.

Args:
    event_id: The unique identifier of the event (e.g., "evt-ABC123")
    guests: List of Guest objects with email (required) and name (optional)

Returns:
    Result of sending invites or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
guestsYes
event_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full behavioral burden. It only states 'Send invites' and returns a generic 'Result of sending invites or an error message,' without disclosing side effects, idempotency, required event state, or failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with a one-sentence summary followed by structured Args/Returns sections. It avoids filler, though the Returns sentence is somewhat generic and low-information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter tool, the description maps both parameters and gives a basic return expectation, which is enough for a straightforward call. However, missing behavioral context and usage guidance leave the tool only partially contextualized for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by explaining that event_id is the unique event identifier with an example, and by stating that guests are Guest objects with required email and optional name. It repeats some of the schema's structure but adds limited extra meaning beyond the example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with 'Send invites to guests for a Luma event,' a specific verb+resource that clearly states the tool's purpose. This distinguishes it from the read-only sibling tools such as list_events and get_guests, and from add_host/update_event.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use guidance, exclusions, or alternative tool routing is provided. An agent must infer from the wording that sending invites is the intended operation, but the description does not clarify how it compares to add_host or other event-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_eventA

Update an existing Luma event.

Args:
    event_id: The unique identifier of the event to update (api_id)
    name: New title for the event (optional)
    description_md: New description in Markdown format for the event (optional)
    start_at: New start time in ISO 8601 format (optional)
    end_at: New end time in ISO 8601 format (optional)
    cover_url: New URL for the event cover image (optional)
    location: New event location (optional)

Returns:
    The updated event data or an error message
ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
end_atNo
event_idYes
locationNo
start_atNo
cover_urlNo
description_mdNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries full burden. It discloses the update action and return ('updated event data or an error message'), but doesn't state whether this is a partial patch, what permissions are needed, or side effects on existing data. These are meaningful gaps for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One-line purpose, compact Args list, brief Returns line. No filler; all listed info adds value beyond the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all parameters and return behavior, and an output schema exists for return shape. But lacks usage guidance, explicit patch semantics, and permission/error context; with no annotations, this leaves gaps for an agent deciding to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, the description explains every parameter: event_id as api_id, name, description_md as Markdown, start_at/end_at as ISO 8601, cover_url as URL. It adds format and optionality meaning beyond schema titles. Location gets only 'New event location' without GeoAddress detail, so not perfect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States 'Update an existing Luma event' – a specific verb and resource. The word 'existing' differentiates it from create_event, and update vs get/list makes sibling distinctions evident. No ambiguity about what operation occurs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternative guidance. It doesn't mention that create_event is for new events or that get_event/list_events are for reads; usage is only implied by 'Update an existing'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 9 tool updatesv0.1.0
    • First observedadd_host
    • First observedcreate_event
    • First observedget_all_past_guests
    • First observedget_event
    • First observedget_guest
    • First observedget_guests
    • First observedlist_events
    • First observedsend_invites
    • First observedupdate_event

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct resource and action: events (list/get/create/update), guests (get/get_all/get for event), hosts (add), and invitations (send). No two tools appear to do the same thing, and singular/plural guest tools are clearly differentiated.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, such as list_events, create_event, update_event, and send_invites. The naming style is uniform and predictable across the entire server.

Tool Count5/5

Nine tools is a well-scoped count for an event management server. Each tool covers a meaningful operation without unnecessary redundancy or bloat.

Completeness4/5

The tool surface covers the core event lifecycle (create, read, update, list) and guest-related workflows (view guests, send invites, add hosts). Minor gaps exist, such as no delete/cancel event or remove host, but these are workarounds rather than dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers