Back to Tools
Communication API Key
discord-bot logo

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 Policies

For Discord Bot, you can implement some of these policies:

Access when tools are listed for a user
  • 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.
Pre-execution before each tool call
  • 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.
Post-execution after the tool returns
  • 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.

Ready to actually ship your agent?

Connect your agent to Discord Bot with a shared API key, agent-optimized tools and approval controls for consequential actions.