--- name: discord description: "Interact with Discord — send messages, embeds, react, manage threads, pins, search, and look up members. Use when the user asks to send a Discord message, react, read channels, create threads, or manage Discord content." emoji: "🎮" --- # Discord Interact with Discord using the built-in MCP tools provided by the `nomos-discord` server. These tools call the Discord REST API directly — no curl commands or shell environment variables needed. ## Available Tools ### Messaging | Tool | Description | | ------------------------ | ----------------------------------------------------- | | `discord_send_message` | Send a text message to a channel or thread | | `discord_send_embed` | Send a rich embed (title, description, color, footer) | | `discord_edit_message` | Edit an existing message | | `discord_delete_message` | Delete a message | ### Reading & Search | Tool | Description | | ---------------------- | --------------------------------------------------------- | | `discord_read_channel` | Read recent messages from a channel or thread | | `discord_search` | Search messages in a guild by content, author, or channel | ### Reactions & Pins | Tool | Description | | ----------------------- | --------------------------------- | | `discord_react` | Add a reaction emoji to a message | | `discord_pin_message` | Pin a message | | `discord_unpin_message` | Unpin a message | | `discord_list_pins` | List pinned messages in a channel | ### Threads | Tool | Description | | ----------------------- | -------------------------------------------------------- | | `discord_create_thread` | Create a thread from a message or as a standalone thread | ### Info | Tool | Description | | ----------------------- | ----------------------------------------------------------------------- | | `discord_list_channels` | List all channels in a guild (text, voice, category, forum, etc.) | | `discord_member_info` | Get details about a guild member (username, nickname, roles, join date) | ## Usage Examples ### Send a message Use `discord_send_message` with a channel ID and content text. ### Send a rich embed Use `discord_send_embed` for formatted announcements or status updates. Supports title, description (markdown), color (decimal integer), and footer. Common colors: green = 5763719, red = 15548997, blue = 3447003, yellow = 16705372, purple = 10181046. ### Read channel history Use `discord_read_channel` with a channel or thread ID. Returns messages with timestamps, IDs, and usernames. ### Create a thread Use `discord_create_thread` with a channel ID and name. Optionally attach it to an existing message with `message_id`. ### Search messages Use `discord_search` with a guild ID. Filter by content text, author ID, or channel ID. ### Find a channel Use `discord_list_channels` with a guild ID to discover channel IDs, names, and types. ## Writing Style (Discord) - Short, conversational, low ceremony. - Avoid Markdown tables — Discord renders them poorly. - Mention users as `<@USER_ID>`, channels as `<#CHANNEL_ID>`, roles as `<@&ROLE_ID>`. - Use Discord markdown: `**bold**`, `*italic*`, `> quote`, `` `code` ``, ` ```codeblock``` `. - Embeds support richer formatting than plain messages. ## Autonomous Discord Monitoring Nomos can autonomously monitor Discord channels in the background using the daemon. When a user asks you to "watch my Discord", "monitor channels", or "listen for messages", **take action directly** — don't just show commands, run them yourself: 1. Check if the daemon is running: `nomos daemon status` 2. If not running, start it: `nomos daemon start` — it connects to Discord automatically when `DISCORD_BOT_TOKEN` is configured 3. Check current cron jobs: `nomos cron list` 4. Create a custom monitoring loop for periodic checks: `nomos cron create discord-watch "*/15 * * * *" --prompt ""` **Always execute these commands yourself using Bash** rather than telling the user to run them. If a command is blocked by permission hooks, show the user the exact command so they can run it. Confirm what you did after. ## Tips - **Snowflake IDs**: all Discord IDs are large integers as strings - **Channel types**: 0=text, 2=voice, 4=category, 5=announcement, 11=public-thread, 12=private-thread, 13=stage, 15=forum - **Rate limits**: 5 req/5sec per route. The tools handle errors automatically. - **Required bot permissions**: `SEND_MESSAGES`, `READ_MESSAGE_HISTORY`, `ADD_REACTIONS`, `MANAGE_MESSAGES`, `MANAGE_THREADS`, `CREATE_PUBLIC_THREADS` - **Bot invite URL**: `https://discord.com/api/oauth2/authorize?client_id={CLIENT_ID}&permissions={PERMS}&scope=bot`