Communication
🎮 Discord integration
Access levels: Read-only · Full bot · Verified
Communication
Access levels: Read-only · Full bot · Verified
Connect Discord once and every agent in your squad can work in it for you, with exactly as much access as you decide to give, and a receipt for every call it makes.
You can change an account's access level any time under Manage. It applies instantly, no re-authorization. If the connection ever expires, the card shows Reconnect; one click re-authorizes the same account with the same settings.
Multiple accounts: connect as many as you need (say, yours and a client's). One is primary. Agents use it unless a mission says otherwise.
The level you pick at connect time is enforced on our side for every agent call: an agent can never do more than the level allows, no matter what it's asked.
| Level | What it allows | |
|---|---|---|
| Read-only | See servers and read messages in accessible channels. | |
| Full bot | Join servers, read/send messages, register slash commands. | Recommended |
On top of the connection's level, every agent can be individually allowed, scoped down, or denied for this app from the Integrations page. Deny an agent and it doesn't even see the connection.
The 28 tools agents use in Discord through Mission Control, and the lowest access level that includes each. Agents discover these themselves. You never have to name a tool; asking in plain language is enough.
| Tool | What it does | Access level |
|---|---|---|
Consume entitlementDISCORD_CONSUME_ENTITLEMENT | Marks a one-time purchase consumable entitlement as consumed for a given application. | Full bot |
Delete test entitlementDISCORD_DELETE_TEST_ENTITLEMENT | Deletes a currently active test entitlement for a given application. | Full bot |
Delete user application role connectionDISCORD_DELETE_USER_APPLICATION_ROLE_CONNECTION | Deletes the current user's application role connection for the specified application. | Full bot |
Edit application command permissionsDISCORD_EDIT_APPLICATION_COMMAND_PERMISSIONS | Edits the permissions for a specific application command in a guild. | Full bot |
Get application command permissionsDISCORD_GET_APPLICATION_COMMAND_PERMISSIONS | Retrieves the permissions for a specific application command in a guild. | All levels |
Get batch application command permissionsDISCORD_GET_BATCH_APPLICATION_COMMAND_PERMISSIONS | Retrieves permissions for all commands of an application in a guild. | All levels |
Get current user application entitlementsDISCORD_GET_CURRENT_USER_APPLICATION_ENTITLEMENTS | Retrieve entitlements for the current user for a given application. | All levels |
Get gatewayDISCORD_GET_GATEWAY | Retrieve a valid WebSocket (wss) URL for establishing a Gateway connection to Discord. | All levels |
Get guild templateDISCORD_GET_GUILD_TEMPLATE | Retrieve information about a Discord guild template using its unique template code. | All levels |
Get guild widgetDISCORD_GET_GUILD_WIDGET | Retrieve the guild widget in JSON format. Use when you need to get public information about a Discord guild's widget that can be displayed on external websites. The widget must be enabled in the guild's server settings. | All levels |
Get guild widget pngDISCORD_GET_GUILD_WIDGET_PNG | Retrieve a PNG image widget for a Discord guild. | All levels |
Get inviteDISCORD_GET_INVITE | DEPRECATED: Use DISCORD_INVITE_RESOLVE instead. | All levels |
Get my guild memberDISCORD_GET_MY_GUILD_MEMBER | Retrieves the guild member object for the currently authenticated user within a specified guild, including roles, nickname, join date, and permissions. | All levels |
Get my oauth2 authorizationDISCORD_GET_MY_OAUTH2_AUTHORIZATION | Retrieves current OAuth2 authorization details for the application, including app info, scopes, token expiration, and user data (contingent on scopes like 'identify'). | All levels |
Get my userDISCORD_GET_MY_USER | Fetches comprehensive profile information for the currently authenticated Discord user, including email if the 'email' scope is granted. | All levels |
Get openid connect userinfoDISCORD_GET_OPENID_CONNECT_USERINFO | Retrieve OpenID Connect compliant user information for the authenticated user. | All levels |
Get public keysDISCORD_GET_PUBLIC_KEYS | Retrieve Discord OAuth2 public keys. Use when you need to verify OAuth2 tokens or access public keys for cryptographic operations. | All levels |
Get sku subscriptionDISCORD_GET_SKU_SUBSCRIPTION | Retrieves a specific subscription by ID for a given SKU. | All levels |
Get userDISCORD_GET_USER | Retrieve information about a Discord user. | All levels |
Get user application role connectionDISCORD_GET_USER_APPLICATION_ROLE_CONNECTION | Retrieves the application role connection for the currently authenticated user for a specified application. | All levels |
Invite resolveDISCORD_INVITE_RESOLVE | Resolve and retrieve information about a Discord invite code. | All levels |
Leave guildDISCORD_LEAVE_GUILD | Leaves a Discord guild (server) on behalf of the currently authenticated user. | Full bot |
List my connectionsDISCORD_LIST_MY_CONNECTIONS | Retrieves a list of the authenticated user's connected third-party accounts on Discord. | All levels |
List my guildsDISCORD_LIST_MY_GUILDS | Lists the current user's guilds, returning partial data for each; primarily used for displaying server lists or verifying memberships. | All levels |
List sku subscriptionsDISCORD_LIST_SKU_SUBSCRIPTIONS | Lists all subscriptions for a given SKU. When using a Bot token, the user_id query parameter is required. Returns paginated subscription objects. | All levels |
List sticker packsDISCORD_LIST_STICKER_PACKS | Retrieve all available Discord Nitro sticker packs. | All levels |
Modify current userDISCORD_MODIFY_CURRENT_USER | Modifies the currently authenticated Discord user's profile. | Full bot |
Update user application role connectionDISCORD_UPDATE_USER_APPLICATION_ROLE_CONNECTION | Updates the application role connection for the currently authenticated user for a specified application. | Full bot |
Just ask in plain language: “check Discord for …”, “create … in Discord”, “every Monday, … ”, and the agent finds the right tool, runs it, and reports back with a receipt in your Runs ledger. Anything outward-facing (sending, posting, publishing) that a mission didn't clearly authorize comes back to you as a ticket first.
| Agent says | What's happening | Fix |
|---|---|---|
| "Discord isn't connected" | No active connection (or this agent is denied) | Connect on the Integrations page; check the agent's per-app policy |
| "The connection has expired" | Discord ended the authorization (they all do periodically) | Click Reconnect on the account, same settings, one click |
| "I'm not allowed to do that" | The action is above the account's access level, or the agent is scoped down | Raise the level under Manage, or adjust that agent's policy |
| It did something unexpected | The ask was ambiguous (e.g. matched an existing item) | Be explicit, "create a NEW …", and give agents a working folder where relevant |