Skip to main content
Glama
cappyeo

discord-mcp

guild_modify

Idempotent

Update Discord server settings such as name, verification level, and system channels. Pass only the fields you want to change; they are applied to the guild.

Instructions

Purpose: Update guild-level settings. Pass only fields you want to change.

When to use:

  • Rename, change verification level, set system/rules/safety channels, toggle premium progress bar, etc.

When NOT to use:

  • Channels → use channels_modify. Roles → use roles_modify. Welcome screen → use guild_modify_welcome_screen.

Returns: projected guild shape {id, name, icon, owner_id, description, preferred_locale, features, untrusted_text}. name and description remain raw server-owner data; untrusted_text provides a separately fenced copy.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
iconNobase64 image data or null
nameNo
bannerNo
splashNo
featuresNo
guild_idYesGuild to modify
owner_idNoTransfer ownership (must already be guild owner)
afk_timeoutNo
descriptionNo
audit_reasonNoReason recorded in audit log (X-Audit-Log-Reason header)
afk_channel_idNo
discovery_splashNo
preferred_localeNo
rules_channel_idNo
system_channel_idNo
verification_levelNo
system_channel_flagsNoSystem channel flags bitfield (see Discord docs)
explicit_content_filterNo
safety_alerts_channel_idNo
public_updates_channel_idNo
premium_progress_bar_enabledNo
default_message_notificationsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.28.0
    • removedInput schema / properties / banner / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / banner / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / discovery_splash / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / discovery_splash / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / icon / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / icon / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedInput schema / properties / splash / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / splash / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "additionalProperties": {},
      -    "properties": {
      -      "description": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "features": {
      -        "items": {
      -          "type": "string"
      -        },
      -        "type": "array"
      -      },
      -      "icon": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "id": {
      -        "description": "Discord guild (server) ID",
      -        "pattern": "^\\d{17,20}$",
      -        "type": "string"
      -      },
      -      "name": {
      -        "type": "string"
      -      },
      -      "owner_id": {
      -        "description": "Discord user ID",
      -        "pattern": "^\\d{17,20}$",
      -        "type": "string"
      -      },
      -      "preferred_locale": {
      -        "type": "string"
      -      },
      -      "untrusted_text": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "id",
      -      "name",
      -      "icon",
      -      "owner_id",
      -      "description",
      -      "preferred_locale",
      -      "features",
      -      "untrusted_text"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "category": {
      -        "enum": [
      -          "client",
      -          "server"
      -        ],
      -        "type": "string"
      -      },
      -      "code": {
      -        "type": "string"
      -      },
      -      "recovery_hint": {
      -        "type": "string"
      -      },
      -      "retriable": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "retriable",
      -      "category",
      -      "recovery_hint"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "additionalProperties": {},
      +    "properties": {
      +      "description": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "features": {
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "icon": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "id": {
      +        "description": "Discord guild (server) ID",
      +        "pattern": "^\\d{17,20}$",
      +        "type": "string"
      +      },
      +      "name": {
      +        "type": "string"
      +      },
      +      "owner_id": {
      +        "description": "Discord user ID",
      +        "pattern": "^\\d{17,20}$",
      +        "type": "string"
      +      },
      +      "preferred_locale": {
      +        "type": "string"
      +      },
      +      "untrusted_text": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "id",
      +      "name",
      +      "icon",
      +      "owner_id",
      +      "description",
      +      "preferred_locale",
      +      "features",
      +      "untrusted_text"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "category": {
      +        "enum": [
      +          "client",
      +          "server"
      +        ],
      +        "type": "string"
      +      },
      +      "code": {
      +        "type": "string"
      +      },
      +      "recovery_hint": {
      +        "type": "string"
      +      },
      +      "retriable": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "retriable",
      +      "category",
      +      "recovery_hint"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observedv0.22.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish that this is a mutating, non-destructive, idempotent operation. The description adds valuable extra behavior: 'Pass only fields you want to change' clarifies partial-update semantics, and the return-shape note about raw `name`/`description` versus fenced `untrusted_text` adds context beyond annotations. No contradiction exists.

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 with labeled sections: Purpose, When to use, When NOT to use, and Returns. It front-loads the core behavior and every sentence earns its place; no filler 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?

An output schema exists, so the return structures are documented structurally. The description covers purpose, routing to alternatives, and partial-update semantics. Minor gaps remain—such as how to clear nullable fields with null or permission requirements—but annotations and schema cover enough of the operational context to make this a strong definition.

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

Parameters2/5

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

Schema description coverage is only 23%, so the description had a duty to compensate, but it only illustrates a handful of parameters (name, verification level, some channel IDs, premium progress bar). While 'Pass only fields you want to change' is a useful global rule, most of the 22 parameters remain undocumented in both schema and description. That is insufficient for a parameter-rich tool.

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 states a specific action ('Update guild-level settings'), gives concrete examples ('Rename, change verification level, set system/rules/safety channels'), and explicitly distinguishes itself from sibling tools such as `guild_modify_welcome_screen`. An agent can tell what this tool is for without opening the 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?

The 'When to use' and 'When NOT to use' sections are explicit and actionable. They name three direct alternatives (`channels_modify`, `roles_modify`, `guild_modify_welcome_screen`) and give the conditions under which each should replace this tool. This is better than merely implying usage context.

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