Privacy-safe member directory
The members toolset is disabled at the policy layer until capabilities.memberDirectory: true and a non-empty scopes.memberDirectoryGuildIds allowlist are both present. That allowlist must be a subset of readScope.guildIds when the outer read allowlist exists. Discord's list_guild_members endpoint additionally requires the Guild Members privileged intent at the application level, independently of the intents sent during Gateway Identify. The optional Gateway continues to identify with nonprivileged intents, and the directory uses bounded REST requests without adding a member cache.
get_guild_member accepts one exact guild and user ID. list_guild_members returns at most 100 records in strictly ascending user-ID order and accepts only the prior response's nextAfterUserId; a full page exposes a cursor but does not claim another page is guaranteed. search_guild_members returns at most 25 records from Discord's documented username-or-nickname prefix route. It does not claim fuzzy, substring, relevance-ranked, or exhaustive results. find_guild_members renders one single-search workflow and stops before any write or moderation call.
Every result contains only the exact user ID, bounded username, nullable global name and nickname, bot state, exact role IDs, nullable join time, nullable membership-screening state, and nullable timeout expiry. Avatar and banner data, decorations, collectibles, discriminator, presence, voice state, boost state, permissions, role names, flags, and raw payload fields are discarded before return. Responses and search queries are never cached, persisted, journaled, or used in telemetry. Discord names remain untrusted display data and can never substitute for an exact user ID in a write workflow. The exact discord://guilds/{guildId}/members/{userId} resource applies the same policy and minimization.
Identity pins and local scope are verified before each member request. Remote records must carry unique positive snowflakes, bounded valid text, consistent exact identities, valid timestamps, unique role IDs, and documented cursor ordering or the read fails closed. get_connector_status, online doctor, and setup report the application's Guild Members intent state without listing members, and diagnose a missing flag specifically as a member-listing failure. See Discord's guild member reference, list endpoint, and search endpoint.
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.