Skip to main content
Glama

discord_create_event_invite

Create a shareable invite URL that links recipients directly to a scheduled Discord event when they join. Specify event and server IDs, plus a channel for external events.

Instructions

Create a shareable invite URL that points to a scheduled event, so recipients land on the event when joining. Requires the Create Instant Invite permission. Returns the invite URL. EXTERNAL events need channel_id; other events reject it and use their own channel. For a plain channel invite with no event attached, use discord_create_invite.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "guild_id": "<guild_id>",
      "event_id": "<event_id>"
    },
    "name": "discord_create_event_invite"
  }
}

Input Schema

NameRequiredDescriptionDefault
max_ageNoInvite lifetime in seconds, 0–604800 (7 days); 0 means it never expires. Default 86400 (24h).
event_idYesID (snowflake) of the scheduled event to link the invite to.
guild_idYesDiscord server (guild) ID (snowflake).
max_usesNoMaximum number of uses, 0–100; 0 means unlimited. Default 0.
channel_idNoChannel (snowflake) the invite points to. Required for EXTERNAL events, which have no channel of their own. Omit it for VOICE and STAGE_INSTANCE events: they always use their own channel, and passing one fails.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.3.0
    • changedInput schema / properties / channel_id / description
      Previous value: -"Channel (snowflake) the invite points to. Defaults to the event's own channel; REQUIRED for EXTERNAL events, which have none."New value: +"Channel (snowflake) the invite points to. Required for EXTERNAL events, which have no channel of their own. Omit it for VOICE and STAGE_INSTANCE events: they always use their own channel, and passing one fails."
  2. Changed1 schema field changedv2.2.0
    • addedInput schema / additionalProperties
      Added value: +false
  3. Changed14 schema fields changedv2.0.0
    • changedInput schema / properties / channel_id / description
      Previous value: -"Channel (snowflake) the invite points to. Defaults to the server's first text channel if omitted."New value: +"Channel (snowflake) the invite points to. Defaults to the event's own channel; REQUIRED for EXTERNAL events, which have none."
    • addedInput schema / properties / channel_id / pattern
      Added value: +"^\\d{17,20}$"
    • addedInput schema / properties / event_id / pattern
      Added value: +"^\\d{17,20}$"
    • addedInput schema / properties / guild_id / pattern
      Added value: +"^\\d{17,20}$"
    • addedInput schema / properties / max_age / default
      Added value: +86400
    • changedInput schema / properties / max_age / description
      Previous value: -"Invite lifetime in seconds; 0 means it never expires. Default 86400 (24h)."New value: +"Invite lifetime in seconds, 0–604800 (7 days); 0 means it never expires. Default 86400 (24h)."
    • addedInput schema / properties / max_age / maximum
      Added value: +604800
    • addedInput schema / properties / max_age / minimum
      Added value: +0
    • changedInput schema / properties / max_age / type
      Previous value: -"number"New value: +"integer"
    • addedInput schema / properties / max_uses / default
      Added value: +0
    • changedInput schema / properties / max_uses / description
      Previous value: -"Maximum number of uses; 0 means unlimited. Default 0."New value: +"Maximum number of uses, 0–100; 0 means unlimited. Default 0."
    • addedInput schema / properties / max_uses / maximum
      Added value: +100
    • addedInput schema / properties / max_uses / minimum
      Added value: +0
    • changedInput schema / properties / max_uses / type
      Previous value: -"number"New value: +"integer"
  4. Changed5 schema fields changedv1.6.0
    • changedInput schema / properties / channel_id / description
      Previous value: -"Channel for the invite. Uses the first text channel if omitted."New value: +"Channel (snowflake) the invite points to. Defaults to the server's first text channel if omitted."
    • addedInput schema / properties / event_id / description
      Added value: +"ID (snowflake) of the scheduled event to link the invite to."
    • addedInput schema / properties / guild_id / description
      Added value: +"Discord server (guild) ID (snowflake)."
    • changedInput schema / properties / max_age / description
      Previous value: -"Invite duration in seconds (0 = never). Default 86400."New value: +"Invite lifetime in seconds; 0 means it never expires. Default 86400 (24h)."
    • changedInput schema / properties / max_uses / description
      Previous value: -"Max uses (0 = unlimited). Default 0."New value: +"Maximum number of uses; 0 means unlimited. Default 0."
  5. Addedv1.5.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare this is a non-readOnly, non-destructive, non-idempotent, open-world write. The description adds real value beyond that: the required permission, the fact that a URL is returned, and event-type-specific behavior where channel_id is required for EXTERNAL events and rejects for VOICE/STAGE_INSTANCE. It doesn't cover failure modes or what the invite object contains, keeping it short of a 5.

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?

Five short sentences, front-loaded with the core action, then permission, return value, the channel_id edge case, and the sibling pointer. No filler or redundant restatement of the name.

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?

There is no output schema, and the description compensates by stating it returns the invite URL. With annotations covering safety signals and 100% parameter documentation, the definition covers everything an agent needs to select and invoke this write tool correctly.

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 100%, and the schema already spells out max_age, max_uses, event_id, guild_id and the EXTERNAL/VOICE/STAGE_INSTANCE rule for channel_id. The description restates the channel_id branching but adds no additional meaning beyond what the schema documents, so the baseline of 3 applies.

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 states a specific verb and resource (create a shareable invite URL) and a specific scope (linked to a scheduled event, so recipients land on the event). It explicitly distinguishes itself from the sibling discord_create_invite, so an agent can pick correctly without opening schemas.

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

Usage Guidelines5/5

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

Gives an explicit alternative and the condition that selects it: plain channel invite with no event attached goes to discord_create_invite. It also states the prerequisites (Create Instant Invite permission) and the branch condition for channel_id (required for EXTERNAL events, rejected for others), which is exactly the decision the agent needs to make before calling.

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

Deploy Server

Other Tools