Discord MCP

An MCP server for the Discord API, enabling seamless integration of Discord bots with MCP-compatible applications.

DeepSeek-V3

📖 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-1.0.0.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.

🦞 OpenClaw Installation

Run this command.

openclaw mcp add \
  --name discord \
  --transport stdio \
  --command "docker" \
  --args "run" \
  --args "--rm" \
  --args "-i" \
  --args "-e" --args "DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>" \
  --args "-e" --args "DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>" \
  --args "saseq/discord-mcp:latest"

OR

Pasting the following configuration into your OpenClaw ~/.openclaw/config.json or mcp_servers.json file.

{
  "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"
      ]
    }
  }
}
🖲 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

User Management

Message Management

Channel Management

Category Management

Webhook Management

Role Management

Moderation and User Management

  • kick_member: Kicks a member from the server
  • ban_member: Bans a user from the server
  • unban_member: Removes a ban from a user
  • timeout_member: Disables communication for a member for a specified duration
  • remove_timeout: Removes a timeout (unmute) from a member before it expires
  • set_nickname: Changes a member's nickname on the server
  • get_bans: Returns a list of banned users on the server with ban reasons

Voice & Stage Channel Management

Scheduled Events Management

Channel Permission Overwrites

Invite Management

  • create_invite: Create a new invite link for a specific channel
  • list_invites: List all active invites on the server with their statistics
  • delete_invite: Delete (revoke) an invite so the link stops working
  • get_invite_details: Get details about a specific invite (works for any public invite)

Emoji Management

  • list_emojis: List all custom emojis on the server
  • get_emoji_details: Get detailed information about a specific custom emoji
  • create_emoji: Upload a new custom emoji to the server (base64 or image URL, max 256KB)
  • edit_emoji: Edit an existing emoji's name or role restrictions
  • delete_emoji: Permanently delete a custom emoji from the server

If DISCORD_GUILD_ID is set, the guildId parameter becomes optional for all tools above.


A more detailed examples can be found in the Wiki.

Servidores relacionados