Discord MCP
Discord MCP — это сервер по протоколу Model Context Protocol (MCP) для Discord API, обеспечивающий интеграцию Discord-ботов с AI-клиентами и автоматизацию управления серверами.
📖 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_server_info
: Get detailed discord server information
User Management
get_user_id_by_name
: Get a Discord user's ID by username in a guild for ping usage<@id>
send_private_message
: Send a private message to a specific useredit_private_message
: Edit a private message from a specific userdelete_private_message
: Delete a private message from a specific userread_private_messages
: Read recent message history from a specific user
Message Management
send_message
: Send a message to a specific channeledit_message
: Edit a message from a specific channeldelete_message
: Delete a message from a specific channelread_messages
: Read recent message history from a specific channeladd_reaction
: Add a reaction (emoji) to a specific messageremove_reaction
: Remove a specified reaction (emoji) from a message
Channel Management
create_text_channel
: Create text a channeldelete_channel
: Delete a channelfind_channel
: Find a channel type and ID using name and server IDlist_channels
: List of all channels
Category Management
create_category
: Create a new category for channelsdelete_category
: Delete a categoryfind_category
: Find a category ID using name and server IDlist_channels_in_category
: List of channels in a specific category
Webhook Management
create_webhook
: Create a new webhook on a specific channeldelete_webhook
: Delete a webhooklist_webhooks
: List of webhooks on a specific channelsend_webhook_message
: 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.