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
20 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.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.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 the unanswered questions in our release thread and draft replies without posting them." Arcade helps it use the right Discord Bot tools without guessing server IDs, channel IDs, message IDs, or thread IDs.
Up to 100x fewer tokens
Discord Bot list and search results return focused server, channel, message, user, and thread records instead of entire Discord histories. The agent can load a specific message or discussion only after it knows which one matters.
Complete the workflow end to end
Find a discussion, read the relevant messages, draft a reply, start a follow-up thread, and post or 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.
- 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.
- 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 capabilities as structured tools that an AI agent can call through the Model Context Protocol. It can read servers, channels, messages, threads, and users, then post, reply, react, pin, edit, or delete messages as the configured bot.
This integration is built by Arcade rather than exposed as a separate first-party Discord MCP server. Arcade provides the MCP endpoint and runtime for authentication, approval policies, redaction, and access controls around the bot's Discord actions.
Arcade agents can list servers and channels, read recent or pinned messages, search by text or author, resolve users, inspect active threads, and post or reply to messages. They can also start threads, edit their own messages, add or remove their own reactions, pin or unpin messages, and delete messages.
The configured Discord bot needs access to the servers and channels where it will operate. Depending on the workflow, grant only the Discord permissions required for viewing channels and message history, sending messages, creating threads, adding reactions, and managing or deleting messages.
No. Discord Bot uses one shared API key or secret configured once for the integration, rather than each user connecting a separate Discord account. Actions run as that configured bot, and the model never receives the credential.
Yes. Contextual Access policies can require human approval before consequential Discord actions such as deleting a message, posting an announcement, pinning content, or starting a thread. The call proceeds only after the policy's conditions have been satisfied.
Arcade proxies Discord API calls and does not persist your message content as part of normal tool execution. The shared API key or secret is brokered and stored encrypted at rest, and the model never receives it.
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 continue using the bot credential while it remains valid. If the key or secret is revoked, rotated, or can no longer be used, Discord actions stop until the credential is reconnected or reconfigured.
Discord's bot permissions and API rate limits apply to calls made through Arcade. Limits can vary by route, server, and bot activity, so high-volume searches, message reads, or posts should handle rate-limit responses and retry timing rather than assuming unlimited throughput.