- `createServer` / `createChannel` — **not supported** (removed from spec, 2026-04-20). Discord requires an `X-Super-Properties` header (base64 client-fingerprint blob) on create-entity endpoints; the page transport does not inject it and there is no discord adapter to synthesize one. All other writes (`sendMessage`, `deleteMessage`, `addReaction`, `removeReaction`) work via the same `webpack_module_walk` Authorization header. Unblock: capture a live super-properties value from the SPA bundle an
Resources
5Install
npx skillscat add imoonkey/openweb/src-sites-discord Install via the SkillsCat registry.
A Discord integration that lets an agent browse, search, send, and manage messages and reactions in servers, channels, and direct messages via the Discord API. It is intended for AI workflows that need read and write access to Discord content. Server and channel creation are not supported due to missing header requirements.
Discord
Overview
Real-time messaging platform. Archetype: Messaging.
Workflows
Browse server messages
listGuilds→ pick guild →guildIdlistGuildChannels(guildId)→ pick channel →channelIdgetChannelMessages(channelId, limit)→ messages with content, author, timestamps
Search a server
listGuilds→ pick guild →guildIdsearchMessages(guildId, content)→ matching messages with context
Send a message & react
listGuilds→ pick guild →guildIdlistGuildChannels(guildId)→ pick channel →channelIdsendMessage(channelId, content)→ message with ID →messageIdaddReaction(channelId, messageId, emoji)→ 204
Undo message & reaction
getChannelMessages(channelId)→messageId(or usemessageId ← sendMessage)deleteMessage(channelId, messageId)→ 204removeReaction(channelId, messageId, emoji)→ 204
Inspect a server
listGuilds→ pick guild →guildIdgetGuildInfo(guildId)→ server details, member count, featuresgetGuildRoles(guildId)→ role list with permissions
Operations
| Operation | Intent | Key Input | Key Output | Notes |
|---|---|---|---|---|
| getCurrentUser | get my profile | — | username, email, avatar, premium_type | entry point |
| listGuilds | list my servers | — | id, name, icon, owner, permissions | entry point |
| getDirectMessages | list DM channels | — | id, type, recipients, last_message_id | entry point |
| getGuildInfo | server details | guildId ← listGuilds | name, description, owner_id, member count, features, roles | |
| listGuildChannels | channels in server | guildId ← listGuilds | id, name, type, topic, position | |
| getGuildRoles | server roles | guildId ← listGuilds | name, permissions, color, position | |
| searchMessages | search in server | guildId ← listGuilds, content (query) | total_results, messages with context | |
| getChannelInfo | channel details | channelId ← listGuildChannels | name, type, topic, guild_id | |
| getChannelMessages | read messages | channelId ← listGuildChannels | content, author, timestamp, attachments, embeds | paginated (limit, before, after) |
| getPinnedMessages | pinned messages | channelId ← listGuildChannels | content, author, timestamp | no pagination |
| sendMessage | send a message | channelId ← listGuildChannels, content | id, content, author, timestamp | write op |
| addReaction | react to message | channelId, messageId ← getChannelMessages, emoji | 204 no content | write op |
| deleteMessage | delete a message | channelId, messageId ← getChannelMessages | 204 no content | write op, reverses sendMessage |
| removeReaction | remove own reaction | channelId, messageId ← getChannelMessages, emoji | 204 no content | write op, reverses addReaction |
Quick Start
# Get current user info
openweb discord exec getCurrentUser '{}'
# List my servers (guilds)
openweb discord exec listGuilds '{}'
# List channels in a server
openweb discord exec listGuildChannels '{"guildId":"GUILD_ID"}'
# Read messages in a channel
openweb discord exec getChannelMessages '{"channelId":"CHANNEL_ID","limit":50}'
# Search messages in a guild
openweb discord exec searchMessages '{"guildId":"GUILD_ID","content":"search term"}'
# Send a message to a channel
openweb discord exec sendMessage '{"channelId":"CHANNEL_ID","content":"Hello!"}'
# React to a message with thumbs up
openweb discord exec addReaction '{"channelId":"CHANNEL_ID","messageId":"MSG_ID","emoji":"👍"}'
# Delete a message
openweb discord exec deleteMessage '{"channelId":"CHANNEL_ID","messageId":"MSG_ID"}'
# Remove own reaction from a message
openweb discord exec removeReaction '{"channelId":"CHANNEL_ID","messageId":"MSG_ID","emoji":"👍"}'Known Limitations
createServer/createChannel— not supported (removed from spec, 2026-04-20). Discord requires anX-Super-Propertiesheader (base64 client-fingerprint blob) on create-entity endpoints; the page transport does not inject it and there is no discord adapter to synthesize one. All other writes (sendMessage,deleteMessage,addReaction,removeReaction) work via the samewebpack_module_walkAuthorization header. Unblock: capture a live super-properties value from the SPA bundle and add it as a constant header (or build a discord adapter).