Skip to main content
Glama
Discord MCP - Discord server management MCP for AI agents

Discord MCP - Discord server management MCP for AI agents

Register app command

register_app_command

Create or update a Discord slash command by name, with options and user-facing descriptions. Target a guild for immediate availability; global commands can take up to an hour to appear and are rate limited.

Instructions

Register a slash command, or update it in place if the name is already taken. Pass a guild while iterating: guild commands appear immediately, while global commands can take up to an hour to show up everywhere and are rate limited per day. Subcommands and subcommand groups are not supported here.

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": {
      "name": "<name>",
      "description": "<description>"
    },
    "name": "register_app_command"
  }
}

Input Schema

NameRequiredDescriptionDefault
botNoWhich bot to act as, by name, when more than one is configured. Omit to use the default bot, or with a server, the bot that handles it.
nameYesCommand name without the slash, lowercase, no spaces.
guildNoGuild (server) name or ID. Omit to use the default guild.
optionsNoArguments the command takes.
descriptionYesShown to users in the command picker.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv1.4.2
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • changedInput schema / properties / bot / description
      Previous value: -"Which bot to act as, by name, when more than one is configured. Omit to use the default bot."New value: +"Which bot to act as, by name, when more than one is configured. Omit to use the default bot, or with a server, the bot that handles it."
  2. Changed2 schema fields changedv1.4.0
    • removedInput schema / properties / options / items / properties / choices / items / properties / value / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "number"
      -  }
      -]
    • addedInput schema / properties / options / items / properties / choices / items / properties / value / type
      Added value: +[
      +  "string",
      +  "number"
      +]
  3. Addedv1.3.0

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses three behaviors an agent could not infer from structured fields: silent in-place overwrite on name collision, per-day rate limiting for global commands, and propagation delay of up to an hour. It does not mention permission requirements or what happens when registration fails, which keeps 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?

Three sentences, each carrying distinct information: core behavior first, then the guild/global tradeoff that drives invocation decisions, then the capability limit. No filler and no repetition of what the schema already states.

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 five-parameter mutation tool with no output schema, the description covers the operation, the scope choice, rate limits, propagation timing, and a capability restriction. It omits failure modes and permission/auth requirements, which are the remaining gaps an agent might want before calling 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?

Schema description coverage is 100%, so a 3 is the baseline. The description goes beyond the schema by explaining why the guild parameter matters (immediate visibility versus delayed global propagation) and by constraining the options parameter (no subcommands or groups), adding real meaning rather than restating field docs.

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 a specific verb and resource ("Register a slash command") and adds upsert semantics ("update it in place if the name is already taken"), which tells an agent what will happen on name collision. It stops short of explicitly distinguishing itself from the sibling update_app_command/delete_app_command, so an agent must infer why a separate update tool exists.

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

Usage Guidelines4/5

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

"Pass a guild while iterating" gives a concrete situational recommendation, and the note about global commands taking up to an hour plus daily rate limits explains the tradeoff that drives that choice. The exclusion "Subcommands and subcommand groups are not supported here" narrows the use case, though no sibling tool is named for the unsupported or update-only paths.

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