| name | discord-send-message |
| description | Send messages to Discord channels via the Discord API. Use this skill when the user wants to send text messages, notifications, or formatted content to a Discord channel. |
Discord Send Message
Send messages to Discord channels using the Discord API v10. This skill supports plain text messages, formatted markdown content, and embeds.
When to Use This Skill
Use this skill when the user wants to:
- Send a message to a Discord channel
- Post a notification or announcement
- Send formatted text with markdown
- Post embeds with rich content
- Reply to or interact with Discord programmatically
Prerequisites
DISCORD_BOT_TOKENenvironment variable must be set- Bot must be a member of the target server
- Bot must have "Send Messages" permission in the target channel
- Valid Discord channel ID (18-19 digit snowflake ID)
Instructions
When the user requests to send a Discord message:
Validate Requirements
- Confirm
DISCORD_BOT_TOKENis set in environment - Verify channel ID is provided (18-19 digit number)
- Check that message content is not empty
- Confirm
Prepare the Message
- Extract the message content from user request
- Format any markdown if needed (Discord supports markdown)
- For embeds, structure as JSON with title, description, color, fields, etc.
Make the API Request Use the following curl command structure:
curl -X POST "https://discord.com/api/v10/channels/{CHANNEL_ID}/messages" \ -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \ -H "Content-Type: application/json" \ -d '{"content": "Your message here"}'Replace:
{CHANNEL_ID}with the actual channel ID"Your message here"with the actual message content
Handle Response
- Success (200): Message sent successfully, return message ID
- 401 Unauthorized: Invalid bot token
- 403 Forbidden: Missing permissions or bot not in server
- 404 Not Found: Channel doesn't exist or bot can't see it
- 400 Bad Request: Invalid message content
Report Results
- Confirm message was sent successfully
- Provide the message ID for reference
- If error occurs, explain the issue clearly
Message Format Options
Plain Text
{
"content": "Hello from Claude Code!"
}
Markdown Formatting
{
"content": "**Bold text** *Italic text* `code` [Link](https://example.com)"
}
Basic Embed
{
"embeds": [{
"title": "Notification",
"description": "This is an embed message",
"color": 3447003,
"fields": [
{
"name": "Field Name",
"value": "Field Value",
"inline": false
}
]
}]
}
Text + Embed
{
"content": "Check out this embed:",
"embeds": [{
"title": "Title",
"description": "Description"
}]
}
Validation Rules
Before sending:
- Message content must not exceed 2000 characters
- Embed description must not exceed 4096 characters
- Embed title must not exceed 256 characters
- Total embed size must not exceed 6000 characters
- Channel ID must be numeric (snowflake format)
Error Handling
Common Errors
401 Unauthorized
- Check that
DISCORD_BOT_TOKENis set correctly - Verify token hasn't expired or been regenerated
403 Forbidden
- Bot needs "Send Messages" permission in channel
- Bot must be added to the server
- Check channel permission overrides
404 Not Found
- Channel ID is incorrect
- Channel was deleted
- Bot doesn't have "View Channel" permission
400 Bad Request
- Message content is empty or too long
- Invalid JSON in embed structure
- Invalid embed field values
Security Notes
- Never expose the bot token in messages or logs
- Validate all user input before sending to Discord
- Don't send sensitive information unless channel is private
- Respect Discord's rate limits (5 messages per 5 seconds per channel)
Examples
See examples.md for detailed usage scenarios.
API Reference
- Endpoint:
POST /channels/{channel.id}/messages - Discord API Version: v10
- Documentation: https://discord.com/developers/docs/resources/channel#create-message