> ## Documentation Index
> Fetch the complete documentation index at: https://squad.so/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Discord

> What agents can do in Discord at each access level, and how to connect, limit, and disconnect Discord.

Connect Discord so your agents can work in your Discord account. You choose an access level for each account, and Squad refuses any agent action outside that level.

## Access levels

Each Discord account has an access level: **Read-only** and **Full bot**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.

| Level                      | The connect window describes this level as                   | Actions agents can use |
| -------------------------- | ------------------------------------------------------------ | ---------------------- |
| **Read-only**              | "See servers and read messages in accessible channels."      | 21 of 28               |
| **Full bot** (recommended) | "Join servers, read/send messages, register slash commands." | 26 of 28               |

**Full bot** is the recommended level. The connect window selects it for you, and you can choose another level.

The Discord sign-in page asks you to approve full access to your account. This is expected. Squad does not narrow the sign-in. It checks every agent action against the level you chose, and it refuses actions outside that level.

## What agents can do at each level

Each level opens with a short summary in plain tasks, then lists every action it adds, grouped by what the action works on. You do not need to name actions. Ask in plain words, and the agent searches for the matching action.

<Tip>**Find an action.** Open a level and use your browser's find (Ctrl+F, or Cmd+F on a Mac) with a word from the task or part of a slug. Or ask your agent in plain words, for example "What can you do in my Discord account?" The agent can search the Discord actions for you.</Tip>

Each action shows its name, a one-line description where the Discord action catalog has one, and its slug. The slug is the ID that agents use when they call the action.

<AccordionGroup>
  <Accordion title="Read-only">
    Agents can use 21 of the 28 Discord actions at this level:

    * View connections
    * View roles and permissions
    * View subscriptions
    * View users
    * View invitations
    * View keys
    * View members
    * View templates

    All 21 actions at this level:

    | Works on                  | Action                                    | What it does                                                                                                                                                            | Slug                                                |
    | ------------------------- | ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
    | **Connections**           | Get user application role connection      | Retrieves the application role connection for the currently authenticated user for a specified application.                                                             | `DISCORD_GET_USER_APPLICATION_ROLE_CONNECTION`      |
    |                           | List my connections                       | Retrieves a list of the authenticated user's connected third-party accounts on Discord.                                                                                 | `DISCORD_LIST_MY_CONNECTIONS`                       |
    | **Invitations**           | Get invite                                | DEPRECATED: Use DISCORD\_INVITE\_RESOLVE instead.                                                                                                                       | `DISCORD_GET_INVITE`                                |
    | **Keys**                  | Get public keys                           | Retrieve Discord OAuth2 public keys.                                                                                                                                    | `DISCORD_GET_PUBLIC_KEYS`                           |
    | **Members**               | 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.                 | `DISCORD_GET_MY_GUILD_MEMBER`                       |
    | **Roles and permissions** | Get application command permissions       | Retrieves the permissions for a specific application command in a guild.                                                                                                | `DISCORD_GET_APPLICATION_COMMAND_PERMISSIONS`       |
    |                           | Get batch application command permissions | Retrieves permissions for all commands of an application in a guild.                                                                                                    | `DISCORD_GET_BATCH_APPLICATION_COMMAND_PERMISSIONS` |
    | **Stickers**              | List sticker packs                        | Retrieve all available Discord Nitro sticker packs.                                                                                                                     | `DISCORD_LIST_STICKER_PACKS`                        |
    | **Subscriptions**         | Get sku subscription                      | Retrieves a specific subscription by ID for a given SKU.                                                                                                                | `DISCORD_GET_SKU_SUBSCRIPTION`                      |
    |                           | List sku subscriptions                    | Lists all subscriptions for a given SKU.                                                                                                                                | `DISCORD_LIST_SKU_SUBSCRIPTIONS`                    |
    | **Templates**             | Get guild template                        | Retrieve information about a Discord guild template using its unique template code.                                                                                     | `DISCORD_GET_GUILD_TEMPLATE`                        |
    | **Users**                 | Get current user application entitlements | Retrieve entitlements for the current user for a given application.                                                                                                     | `DISCORD_GET_CURRENT_USER_APPLICATION_ENTITLEMENTS` |
    |                           | Get my user                               | Fetches comprehensive profile information for the currently authenticated Discord user, including email if the 'email' scope is granted.                                | `DISCORD_GET_MY_USER`                               |
    |                           | Get user                                  | Retrieve information about a Discord user.                                                                                                                              | `DISCORD_GET_USER`                                  |
    | **Other actions**         | Get gateway                               | Retrieve a valid WebSocket (wss) URL for establishing a Gateway connection to Discord.                                                                                  | `DISCORD_GET_GATEWAY`                               |
    |                           | Get guild widget                          | Retrieve the guild widget in JSON format.                                                                                                                               | `DISCORD_GET_GUILD_WIDGET`                          |
    |                           | Get guild widget png                      | Retrieve a PNG image widget for a Discord guild.                                                                                                                        | `DISCORD_GET_GUILD_WIDGET_PNG`                      |
    |                           | 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'). | `DISCORD_GET_MY_OAUTH2_AUTHORIZATION`               |
    |                           | Get openid connect userinfo               | Retrieve OpenID Connect compliant user information for the authenticated user.                                                                                          | `DISCORD_GET_OPENID_CONNECT_USERINFO`               |
    |                           | Invite resolve                            | Resolve and retrieve information about a Discord invite code.                                                                                                           | `DISCORD_INVITE_RESOLVE`                            |
    |                           | List my guilds                            | Lists the current user's guilds, returning partial data for each.                                                                                                       | `DISCORD_LIST_MY_GUILDS`                            |
  </Accordion>

  <Accordion title="Full bot (recommended)">
    Agents can use 26 of the 28 Discord actions at this level: everything in **Read-only**, plus:

    * Update connections
    * Update roles and permissions
    * Update users

    The 5 actions that this level adds to **Read-only**:

    | Works on                  | Action                                  | What it does                                                                                              | Slug                                              |
    | ------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
    | **Connections**           | Update user application role connection | Updates the application role connection for the currently authenticated user for a specified application. | `DISCORD_UPDATE_USER_APPLICATION_ROLE_CONNECTION` |
    | **Roles and permissions** | Edit application command permissions    | Edits the permissions for a specific application command in a guild.                                      | `DISCORD_EDIT_APPLICATION_COMMAND_PERMISSIONS`    |
    | **Users**                 | Modify current user                     | Modifies the currently authenticated Discord user's profile.                                              | `DISCORD_MODIFY_CURRENT_USER`                     |
    | **Other actions**         | Consume entitlement                     | Marks a one-time purchase consumable entitlement as consumed for a given application.                     | `DISCORD_CONSUME_ENTITLEMENT`                     |
    |                           | Leave guild                             | Leaves a Discord guild (server) on behalf of the currently authenticated user.                            | `DISCORD_LEAVE_GUILD`                             |
  </Accordion>
</AccordionGroup>

## Connect Discord

Before you start:

* You need a Discord account that you can sign in to.
* Your Squad subscription must be active. Squad does not connect apps while the subscription is not active.

<Steps>
  <Step title="Open Integrations">
    Open **Settings** > **Integrations**.
  </Step>

  <Step title="Add an integration">
    On the **Connected apps** tab, click **+ Add integration**.
  </Step>

  <Step title="Find Discord">
    Find **Discord** in the catalog and click it. You can type the name in **Search the catalog…**.
  </Step>

  <Step title="Choose an access level">
    Under **Default scope**, choose an access level. This level applies to every agent.
  </Step>

  <Step title="Click Connect Discord">
    Click **Connect Discord**. The Discord sign-in page opens in a new tab.
  </Step>

  <Step title="Sign in to Discord">
    Sign in to Discord and approve the request.
  </Step>
</Steps>

Check that it works: Discord shows under **YOUR CONNECTIONS**, with a row for the account and its access level.

## Change the access level

1. Under **YOUR CONNECTIONS**, find the Discord account.
2. Open the account menu (⋯) and click **Manage scope**.
3. Under **Default scope**, choose the new level.
4. Click **Save access**.

The change does not need a new sign-in. Agents get the new level from their next call.

## Set access for one agent

Every agent uses the account's level unless you set something else for it. You can narrow one agent to a lower level, or block it.

1. Under **YOUR CONNECTIONS**, open the account menu (⋯) on the Discord account.
2. Click **Manage scope**.
3. Under **Per-agent access**, find the agent.
4. Choose the **Default** option to follow the account's level, choose a lower level, or choose **No access**.
5. Click **Save access**.

An agent never gets more than the account's level, even if you choose a higher level for it. Changes apply from the agent's next call. An agent with **No access** does not see the account.

## Use more than one Discord account

Click **+ Account** on the Discord card to connect another account. Agents use the primary account unless they are asked to use a specific one.

* After you click **+ Account**, follow the connect steps above.
* Each account has its own access level.
* The first account you connect becomes the primary account. It shows **★ PRIMARY**.
* To change the primary account, open the account menu (⋯) and click **Make primary**.
* To tell accounts apart, open the account menu (⋯) and click **Rename**.

## Reconnect or disconnect

Reconnect when the connection has expired, or when you need to change what the account can reach on the Discord side:

1. Open the account menu (⋯) and click **Reconnect**.
2. Click **Reauthorize on Discord**.
3. Sign in to Discord and approve the request.

Reconnect signs in to the same account again. It does not add a second connection.

Open the account menu (⋯) on the Discord account and click **Disconnect**. Agents lose access to that account at once.

<Warning>**Disconnect** acts at once, with no confirmation step. If it was the primary account, another connected Discord account becomes primary.</Warning>

## Costs

Discord actions do not use Squad credits. Connected apps never use credits. For what does use credits, see [What Squad costs](/docs/costs).

## Troubleshooting

An agent reports that an action is not allowed on this account.

* Cause: the action is outside the account's access level, or outside the level you set for that agent.
* Fix: choose a higher level in **Manage scope**, or change the agent's row under **Per-agent access**.

An agent says it has no access to Discord, or it does not see the account.

* Cause: the agent is set to **No access** under **Per-agent access**, or the account is not connected.
* Fix: open **Manage scope** and change the agent's row. If the account is missing, connect it again.

Connecting or saving fails with "Your subscription isn't active."

* Cause: your Squad subscription is not active.
* Fix: resubscribe. See [Manage your subscription](/docs/billing).

An agent says the Discord connection has expired.

* Cause: the sign-in for that account is no longer valid.
* Fix: use **Reconnect** on the account.

## Common questions

<AccordionGroup>
  <Accordion title="Can I limit what agents can do in Discord?">
    Each Discord account has an access level: **Read-only** and **Full bot**. Squad refuses any agent action outside that level. You can also narrow or block single agents under **Per-agent access**.
  </Accordion>

  <Accordion title="Can I connect more than one Discord account?">
    Click **+ Account** on the Discord card to connect another account. Agents use the primary account unless they are asked to use a specific one.
  </Accordion>

  <Accordion title="How do I disconnect Discord?">
    Open the account menu (⋯) on the Discord account and click **Disconnect**. Agents lose access to that account at once.
  </Accordion>
</AccordionGroup>

## Related pages

<CardGroup cols={2}>
  <Card title="Connect apps" icon="plug" href="/docs/integrations" />

  <Card title="Add an MCP server or an API key" icon="server" href="/docs/custom-integrations">
    Use this when an action you need is not in this app.
  </Card>
</CardGroup>
