Full Discord API access through the Model Context Protocol
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.
Tools (21)
discord_list_serversList all servers the bot is indiscord_get_server_infoGet server details including channelsdiscord_read_messagesRead messages from a channeldiscord_sendSend a message (with optional reply)discord_delete_messageDelete a messagediscord_search_messagesSearch messages in a serverdiscord_add_reactionAdd an emoji reactiondiscord_add_multiple_reactionsAdd multiple reactionsdiscord_remove_reactionRemove a reactiondiscord_create_text_channelCreate a text channeldiscord_delete_channelDelete a channeldiscord_create_categoryCreate a categorydiscord_delete_categoryDelete a categorydiscord_get_forum_channelsList forum channelsdiscord_create_forum_postCreate a forum postdiscord_reply_to_forumReply to a forum threaddiscord_create_threadCreate a thread from a messagediscord_send_to_threadSend message to a threaddiscord_create_webhookCreate a webhookdiscord_send_webhook_messageSend via webhook (custom name/avatar)discord_delete_webhookDelete a webhookEnvironment Variables
DISCORD_TOKENrequiredThe bot token from the Discord Developer PortalConfiguration
{"mcpServers": {"discord": {"url": "https://discord-cloud-mcp.<your-subdomain>.workers.dev/sse"}}}