Install
$ agentstack add mcp-codependentai-cloud-discord ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Cloud Discord
A full-featured Discord MCP (Model Context Protocol) server that runs on Cloudflare Workers. Gives AI agents complete admin control over Discord servers — 59 tools covering messaging, moderation, forums, roles, files, voice notes, and more.
Deploy once, connect from any MCP-compatible client (Claude Code, Claude Desktop, Cursor, etc.).
Features
59 tools across 12 categories:
| Category | Tools | What You Can Do | |----------|-------|----------------| | Messaging | 8 | Send, edit, delete, bulk delete, read history, send embeds, read/send DMs | | Moderation | 4 | Kick, ban, unban, timeout members | | Roles | 7 | Create, edit, delete, assign, remove roles, list member roles | | Channels | 6 | Create, edit, delete channels, set slowmode, set permissions, list all | | Threads | 3 | Create, manage (archive/lock), delete threads | | Forums | 9 | Create/edit/list posts, manage tags, set layout/sort/guidelines | | Reactions | 3 | Add, remove, get reactions | | Pins | 3 | Pin, unpin, list pinned messages | | Files | 2 | Send files to channels or DMs (via URL or base64) | | Voice | 1 | Text-to-speech voice notes via ElevenLabs (optional) | | Server | 4 | Guild info, audit log, list servers, member list | | Invites | 3 | Create, list, delete invites | | Polls | 1 | Create native Discord polls |
Plus:
/vibeslash command — AI-powered channel vibe check (requires Anthropic API key)- Direct file upload endpoint — send files from your machine without base64 encoding
- Secret-path authentication — your MCP endpoint is only accessible with your secret URL
- Rate limit handling with automatic retry
Prerequisites
- A Cloudflare account (free tier works)
- Node.js 18+
- A Discord bot with appropriate permissions
Setup
1. Create a Discord Bot
- Go to the Discord Developer Portal
- Click New Application, give it a name
- Go to the Bot tab:
- Click Reset Token and save the token — you'll need it later
- Enable Message Content Intent under Privileged Gateway Intents
- Go to the General Information tab:
- Copy the Application ID (you'll need this for the
/vibecommand) - Copy the Public Key (you'll need this for
wrangler.toml)
- Go to OAuth2 > URL Generator:
- Select scopes:
bot,applications.commands - Select bot permissions:
Administrator(or select individual permissions you need) - Copy the generated URL and open it in your browser to invite the bot to your server
2. Clone and Install
git clone https://github.com/codependentai/cloud-discord.git
cd cloud-discord
npm install
3. Configure
Edit wrangler.toml:
[vars]
# Generate a random secret: openssl rand -base64 24
MCP_SECRET_PATH = "your-random-secret-here"
# From Discord Developer Portal > General Information > Public Key
DISCORD_PUBLIC_KEY = "your-public-key-here"
4. Add Secrets
These are stored securely in Cloudflare — they never appear in your code:
# Required — your Discord bot token
npx wrangler secret put DISCORD_BOT_TOKEN
# Paste your bot token when prompted
# Optional — needed for the /vibe slash command
npx wrangler secret put ANTHROPIC_API_KEY
# Optional — needed for voice notes (discord_send_voice_note)
npx wrangler secret put ELEVENLABS_API_KEY
5. Deploy
npx wrangler deploy
Your MCP server is now live at:
https://cloud-discord..workers.dev/mcp/
6. Connect to Your MCP Client
Add the server to your MCP client's configuration. For example, in Claude Code's .mcp.json:
{
"mcpServers": {
"discord": {
"type": "url",
"url": "https://cloud-discord..workers.dev/mcp/"
}
}
}
For Claude Desktop, add it to claude_desktop_config.json under mcpServers with the same format.
Optional: Register the /vibe Slash Command
The /vibe command lets anyone in your Discord server run an AI-powered vibe check on the current channel. It reads the last 20 messages and summarizes what's happening.
Requires ANTHROPIC_API_KEY to be set.
DISCORD_APP_ID=your_app_id DISCORD_BOT_TOKEN=your_token npx tsx src/register-commands.ts
Then in Discord Developer Portal, set the Interactions Endpoint URL to:
https://cloud-discord..workers.dev/interactions
Optional: Voice Notes
The discord_send_voice_note tool generates speech using ElevenLabs and sends it as an audio file to Discord.
- Sign up at ElevenLabs and get an API key
- Add the secret:
npx wrangler secret put ELEVENLABS_API_KEY - Find your voice ID in the Voice Lab
- Use the tool with
voice_idandtextparameters
If ELEVENLABS_API_KEY is not set, the tool will return an error when called but won't affect any other tools.
Direct File Upload
For sending local files (images, audio, documents) without base64 encoding, use the direct upload endpoint:
# Send to a channel
curl -F "channel_id=CHANNEL_ID" \
-F "file=@/path/to/file.mp3" \
-F "message=Optional message" \
https://cloud-discord..workers.dev/mcp//upload
# Send as DM
curl -F "user_id=USER_ID" \
-F "file=@/path/to/image.png" \
https://cloud-discord..workers.dev/mcp//upload
This is useful when the MCP tool's base64 parameter would be too large (e.g., audio files).
Tool Reference
Messaging
| Tool | Description | |------|-------------| | discord_read_messages | Read channel message history (1-100 messages) | | discord_read_dm_messages | Read DM history with a user | | discord_send_message | Send a message, optionally as a reply | | discord_send_dm | Send a direct message to a user | | discord_edit_message | Edit a bot message | | discord_delete_message | Delete a message | | discord_bulk_delete_messages | Delete 2-100 messages at once (must be `
- Translates tool calls into Discord REST API requests
- Returns formatted results to the MCP client
No database, no state, no containers. Auth is handled by the secret path in the URL — anyone with the URL can use all tools, so treat it like an API key.
The /vibe slash command handles Discord interactions at /interactions using signature verification.
Development
# Run locally
npx wrangler dev
# Type check
npx tsc --noEmit
# Deploy
npx wrangler deploy
License
MIT — see [LICENSE](LICENSE).
Built by Codependent AI.
Support
Built by Codependent AI.
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: codependentai
- Source: codependentai/cloud-discord
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.