loading…
Search for a command to run...
loading…
Model Context Protocol (MCP) server for Discord integration, allowing Claude and other MCP clients to interact with Discord
Model Context Protocol (MCP) server for Discord integration, allowing Claude and other MCP clients to interact with Discord
A Discord MCP (Model Context Protocol) server that enables AI assistants to interact with the Discord platform.
MCP-Discord provides the following Discord-related functionalities:
Node.js (v18.0.0 or higher)
npm (v7.0.0 or higher)
A Discord bot with appropriate permissions
Permissions required in your Discord server:
Add your Discord bot to your server
INSERT_CLIENT_ID_HERE with your bot's client ID):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.
You can use it with the following command:
npx mcp-discord --config ${DISCORD_TOKEN}
For more details, you can check out the NPM Package.
To install mcp-discord automatically via Smithery
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 branchv1.3.8, etc. - Specific version releases# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord
# Install dependencies
npm install
# Compile TypeScript
npm run build
A Discord bot token is required for proper operation. The server supports two transport methods: stdio and streamable HTTP.
stdio (Default)
streamable HTTP
You can provide configuration in two ways:
DISCORD_TOKEN=your_discord_bot_token
# 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"
Use build/index.js when your MCP client expects a command-based stdio server.
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js"
],
"env": {
"DISCORD_TOKEN": "your_discord_bot_token"
}
}
}
}
{
"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.
Use build/app.js when you want to run mcp-discord as an HTTP MCP server.
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
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
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.discord_login: Login to Discord using the configured tokendiscord_list_servers: List all Discord servers the bot is a member ofdiscord_send: Send a message to a specified channeldiscord_get_server_info: Get Discord server informationdiscord_create_text_channel: Create a text channeldiscord_create_forum_channel: Create a forum channeldiscord_create_voice_channel: Create a voice channeldiscord_edit_channel: Edit a channel name, topic, parent category, or positiondiscord_delete_channel: Delete a channeldiscord_create_category: Create a channel categorydiscord_edit_category: Edit a channel categorydiscord_delete_category: Delete a channel categorydiscord_set_channel_permissions: Set permission overrides for a role or user on a channel/categorydiscord_remove_channel_permissions: Remove permission overrides from a channel/categorydiscord_get_forum_channels: Get a list of forum channelsdiscord_create_forum_post: Create a forum postdiscord_get_forum_post: Get a forum postdiscord_list_forum_threads: List active and archived threads in a forum channeldiscord_reply_to_forum: Reply to a forum postdiscord_get_forum_tags: Get all available tags for a forum channeldiscord_set_forum_tags: Replace the available tags for a forum channeldiscord_update_forum_post: Update a forum post's title, tags, archived state, or locked statediscord_delete_forum_post: Delete a forum postdiscord_search_messages: Search messages in a serverdiscord_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 messagediscord_add_reaction: Add a reaction to a messagediscord_add_multiple_reactions: Add multiple reactions to a messagediscord_remove_reaction: Remove a reaction from a messagediscord_delete_message: Delete a specific message from a channeldiscord_create_webhook: Creates a new webhook for a Discord channeldiscord_send_webhook_message: Sends a message to a Discord channel using a webhookdiscord_edit_webhook: Edits an existing webhook for a Discord channeldiscord_delete_webhook: Deletes an existing webhook for a Discord channeldiscord_list_roles: List all roles in a serverdiscord_create_role: Create a role with color, hoist, mentionable, and permission optionsdiscord_edit_role: Edit an existing rolediscord_delete_role: Delete a rolediscord_assign_role: Assign a role to a memberdiscord_remove_role: Remove a role from a memberdiscord_list_members: List members in a server with rolesdiscord_get_member: Get detailed information about a specific member# Development mode
npm run dev
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"discord": {
"command": "npx",
"args": [
"-y",
"mcp-discord"
]
}
}
}pro-tip
Поставил Discord? Скажи Claude: «запомни почему я установил Discord и что хочу попробовать» — попадёт в твой Vault.
как это работает →