Skip to main content
Glama
Discord MCP Extended

Discord MCP Extended

Discord MCP (Extended)

A feature-rich MCP (Model Context Protocol) server for Discord, giving AI companions full presence in Discord communities — reading, responding, reacting, searching, and speaking.

Extended by Digital Haven from the original mcp-discord and Codependent AI fork.


What's New in This Fork

  • Voice Messages — Send audio via ElevenLabs TTS

  • Image Fetching — Retrieve Discord images with auto-scaling for Claude's context window

  • Message Search — Full search across servers with filters (author, content type, date range)

  • Extended Reactions — Add/remove multiple reactions at once

  • Webhook Support — Create, send, edit, and delete webhooks

  • Category Management — Create, edit, delete server categories

  • Forum Support — Full forum channel operations


Related MCP server: @striderlabs/mcp-discord

Features

Core Messaging

Tool

Description

discord_send

Send a message (with optional reply)

discord_read_messages

Read messages from a channel (up to 100)

discord_delete_message

Delete a specific message

discord_search_messages

Search messages with filters

Voice

Tool

Description

discord_send_voice

Send voice message via ElevenLabs TTS

Images

Tool

Description

discord_fetch_image

Fetch and auto-scale Discord images

Reactions

Tool

Description

discord_add_reaction

Add a single reaction

discord_add_multiple_reactions

Add multiple reactions at once

discord_remove_reaction

Remove a reaction

Forums

Tool

Description

discord_get_forum_channels

List forum channels in a server

discord_create_forum_post

Create a new forum post

discord_get_forum_post

Get forum post details

discord_reply_to_forum

Reply to a forum thread

discord_delete_forum_post

Delete a forum post

Channels & Categories

Tool

Description

discord_create_text_channel

Create a text channel

discord_delete_channel

Delete a channel

discord_create_category

Create a category

discord_edit_category

Edit a category

discord_delete_category

Delete a category

Webhooks

Tool

Description

discord_create_webhook

Create a webhook

discord_send_webhook_message

Send via webhook

discord_edit_webhook

Edit a webhook

discord_delete_webhook

Delete a webhook

Server Info

Tool

Description

discord_list_servers

List all servers the bot is in

discord_get_server_info

Get server details and channels

discord_login

Log in with bot token


Setup

1. Create a Discord Bot

  1. Go to Discord Developer Portal

  2. Create a new application

  3. Go to Bot section, create a bot

  4. Copy the bot token

  5. Enable Message Content Intent under Privileged Gateway Intents

  6. Go to OAuth2 > URL Generator:

    • Select bot scope

    • Select permissions: Read Messages/View Channels, Send Messages, Add Reactions, Read Message History, Manage Webhooks, Manage Channels, Attach Files

  7. Use the generated URL to invite the bot to your server

2. Install

git clone https://github.com/YOUR_USERNAME/mcp-discord.git
cd mcp-discord
npm install
npm run build

3. Configure Claude Desktop

Add to your claude_desktop_config.json:

Windows: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["C:/path/to/mcp-discord/build/index.js"],
      "env": {
        "DISCORD_TOKEN": "your-bot-token-here"
      }
    }
  }
}

4. For Voice Messages (Optional)

Add ElevenLabs credentials:

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["C:/path/to/mcp-discord/build/index.js"],
      "env": {
        "DISCORD_TOKEN": "your-bot-token-here",
        "ELEVENLABS_API_KEY": "your-elevenlabs-key",
        "ELEVENLABS_VOICE_ID": "your-voice-id"
      }
    }
  }
}

Get your voice ID from ElevenLabs — they have a free tier.


Usage Examples

Once configured, Claude can:

"Read the last 20 messages from #general"
"Send 'Hello everyone!' to channel 123456789"
"React with fire emoji to message 987654321"
"Search for messages containing 'bug report' in the server"
"Send a voice message saying 'Good morning!' to the channel"
"Fetch that image so I can see it"

For AI Companions

See README-AI.md for companion-specific guidance:

  • Multi-room presence (desktop + mobile + Cloudflare)

  • Memory integration patterns

  • Community interaction guidelines

  • Setting up a portable version for mobile Claude


Architecture

Claude Desktop ←→ MCP Server (Node.js) ←→ Discord API ←→ Your Server

The bridge runs locally. Only connects to:

  • Discord (official API)

  • Anthropic (when Claude processes)

  • ElevenLabs (if using voice)


Security

  • Bot token is stored locally in your Claude config — never commit it

  • Bot can only see channels it has permission to view

  • No third-party data storage

If your token leaks, reset it immediately in Discord Developer Portal.


Credits


License

MIT — use it, modify it, share it.


Guides

Available Tools

26 tools
discord_add_multiple_reactionsB

Adds multiple emoji reactions to a Discord message at once

Inputs: emojis (required), channelId (required), messageId (required).

discord_add_reactionC

Adds an emoji reaction to a specific Discord message

Inputs: emoji (required), channelId (required), messageId (required).

discord_create_categoryC

Creates a new category in a Discord server.

Inputs: name (required), guildId (required), reason, position.

discord_create_forum_postB

Creates a new post in a Discord forum channel with optional tags

Inputs: title (required), content (required), forumChannelId (required), tags.

discord_create_text_channelB

Creates a new text channel in a Discord server with an optional topic

Inputs: guildId (required), channelName (required), topic.

discord_create_webhookC

Creates a new webhook for a Discord channel

Inputs: name (required), channelId (required), avatar, reason.

discord_delete_categoryB

Deletes a Discord category by ID.

Inputs: categoryId (required), reason.

discord_delete_channelB

Deletes a Discord channel with an optional reason

Inputs: channelId (required), reason.

discord_delete_forum_postC

Deletes a forum post or thread with an optional reason

Inputs: threadId (required), reason.

discord_delete_messageB

Deletes a specific message from a Discord text channel

Inputs: channelId (required), messageId (required), reason.

discord_delete_webhookC

Deletes an existing webhook for a Discord channel

Inputs: webhookId (required), reason, webhookToken.

discord_edit_categoryB

Edits an existing Discord category (name and position).

Inputs: categoryId (required), name, reason, position.

discord_edit_webhookC

Edits an existing webhook for a Discord channel

Inputs: webhookId (required), name, avatar, reason, +2 more.

discord_fetch_imageA

Fetch an image from Discord CDN and return it as base64. Uses iterative scaling to fit within token limits.

Inputs: url (required), maxSizeKB.

discord_get_forum_channelsA

Lists all forum channels in a specified Discord server (guild)

Inputs: guildId (required).

discord_get_forum_postB

Retrieves details about a forum post including its messages

Inputs: threadId (required).

discord_get_server_infoB

Retrieves detailed information about a Discord server including channels and member count

Inputs: guildId (required).

discord_list_serversA

Lists all Discord servers the bot is a member of

Inputs: no named parameters.

discord_loginB

Logs in to Discord using the configured token

Inputs: token.

discord_read_messagesA

Retrieves messages from a Discord text channel with a configurable limit

Inputs: channelId (required), limit.

discord_remove_reactionB

Removes a specific emoji reaction from a Discord message

Inputs: emoji (required), channelId (required), messageId (required), userId.

discord_reply_to_forumB

Adds a reply to an existing forum post or thread

Inputs: message (required), threadId (required).

discord_search_messagesC

Searches for messages in a Discord server

Inputs: guildId (required), has, limit, maxId, +10 more.

discord_sendA

Sends a message to a specified Discord text channel. Optionally reply to another message by providing its message ID.

Inputs: message (required), channelId (required), replyToMessageId.

discord_send_voiceA

Sends a voice message to a Discord channel using ElevenLabs TTS. Converts text to speech and attaches the audio file.

Inputs: text (required), channelId (required), voiceId, includeText, +1 more.

discord_send_webhook_messageB

Sends a message to a Discord channel using a webhook

Inputs: content (required), webhookId (required), webhookToken (required), threadId, +2 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.1/5.0

    Scored across 26 tools

    Disambiguation5/5

    All tools have clear resource-action pairs, such as category vs channel vs webhook vs message operations. Even overlapping actions like send are distinguished by medium: text channel, webhook, or voice. The only minor overlap is add_reaction vs add_multiple_reactions, but they serve distinct purposes.

    Naming Consistency4/5

    Tools follow a consistent discord_verb_noun pattern with clear verbs like create, delete, and send. However, retrieval actions use mixed verbs: get (get_server_info), list (list_servers), and read (read_messages), which is a minor deviation. Overall, the naming is predictable and readable.

    Tool Count2/5

    With 26 tools, this exceeds the recommended range and falls into the 'too many' category. While each tool covers a distinct Discord feature, the count feels heavy and some tools could be merged (e.g., add_multiple_reactions with add_reaction). The extended scope justifies some volume, but 26 is on the high side.

    Completeness3/5

    The tool surface covers core operations for categories, text channels, forums, webhooks, messages, and reactions. However, obvious gaps exist: no update operation for text channels or messages, and no channel-specific detail retrieval beyond server info. CRUD coverage is incomplete for certain resources, limiting full workflow automation.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      An MCP server that enables AI agents to communicate with humans through Discord. Agents can send messages, create threads, wait for replies, and manage conversations across any MCP client.
      7 npm
      ISC
    • A
      license
      Not graded
      quality
      C
      maintenance
      A Discord MCP server that gives AI agents full control of a Discord bot — messages, channels, roles, threads, forums, events, webhooks, reactions, moderation, image generation, and real-time voice.
      98 npm
      7
      MIT