Skip to content

From quadslab

quadslab (@quadslab.io/discord-mcp) is the largest of the third-party Discord MCPs by tool count — ~138 tools across 20 categories. The quadslab adapter walks a local clone, intersects against a known-tool catalog (139 entries) for high-precision extraction, and reports the discord-mcp equivalents.

  • Production hardening — first-class OpenTelemetry traces and cockatiel resilience policies on every REST call; sustained 200/min headroom even at full surface load. See Operations: telemetry.
  • Components V2 first-class — every send/edit tool accepts flags = 32768 layouts. See the Components V2 announcement recipe.
  • Confirmation envelope on destructive tools — every destructive call requires a __confirm: true argument before the underlying REST call fires, so prompt injection can’t silently delete a guild. See Architecture: confirmation.
  • Pipeline atomicitymcp_pipeline chains multiple tool calls in a single round-trip with {{step.path}} interpolation between them. See Architecture: pipeline.

quadslab exposes MCP resources (server-side resources/list + resources/subscribe) for live channel/message state. This is not a tool — it’s the MCP server-level resource surface, which is a different MCP capability than tools/call. discord-mcp covers this via the gateway client (Plan 6): run with --gateway and your MCP client gets the equivalent subscribable URIs (channels, threads, messages, members, presence) backed by Discord Gateway events instead of REST polling.

The quadslab adapter does not translate resource subscriptions — they don’t appear in <category>Tools arrays, so they’re invisible to the extraction step. You get the equivalent surface for free by running discord-mcp with --gateway. See Architecture: gateway and the gateway-subscribe recipe.

  1. Clone quadslab locally.

    Terminal window
    git clone https://github.com/HardHeadHackerHead/discord-mcp.git ~/quadslab-clone
  2. Run the migration report.

    Terminal window
    discord-mcp migrate --from quadslab --source ~/quadslab-clone

    For machine-readable output: --json.

  3. Review the report.

    The output groups tools into mapped / unmapped / manual review. Read every medium and low confidence note before swapping argument shapes.

  4. Update agent prompts.

    Swap names per the mapped table. Pay particular attention to:

    • The five <verb>_<channel-type> tools (create_text_channel, create_voice_channel, create_category, create_forum_channel, create_announcement_channel) — they all collapse onto channels_create_guild_channel with a different type integer. Read the per-entry note for the type ID.
    • Embed-and-file variants (send_embed, send_message_with_file, send_dm_embed) — all collapse onto messages_send with the embed or attachment hoisted into the appropriate payload field.
  5. Generate your new client config.

    Terminal window
    discord-mcp init --client claude-desktop --token "Bot YOUR.TOKEN"

    Restart your MCP client.

  6. Optional — enable gateway resources.

    Terminal window
    discord-mcp serve --gateway

    This backs resources/subscribe with Discord Gateway events, replacing quadslab’s resource subscriptions.

This is a representative cut; the full NAME_MAP covers ~96 mapped entries.

quadslab tooldiscord-mcp toolConfidenceNotes
list_guildsusers_list_current_user_guildshigh
get_guild_infoguild_gethigh
edit_serverguild_modifyhigh
list_channelschannels_listhigh
create_text_channelchannels_create_guild_channelhighPass type=0 (GUILD_TEXT).
create_voice_channelchannels_create_guild_channelhighPass type=2 (GUILD_VOICE).
create_categorychannels_create_guild_channelhighPass type=4 (GUILD_CATEGORY).
create_forum_channelchannels_create_guild_channelhighPass type=15 (GUILD_FORUM).
delete_channelchannels_deletehigh
modify_channelchannels_modifyhigh
set_channel_permissionschannels_modify_permissionshigh
lock_channelchannels_modify_permissionsmediumLock = explicit deny SEND_MESSAGES on @everyone.
unlock_channelchannels_delete_permissionsmediumUnlock = remove the @everyone deny overwrite.
send_messagemessages_sendhigh
send_embedmessages_sendmediumPass embeds[] in the messages_send payload.
send_message_with_filemessages_sendmediumAttach files via attachments[] in the payload.
edit_messagemessages_edithigh
bulk_delete_messagesmessages_bulk_deletehigh
add_reactionreactions_createhigh
list_membersmembers_listhigh
ban_membermembers_banhigh
bulk_banmembers_bulk_banhigh
assign_rolemembers_add_rolehigh
list_rolesroles_listhigh
get_audit_logaudit_log_gethigh
list_emojisemojis_list_guildhigh
create_eventevents_createhigh
list_automod_rulesautomod_list_ruleshigh
end_pollpolls_endhigh
get_onboardingonboarding_gethigh

Notable low-confidence entries (always re-read the per-entry notes):

quadslab tooldiscord-mcp toolConfidenceNotes
bulk_assign_rolemembers_add_rolelowIterate per user; discord-mcp has no bulk variant.
bulk_remove_rolemembers_remove_rolelowIterate per user.
purge_user_messagesmessages_bulk_deletelowCompose: messages_search_recent + filter by author, then messages_bulk_delete.
send_pollmessages_sendlowdiscord-mcp creates polls inline via the poll: {...} field on the send payload.
send_dmmessages_sendlowCall users_create_dm first to get the DM channel ID.
list_role_membersmembers_listlowdiscord-mcp has no by-role lookup; list members and filter on role IDs client-side.
list_stage_instancesstage_instances_getlowdiscord-mcp has no list endpoint; fetch per channel.

About 14 quadslab tools have no discord-mcp equivalent and surface in the report’s unmapped list. Reasons grouped by category:

  • Presence (2)set_bot_status, get_bot_info. These belong to gateway state, not REST. discord-mcp manages bot presence via the gateway client configuration, not via tools. Move presence config from your agent prompt into the discord-mcp serve flags or environment.
  • Templates (4)list_templates, create_template, delete_template, sync_template. Discord guild templates have no discord-mcp tool wrapper yet (planned for a future release). Workaround: continue calling the REST endpoint directly, or omit the feature.
  • Helper composites (3)clone_channel, copy_channel_permissions, check_permissions. Compose from primitives: channels_get + channels_create_guild_channel + channels_modify_permissions.
  • Voice helpers (5)move_to_voice, disconnect_from_voice, set_voice_region, set_voice_status, list_voice_members. discord-mcp’s voice_* tools cover state and regions but not the channel-side helpers; partial overlap with low value, so left unmapped.