Skip to content

Resources

MCP resource discovery lists only stable metadata. Listing resources or templates does not call the connector service or Discord. Fixed resources are:

ResourceSourcePurpose
ui://guildcontrol/plan-reviewStaticRender an optional display-only interactive review for canonical plan tools with no network, browser permission, persistence, approval, execution, or server-tool authority
discord://connector/safetyStaticExplain trust boundaries and reviewed workflows without identity or Discord data
discord://connector/coordinationStaticPublish the versioned model-neutral exact-message and directed-note lifecycles, caller-retained routing contract, reaction conventions, bounded polling, thread and native-poll escalation, privacy boundary, and explicit non-authority limitations without contacting Discord or persisting content
discord://connector/component-templatesStaticPublish the versioned typed template catalog, exact limits, compile tool, reviewed lifecycle, and authority-free privacy contract without credentials or Discord access
discord://connector/guild-blueprint-startersStaticPublish the versioned public-only starter catalog, symbolic ordering design, omissions, compiler contract, narrower setup recipe, and reviewed lifecycle without credentials, Discord access, persistence, or authority
discord://connector/tool-accessStaticIndex every canonical tool's authorization lifecycle, reviewed workflow, complete requirement coverage, exact requirement overrides, and exact contract lookup without granting authority or claiming readiness
discord://connector/policyLocalReport effective scope and write policy without credentials or Discord access
discord://connector/activityLocalReturn a bounded content-free activity page without exposing the local file path
discord://connector/installationsDiscordCompare every exact configured guild with the complete bounded ID-only installed-guild inventory without returning guild metadata, requesting approximate counts, mutating policy, leaving a guild, or persisting data
discord://application/postureDiscordReturn the verified current application's strict privacy-minimized security posture without profiles, URL values, raw bitfields, webhook event names, or persistence
discord://application/role-connection-metadataDiscordReturn the verified current application's complete bounded linked-role metadata schema without verification URL, localized strings, user values, raw payloads, or persistence
discord://application/skusDiscordReturn the verified current application's complete bounded SKU catalog without benefits, prices, entitlements, subscribers, payment data, raw payloads, or persistence
discord://application/emojisDiscordRead the verified current application's complete bounded privacy-safe emoji inventory without caller-selected application scope
discord://connector/observabilityLocalReturn process-local operation aggregates, exporter health, and telemetry privacy guarantees
discord://gateway/statusLocalReport authenticated startup discovery, session-start limits, Gateway state, privacy guarantees, and content-free counters
discord://gateway/eventsGateway bufferReturn the most recent retained in-scope event kinds and identifiers
discord://interactions/statusLocalReport native Interaction ingress phase, fixed limits, managed-command verification, queue counts, and content-free outcomes
discord://interactions/continuationsProcess-local transient capabilitiesReturn bounded content-free rotating follow-up references, exact verified identities, expiry, and remaining allowance without request text, response text, or Interaction tokens
discord://interactions/pendingProcess-local transient queueReturn bounded untrusted request text, exact IDs, expiry, and opaque response references without Interaction tokens
discord://guildsDiscord readReturn one bounded page of normalized in-scope guild metadata
discord://soundboard/defaultsDiscord readReturn Discord's bounded default soundboard inventory without audio bytes, CDN URLs, or creator profiles
discord://voice/regionsDiscord readReturn Discord's complete bounded global voice-region inventory without raw payloads or persistence

Resource templates are non-enumerable and require an exact identifier or canonical tool name:

Resource templatePurpose
discord://connector/tool-access/{toolName}Return one exact canonical tool's complete authentication custody, policy paths, Discord permissions and conditional cases, Gateway intents, hierarchy, curated setup, authorization lifecycle, reviewed companions, and target-specific live-verification boundary without reading configuration, contacting Discord, granting authority, or claiming readiness
discord://application/commands/{guildId}Audit the pinned application's complete global and exact-guild command inventories plus guild permission decisions without raw definitions, descriptions, choice values, profiles, names of permission targets, or persistence
discord://guilds/{guildId}/channelsRead normalized in-scope channel metadata for one guild
discord://guilds/{guildId}/voice-regionsRead the complete bounded voice-region inventory available to one exact permitted guild without raw payloads or persistence
discord://guilds/{guildId}/channels/{channelId}/voice-statusRead one exact ordinary voice channel's transient status with complete connection-sensitive permission and privacy evidence, no occupant enumeration, and no persistence
discord://guilds/{guildId}/channel-orderRead one separately allowlisted guild's complete obfuscation-safe layout, complete or visibility-bounded HTTP evidence, canonical same-parent sortable families, and connector authority without exposing hidden metadata or persisting channel text
discord://guilds/{guildId}/channels/{channelId}/deletion-readinessAudit one exact allowlisted direct channel's type, dependencies, complete topology, type-specific authority, irreversible impact, and privacy boundary without reading message content
discord://guilds/{guildId}/automod-rulesRead the bounded privacy-safe AutoMod inventory, exact reference health, and complete permission evidence for one separately allowlisted guild without policy strings
discord://guilds/{guildId}/emojisRead the complete bounded privacy-safe emoji inventory and ownership-aware permission evidence for one separately allowlisted guild
discord://guilds/{guildId}/integrationsRead one bounded privacy-safe integration inventory with complete MANAGE_GUILD evidence, external identities projected out, and endpoint completeness made explicit
discord://guilds/{guildId}/webhooksAudit one complete bounded credential-redacted guild webhook inventory with exact identity, type, ownership, channel, permission, aggregate, and fixed-finding evidence and no persistence
discord://guilds/{guildId}/invites/{inviteRef}Resolve one process-local opaque invite reference through a fresh complete capability-safe guild inventory
discord://guilds/{guildId}/templatesRead one complete bounded capability-safe native Guild Template inventory with opaque process-local references, count-only structure, complete permission evidence, and no source snapshot or metadata text
discord://guilds/{guildId}/onboardingRead one complete bounded privacy-minimized onboarding audit with member-facing text always omitted and unknown fields or enums represented only by counts
discord://guilds/{guildId}/welcome-screenRead one complete bounded privacy-minimized Welcome Screen audit with descriptions and Unicode emoji text always omitted and unknown fields represented only by counts
discord://guilds/{guildId}/widget-settingsRead one authenticated privacy-minimized widget-settings audit with exact state, public-exposure implications, channel names omitted, and anonymous widget routes never called
discord://guilds/{guildId}/profileRead one privacy-bounded guild-profile audit with transient untrusted name and description text, presence-only media state, complete permission evidence, and no persistence
discord://guilds/{guildId}/settingsRead one bounded privacy-minimized named guild-settings audit with complete authority, continuity-safe channel evidence, raw bitfields omitted, and unknown system bits reduced to presence
discord://guilds/{guildId}/incident-actionsRead one bounded privacy-minimized incident-action audit with exact deadlines, detection timestamps reduced to booleans, complete known authority evidence, unknown values omitted, and no persistence
discord://guilds/{guildId}/rolesRead the complete normalized role inventory for one guild
discord://guilds/{guildId}/roles/{roleId}Read one exact normalized role from one guild
discord://guilds/{guildId}/roles/{roleId}/deletion-readinessAudit one exact allowlisted role's holder, hierarchy, permission, discoverable dependency, layout, privacy, risk, and known blind-spot evidence without fetching content or member identities
discord://guilds/{guildId}/role-orderRead one separately allowlisted guild's complete canonical hierarchy, aggregate holder counts, management boundaries, hierarchy-sensitive permissions, and connector authority without fetching member identities
discord://guilds/{guildId}/scheduled-eventsRead the complete bounded privacy-safe scheduled-event inventory and entity-specific permission evidence for one separately allowlisted guild without subscriber counts
discord://guilds/{guildId}/soundboardRead the complete bounded privacy-safe soundboard inventory and ownership-aware permission evidence for one separately allowlisted guild
discord://guilds/{guildId}/soundboard/{soundId}Read one exact privacy-safe sound through a fresh complete guild soundboard inventory
discord://guilds/{guildId}/channels/{channelId}/stage-instanceRead one exact separately allowlisted Stage channel's privacy-safe active or inactive instance state and complete read evidence
discord://guilds/{guildId}/stickersRead the complete bounded privacy-safe sticker inventory and ownership-aware permission evidence for one separately allowlisted guild
discord://guilds/{guildId}/members/{userId}Read one exact privacy-minimized member from a separately allowlisted guild
discord://guilds/{guildId}/members/{userId}/voice-stateRead one exact privacy-minimized member voice state through separate exact guild and voice-channel scope without occupant enumeration or persistence
discord://guilds/{guildId}/threads/{threadId}Read one exact privacy-minimized thread lifecycle state with parent, connector-membership, inherited-permission, and explicit omission evidence
discord://guilds/{guildId}/threads/{threadId}/members/{userId}Read one exact allowlisted user's privacy-minimized thread membership and parent-access evidence without member enumeration or embedded guild-member data
discord://guilds/{guildId}/bans/{userId}Read one exact privacy-minimized ban from a separately allowlisted guild with the reason always omitted
discord://channels/{channelId}Read one exact strict transient guild-channel metadata projection without persisting names, topics, or raw payloads
discord://channels/{channelId}/forum-tagsRead one exact stable forum's complete bounded ordered tag inventory transiently without post enumeration, raw payloads, or persistence
discord://channels/{channelId}/accessExplain the verified bot's effective access to one channel or thread
discord://channels/{channelId}/permission-overwritesPage normalized exact-target overwrites and inherited thread-source evidence for one channel or thread
discord://channels/{channelId}/announcement-subscriptionsRead aggregate webhook capacity and exact Channel Follower subscriptions for an allowlisted direct text target without unrelated webhook IDs or message access
discord://channels/{channelId}/webhooksRead one complete credential-redacted webhook inventory for an exact separately allowlisted direct guild channel
discord://channels/{channelId}/messages/{messageId}Read one exact message from one permitted channel
discord://channels/{channelId}/messages/{messageId}/attachments/{attachmentId}Refetch and return one exact current message attachment as a private binary resource after the same identity, signed-delivery, byte-budget, media, secret-scan, and no-persistence checks used by read_message_attachment
discord://channels/{channelId}/messages/{messageId}/reactionsRead one strict privacy-safe aggregate reaction snapshot without user identities, message content, author data, profiles, or persistence

Every Discord-backed JSON resource carries an untrusted-external-data classification and an instruction to treat returned strings as data. The exact-message resource is deliberately compact: it includes message content, author identity, timestamps, jump URL, compact attachment metadata, and counts while omitting attachment and proxy URLs plus raw embeds, components, reactions, and mention payloads. Existing service checks still verify the bot identity, exact returned IDs, guild and channel scope, and fixed Discord API origin before the resource is returned. The binary attachment template is private, non-enumerable, and zero-lifetime; its response uses the exact verified media type selected by the attachment-read boundary rather than a JSON trust envelope.

Resource payloads and failures pass through the same recursive token-redaction boundary as tools. Live reads use private zero-lifetime cache hints. Only identity-free static contracts such as the safety guide, coordination playbook, component-template catalog, tool-access index and exact per-tool contracts, and deterministic data-free plan-review app are eligible for shared caching.

Every resource result is measured after redaction against limits.mcpReadResponseMaxBytes. Oversized resources fail whole with a fixed bounded protocol error, so clients never receive a syntactically valid but semantically incomplete resource fragment. The error omits the withheld value, URI-specific evidence, actual size, preview, and digest.

Canonical source: docs/reference.md

Documentation generated for guildcontrol@0.0.0. Canonical source and edit history remain in the public repository. GuildControl is an independent project and is not affiliated with or endorsed by Discord Inc. Discord is used only to identify the platform that GuildControl connects to.