Discord MCP Server
Allows reading messages, discovering channels, sending messages, and monitoring Discord communities using web scraping.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Discord MCP Server summarize discussions from the last 24 hours across my Discord servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Discord MCP Server
A Model Context Protocol (MCP) server that lets LLMs read messages, discover channels, send messages, and monitor Discord communities using web scraping.
Features
List Discord servers and channels you have access to
Read recent messages with time filtering (newest first)
Send messages to Discord channels (automatically splits long messages)
Web scraping approach - works with any Discord server you can access as a user
No bot permissions or API tokens required
Related MCP server: discord-mcp
Quick Start with Claude Code
# Add Discord MCP server
claude mcp add discord-mcp -s user -e DISCORD_EMAIL=your_email@example.com -e DISCORD_PASSWORD=your_password -e DISCORD_HEADLESS=true -- uvx --from git+https://github.com/elyxlz/discord-mcp.git discord-mcp
# Start Claude Code
claudeUsage Examples
# List your Discord servers
> use get_servers to show me all my Discord servers
# Read recent messages (max_messages is required)
> read the last 20 messages from channel ID 123 in server ID 456
# Send a message (long messages automatically split)
> send "Hello!" to channel 123 in server 456
# Send a long message (will be split automatically)
> send a very long message with multiple paragraphs to channel 123 in server 456
# Monitor communities
> summarize discussions from the last 24 hours across my Discord serversAvailable Tools
get_servers- List all Discord servers you have access toget_channels(server_id)- List channels in a specific serverread_messages(server_id, channel_id, max_messages, hours_back?)- Read recent messages (newest first, max_messages required)send_message(server_id, channel_id, content)- Send messages to channels (automatically splits long messages)
Manual Setup
Prerequisites
Python 3.10+ with
uvpackage managerDiscord account credentials
Installation
git clone https://github.com/elyxlz/discord-mcp.git
cd discord-mcp
uv sync
uv run playwright installConfiguration
Create .env file:
DISCORD_EMAIL=your_email@example.com
DISCORD_PASSWORD=your_password
DISCORD_HEADLESS=trueRun Server
uv run python main.pyClaude Desktop Integration
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"discord": {
"command": "uvx",
"args": ["--from", "git+https://github.com/elyxlz/discord-mcp.git", "discord-mcp"],
"env": {
"DISCORD_EMAIL": "your_email@example.com",
"DISCORD_PASSWORD": "your_password",
"DISCORD_HEADLESS": "true"
}
}
}
}Development
# Type checking
uv run pyright
# Formatting
uvx ruff format .
# Linting
uvx ruff check --fix --unsafe-fixes .
# Testing
uv run pytest -v tests/Security Notes
Use app passwords if 2FA is enabled
Consider using a dedicated Discord account for automation
Server includes delays to avoid rate limiting (0.5s between split messages)
Always use
DISCORD_HEADLESS=truein production
Troubleshooting
Login issues: Verify credentials, use app password for 2FA
Browser errors: Run
uv run playwright install --forceRate limits: Reduce
max_messages, monitor for Discord warnings (server auto-splits long messages with delays)Cookie issues: Delete
~/.discord_mcp_cookies.jsonif neededMessage splitting: Long messages (>2000 chars) automatically split into multiple messages with 0.5s delays
Legal Notice
Ensure compliance with Discord's Terms of Service. Only access information you would normally have access to as a user. Use for legitimate monitoring and research purposes.
Available Tools
4 toolsget_channelsB
List all channels in a specific Discord server
Inputs: server_id (required).
get_serversA
List all Discord servers (guilds) you have access to
Inputs: no named parameters.
read_messagesA
Read recent messages from a specific channel
Inputs: server_id (required), channel_id (required), max_messages (required), hours_back.
send_messageB
Send a message to a specific Discord channel. Long messages are automatically split.
Inputs: content (required), server_id (required), channel_id (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool targets a distinct resource and action: servers list, channels list, messages read, messages send. There is no overlap or ambiguity between them.
All tool names follow a consistent verb_noun pattern (get_servers, get_channels, read_messages, send_message). The verbs are specific and the nouns clearly indicate the target resource.
Four tools is an ideal size for a focused Discord server. Each tool covers a necessary step in the interaction flow without redundancy or bloat.
The surface covers the core read/send workflow well: discover servers, discover channels, read messages, send messages. Missing edit/delete operations are a minor gap, but the primary use case is fully supported.
Maintenance
Related MCP Connectors
Give your agent live data from Twitter, Reddit, the web and GitHub. No API keys, no scraping stack.
Scrape X, Reddit, LinkedIn, GitHub, Instagram and TikTok data as tools for AI agents.
Enable language models to perform advanced AI-powered web scraping with enterprise-grade reliabili…
Proxy-rotated web scraping and cross-platform intelligence for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with Discord channels by sending and reading messages through Discord's API, with a focus on maintaining user control and security.19 npm245MIT
- AlicenseAqualityFmaintenanceEnables LLMs to read and send Discord messages, list servers and channels, and monitor unread messages via a selfbot that uses a user token (violates Discord ToS).811 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to send and read messages in Discord channels, manage servers, channels, and roles via Discord's API.19 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to read and write Discord messages, search content, and compute channel statistics via a Discord bot.MIT