@chinchillaenterprises/mcp-discord
v3.0.0
Published
Modular Discord MCP server with 45+ tools for comprehensive server management, featuring clean architecture and discord_ prefixed tools
Downloads
15
Readme
Discord MCP Server
Multi-account MCP server for Discord with secure credential storage and comprehensive bot management capabilities.
Features
Account Management (7 tools)
- Multi-account support - Manage multiple Discord bots/servers
- Secure credential storage - OS keychain integration with encrypted file fallback
- Runtime switching - Change between Discord accounts seamlessly
Core Messaging (12 tools implemented, more coming)
- ✅ Send messages - Text and rich embeds with replies
- ✅ Edit messages - Modify bot's own messages
- ✅ Delete messages - Remove messages from channels
- ✅ Add reactions - React with emojis
- ✅ Channel history - Fetch recent messages
- 🚧 Pin/unpin messages
- 🚧 Send DMs
- 🚧 Forward messages
- 🚧 Send files
Server Management (coming soon)
- 🚧 List guilds/channels
- 🚧 Member management
- 🚧 Role assignment
- 🚧 Permission management
Installation
# Install globally with user scope
claude mcp add discord -s user -- npx @chinchillaenterprises/mcp-discord
# Or with environment variables
claude mcp add discord -s user \
-e DISCORD_TOKEN="your_bot_token_here" \
-e DISCORD_GUILD_ID="optional_guild_id" \
-- npx @chinchillaenterprises/mcp-discordSetup
1. Create Discord Application
- Go to Discord Developer Portal
- Click "New Application" and give it a name
- Go to "Bot" section
- Click "Reset Token" and copy your bot token
2. Set Bot Permissions
In the Bot section, configure these permissions:
- Send Messages
- Read Message History
- Manage Messages
- Add Reactions
- View Channels
3. Invite Bot to Server
- Go to OAuth2 → URL Generator
- Select scopes:
bot - Select the permissions above
- Copy the generated URL and open it
- Select your server and authorize
4. Configure MCP Server
# Start Claude
claude
# Add your Discord account
"Use add_account to add a Discord bot with ID 'my-bot', name 'My Discord Bot', and token 'your_bot_token_here'"
# List accounts
"List my Discord accounts"
# Test messaging
"Send a message to #general saying 'Hello from Discord MCP!'"Usage Examples
Basic Messaging
# Send text message (using channel name)
"Send a message to #general with text 'Hello Discord!'"
"Send 'Good morning!' to the announcements channel"
# Send rich embed (using channel name)
"Send an embed to #general with title 'Welcome' and description 'This is a test embed' with color 0x00ff00"
# Reply to a message
"Send 'Great question!' as a reply to message 1234567890 in #help-desk"
# Using channel IDs still works
"Send a message to channel 123456789012345678 with text 'Hello Discord!'"Message Management
# Edit a message
"Edit message 1234567890 in #general to say 'Updated message!'"
# Delete a message
"Delete message 1234567890 from the announcements channel"
# Add reaction
"Add a 👍 reaction to message 1234567890 in general"Channel History
# Get recent messages
"Get the last 20 messages from #general"
"Show me recent messages in help-desk"
# Get messages before a specific message
"Get 50 messages from #announcements before message 1234567890"Channel Name Resolution
The Discord MCP server intelligently resolves channel names:
- Exact match:
#general→ finds "general" channel - Without hashtag:
general→ finds "general" channel - Partial match:
announce→ finds "announcements" channel - Case insensitive:
General→ finds "general" channel - Channel IDs:
1390027279156908238→ uses ID directly
If multiple channels match, it uses the best match and logs alternatives.
Account Management
Add Account
{
"id": "work-bot",
"name": "Work Discord Bot",
"token": "your_bot_token",
"guildId": "optional_guild_id",
"setAsDefault": true
}Switch Accounts
"Switch to Discord account work-bot"List Accounts
"List all my Discord accounts"Available Tools
Account Management
list_accounts- List all configured Discord accountsadd_account- Add new Discord bot configurationswitch_account- Switch active Discord accountremove_account- Remove account configurationget_active_account- Show current active accountset_default_account- Set default accountupdate_account- Update credentials
Messaging Tools
discord_send_message- Send messages with text/embedsdiscord_edit_message- Edit existing messagesdiscord_delete_message- Delete messagesdiscord_add_reaction- Add emoji reactionsdiscord_get_channel_history- Fetch channel messages
Security
- Bot tokens are stored securely using OS keychain (when available)
- Fallback to encrypted file storage with AES-256-CBC
- Credentials are never logged or exposed
- Each account is isolated
Requirements
- Node.js 18+
- Discord bot token
- Discord server with bot invited
Troubleshooting
Bot not responding
- Check bot has required permissions in the channel
- Verify bot is online in Discord
- Ensure token is valid (starts with 'MTM...')
Channel not found
- Verify channel ID is correct
- Ensure bot has access to the channel
- Check if it's a text channel (not voice)
Permission errors
- Bot needs "Send Messages" permission
- For editing/deleting: "Manage Messages"
- For reactions: "Add Reactions"
Development
# Clone and setup
git clone https://github.com/ChinchillaEnterprises/ChillMCP.git
cd ChillMCP/mcp-discord
npm install
# Build
npm run build
# Test locally
claude mcp add discord-local -s user -- node $(pwd)/dist/index.jsLicense
MIT - Chinchilla Enterprises
Support
Report issues at: https://github.com/ChinchillaEnterprises/ChillMCP/issues
