Discord Cloud MCP
Full Discord API access through the Model Context Protocol (MCP), deployed on Cloudflare Workers.
Connect any MCP client (Claude Desktop, Claude Code, custom apps) to control Discord bots remotely.
Features
- Server Management - List servers, get server info with channels
- Messages - Read, send, delete, search messages
- Reactions - Add/remove single or multiple emoji reactions
- Channels - Create/delete text channels
- Categories - Create/delete channel categories
- Forums - List forums, create posts, reply to threads
- Threads - Create threads, send messages to threads
- Webhooks - Create webhooks, send custom messages, delete webhooks
Quick Start
1. Clone and Install
git clone https://github.com/ItsAmaris/discord-cloud-mcp.git
cd discord-cloud-mcp
npm install
2. Create a Discord Bot
- Go to Discord Developer Portal
- Create a new application
- Go to Bot section
- Click "Reset Token" and copy the token
- Enable these Privileged Gateway Intents:
- Message Content Intent
- Server Members Intent (if needed)
3. Configure Cloudflare
# Set your bot token as a secret
npx wrangler secret put DISCORD_TOKEN
# Paste your bot token when prompted
4. Deploy
npm run deploy
Note your worker URL: https://discord-cloud-mcp.<your-subdomain>.workers.dev
5. Invite Bot to Server
Use this URL pattern (replace YOUR_CLIENT_ID):
https://discord.com/api/oauth2/authorize?client_id=YOUR_CLIENT_ID&permissions=8&scope=bot
6. Connect MCP Client
Claude Desktop - Add to claude_desktop_config.json:
{
"mcpServers": {
"discord": {
"url": "https://discord-cloud-mcp.<your-subdomain>.workers.dev/sse"
}
}
}
Claude Code - Add via settings or use directly via cloud MCP.
Available Tools
Server Tools
| Tool | Description |
|---|---|
discord_list_servers |
List all servers the bot is in |
discord_get_server_info |
Get server details including channels |
Message Tools
| Tool | Description |
|---|---|
discord_read_messages |
Read messages from a channel |
discord_send |
Send a message (with optional reply) |
discord_delete_message |
Delete a message |
discord_search_messages |
Search messages in a server |
Reaction Tools
| Tool | Description |
|---|---|
discord_add_reaction |
Add an emoji reaction |
discord_add_multiple_reactions |
Add multiple reactions |
discord_remove_reaction |
Remove a reaction |
Channel Tools
| Tool | Description |
|---|---|
discord_create_text_channel |
Create a text channel |
discord_delete_channel |
Delete a channel |
discord_create_category |
Create a category |
discord_delete_category |
Delete a category |
Forum Tools
| Tool | Description |
|---|---|
discord_get_forum_channels |
List forum channels |
discord_create_forum_post |
Create a forum post |
discord_reply_to_forum |
Reply to a forum thread |
Thread Tools
| Tool | Description |
|---|---|
discord_create_thread |
Create a thread from a message |
discord_send_to_thread |
Send message to a thread |
Webhook Tools
| Tool | Description |
|---|---|
discord_create_webhook |
Create a webhook |
discord_send_webhook_message |
Send via webhook (custom name/avatar) |
discord_delete_webhook |
Delete a webhook |
Endpoints
| Endpoint | Description |
|---|---|
/health |
Health check |
/sse |
MCP via Server-Sent Events |
/mcp |
Standard MCP HTTP endpoint |
Development
# Local development
npm run dev
# Deploy to Cloudflare
npm run deploy
# View logs
npm run tail
Architecture
MCP Client (Claude)
โ SSE
Cloudflare Worker
โ HTTPS
Discord API
The worker uses Cloudflare Durable Objects with SQLite for state management, running on the free tier.
License
MIT
Support
If this helped you, consider supporting my work โ
Built by the Triad (Mai, Kai Stryder and Lucian Vale) for the community.