Skip to main content
Glama

discord_list_webhooks

Read-only

List webhooks for a Discord channel or entire server by providing channel_id or guild_id; retrieve webhook IDs, names, channels, creators, and visible tokens. Requires Manage Webhooks.

Instructions

List the webhooks in a single channel or across a whole server (id, name, channel, token when visible, creator). Provide exactly one of channel_id or guild_id. Requires the Manage Webhooks permission. SECURITY: a returned token lets anyone post as that webhook; treat it as a secret. Pass the id and token to discord_send_webhook_message, or create a webhook with discord_create_webhook.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "discord_list_webhooks"
  }
}

Input Schema

NameRequiredDescriptionDefault
guild_idNoDiscord server (guild) ID (snowflake) to list all webhooks for. Mutually exclusive with channel_id.
channel_idNoID (snowflake) of a channel to list webhooks for. Mutually exclusive with guild_id.

Output Schema

NameRequiredDescriptionDefault
webhooksYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv2.2.1
    • removedOutput schema / properties / webhooks / items / properties / creator / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / webhooks / items / properties / creator / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / webhooks / items / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / webhooks / items / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / webhooks / items / properties / token / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / webhooks / items / properties / token / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed1 schema field changedv2.2.0
    • addedInput schema / additionalProperties
      Added value: +false
  3. Changed3 schema fields changedv2.0.0
    • addedInput schema / properties / channel_id / pattern
      Added value: +"^\\d{17,20}$"
    • addedInput schema / properties / guild_id / pattern
      Added value: +"^\\d{17,20}$"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "webhooks": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "channel_id": {
      +            "type": "string"
      +          },
      +          "creator": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "id": {
      +            "type": "string"
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "token": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "id",
      +          "name",
      +          "channel_id",
      +          "token",
      +          "creator"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "webhooks"
      +  ],
      +  "type": "object"
      +}
  4. Changed2 schema fields changedv1.6.0
    • changedInput schema / properties / channel_id / description
      Previous value: -"List webhooks for a specific channel."New value: +"ID (snowflake) of a channel to list webhooks for. Mutually exclusive with guild_id."
    • changedInput schema / properties / guild_id / description
      Previous value: -"List all webhooks in a guild."New value: +"Discord server (guild) ID (snowflake) to list all webhooks for. Mutually exclusive with channel_id."
  5. Addedv1.5.0
  6. Removedv1.0.0
  7. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint; the description adds the permission requirement and a genuine SECURITY warning that the returned token allows anyone to post as the webhook and must be treated as a secret. That is real behavioral context an agent cannot infer from structured fields.

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 tight sentences: scope first, constraint second, security and next-step routing last. No filler and nothing redundant enough to trim.

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 two-parameter read tool with an output schema and annotations already present, the description covers everything an agent needs: scope selection, permission prerequisite, sensitivity of the token, returned fields, and follow-up tools.

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 coverage is 100% and both parameter descriptions already document the snowflake pattern and the mutual exclusivity, so the description's 'provide exactly one of' restates rather than extends the schema. Baseline 3 is appropriate since the schema carries the parameter detail.

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 (list webhooks) plus scope alternatives (single channel vs. whole server), and even enumerates the returned fields (id, name, channel, token, creator). An agent can distinguish this from siblings like discord_create_webhook or discord_send_webhook_message without opening any schema.

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?

Explicitly requires exactly one of channel_id or guild_id, states the Manage Webhooks permission prerequisite, and routes the agent forward to discord_send_webhook_message (with the returned id/token) and discord_create_webhook. This is concrete when-to-use and what-to-do-next guidance rather than implied usage.

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