ClawLink

How to connect Discord to OpenClaw

Connect Discord to OpenClaw with ClawLink in one click — 27 tools your AI agent can call from chat via hosted OAuth. No API keys, no manual setup.

Get started for free
OpenClaw
OpenClaw
ClawLink
ClawLink
Discord
Discord
DiscordOAUTH2MCP

Send messages, manage channels, and automate server actions. Once connected, OpenClaw can read and act on Discord from chat — pairing, token refresh, and tool wiring handled for you.

27 tools

The usual route to Discord access for OpenClaw is an MCP server you configure and keep running, plus your own OAuth app or API keys. ClawLink gives OpenClaw a more practical Discord setup: install one ClawHub skill, connect Discord in the browser, and OpenClaw can call real Discord actions from any chat surface with no auth, token refresh, or tool wiring to build yourself.

Copy this prompt into OpenClaw, or open the Discord skill on ClawHub.

Prompt for OpenClaw
Before installing anything, inspect the ClawHub skill metadata and setup requirements.
If the skill asks you to install a third-party package or CLI, verify its source, maintainer, and package contents before running the install command.
Install the skill "Discord" (hith3sh/discord-communities) from ClawHub only after those checks pass.
Skill page: https://clawhub.ai/hith3sh/discord-communities
Keep the work scoped to this skill only.
After install, help me finish setup from verified skill metadata.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Setup

It takes three steps to connect OpenClaw to Discord.

  1. 1

    Install the plugin

    Paste the setup prompt into OpenClaw, or install from the terminal and ask OpenClaw to pair:

    openclaw plugins install clawhub:clawlink-plugin
  2. 2

    Connect Discord

    One-click OAuth in the dashboard.

  3. 3

    Use it from chat

    Ask OpenClaw: "What can you do with Discord?"

Install by command

The setup prompt above does all of this in one paste. By hand, it is one install command plus a browser approval:

openclaw plugins install clawhub:clawlink-plugin

Then ask OpenClaw to set up ClawLink. It starts browser pairing and prints an approval link — open it, approve the device, return to the chat, and say done. Finally, connect Discord in the ClawLink dashboard — a one-click OAuth approval, no API keys.

Verify the connection by asking OpenClaw:

Use discord_list_my_guilds to list every Discord server my account belongs to, and tell me which ones I have elevated permissions in.

Using a different agent?

The OpenClaw plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:

npx -y @useclawlink/cli login

login opens the same browser approval and stores a credential locally. Once Discord is connected in the dashboard, that agent calls the same 27 Discord tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.

Discord MCP for OpenClaw

Looking for a Discord MCP server for OpenClaw? ClawLink connects Discord to OpenClaw and exposes 27 Discord tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using Hermes instead? The Hermes Discord integration works the same way.

Discord has two completely different ways in, and picking the wrong one is why most agent setups stall. This connection is the user-account one: you sign in with Discord's OAuth screen and OpenClaw can read your identity, the servers you belong to, your linked connections, and your membership details. It cannot post messages or moderate a server, because those actions belong to a bot, not to you. If you want an agent that sends messages, manages channels, or moderates a guild, connect the Discord Bot integration instead — it carries the channel and message tools. Everything the search results teach about the Developer Portal, bot tokens, and gateway intents belongs to that second route, and neither route needs you to paste a token into openclaw.json.

What the OpenClaw Discord integration can do

27 Discord tools are ready for OpenClaw once the account is connected. The 25 below are the ones people reach for most; your agent can call all 27.

25 of 27 Discord tools for OpenClaw

ToolWhat it does
Consume entitlement discord_consume_entitlementMarks a one-time purchase consumable entitlement as consumed for a given application. Only applicable to entitlements backed by one-time purchase consumable SKUs.
Edit application command permissions discord_edit_application_command_permissionsEdits the permissions for a specific application command in a guild. Requires OAuth2 Bearer token (bot tokens will error).
Get application command permissions discord_get_application_command_permissionsRetrieves the permissions for a specific application command in a guild. Requires OAuth2 Bearer token (bot tokens will error).
Get batch application command permissions discord_get_batch_application_command_permissionsRetrieves permissions for all commands of an application in a guild. Returns a list of permission objects for each command. Requires OAuth2 Bearer token (Bot tokens will error).
Get current user application entitlements discord_get_current_user_application_entitlementsTool to retrieve entitlements for the current user for a given application. Use when you need to check what premium offerings or subscriptions the authenticated user has access to.
Get gateway discord_get_gatewayTool to retrieve a valid WebSocket (wss) URL for establishing a Gateway connection to Discord. Use when you need to connect to the Discord Gateway for real-time events.
Get guild template discord_get_guild_templateTool to retrieve information about a Discord guild template using its unique template code. Use when you need to get details about a guild template for creating new servers.
Get guild widget discord_get_guild_widgetTool to 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.
Get guild widget png discord_get_guild_widget_pngTool to retrieve a PNG image widget for a Discord guild. Use when you need a visual representation of the guild widget that can be displayed on external websites.
Get my guild member discord_get_my_guild_memberRetrieves the guild member object for the currently authenticated user within a specified guild, including roles, nickname, join date, and permissions.
Get my oauth2 authorization discord_get_my_oauth2_authorizationRetrieves current OAuth2 authorization details for the application, including app info, scopes
Get my user discord_get_my_userFetches comprehensive profile information for the currently authenticated Discord user
Get openid connect userinfo discord_get_openid_connect_userinfoRetrieve OpenID Connect compliant user information for the authenticated user
Get public keys discord_get_public_keysRetrieve Discord OAuth2 public keys
Get sku subscription discord_get_sku_subscriptionRetrieves a specific subscription by ID for a given SKU
Get user discord_get_userRetrieve information about a Discord user
Get user application role connection discord_get_user_application_role_connectionRetrieves the application role connection for the currently authenticated user for a specified
Invite resolve discord_invite_resolveResolve and retrieve information about a Discord invite code
List my connections discord_list_my_connectionsRetrieves a list of the authenticated user's connected third-party accounts on Discord
List my guilds discord_list_my_guildsLists the current user's guilds, returning partial data for each; primarily used for displaying
List sku subscriptions discord_list_sku_subscriptionsLists all subscriptions for a given SKU
List sticker packs discord_list_sticker_packsRetrieve all available Discord Nitro sticker packs
Modify current user discord_modify_current_userModifies the currently authenticated Discord user's profile
Update user application role connection discord_update_user_application_role_connectionUpdates the application role connection for the currently authenticated user for a specified
Leave guild discord_leave_guildLeaves a Discord guild (server) on behalf of the currently authenticated user

Try it: find the Discord tool you need

Browse the 25 Discord tools

Click any tool to see exactly what OpenClaw can do and copy a ready-to-use prompt.

Example prompts

Use discord_list_my_guilds to list every Discord server my account belongs to, and tell me which ones I have elevated permissions in.

Call discord_get_my_user and discord_list_my_connections, then summarise which account is connected and which external accounts are linked to it.

Use discord_get_my_guild_member for the server <server name or id> and tell me which roles I hold there and when I joined.

Use discord_invite_resolve on this invite link and tell me which server it points to, how many members it has, and who created the invite.

What this Discord integration can and cannot do

Read this before planning a workflow — the boundary is Discord's, and it is sharper than most guides suggest.

  • This is the user-account surface. Tools are scoped to you: discord_get_my_user, discord_list_my_guilds, discord_list_my_connections, discord_get_my_guild_member. They answer questions about your account and memberships.
  • There is no message tool here, by design. Discord does not let a user OAuth token post into channels. Messages, channels, members, and moderation live in the separate Discord Bot integration under the discordbot_ prefix.
  • Some endpoints reject bot tokens explicitly. discord_edit_application_command_permissions and the two command-permission read tools require a user Bearer token and error on a bot token, and additionally need MANAGE_GUILD and MANAGE_ROLES on the target guild.
  • discord_leave_guild is the one destructive tool. It removes your account from a server. Name the server explicitly in any prompt that could reach it, and do not pair it with an open-ended instruction to tidy up.
  • discord_invite_resolve works before you commit. It expands an invite into server details, which is a cheap safety step when an agent is handed a link from somewhere untrusted.

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Discord working from chat.

ManualClawLink
Connection flowRegister a Discord app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift.Users connect Discord through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code.
Ongoing maintenanceYou own refresh logic, permission debugging, environment config, and every provider-specific edge case for Discord.ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure.
Agent usabilityYou still need to expose the right Discord actions to the runtime in a format your agent can reliably use.27 tools for Discord are already exposed through ClawLink, so the agent can read and act from chat immediately.

Composio also exposes Discord to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for OpenClaw users instead. You install the plugin once, connect Discord in the browser, and the 27 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.

Troubleshooting

OpenClaw installed the Discord skill but can't call the tools

The ClawHub skill teaches OpenClaw about Discord, but the calls run through the ClawLink plugin and your connected account. Make sure Discord is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.

Connection succeeds but no tools appear

Reconnect Discord from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.

"Tool schema not loaded yet" error when calling Discord tools

Discord tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Discord call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.

Discord returns 403 or "permission denied" on one action while others work

Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.

"Bot tokens will error" or 401 when calling a Discord application-command tool

This is Discord's rule, not a broken connection, and the tool descriptions state it outright. The application-command permission endpoints require an OAuth2 Bearer token from a user and reject bot tokens; other Discord endpoints do the reverse. On top of that, the authorizing user must hold MANAGE_GUILD and MANAGE_ROLES in the target guild for those specific calls, so an account without those roles gets an error even with a healthy connection. If the agent needs to act on a server rather than read your own membership, that is a signal to use the Discord Bot integration instead of trying to make this one reach further.

Ask the agent to diagnose it:

Call discord_get_my_user and discord_list_my_guilds, and tell me which account you are connected as and which servers it can see. Do not retry the failed call yet.
The agent says it cannot find a Discord tool for sending a message

It is correct — there is no send-message tool in this integration, and the agent is not confused. The account-level Discord toolset covers identity, guild membership, connections, entitlements, and role connections. Message sending, channel reads, and moderation live in the Discord Bot integration, which registers the tools under a discordbot_ prefix. Connect that one from the dashboard and the tools appear in the next message. If the agent instead invents a plausible-looking name like discord_send_message, that name has never existed and the error will list the closest real tools.

Ask the agent to diagnose it:

List every Discord tool you actually have access to and tell me which of them can write anything. Do not guess at tool names.
Discord shows the app as authorized but the agent sees no servers

Check which Discord account approved the grant. People routinely hold a personal account and one tied to a work or community identity, and the guild list the agent sees belongs to whichever account was signed in when you approved. The second cause is the consent screen itself: Discord lets you review what is being granted, and an approval that dropped the guilds permission leaves a connection that can identify you but cannot enumerate servers. Reconnect from the dashboard, confirm which account you are signing in as, and accept the full set.

OAuth finished in the browser but the account is still missing

Try reconnecting Discord and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.

FAQ

Is there a OpenClaw Discord integration?

Yes. ClawLink is the fastest way to connect OpenClaw to Discord: link your Discord account once in the browser and OpenClaw can call the Discord API through 27 ready-made tools — no custom code or token handling.

How do I add Discord to OpenClaw with ClawLink?

Paste the setup prompt from this page into OpenClaw. It installs the ClawLink Discord skill from ClawHub, then you click Connect in the dashboard to authorize Discord. OpenClaw calls the tools from the next message — no config files or API keys to manage.

How long does it take to connect Discord to OpenClaw?

About two minutes. Sign in, click Connect next to Discord in the dashboard, authenticate, and OpenClaw can use it from the next chat message.

Why use ClawLink instead of wiring Discord up myself?

The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for OpenClaw. That is fine if you want to build and maintain the integration yourself. Most teams just want Discord working from chat.

Can OpenClaw send Discord messages with this integration?

No, and it is worth being direct about it. This connection authorizes your Discord user account, and Discord's API does not let a user-scoped OAuth token post into channels the way a bot can. The tools here cover identity and membership: which servers you are in, your profile, your linked accounts, your role connections. To send messages, read channel history, or moderate, you want the Discord Bot integration, which is a separate connection with the guild, channel, and message tools. Connecting this one first and then wondering why the agent cannot post is the most common wrong turn on this provider.

What is the difference between the Discord and Discord Bot integrations?

They authenticate as different things. The Discord integration acts as you, through OAuth, and sees what your account can see. The Discord Bot integration acts as an application that has been added to a server, with the permissions that server granted it. Discord enforces the split at the API level — several endpoints accept a user OAuth token and explicitly reject a bot token, and the messaging endpoints work the other way round. Most agent use cases people describe as "connect Discord" are really the bot ones, so start there unless you specifically want the agent to reason about your own account and memberships.

Do I need to create an app in the Discord Developer Portal?

Not for this connection. You approve access on Discord's own OAuth screen and the grant lives on the ClawLink server, so there is no application to register, no client secret, and no bot token to store. This is the part every search result gets differently: the standard walkthrough has you open the Developer Portal, create an application, add a bot user, enable privileged gateway intents, and copy the token into a config file. That is the self-hosted bot path. If you go the Discord Bot route through ClawLink, that registration is handled for you too.

Is it safe to connect Discord to an AI agent?

The connection uses Discord's OAuth consent flow, so you approve a named set of permissions on Discord's screen, the agent never sees your password, and you can revoke the grant from the ClawLink dashboard or from Discord's authorized-apps settings at any point. The scope of risk on this particular integration is narrow by construction, because the account-level toolset is mostly read-only — it can tell the agent which servers you are in, not act inside them. The integration to think harder about is the bot one, where the permissions you grant on a server are what the agent can do there.

OpenClaw installed the Discord skill but can't call the tools

The ClawHub skill teaches OpenClaw about Discord, but the calls run through the ClawLink plugin and your connected account. Make sure Discord is connected in the dashboard, then start a fresh chat so OpenClaw reloads the tool catalog. If OpenClaw runs as a persistent gateway, restart it so the new tools register.