Discord Bot MCP Tools for AI Agents
Let an agent read channels, search messages, reply to questions, start threads, and manage reactions as your Discord bot.
Available Tools
22 tools available in this integration
DiscordBot.AddReaction Add an emoji reaction to a Discord message as the bot.
DiscordBot.DeleteMessage Delete a message from a Discord channel.
DiscordBot.EditMessage Edit a message the bot posted.
DiscordBot.GetChannel Get a single Discord channel's name, type, and topic.
DiscordBot.GetMessage Fetch a single Discord message by id.
DiscordBot.GetServer Get a single Discord server's name, owner, and member count.
DiscordBot.GetUser Resolve a user id (such as a message author_id) into a human-readable name.
DiscordBot.ListActiveThreads List a Discord server's currently active (non-archived) threads.
DiscordBot.ListChannels List the channels in a Discord server, optionally filtered by type.
DiscordBot.ListMessages Read a channel's or thread's recent messages, newest first.
DiscordBot.ListPinnedMessages List the pinned messages in a Discord channel.
DiscordBot.ListServers List the Discord servers the bot is a member of and can act in.
DiscordBot.PinMessage Pin a message in a Discord channel so the team can find it later.
DiscordBot.ReactToMessage Add an emoji reaction to a Discord message as the bot, or remove the bot's own reaction.
DiscordBot.RemoveReaction Remove the bot's own emoji reaction from a Discord message.
DiscordBot.ReplyToMessage Reply to an existing Discord message so the answer stays tied to the question.
DiscordBot.SearchMessages Find messages by text and/or author in one channel or across a whole server.
DiscordBot.SendMessage Post a new message to a Discord channel as the bot.
DiscordBot.StartThread Start a thread from a message, standalone in a text channel, or as a forum/media post.
DiscordBot.UnpinMessage Unpin a previously pinned message in a Discord channel.
DiscordBot.UpdateMessage Edit a message the bot posted.
DiscordBot.WhoAmI Return the authenticated Discord bot's own user identity.
Why agent-optimized tools matter
Built for intent, not API schemas
Ask the agent to "find unanswered questions about the release and start a thread for each one." Arcade picks the right Discord actions without making the agent discover server, channel, or message IDs first.
Up to 100x fewer tokens
Discord reads return compact server, channel, thread, and message records, while targeted lookups fetch one message or user when needed, so the agent can search a busy server without loading every conversation.
Complete the workflow end to end
Find the relevant message, read its context, reply or start a thread, add a reaction, request approval, and pin the result through one toolkit designed around the complete Discord task.
Make actions predictable and controlled
Arcade tools return structured results and useful errors across users and runs. Teams can apply scope restrictions, redaction, and approval policies so agents follow the same controls every time.
Securing Discord Bot
The more capabilities agents get, the more useful they are. However, more capabilities bring more risks of undesired effects such as data loss and exfiltration.
This is why Arcade provides you with contextual rules that dictate how and when a tool is allowed to run. Arcade’s contextual access lets you govern tool visibility and behavior at every stage of execution and control who can see a tool, what inputs are allowed, and what comes back.
Learn about Contextual Access PoliciesFor Discord Bot, you can implement some of these policies:
- Hide DiscordBot.DeleteMessage from agents unless the roles your IDP marks as moderators are active, so regular agents cannot erase messages or evidence.
- Restrict DiscordBot.SendMessage to agents operating under your approved bot-posting role, so untrusted agents cannot publish announcements or customer-facing replies.
- Deny DiscordBot.PinMessage to everyone outside your channel-owner and moderator roles, so agents cannot elevate unreviewed messages as team guidance.
- Hide DiscordBot.ReactToMessage from agents unless the roles your IDP marks as community moderators are active, so unapproved agents cannot alter reactions in public conversations.
- Restrict DiscordBot.UpdateMessage to agents operating under your incident-management role, so ordinary agents cannot revise bot posts that record operational decisions.
- Require human approval before DiscordBot.DeleteMessage runs, so an agent cannot permanently remove a message without review.
- Block DiscordBot.EditMessage when the replacement text contains credentials, access tokens, or customer data, so an agent cannot publish secrets in an existing bot message.
- Require human approval before DiscordBot.ReplyToMessage runs on threads involving customers or incidents, so an agent cannot make an unreviewed commitment in a public conversation.
- Block DiscordBot.ReactToMessage when the target message is in a channel marked read-only or under legal hold, so an agent cannot change the reaction record on preserved conversations.
- Require human approval before DiscordBot.UpdateMessage changes a bot post in an incident or customer-facing channel, so an agent cannot silently revise an operational commitment.
- Redact message bodies, attachment URLs, and author IDs from DiscordBot.ListMessages results for channels marked private or under legal hold before they reach the model.
- Strip message bodies and matching excerpts from DiscordBot.SearchMessages results when they contain credentials, access tokens, or customer personal data, so the model receives only safe metadata.
- Deny the output of DiscordBot.GetMessage when the message belongs to a private channel or carries a legal-hold marker, so protected conversation content does not reach the model.
How to use Discord Bot with your agent
Pick your MCP client below and follow the setup to connect your Discord bot to an agent. Configure the shared bot credential once, then use Discord from your agent.
Your questions, answered
A Discord Bot MCP server exposes Discord actions as structured tools that an AI agent can call through the Model Context Protocol. With a configured bot credential, the agent can inspect servers, channels, threads, messages, users, and pins, then post, reply, react, pin, edit, or delete messages where the bot has permission.
Discord does not provide the MCP server used here; Arcade hosts this integration and adds the runtime around Discord access. That runtime handles the shared credential, MCP and tool API access, approval policies, redaction, and controls that work across supported clients.
Arcade agents can list servers and channels, inspect channel and server details, read recent, pinned, or searched messages, resolve authors, list active threads, and post or reply to messages. They can also start threads, add or remove their own reactions, pin or unpin messages, edit their own messages, and delete messages.
The configured Discord bot must have access to the servers and channels it will use. Read workflows need permission to view channels and read message history; posting and thread workflows need permission to send messages and create threads; reactions need permission to add reactions; pinning and deletion need message-management permissions. Grant only the server and channel permissions required by the workflow.
No. This integration uses one shared Discord bot API key or secret configured once, rather than a separate Discord account connection for every user. Arcade brokers that credential, and the agent does not receive it.
Yes. Contextual Access policies can require human approval before consequential Discord actions such as sending, deleting, pinning, or editing a message. The call proceeds only after the policy's conditions have been satisfied.
Arcade proxies Discord API calls and does not persist your Discord content as part of normal tool execution. The bot credential is brokered and stored encrypted at rest, and the model never receives the raw key or secret.
Any framework or client that can connect to Arcade's MCP gateway or tool APIs works, including LangChain, OpenAI Agents, CrewAI, Claude Desktop, Claude Code, Cursor, Visual Studio Code, Microsoft Copilot Studio, and GitHub Copilot.
Arcade can use the configured bot credential while it remains valid. If the key or secret is revoked, rotated, or otherwise stops authenticating, Discord actions stop until the credential is reconfigured.
Discord's API rate limits, including route-level and global limits, apply to calls made through Arcade. The available integration details do not specify a separate Arcade quota or a fixed per-call message limit, so high-volume agents should respect Discord's responses and pacing requirements.