discord_add_reaction
Add emoji reactions to Discord messages by specifying channel ID, message ID, and emoji. This tool enables AI assistants to interact with Discord platforms through the MCP-Discord server.
Instructions
Adds an emoji reaction to a specific Discord message
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| channelId | Yes | ||
| messageId | Yes | ||
| emoji | Yes |
Implementation Reference
- src/index.ts:985-1026 (handler)The handler logic for the discord_add_reaction tool. It validates input with AddReactionSchema, checks client readiness, fetches the channel and message, adds the emoji reaction using Discord.js message.react(), and returns success or error response.case "discord_add_reaction": { const { channelId, messageId, emoji } = AddReactionSchema.parse(args); try { if (!client.isReady()) { return { content: [{ type: "text", text: "Discord client not logged in. Please use discord_login tool first." }], isError: true }; } const channel = await client.channels.fetch(channelId); if (!channel || !channel.isTextBased() || !('messages' in channel)) { return { content: [{ type: "text", text: `Cannot find text channel with ID: ${channelId}` }], isError: true }; } const message = await channel.messages.fetch(messageId); if (!message) { return { content: [{ type: "text", text: `Cannot find message with ID: ${messageId}` }], isError: true }; } // Add the reaction await message.react(emoji); return { content: [{ type: "text", text: `Successfully added reaction ${emoji} to message ID: ${messageId}` }] }; } catch (error) { return { content: [{ type: "text", text: `Failed to add reaction: ${error}` }], isError: true }; } }
- src/index.ts:91-95 (schema)Zod schema for input validation of discord_add_reaction tool parameters: channelId, messageId, emoji.const AddReactionSchema = z.object({ channelId: z.string(), messageId: z.string(), emoji: z.string() });
- src/index.ts:331-343 (registration)Tool registration in the ListTools response, including name, description, and inputSchema matching the Zod schema.{ name: "discord_add_reaction", description: "Adds an emoji reaction to a specific Discord message", inputSchema: { type: "object", properties: { channelId: { type: "string" }, messageId: { type: "string" }, emoji: { type: "string" } }, required: ["channelId", "messageId", "emoji"] } },
- src/index.ts:334-342 (schema)Input schema definition in the tool registration for discord_add_reaction.inputSchema: { type: "object", properties: { channelId: { type: "string" }, messageId: { type: "string" }, emoji: { type: "string" } }, required: ["channelId", "messageId", "emoji"] }