Skip to main content
Glama
grooving6

discord-mcp

by grooving6
README.md
# discord-mcp

An MCP server for managing Discord servers through any [MCP-compatible](https://modelcontextprotocol.io) AI client. Once connected, you just describe what you want:

> **You:** create a channel called `dev-chat` under the Engineering category

> **You:** make a role called Moderator that can kick and ban, then give it to @alex

> **You:** post "deploy is live 🚀" in #announcements

> **You:** make #staff-only private — hide it from @everyone but let the Staff role in

Your AI client talks to this server over [MCP](https://modelcontextprotocol.io), which translates requests into real Discord API calls via [discord.js](https://discord.js.org).

---

## What it can do

| Area | Tools |
| --- | --- |
| **Servers** | `list_servers`, `get_server_info` |
| **Channels** | `list_channels`, `create_channel`, `edit_channel`, `delete_channel` |
| **Messages** | `send_message`, `send_embed`, `read_messages`, `edit_message`, `delete_message` |
| **Roles** | `list_roles`, `create_role`, `delete_role`, `assign_role`, `remove_role` |
| **Members** | `list_members`, `get_member`, `kick_member`, `ban_member`, `timeout_member` |
| **Channel permissions** | `list_channel_permissions`, `set_channel_permission`, `remove_channel_permission` |
| **Threads** | `create_thread`, `list_threads`, `archive_thread`, `unarchive_thread` |
| **Invites** | `create_invite`, `list_invites`, `delete_invite` |
| **Scheduled events** | `create_event`, `list_events`, `delete_event` |
| **Webhooks** | `create_webhook`, `list_webhooks`, `delete_webhook`, `send_webhook_message` |
| **Emoji & stickers** | `list_emojis`, `create_emoji`, `delete_emoji`, `list_stickers` |

---

## Setup

### 1. Create the Discord bot

1. Go to the [Discord Developer Portal](https://discord.com/developers/applications) →
   **New Application**, give it a name, **Create**.
2. Open the **Bot** tab → **Reset Token** → **Copy**. This is your `DISCORD_TOKEN`.
3. *(Optional)* To **list members** or **read message text**, scroll to
   **Privileged Gateway Intents** and enable **Server Members Intent** and
   **Message Content Intent**. You'll also set `DISCORD_PRIVILEGED_INTENTS=true` later.
   Skip this if you only need to create channels/roles and send messages.

### 2. Invite the bot to your server

1. In the Developer Portal → **OAuth2** → **URL Generator**.
2. Under **Scopes**, check **`bot`**.
3. Under **Bot Permissions**, pick what you want it to do. For full management the simplest
   choice is **Administrator**.
4. Open the generated URL, choose your server, **Authorize**.
5. **Important — role hierarchy:** in **Server Settings → Roles**, drag the bot's role
   **above** the roles/members you want it to manage.

### 3. Install and build

Requires **Node.js 18+** (20+ recommended).

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

Then create your `.env` from the template and fill in the token:

### 4. Connect it to your MCP client

**Option A — project config (recommended).** This repo includes a [`.mcp.json`](./.mcp.json).
Run your MCP client *from this directory* and it picks it up automatically.

**Option B — global registration (Claude Code example).** Use an absolute path to make the
server available in any session:

```bash
claude mcp add discord -- node /absolute/path/to/discord-mcp/dist/index.js
```
---

TDQS

A3.5/5.0

Scored across 55 tools

Disambiguation5/5

Each tool targets a distinct action/resource combination (e.g., ban_member vs kick_member, set_channel_permission vs remove_channel_permission). Descriptions clearly delineate boundaries, and even similar-sounding tools like server_mute and timeout_member specify different contexts (voice vs temporary).

Naming Consistency5/5

All 55 tools follow a consistent verb_noun snake_case pattern (e.g., create_channel, edit_role, delete_emoji). There are no deviations or mixed conventions, making the surface predictable for an agent.

Tool Count3/5

55 tools is on the high side for a typical MCP server, even for a broad domain like Discord. While the scope covers many server management operations, the count feels heavy (borderline over 25 tools per the calibration scale) and may introduce cognitive load.

Completeness4/5

The tool set covers most core Discord server operations: CRUD for channels, roles, events, invites, webhooks; member management; messaging; permissions; threads; and audit logs. However, it lacks update operations for emoji, events, and stickers, and missing create/delete for stickers, which are minor but notable gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues