Skip to main content
Glama
cindiekinzz-coder

Discord MCP Extended

README.md
# 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](https://discord.gg/digital-haven) from the original [mcp-discord](https://github.com/barryyip0625/mcp-discord) and [Codependent AI fork](https://github.com/codependent-ai/mcp-discord).**

---

## 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

---

## 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](https://discord.com/developers/applications)
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

```bash
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`

```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:

```json
{
  "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](https://elevenlabs.io) — 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](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

- **Original:** [barryyip0625/mcp-discord](https://github.com/barryyip0625/mcp-discord)
- **Community Fork:** [Codependent AI](https://github.com/codependent-ai/mcp-discord)
- **Extended Fork:** Fox & Alex @ Digital Haven
- **Image Fetching:** Vex & Nana

---

## License

MIT — use it, modify it, share it.

---

## Guides

- **[BEGINNER_GUIDE.md](BEGINNER_GUIDE.md)** — Step-by-step for non-coders
- **[INSTALL.md](INSTALL.md)** — Quick technical setup
- **[README-AI.md](README-AI.md)** — AI companion integration patterns

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.

Maintenance

ActivityInactive
ResponsivenessNo issues