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 the central Discord REST path. See Operations: telemetry.
  • Components V2 first-class - dedicated components_v2_send and components_v2_edit tools validate flags = 32768 layouts. See the Components V2 announcement recipe.
  • Explicit confirmation on selected high-risk tools - the 31 tools registered with confirm_required require __confirm: true and MCP_DRY_RUN=false. Other writes can execute immediately, so inspect each tool’s confirmation badge rather than inferring safety from “destructive.” See Architecture: confirmation.
  • Pipeline sequencing - mcp_pipeline chains multiple tool calls in a single round-trip with {{step.path}} interpolation between them. See Architecture: pipeline.

quadslab exposes MCP resources for live state. This is not a tool, and the migration extractor does not translate it. discord-mcp’s Gateway surface now lists/reads an allowlisted discord://guild/{id}/info snapshot and emits notifications for it; voice, presence, typing, and audit-log URIs remain notification-only.

The quadslab adapter does not translate resource subscriptions - they don’t appear in <category>Tools arrays, so they’re invisible to the extraction step. Treat this as a migration gap and keep the old resource path until a discord-mcp subscription has been verified end-to-end for your client. See Architecture: gateway.

  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

    Merge the printed snippet, set DISCORD_TOKEN, then restart your MCP client.

  6. Optional - enable Gateway notifications.

    Terminal window
    discord-mcp serve --gateway

    This backs experimental resources/subscribe notifications with Discord Gateway events. Configure ALLOWED_GUILDS to list/read the guild-info snapshot; retain quadslab’s other resource paths until their notification- plus-REST-read flow is verified in your client.

This is a representative cut; consult the adapter source for the complete maintained mapping table.

quadslab tool discord-mcp tool Confidence Notes
list_guilds users_list_current_user_guilds high -
get_guild_info guild_get high -
edit_server guild_modify high -
list_channels channels_list high -
create_text_channel channels_create_guild_channel high Pass type=0 (GUILD_TEXT).
create_voice_channel channels_create_guild_channel high Pass type=2 (GUILD_VOICE).
create_category channels_create_guild_channel high Pass type=4 (GUILD_CATEGORY).
create_forum_channel channels_create_guild_channel high Pass type=15 (GUILD_FORUM).
delete_channel channels_delete high -
modify_channel channels_modify high -
set_channel_permissions channels_modify_permissions high -
lock_channel channels_modify_permissions medium Lock = explicit deny SEND_MESSAGES on @everyone.
unlock_channel channels_delete_permissions medium Unlock = remove the @everyone deny overwrite.
send_message messages_send high -
send_embed messages_send medium Pass embeds[] in the messages_send payload.
send_message_with_file messages_send medium Attach files via attachments[] in the payload.
edit_message messages_edit high -
bulk_delete_messages messages_bulk_delete high -
add_reaction reactions_create high -
list_members members_list high -
ban_member members_ban high -
bulk_ban members_bulk_ban high -
assign_role members_add_role high -
list_roles roles_list high -
get_audit_log audit_log_get high -
list_emojis emojis_list_guild high -
create_event events_create high -
list_automod_rules automod_list_rules high -
end_poll polls_end high -
get_onboarding onboarding_get high -
list_templates templates_list high -
create_template templates_create high -
delete_template templates_delete high Requires __confirm:true and MCP_DRY_RUN=false.
sync_template templates_sync high -

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

quadslab tool discord-mcp tool Confidence Notes
bulk_assign_role members_add_role low Iterate per user; discord-mcp has no bulk variant.
bulk_remove_role members_remove_role low Iterate per user.
purge_user_messages messages_bulk_delete low Compose: messages_search_recent + filter by author, then messages_bulk_delete.
send_poll messages_send low discord-mcp creates polls inline via the poll: {...} field on the send payload.
send_dm messages_send low Call users_create_dm first to get the DM channel ID.
list_role_members members_list low discord-mcp has no by-role lookup; list members and filter on role IDs client-side.
list_stage_instances stage_instances_get low discord-mcp has no list endpoint; fetch per channel.

About 10 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. discord-mcp currently exposes neither presence tools nor a serve flag/environment setting for bot presence. Keep the old integration for this capability or omit it.
  • 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.