SaseQ/discord-mcp
discord-mcp is hosted online, so all tools can be tested directly either in theInspector tabor in theOnline Client.
A Model Context Protocol (MCP) server for the Discord API, enabling seamless integration of Discord Bot with MCP-compatible applications.
Try discord-mcp with chat:
Server config via mcphub
📖 Description
A Model Context Protocol (MCP) server for the Discord API (JDA), allowing seamless integration of Discord Bot with MCP-compatible applications like Claude Desktop.
Enable your AI assistants to seamlessly interact with Discord. Manage channels, send messages, and retrieve server information effortlessly. Enhance your Discord experience with powerful automation capabilities.
🔬 Installation
► 🐳 Docker Installation (Recommended)
NOTE: Docker installation is required. Full instructions can be found on docker.com.
{
"mcpServers": {
"mcp-server": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>",
"-e", "DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>",
"saseq/discord-mcp:latest"
]
}
}
}
🔧 Manual Installation
Clone the repository
git clone https://github.com/SaseQ/discord-mcp
Build the project
NOTE: Maven installation is required to use the mvn command. Full instructions can be found here.
cd discord-mcp
mvn clean package # The jar file will be available in the /target directory
Configure AI client
Many code editors and other AI clients use a configuration file to manage MCP servers.
The Discord MPC server can be configured by adding the following to your configuration file.
NOTE: You will need to create a Discord Bot token to use this server. Instructions on how to create a Discord Bot token can be found here.
{
"mcpServers": {
"discord-mcp": {
"command": "java",
"args": [
"-jar",
"/absolute/path/to/discord-mcp-0.0.1-SNAPSHOT.jar"
],
"env": {
"DISCORD_TOKEN": "YOUR_DISCORD_BOT_TOKEN",
"DISCORD_GUILD_ID": "OPTIONAL_DEFAULT_SERVER_ID"
}
}
}
}
The DISCORD_GUILD_ID
environment variable is optional. When provided, it sets a default Discord server ID so any tool that accepts a guildId
parameter can omit it.
⚓ Smithery Installation
Install Discord MCP Server automatically via Smithery:
npx -y @smithery/cli@latest install @SaseQ/discord-mcp --client <CLIENT_NAME> --key <YOUR_SMITHERY_KEY>
🖲 Cursor Installation
Go to: Settings
-> Cursor Settings
-> MCP
-> Add new global MCP server
Pasting the following configuration into your Cursor ~/.cursor/mcp.json
file is the recommended approach. You may also install in a specific project by creating .cursor/mcp.json
in your project folder. See Cursor MCP docs for more info.
{
"mcpServers": {
"mcp-server": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>",
"-e", "DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>",
"saseq/discord-mcp:latest"
]
}
}
}
⌨️ Claude Code Installation
Run this command. See Claude Code MCP docs for more info.
claude mcp add mcp-server -- docker run --rm -i -e DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN> -e DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID> saseq/discord-mcp:latest
🛠️ Available Tools
Server Information
- : Get detailed discord server information
User Management
- : Get a Discord user's ID by username in a guild for ping usage
<@id>
- : Send a private message to a specific user
- : Edit a private message from a specific user
- : Delete a private message from a specific user
- : Read recent message history from a specific user
Message Management
- : Send a message to a specific channel
- : Edit a message from a specific channel
- : Delete a message from a specific channel
- : Read recent message history from a specific channel
- : Add a reaction (emoji) to a specific message
- : Remove a specified reaction (emoji) from a message
Channel Management
- : Create text a channel
- : Delete a channel
- : Find a channel type and ID using name and server ID
- : List of all channels
Category Management
- : Create a new category for channels
- : Delete a category
- : Find a category ID using name and server ID
- : List of channels in a specific category
Webhook Management
- : Create a new webhook on a specific channel
- : Delete a webhook
- : List of webhooks on a specific channel
- : Send a message via webhook
If
DISCORD_GUILD_ID
is set, theguildId
parameter becomes optional for all tools above.
A more detailed examples can be found in the Wiki.