Reads Discord account identity (username, email, avatar) and lists guilds via the Discord API. Use when the user asks about their Discord profile or servers.
How this skill is triggered — by the user, by Claude, or both
Slash command
/acedatacloud-ai-media:discordWhen to use
Trigger when the user wants to read their Discord account identity (username, avatar, email) or list the servers (guilds) their connected Discord account belongs to. This connection is read-only identity + guild list; it CANNOT read or send channel messages.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
We drive the [Discord API](https://discord.com/developers/docs/reference)
We drive the Discord API
with curl + jq. The user's OAuth bearer token is in $DISCORD_TOKEN;
every call needs it as Authorization: Bearer $DISCORD_TOKEN. Use the
versioned base URL https://discord.com/api/v10.
Discord returns standard JSON. Errors look like
{"code": <n>, "message": "<reason>"}. A 401 Unauthorized means the
token expired or the connection was revoked — tell the user to re-connect
Discord at auth.acedata.cloud/user/connections. A 429 carries a
retry_after (seconds) field — sleep that long, then retry; never
parallelize.
Scope is read-only identify + email + guilds. This OAuth
connection can ONLY read the account's identity and the list of guilds it
belongs to. It CANNOT read/send channel messages, list a guild's channels
or members, or manage anything — those require a Discord Bot (bot
token + gateway), which this connector does not provide. Do not call
/guilds/{id}/channels, /channels/..., or /guilds/{id}/members — they
return 401/403 with a user OAuth token. If the user asks for those, say it
needs a Discord bot integration, which isn't set up.
curl -sS -H "Authorization: Bearer $DISCORD_TOKEN" \
"https://discord.com/api/v10/users/@me" \
| jq '{id, username, global_name, email, avatar}'
curl -sS -H "Authorization: Bearer $DISCORD_TOKEN" \
"https://discord.com/api/v10/users/@me/guilds" \
| jq 'map({id, name, owner, approximate_member_count})'
Add ?with_counts=true to include approximate_member_count /
approximate_presence_count:
curl -sS -H "Authorization: Bearer $DISCORD_TOKEN" \
"https://discord.com/api/v10/users/@me/guilds?with_counts=true" \
| jq 'map({id, name, owner, members: .approximate_member_count})'
owner: true means the
user owns that guild.icon is non-null):
https://cdn.discordapp.com/icons/<guild_id>/<icon>.png (use .gif if
the icon hash starts with a_).?after=<last_guild_id>.npx claudepluginhub acedatacloud/skills --plugin acedatacloud-ai-mediaInspect Discord servers, channels, messages, and members using personal tokens. Read-only access with automatic token extraction or QR code sign-in.
Sends, reads, and lists Discord messages and channels via the Discord REST API using a bot token. Uses curl and jq for API calls.
Controls Discord via Clawdbot bot: send messages, react, upload emojis/stickers, create polls, manage threads, pins, search, and handle moderation in channels and DMs.