Getting started
- Add the bot to your server.
- As the server owner, activate it in the dashboard (or run
/mcp activate). New servers start inactive. - Run
/mcp login(anywhere) and sign in with Discord. - Add the server URL below to your MCP client and sign in once more when it asks.
https://api.mcp.discordbots.xyz/mcpThe connection uses Streamable HTTP with OAuth 2.1 (PKCE). There is no API key to paste and nothing to install.
Claude (web, desktop, mobile)
- Open Settings → Connectors and choose Add custom connector.
- Name it Discord and paste the server URL.
- Click Connect, sign in with Discord and allow the connection.
On Team and Enterprise plans an owner may have to add the connector for the organization first.
Claude Code
claude mcp add --transport http discord https://api.mcp.discordbots.xyz/mcp
Then run /mcp inside Claude Code and pick discord to sign in.
Other clients
Any client that supports remote MCP servers with OAuth works (Cursor, VS Code, Zed, MCP Inspector …). The server publishes standard discovery documents:
https://api.mcp.discordbots.xyz/.well-known/oauth-protected-resourcehttps://api.mcp.discordbots.xyz/.well-known/oauth-authorization-server
Clients register themselves dynamically (RFC 7591). Access tokens live one hour; refresh tokens rotate on every use and expire after 30 days of inactivity.
Commands
/mcp loginLink your Discord account and get the server URL/mcp logoutUnlink and revoke every connection immediately/mcp statusYour link status and whether you can use MCP on this server/mcp dashboardLink to this server's settings in the dashboard/mcp activateTurn MCP on for this server — owner only/mcp deactivateTurn MCP off for everyone on this server/mcp access modeWho may use it: owner & admins, allow list, everyone, disabled/mcp access add-role / remove-roleManage roles on the allow list/mcp access add-user / remove-userManage members on the allow list/mcp access adminsWhether administrators are always allowed in allow-list mode/mcp access showShow the current policy/explain messageWho made the bot send a message (link or ID), and whenApps → Explain messageSame, from a message's right-click menuApps → Toggle MCP blockOwner only: block or unblock a member from MCP
Everything that changes settings is limited to the server owner.
Dashboard
Sign in at https://api.mcp.discordbots.xyz/dashboard. You see the servers you own; nobody else can open or change them. Per server you can set:
- Activation — off by default.
- Who may use MCP — mode, allowed roles and members, blocked members.
- Allowed actions — which kinds of Discord requests the bot may make for anyone:
GET(read),POST(create, send),PUT(assign roles, ban, pin, permissions),PATCH(edit),DELETE(delete, kick, unban). - Actions per minute — all changes on the server combined, 30 by default.
- Mentions — nobody (default,
allowed_mentions.parse = []), only selected roles and members, or whatever the requesting member could ping. - Activity — every tool call with the member behind it, and every message the bot sent.
Access policy
Each server has one policy. It is checked on every single request, before your Discord permissions are even looked at:
- Owner & admins (default) — the owner and members with Administrator.
- Allow list — the owner, listed roles and listed members; administrators unless turned off.
- Everyone — every member of the server.
- Disabled — nobody, not even the owner, until it is changed back.
Blocked members are refused in every mode; the owner can't be blocked. Passing the policy only means MCP may be used at all. What it may do is still limited to your own permissions, the allowed actions and the action limit.
Who sent this?
Messages the bot writes for someone carry a disabled Actioned by username button. For the full record — member, time and tool — run /explain with the message link, or right-click the message → Apps → Explain message. It only answers for messages of the server you run it in.
The bot never sends direct messages.
Tools
Your assistant sees these tools. Each one refuses with a clear reason when you lack the permission.
list_serversget_serverget_my_permissionsedit_serverget_audit_loglist_channelsget_channelcreate_channeledit_channeldelete_channelset_channel_permissionsremove_channel_permissionslist_threadscreate_threadedit_threadlist_rolescreate_rolecreate_rolesedit_roledelete_rolesearch_memberslist_membersget_memberadd_member_roleremove_member_roleset_nicknamevoice_membertimeout_memberkick_memberban_memberunban_memberlist_banslist_automod_rulescreate_automod_ruledelete_automod_ruleread_messagesget_messagesearch_messagessend_messageedit_messagedelete_messagebulk_delete_messagespin_messagelist_pinsreactlist_emojiscreate_emojidelete_emojilist_eventscreate_eventedit_eventdelete_eventlist_invitescreate_invitedelete_invitelist_webhookscreate_webhookdelete_webhookRevoking access
Either of these stops all of your connections at once, including requests that are running right now:
/mcp logoutin Discord- Discord → User Settings → Authorized Apps → remove Discord MCP
Removing the connector in your MCP client only disconnects that client; its tokens are not used anymore and expire on their own.