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.


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.
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.
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.
1Install 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
Connect Discord
One-click OAuth in the dashboard.
- 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-pluginThen 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 loginlogin 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
| Tool | What it does |
|---|---|
Consume entitlement discord_consume_entitlement | Marks 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_permissions | Edits 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_permissions | Retrieves 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_permissions | Retrieves 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_entitlements | Tool 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_gateway | Tool 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_template | Tool 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_widget | Tool 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_png | Tool 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_member | Retrieves 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_authorization | Retrieves current OAuth2 authorization details for the application, including app info, scopes |
Get my user discord_get_my_user | Fetches comprehensive profile information for the currently authenticated Discord user |
Get openid connect userinfo discord_get_openid_connect_userinfo | Retrieve OpenID Connect compliant user information for the authenticated user |
Get public keys discord_get_public_keys | Retrieve Discord OAuth2 public keys |
Get sku subscription discord_get_sku_subscription | Retrieves a specific subscription by ID for a given SKU |
Get user discord_get_user | Retrieve information about a Discord user |
Get user application role connection discord_get_user_application_role_connection | Retrieves the application role connection for the currently authenticated user for a specified |
Invite resolve discord_invite_resolve | Resolve and retrieve information about a Discord invite code |
List my connections discord_list_my_connections | Retrieves a list of the authenticated user's connected third-party accounts on Discord |
List my guilds discord_list_my_guilds | Lists the current user's guilds, returning partial data for each; primarily used for displaying |
List sku subscriptions discord_list_sku_subscriptions | Lists all subscriptions for a given SKU |
List sticker packs discord_list_sticker_packs | Retrieve all available Discord Nitro sticker packs |
Modify current user discord_modify_current_user | Modifies the currently authenticated Discord user's profile |
Update user application role connection discord_update_user_application_role_connection | Updates the application role connection for the currently authenticated user for a specified |
Leave guild discord_leave_guild | Leaves 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_permissionsand 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_guildis 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_resolveworks 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.
ClawLink vs. building it yourself
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.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register 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 maintenance | You 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 usability | You 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. |
ClawLink vs. Composio
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.