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

Discord MCP - Discord server management MCP for AI agents

Create channel

create_channel

Creates text, voice, forum, stage, announcement, or category Discord channels, with optional category placement, privacy, read-only permissions, and voice/forum settings in one call.

Instructions

Create a text, voice, forum, stage, announcement, or category channel, optionally inside a category, and optionally private or read-only from the start. private_to, read_only and posting_roles compile to permission overwrites and are applied in the same call, so a private channel is one request rather than a create followed by set_channel_permissions. Use set_channel_permissions for anything finer. Voice and forum settings (bitrate, user limit, region, default reaction, sort, layout, required tags) can be set at creation too. Supports dry_run.

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>"
    },
    "name": "create_channel"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesChannel name.
nsfwNo
typeNoChannel type. Default text.
guildNoGuild (server) name or ID. Omit to use the default guild.
topicNoChannel topic, for text-like channels.
regionNoVoice region id such as us-east or rotterdam, or automatic.
dry_runNoPreview without creating.
categoryNoCategory name or ID to place the channel under.
read_onlyNoDeny sending to everyone, for rules and announcement channels.
private_toNoRole names that can see the channel. Everyone else is denied View Channel, and Connect too on voice, stage and category. Do not list @everyone.
user_limitNoMost people at once, 0 for no limit. Up to 99 in voice, 10000 in stage.
require_tagNoForum: posts must carry at least one tag.
bitrate_kbpsNoVoice and stage audio quality in kbps. Up to 96 without boosts, 128, 256, and 384 at boost levels 1 to 3.
default_sortNoForum: how posts are ordered.
posting_rolesNoRole names that may still post and start threads when read_only is set. Has no effect on its own.
video_qualityNoCamera quality in voice channels: auto, or full (720p).
default_layoutNoForum: list or gallery view.
default_reactionNoForum: the emoji offered on every post, as a character or a custom emoji name; none to remove.
slowmode_secondsNoPer-user message cooldown.
post_slowmode_secondsNoForum: the slowmode each new post starts with.
thread_archive_minutesNoHow long new threads stay open without activity: 60, 1440 (a day), 4320, or 10080 (a week).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 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"
    • addedInput schema / properties / bitrate_kbps
      Added value: +{
      +  "description": "Voice and stage audio quality in kbps. Up to 96 without boosts, 128, 256, and 384 at boost levels 1 to 3.",
      +  "maximum": 384,
      +  "minimum": 8,
      +  "type": "integer"
      +}
    • addedInput schema / properties / default_layout
      Added value: +{
      +  "description": "Forum: list or gallery view.",
      +  "enum": [
      +    "list",
      +    "gallery"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / default_reaction
      Added value: +{
      +  "description": "Forum: the emoji offered on every post, as a character or a custom emoji name; none to remove.",
      +  "maxLength": 64,
      +  "type": "string"
      +}
    • addedInput schema / properties / default_sort
      Added value: +{
      +  "description": "Forum: how posts are ordered.",
      +  "enum": [
      +    "latest_activity",
      +    "creation_date"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / post_slowmode_seconds
      Added value: +{
      +  "description": "Forum: the slowmode each new post starts with.",
      +  "maximum": 21600,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • changedInput schema / properties / posting_roles / description
      Previous value: -"Role names that may still post when read_only is set. Has no effect on its own."New value: +"Role names that may still post and start threads when read_only is set. Has no effect on its own."
    • addedInput schema / properties / region
      Added value: +{
      +  "description": "Voice region id such as us-east or rotterdam, or automatic.",
      +  "maxLength": 32,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / require_tag
      Added value: +{
      +  "description": "Forum: posts must carry at least one tag.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / thread_archive_minutes
      Added value: +{
      +  "description": "How long new threads stay open without activity: 60, 1440 (a day), 4320, or 10080 (a week).",
      +  "enum": [
      +    60,
      +    1440,
      +    4320,
      +    10080
      +  ],
      +  "type": "number"
      +}
    • addedInput schema / properties / user_limit
      Added value: +{
      +  "description": "Most people at once, 0 for no limit. Up to 99 in voice, 10000 in stage.",
      +  "maximum": 10000,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / video_quality
      Added value: +{
      +  "description": "Camera quality in voice channels: auto, or full (720p).",
      +  "enum": [
      +    "auto",
      +    "full"
      +  ],
      +  "type": "string"
      +}
  2. Changed3 schema fields changedv1.4.0
    • addedInput schema / properties / posting_roles
      Added value: +{
      +  "description": "Role names that may still post when read_only is set. Has no effect on its own.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / private_to
      Added value: +{
      +  "description": "Role names that can see the channel. Everyone else is denied View Channel, and Connect too on voice, stage and category. Do not list @everyone.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "type": "array"
      +}
    • addedInput schema / properties / read_only
      Added value: +{
      +  "description": "Deny sending to everyone, for rules and announcement channels.",
      +  "type": "boolean"
      +}
  3. Changed1 schema field changedv1.3.0
    • removedInput schema / additionalProperties
      Removed value: -false
  4. First observedv1.0.2

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds the meaningful behavior that permission overwrites are compiled and applied atomically in the same call, avoiding a two-request create-then-set sequence. It also flags that forum/voice settings are accepted at creation time. It stops short of covering failure modes such as name collisions or required permissions, and 'Supports dry_run' merely restates the schema.

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?

Four sentences, front-loaded with the creation scope, then the permission-compilation rationale, then the delegation pointer, then the dry_run note. No filler, though the closing 'Supports dry_run' duplicates the schema and could be dropped.

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 21-parameter creation tool with no output schema, the description covers what gets created, the atomic permission behavior, and where to go for finer-grained control — the main things an agent needs before calling. Return shape and error behavior are absent, but annotations already establish the non-read-only, non-destructive profile.

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 95%, so per-parameter meaning is already carried by the schema; the baseline is 3. The description adds only light cross-parameter semantics (the overwrite compilation and the one-request consequence), while its enumeration of bitrate/user limit/region/reaction/sort/layout/required tags largely mirrors parameter names the schema already documents.

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 and resource and enumerates the full set of channel types it can produce (text, voice, forum, stage, announcement, category), plus the optional category nesting and visibility modes. This is enough for an agent to distinguish create_channel from update_channel, clone_channel, or create_thread without inspecting 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 Guidelines4/5

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

It gives an explicit routing rule: use the built-in private_to/read_only/posting_roles shortcuts for coarse permission setup, and 'use set_channel_permissions for anything finer.' That covers the main when-to-use-vs-alternative decision. It does not discuss when to prefer clone_channel or a bulk path, so it stops short of full when-not coverage.

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