MCP Directory

Discord MCP

Connect AI assistants to Discord — manage channels, messages, roles, members, events and more via a JDA-powered bot.

Unverified
HTTP (remote)
API key
Java

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
docker run -d -i --name discord-mcp --restart unless-stopped -p 8085:8085 -e SPRING_PROFILES_ACTIVE -e DISCORD_TOKEN -e DISCORD_GUILD_ID saseq/discord-mcp:latest

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "discord-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "http://localhost:8085/mcp"
      ]
    }
  }
}

Claude Desktop connects to remote servers through the `mcp-remote` proxy (installed on first run via npx). Restart Claude Desktop after saving.

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

Before you start

  • A Discord bot and its token (DISCORD_TOKEN)
  • Docker (recommended) — or Maven + Java to build and run the JAR manually
  • Optional: DISCORD_GUILD_ID to set a default server ID so guildId can be omitted on tools

About Discord MCP

An MCP server that bridges AI assistants and Discord through a JDA-based bot. It exposes a comprehensive set of Discord management tools — messaging, channels, categories, roles, webhooks, invites, forums, emojis, scheduled events, voice/stage channels, permission overwrites and moderation — over an HTTP MCP endpoint (default http://localhost:8085/mcp) or a legacy stdio transport. Setup is via Docker (recommended), Docker Compose, or a Maven-built JAR.

Tools & capabilities (73)

get_server_info

Get detailed Discord server information

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 user

edit_private_message

Edit a private message from a specific user

delete_private_message

Delete a private message from a specific user

read_private_messages

Read private message history from a specific user (includes attachment metadata, count 1-100 and optional cursor: before/after/around)

send_message

Send a message to a specific channel

edit_message

Edit a message from a specific channel

delete_message

Delete a message from a specific channel

read_messages

Read message history from a specific channel (includes attachment metadata, count 1-100 and optional cursor: before/after/around)

add_reaction

Add a reaction (emoji) to a specific message

remove_reaction

Remove a specified reaction (emoji) from a message

create_text_channel

Create a new text channel

edit_text_channel

Edit settings of a text channel (name, topic, nsfw, slowmode, category, position)

delete_channel

Delete a channel

find_channel

Find a channel type and ID using name and server ID

list_channels

List of all channels

get_channel_info

Get detailed information about a channel

move_channel

Move a channel to another category and/or change its position

create_category

Create a new category for channels

edit_category

Edit a category (rename or move position)

delete_category

Delete a category

find_category

Find a category ID using name and server ID

list_channels_in_category

List of channels in a specific category

create_webhook

Create a new webhook on a specific channel

delete_webhook

Delete a webhook

list_webhooks

List of webhooks on a specific channel

send_webhook_message

Send a message via webhook

list_roles

Get a list of all roles on the server with their details

create_role

Create a new role on the server

edit_role

Modify an existing role's settings

delete_role

Permanently delete a role from the server

assign_role

Assign a role to a user

remove_role

Remove a role from a user

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

create_voice_channel

Create a new voice channel in a guild

create_stage_channel

Create a new stage channel for audio events

edit_voice_channel

Edit settings of a voice or stage channel (name, bitrate, user limit, region)

move_member

Move a member to another voice channel

disconnect_member

Disconnect a member from their current voice channel

modify_voice_state

Server mute or deafen a member in voice channels

create_guild_scheduled_event

Schedule a new event on the server (voice, stage, or external)

edit_guild_scheduled_event

Modify event details or change its status (start, complete, cancel)

delete_guild_scheduled_event

Permanently delete a scheduled event

list_guild_scheduled_events

List all active and scheduled events on the server

get_guild_scheduled_event_users

Get list of users interested in a scheduled event

list_channel_permission_overwrites

List all permission overwrites for a channel with role/member breakdown

upsert_role_channel_permissions

Create or update permission overwrite for a role on a channel

upsert_member_channel_permissions

Create or update permission overwrite for a member on a channel

delete_channel_permission_overwrite

Delete a permission overwrite for a role or member from a channel

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)

create_forum_channel

Create a new forum channel

edit_forum_channel

Edit settings of a forum channel (name, topic, nsfw, slowmode, category, position, default sort, default layout)

list_forum_channels

List all forum channels in the server

get_forum_channel_info

Get detailed information about a forum channel including tags and settings

list_forum_tags

List all available tags in a forum channel

create_forum_post

Create a new forum post (thread) with an initial message in a forum channel

list_forum_posts

List active posts (threads) in a forum channel

modify_forum_post

Modify a forum post: lock/unlock, archive/unarchive, pin/unpin, or change applied tags

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

What this server can do

Discord MCP provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Let an AI assistant post, edit, and moderate messages in a Discord community
  • Automate server administration — create/edit channels, categories, roles, and permission overwrites
  • Run moderation workflows: kick, ban, timeout, and manage nicknames or banned-user lists
  • Manage scheduled events, voice/stage channels, forum posts, invites, webhooks, and custom emojis
  • Wire Discord actions into no-code/agent pipelines via n8n, Codex CLI, or OpenClaw

Security notes

Requires a Discord bot token (DISCORD_TOKEN) supplied via environment variable; treat it as a secret. The bot can perform destructive and moderation actions (delete channels/messages, kick/ban members, manage roles and permissions), so grant it only the Discord permissions it needs. The default HTTP endpoint http://localhost:8085/mcp is reachable only from the local machine; to expose it remotely (e.g. for Claude Desktop remote connectors) put it behind public HTTPS via a tunnel or reverse proxy.

Discord MCP FAQ

What credentials do I need?

A Discord bot token set as the DISCORD_TOKEN environment variable. Optionally set DISCORD_GUILD_ID to a default server ID so the guildId parameter becomes optional on every tool.

Which transport should I use?

HTTP singleton mode is recommended — connect clients to http://localhost:8085/mcp. A legacy stdio mode is also supported, which launches a new process/container per client session.

How do I run it?

Pull and run the Docker image saseq/discord-mcp:latest (also available via Docker Compose), or build the JAR from source with Maven and run it with java -jar.

Can Claude Desktop connect remotely?

Yes, but the default endpoint is local-only. Expose it over public HTTPS (tunnel or reverse proxy) and add it as a custom Connector in Claude Desktop's Connectors UI.

Alternatives to Discord MCP

Compare all alternatives →

Connect your personal WhatsApp: search, read and send messages and media locally

Verified
stdio (local)
No auth
Python
12 tools
Updated 1 month agoRepo

Powerful Slack MCP with stdio/SSE/HTTP, DMs, group DMs and no-admin token auth

Verified
stdio (local)
API key
Go
12 tools
Updated 1 month agoRepo

Full Telegram user-account MCP via MTProto: read chats, manage groups, send messages

Verified
stdio (local)
API key
Python
11 tools
Updated 11 days agoRepo