mcpField
M
MCP-Discord

MCP-Discord

Local
github.com/barryyip0625Communication108Updated 7w ago

About MCP-Discord

MCP-Discord is an MCP server that lets AI assistants work with Discord through a bot account. It covers servers, channels, forums, messages, roles, members and webhooks, and supports stdio and streamable HTTP transports. It is built on Node.js and also ships as a Docker image.

Key features

  1. 01Bot login and server listing
  2. 02Text, forum, voice channel and category management
  3. 03Forum post creation, replies and tag management
  4. 04Message reading, search, editing and reactions
  5. 05Role, member and webhook management
  6. 06stdio and streamable HTTP transports

Use cases

  1. 01Letting an AI assistant post notices or organize channels in a community server
  2. 02Creating and archiving forum posts through forum tools
  3. 03Configuring server structure, roles and permissions

MCP support

This project is an MCP server that exposes Discord operations as tools to MCP clients, such as discord_send, discord_read_messages and discord_create_role.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"discord-barryyip0625": {
"command": "npx",
"args": [
"-y",
"mcp-discord"
]
}
}
}
Run commandnpx -y mcp-discord

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmmcp-discord

Tools

22

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
guildIdstringYes
namestringYes
positionnumberNo
reasonstringNo

Details

From the project README

MCP-Discord

MCP Toplist MCP Server Docker Hub

A Discord MCP (Model Context Protocol) server that enables AI assistants to interact with the Discord platform.

MCP-Discord MCP server

Overview

MCP-Discord provides the following Discord-related functionalities:

  • Login to Discord bot
  • List servers the bot is a member of
  • Get server information
  • List members and inspect member details
  • List, create, edit, delete, assign, and remove roles
  • Search messages in a server
  • Read, edit, and delete channel messages
  • Send messages to specified channels
  • Retrieve forum channel lists
  • Create, update, delete, and reply to forum posts
  • List forum threads and manage forum tags
  • Create, edit, and delete text, forum, voice channels, and categories
  • Set and remove channel permission overrides
  • Add/remove message reactions
  • Create/edit/delete/use webhooks

Table of Contents

Prerequisites

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 NPM

You can use it with the following command:

npx mcp-discord --config ${DISCORD_TOKEN}

For more details, you can check out the NPM Package.

Installing via Smithery

To install mcp-discord automatically via Smithery

Installing via Docker

You can run mcp-discord using Docker. The Docker images are automatically built and published to Docker Hub.

Docker Hub Repository: barryy625/mcp-discord

Docker uses the streamable HTTP server by default via build/app.js.

# Pull the latest image
docker pull barryy625/mcp-discord:latest

# Run HTTP server on port 8080
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest

# Override the listening port if needed
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

Available Tags:

  • latest - Latest stable version from main branch
  • v1.3.8, etc. - Specific version releases
Manual Installation
# 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:
DISCORD_TOKEN=your_discord_bot_token
  1. Using command line arguments:
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"

# For streamable HTTP transport
node build/app.js --transport http --port 3000 --config "your_discord_bot_token"

Usage with Claude/Cursor

1. Use Stdio Transport with Claude/Cursor

Use build/index.js when your MCP client expects a command-based stdio server.

Claude Desktop / Claude Code
{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js"
            ],
            "env": {
                "DISCORD_TOKEN": "your_discord_bot_token"
            }
        }
    }
}
Cursor
{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js"
            ],
            "env": {
                "DISCORD_TOKEN": "your_discord_bot_token"
            }
        }
    }
}

This is the recommended setup for local command-based MCP clients.

2. Self-Host the Streamable HTTP Server

Use build/app.js when you want to run mcp-discord as an HTTP MCP server.

Run with Node.js
DISCORD_TOKEN=your_discord_bot_token node build/app.js --transport http --port 3000

On Windows PowerShell:

$env:DISCORD_TOKEN="your_discord_bot_token"
node build/app.js --transport http --port 3000
Run with Docker
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

Once started, the MCP HTTP endpoint is:

http://localhost:3000/mcp
3. Connect to a Hosted HTTP MCP Server

If you already host mcp-discord elsewhere, point your MCP client at the server's /mcp endpoint instead of launching build/app.js as a command.

Example endpoint:

https://your-server.example.com/mcp

Important notes:

  • build/app.js starts an HTTP server. It does not speak stdio.
  • build/index.js is the correct entrypoint for command-based stdio MCP clients.
  • For hosted HTTP usage, configure your MCP client to connect to the HTTP endpoint URL provided by your deployment.
  • The exact HTTP-client configuration format depends on the MCP client you use.

Tools Documentation

Basic Functions
  • discord_login: Login to Discord using the configured token
  • discord_list_servers: List all Discord servers the bot is a member of
  • discord_send: Send a message to a specified channel
  • discord_get_server_info: Get Discord server information
Channel Management
  • discord_create_text_channel: Create a text channel
  • discord_create_forum_channel: Create a forum channel
  • discord_create_voice_channel: Create a voice channel
  • discord_edit_channel: Edit a channel name, topic, parent category, or position
  • discord_delete_channel: Delete a channel
  • discord_create_category: Create a channel category
  • discord_edit_category: Edit a channel category
  • discord_delete_category: Delete a channel category
  • discord_set_channel_permissions: Set permission overrides for a role or user on a channel/category
  • discord_remove_channel_permissions: Remove permission overrides from a channel/category
Forum Functions
  • discord_get_forum_channels: Get a list of forum channels
  • discord_create_forum_post: Create a forum post (optionally pinned to the top of the channel)
  • discord_get_forum_post: Get a forum post
  • discord_list_forum_threads: List active and archived threads in a forum channel
  • discord_reply_to_forum: Reply to a forum post
  • discord_get_forum_tags: Get all available tags for a forum channel
  • discord_set_forum_tags: Replace the available tags for a forum channel
  • discord_update_forum_post: Update a forum post's title, tags, archived state, locked state, or pinned state
  • discord_delete_forum_post: Delete a forum post
Messages and Reactions
  • discord_search_messages: Search messages in a server
  • discord_read_messages: Read channel messages (supports before, after, around params — accepts snowflake IDs or ISO 8601 dates like "2025-03-01T00:00:00Z")
  • discord_edit_message: Edit a bot-authored message
  • 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
  • discord_pin_message: Pin a message to its channel (max 50 pins per channel)
  • discord_unpin_message: Remove a message from its channel's pinned messages
  • discord_list_pinned_messages: List a channel's pinned messages, newest pin first
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
Role Management
  • discord_list_roles: List all roles in a server
  • discord_create_role: Create a role with color, hoist, mentionable, and permission options
  • discord_edit_role: Edit an existing role
  • discord_delete_role: Delete a role
  • discord_assign_role: Assign a role to a member
  • discord_remove_role: Remove a role from a member
Member Management
  • discord_list_members: List members in a server with roles
  • discord_get_member: Get detailed information about a specific member

Development

# Development mode
npm run dev

License

MIT License

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.