MCP-Discord
# MCP-Discord
[](https://smithery.ai/server/@barryyip0625/mcp-discord) 
A Discord MCP (Model Context Protocol) server that enables AI assistants to interact with the Discord platform.
<a href="https://glama.ai/mcp/servers/@barryyip0625/mcp-discord">
<img width="380" height="200" src="https://glama.ai/mcp/servers/@barryyip0625/mcp-discord/badge" alt="MCP-Discord MCP server" />
</a>
## Overview
MCP-Discord provides the following Discord-related functionalities:
- Login to Discord bot
- Get server information
- Read/delete channel messages
- Send messages to specified channels (using either channel IDs or channel names)
- Retrieve forum channel lists
- Create/delete/reply to forum posts
- Create/delete text channels
- Add/remove message reactions
- Create/edit/delete/use webhooks
## Table of Contents
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Configuration](#configuration)
- [Tools Documentation](#tools-documentation)
- [Basic Functions](#basic-functions)
- [Channel Management](#channel-management)
- [Forum Functions](#forum-functions)
- [Messages and Reactions](#messages-and-reactions)
- [Webhook Management](#webhook-management)
- [Development](#development)
- [License](#license)
## Prerequisites
- Node.js (v16.0.0 or higher)
- npm (v7.0.0 or higher)
- A Discord bot with appropriate permissions
- Bot token (obtainable from the [Discord Developer Portal](https://discord.com/developers/applications))
- Message Content Intent enabled
- Server Members Intent enabled
- Presence Intent enabled
- Permissions required in your Discord server:
#### Easiest Setup
- Administrator (Recommended for quick setup and full functionality)
#### Or, select only the required permissions:
- Send Messages
- Create Public Threads
- Send Messages in Threads
- Manage Messages
- Manage Threads
- Manage Channels
- Manage Webhooks
- Add Reactions
- View Channel
- Add your Discord bot to your server
- To add your Discord bot to your server, use one of the following invite links (replace `INSERT_CLIENT_ID_HERE` with your bot's client ID):
- **Administrator (full access):**
https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=8
- **Custom permissions (minimum required):**
https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=52076489808
> **Note:**
> According to Discord's security model, a bot can only access information from servers it has been explicitly added to.
> If you want to use this MCP server to access a specific Discord server, you must add the bot to that server first.
> Use the invite link below to add the bot to your target server.
## Installation
### Installing via Smithery
To install mcp-discord automatically via [Smithery](https://smithery.ai/server/@barryyip0625/mcp-discord)
### Manual Installation
```bash
# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord
# Install dependencies
npm install
# Compile TypeScript
npm run build
```
## Configuration
A Discord bot token is required for proper operation. The server supports two transport methods: stdio and streamable HTTP.
### Transport Methods
1. **stdio** (Default)
- Traditional stdio transport for basic usage
- Suitable for simple integrations
2. **streamable HTTP**
- HTTP-based transport for more advanced scenarios
- Supports stateless operation
- Configurable port number
### Configuration Options
You can provide configuration in two ways:
1. Environment variables:
```bash
DISCORD_TOKEN=your_discord_bot_token
```
2. Using command line arguments:
```bash
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"
# For streamable HTTP transport
node build/index.js --transport http --port 3000 --config "your_discord_bot_token"
```
## Usage with Claude/Cursor
### Claude
1. Using stdio transport:
```json
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js",
"--config",
"your_discord_bot_token"
]
}
}
}
```
2. Using streamable HTTP transport:
```json
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js",
"--transport",
"http",
"--port",
"3000",
"--config",
"your_discord_bot_token"
]
}
}
}
```
### Cursor
1. Using stdio transport:
```json
{
"mcpServers": {
"discord": {
"command": "cmd",
"args": [
"/c",
"node",
"path/to/mcp-discord/build/index.js",
"--config",
"your_discord_bot_token"
]
}
}
}
```
2. Using streamable HTTP transport:
```json
{
"mcpServers": {
"discord": {
"command": "cmd",
"args": [
"/c",
"node",
"path/to/mcp-discord/build/index.js",
"--transport",
"http",
"--port",
"3000",
"--config",
"your_discord_bot_token"
]
}
}
}
```
## Tools Documentation
### Basic Functions
- `discord_login`: Login to Discord
- `discord_send`: Send a message to a specified channel (supports both channel ID and channel name)
- `discord_get_server_info`: Get Discord server information
### Channel Management
- `discord_create_text_channel`: Create a text channel
- `discord_delete_channel`: Delete a channel
### Forum Functions
- `discord_get_forum_channels`: Get a list of forum channels
- `discord_create_forum_post`: Create a forum post
- `discord_get_forum_post`: Get a forum post
- `discord_reply_to_forum`: Reply to a forum post
- `discord_delete_forum_post`: Delete a forum post
### Messages and Reactions
- `discord_read_messages`: Read channel messages
- `discord_add_reaction`: Add a reaction to a message
- `discord_add_multiple_reactions`: Add multiple reactions to a message
- `discord_remove_reaction`: Remove a reaction from a message
- `discord_delete_message`: Delete a specific message from a channel
### Webhook Management
- `discord_create_webhook`: Creates a new webhook for a Discord channel
- `discord_send_webhook_message`: Sends a message to a Discord channel using a webhook
- `discord_edit_webhook`: Edits an existing webhook for a Discord channel
- `discord_delete_webhook`: Deletes an existing webhook for a Discord channel
## Development
```bash
# Development mode
npm run dev
```
## License
[MIT License](https://github.com/barryyip0625/mcp-discord?tab=MIT-1-ov-file)TDQS
Scored across 22 tools
Every tool has a clearly distinct purpose targeting specific Discord resources and actions, such as discord_add_reaction vs discord_remove_reaction for reactions, discord_create_text_channel vs discord_delete_channel for channels, and discord_send vs discord_send_webhook_message for messaging. There is no overlap or ambiguity in functionality, making tool selection straightforward for an agent.
All tool names follow a consistent snake_case pattern with a 'discord_' prefix and a clear verb_noun structure, such as discord_create_category, discord_delete_message, and discord_get_server_info. This uniformity enhances readability and predictability across the entire tool set.
With 22 tools, the count is borderline high for a Discord server, as it covers many specific operations like reactions, channels, webhooks, and forum posts. While comprehensive, it may feel heavy compared to more focused servers, but it aligns reasonably with Discord's broad API scope.
The tool set provides extensive coverage of Discord's core features, including CRUD operations for channels, categories, webhooks, messages, reactions, and forum posts. Minor gaps exist, such as missing tools for editing messages or managing server roles, but agents can handle most workflows effectively with the available tools.