MCP_Discord_Server
Provides tools to send messages and replies to Discord channels via the Discord REST API, including automatic channel name resolution.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP_Discord_Serversend a message to #general saying Hello from MCP"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP_Discord_Server
Discord Message Sending Service for Claude Desktop and KADI Agents.
Overview
MCP_Discord_Server is a TypeScript-based MCP server that provides Discord message sending capabilities. It exposes tools for sending messages and replies via Discord REST API, making it accessible to Claude Desktop and any KADI agent through the broker.
Related MCP server: Discord Notification MCP Server
Architecture
Claude Desktop / KADI Agent → kadi-broker → MCP_Discord_Server → Discord REST API → Discord ChannelComponents
Discord REST Client: Uses discord.js for Discord API integration
Channel Resolution: Converts channel names to IDs automatically
MCP Server: Exposes
send_messageandsend_replytoolsStateless Design: No event listening, pure message sending
Setup
1. Install Dependencies
npm install2. Configure Environment
Copy .env.example to .env:
cp .env.example .envEdit .env with your Discord bot token:
DISCORD_TOKEN=your_discord_bot_token_here
DISCORD_GUILD_ID=your_discord_guild_id_here # Optional
MCP_LOG_LEVEL=info3. Get Discord Bot Token
Go to Discord Developer Portal
Create a new application
Go to "Bot" section
Click "Reset Token" and copy the token
Invite bot to your server with proper permissions (Send Messages, Read Messages, etc.)
4. Build
npm run build5. Run
Development mode (with hot-reload):
npm run devProduction mode:
npm startMCP Tools
send_message
Send a message to a Discord channel.
Input:
channel(string): Channel ID or name (e.g., "general", "1234567890")text(string): Message text to sendmessage_id(optional string): Message ID to reply to
Output:
{
"success": true,
"message": "Message sent successfully",
"messageId": "1234567890",
"channelId": "9876543210"
}send_reply
Reply to a specific message in a Discord channel.
Input:
channel(string): Channel ID where the message existsmessage_id(string): Message ID to reply totext(string): Reply message text
Output:
{
"success": true,
"message": "Reply sent successfully",
"messageId": "1234567891",
"channelId": "9876543210",
"replyTo": "1234567890"
}Integration with KADI Broker
The MCP server is registered in kadi-broker/config/mcp-upstreams.json:
{
"id": "discord-server",
"name": "Discord Message Sender (MCP_Discord_Server)",
"type": "stdio",
"prefix": "discord_server",
"enabled": true,
"stdio": {
"command": "node",
"args": ["C:\\p4\\Personal\\SD\\MCP_Discord_Server\\dist\\index.js"],
"env": {
"DISCORD_TOKEN": "your_token",
"DISCORD_GUILD_ID": "your_guild_id"
}
},
"networks": ["discord"]
}Usage Examples
From Agent_TypeScript
const protocol = client.getBrokerProtocol();
const result = await protocol.invokeTool({
targetAgent: 'discord-server',
toolName: 'discord_server_send_message',
toolInput: {
channel: 'general',
text: 'Hello from Agent_TypeScript!'
},
timeout: 10000
});From Claude Desktop
When configured in Claude Desktop's MCP settings, you can simply ask:
"Send a message to the Discord channel #general saying 'Hello world!'"Claude will call the send_message tool automatically.
Discord Bot Permissions
Required bot permissions:
View Channels
Send Messages
Read Message History
Required Gateway Intents:
Guilds
Guild Messages
Channel Name Resolution
The server automatically resolves channel names to IDs:
"general"→"1234567890"(channel ID)"#announcements"→"9876543210"(strips # prefix)"1234567890"→"1234567890"(already an ID, passed through)
Channel cache is maintained in memory for fast resolution.
Logging
The server logs to console with emoji indicators:
🚀 Startup messages
✅ Message sent successfully
❌ Error messages
📤 Awaiting requests
Troubleshooting
"Discord client not ready after timeout"
Check DISCORD_TOKEN is valid
Verify bot has been invited to server
Ensure internet connection is stable
"Channel not found" errors
Verify bot has access to the channel
Check channel name spelling
Verify channel exists in the guild
"Failed to send message" errors
Check bot has "Send Messages" permission in the channel
Verify bot is not muted or has role restrictions
Check message content doesn't violate Discord ToS
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/a-g-e-n-t-s/mcp-server-discord'
If you have feedback or need assistance with the MCP directory API, please join our Discord server