Ramsi-K/discord-mcp
If you are the rightful owner of discord-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
The Discord MCP Server is an alpha-stage project designed to integrate AI assistants with Discord, providing tools for seamless interaction.
Discord MCP Server
ā ļø ALPHA SOFTWARE - This project is in early alpha development. Features may be incomplete or buggy. Use at your own risk.
A Model Context Protocol (MCP) server that provides Discord integration tools for AI assistants like Claude.
Current Version: 0.0.1-alpha1 (Local Development)
Project Status
- š¬ Phase: Local Development - Testing with MCP Inspector
- š Next: Alpha Release - Publish to PyPI for Claude Desktop testing
- šÆ Future: Beta & v1.0 - Feature-complete and stable
See for version planning.
Overview
This MCP server enables AI assistants to interact with Discord servers through tools for:
- ā Core Operations: List servers, channels, send messages
- ā Campaign System: Reaction-based opt-in campaigns with reminders
- š§ Future Features: Role management, member analytics, thread support, and more
Development Setup
Prerequisites
- Python 3.10+ with
uv
package manager - Discord Bot: Create at Discord Developer Portal
- Node.js (for MCP Inspector)
Installation
# Clone repository
git clone https://github.com/yourusername/mcp-discord.git
cd mcp-discord
# Install with uv
uv pip install -e ".[dev]"
Configuration
Create a .env
file:
DISCORD_TOKEN=your_discord_bot_token_here
MCP_DISCORD_DB_PATH=discord_mcp.db
LOG_LEVEL=INFO
DRY_RUN=false # Set to true for testing without Discord API
Testing with MCP Inspector
The MCP Inspector lets you test tools locally before deploying.
1. Start the MCP Inspector
npx @modelcontextprotocol/inspector python -m discord_mcp
This will:
- Start your Discord MCP server
- Launch the MCP Inspector web UI
- Open in your browser (usually http://localhost:5173)
2. Test Available Tools
In the inspector, you can test:
discord_list_servers
- See all servers your bot is indiscord_list_channels
- List channels in a serverdiscord_send_message
- Send test messagesdiscord_create_campaign
- Create reaction campaigns- And more...
3. Alternative: Direct Module Run
# Run server directly (for stdio transport)
python -m discord_mcp
# Run with development script
python dev.py server
# Run with inspector mode
python dev.py inspector
Claude Desktop Configuration (Alpha/Beta Only)
ā ļø Not ready yet - First test locally with inspector, then we'll publish to PyPI
Once published to PyPI, you can configure Claude Desktop:
Windows: Edit %APPDATA%\Claude\claude_desktop_config.json
Mac: Edit ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"discord": {
"command": "python",
"args": ["-m", "discord_mcp"],
"env": {
"DISCORD_TOKEN": "your_token_here",
"MCP_DISCORD_DB_PATH": "C:\\path\\to\\discord_mcp.db",
"LOG_LEVEL": "INFO"
}
}
}
}
Restart Claude Desktop to load the server.
Available Tools (v0.0.1-alpha)
Core Discord Tools
discord_list_servers
- List all Discord serversdiscord_list_channels
- List channels with type filteringdiscord_get_channel_info
- Get detailed channel informationdiscord_bot_status
- Check bot connection statusdiscord_get_recent_messages
- Retrieve recent messagesdiscord_get_message
- Get specific message by IDdiscord_send_message
- Send messages with reply support
Campaign & Reminder Tools
discord_create_campaign
- Create reaction opt-in campaignsdiscord_tally_optins
- Track campaign participantsdiscord_list_optins
- List opt-ins with paginationdiscord_build_reminder
- Build reminder messagesdiscord_send_reminder
- Send reminders with rate limitingdiscord_run_due_reminders
- Process scheduled reminders
See for detailed documentation.
Environment Variables
Variable | Required | Default | Description |
---|---|---|---|
DISCORD_TOKEN | Yes | - | Discord bot token |
MCP_DISCORD_DB_PATH | No | discord_mcp.db | SQLite database path |
GUILD_ALLOWLIST | No | - | Comma-separated server IDs to restrict access |
LOG_LEVEL | No | INFO | Logging level (DEBUG, INFO, WARNING, ERROR) |
DRY_RUN | No | false | Test mode without Discord API calls |
Development Commands
# Run tests
uv run pytest
# Format code
uv run black src/ tests/
uv run isort src/ tests/
# Build package
uv build
# Run MCP inspector
npx @modelcontextprotocol/inspector python -m discord_mcp
Project Structure
discord-mcp/
āāā src/discord_mcp/ # Main package
ā āāā server.py # MCP server entry point
ā āāā __main__.py # Module runner (python -m discord_mcp)
ā āāā config.py # Configuration
ā āāā discord_client/ # Discord bot implementation
ā āāā database/ # SQLite models & repos
ā āāā tools/ # MCP tool implementations
ā āāā server_registry/ # Legacy entity registry
āāā tests/ # Test suite
āāā specs/ # Documentation
ā āāā implemented/ # Current features
ā āāā future/ # Planned features
ā āāā ROADMAP.md # Version roadmap
āāā pyproject.toml # Package configuration
āāā README.md # This file
Known Issues & Limitations
- ā ļø Alpha quality - Bugs expected
- ā ļø Limited features - Only basic tools implemented
- ā ļø No error recovery - Some edge cases not handled
- ā ļø Database migrations - Manual schema updates may be needed
See GitHub Issues for known bugs.
Contributing
This is an alpha project - contributions welcome but expect things to change!
- Test locally with MCP Inspector first
- Check for planned features
- Open an issue to discuss changes
- Submit PR against
develop
branch
Release Stages
- Now (Local): Testing with MCP Inspector only
- Alpha (0.0.x): Published to PyPI, testing with Claude Desktop
- Beta (0.1.x): Feature-complete, polishing bugs
- Release (1.0.0): Stable, production-ready
License
MIT License - see file.
Support
- š Documentation: directory
- š Bug Reports: GitHub Issues
- š¬ Discussions: GitHub Discussions
Remember: This is alpha software. Always test in a non-production Discord server first!