import type { RegisteredTool } from "@modelcontextprotocol/server"; import { z } from "zod"; import { MCP_DISCOVERY_TOOL_NAME, type McpToolsetName, type McpToolSurface } from "./constants.js"; import { type McpToolName, type McpToolRiskClass } from "./observability-catalog.js"; import { type McpToolAuthClass, type McpToolPermissionMode, type McpToolStaticRequirements, type McpToolTargetScope } from "./mcp-tool-readiness.js"; export type CanonicalMcpToolName = Exclude; export declare const MCP_DISCOVERY_RISKS: readonly ["destructive", "external-read", "local-read", "write"]; export type McpDiscoveryRisk = typeof MCP_DISCOVERY_RISKS[number]; declare const MCP_DISCOVERY_DETAILS: readonly ["compact", "full"]; type McpDiscoveryDetail = typeof MCP_DISCOVERY_DETAILS[number]; export type McpToolWorkflow = "announcement-crosspost" | "announcement-subscription" | "application-emoji-change" | "application-entitlement-consumption" | "application-intent-enablement" | "application-role-connection-metadata-change" | "application-test-entitlement-change" | "attachment-message" | "automod-change" | "bot-profile-change" | "bulk-guild-ban" | "bulk-member-role-change" | "channel-cloning" | "channel-creation" | "channel-deletion" | "channel-metadata-change" | "voice-channel-status-change" | "channel-ordering" | "channel-permission-overwrite" | "channel-permission-sync" | "component-message" | "embed-message" | "direct-message-change" | "forum-post" | "forum-tag-change" | "guild-blueprint" | "guild-community-change" | "guild-application-command-change" | "global-application-command-change" | "guild-scaffold" | "guild-expression-change" | "guild-incident-action-change" | "guild-profile-change" | "guild-prune" | "guild-soundboard-change" | "guild-settings-change" | "guild-template-change" | "integration-deletion" | "guild-departure" | "invite-creation" | "invite-deletion" | "onboarding-change" | "poll-creation" | "poll-end" | "reaction-moderation" | "member-moderation" | "member-nickname-change" | "member-role-change" | "member-verification-change" | "member-voice-change" | "message-deletion" | "message-forward" | "message-pin" | "native-interaction-command" | "role-creation" | "role-configuration" | "role-deletion" | "role-ordering" | "scheduled-event-change" | "stage-instance-change" | "thread-creation" | "thread-governance-change" | "webhook-deletion" | "webhook-message-deletion" | "webhook-change" | "webhook-creation" | "welcome-screen-change" | "widget-settings-change"; interface CompleteToolAnnotations { destructiveHint: boolean; idempotentHint: boolean; openWorldHint: boolean; readOnlyHint: boolean; } export declare const MCP_TOOL_ACCESS_STAGES: readonly ["guarded-write", "live-read", "local", "receipt-verify", "review-execute", "review-plan"]; export type McpToolAccessStage = typeof MCP_TOOL_ACCESS_STAGES[number]; export declare const MCP_TOOL_ACCESS_MANIFEST_FORMAT = "guildcontrol.tool-access-manifest.v2"; export declare const MCP_TOOL_ACCESS_INDEX_FORMAT = "guildcontrol.tool-access-index.v2"; export declare const MCP_TOOL_ACCESS_DOCUMENT_FORMAT = "guildcontrol.tool-access-document.v1"; export interface McpToolAccessContract { approval: "host-write-and-signed-interactive" | "host-write-approval" | "none"; authorizationEvidence: "fresh-plan-recheck" | "none" | "operation-runtime" | "receipt-and-readback" | "target-bound-plan"; companions: McpToolWorkflowCompanions; discordRequest: "none" | "read" | "write"; readiness: "not-applicable" | "target-specific"; requirements: McpToolStaticRequirements; stage: McpToolAccessStage; } export interface McpToolWorkflowCompanions { execute: readonly CanonicalMcpToolName[]; plan: readonly CanonicalMcpToolName[]; verify: readonly CanonicalMcpToolName[]; } export type McpToolAccessStageContract = Omit; export interface McpToolAccessEntry extends McpToolAccessContract { name: McpToolName; riskClass: McpToolRiskClass; toolset: McpToolsetName; workflow: McpToolWorkflow | null; } export interface McpToolAccessManifestEntry { name: McpToolName; requirements: McpToolStaticRequirements; stage: McpToolAccessStage; toolset: McpToolsetName; workflow: McpToolWorkflow | null; } export interface McpToolAccessManifest { authorityGranted: false; credentialsRequired: false; discordContacted: false; entries: readonly McpToolAccessManifestEntry[]; format: typeof MCP_TOOL_ACCESS_MANIFEST_FORMAT; readiness: "target-specific"; requirementCoverage: { authenticationCounts: Record; complete: true; exactToolEntries: number; permissionModeCounts: Record; targetAccessProven: false; targetScopeCounts: Record; toolsetEntries: number; unknownEntries: 0; }; schemaVersion: number; stageContracts: Record; stageCounts: Record; status: "ok"; toolsetNames: readonly McpToolsetName[]; warnings: readonly string[]; workflows: Partial>; } export interface McpToolAccessIndexEntry { name: McpToolName; stage: McpToolAccessStage; toolset: McpToolsetName; workflow: McpToolWorkflow | null; } export interface McpToolAccessIndex extends Omit { entries: readonly McpToolAccessIndexEntry[]; exactRequirementToolNames: readonly McpToolName[]; format: typeof MCP_TOOL_ACCESS_INDEX_FORMAT; requirementsResource: { uriTemplate: string; variable: "toolName"; }; } export interface McpToolAccessDocument { authorityGranted: false; credentialsRequired: false; discordContacted: false; entry: McpToolAccessEntry; format: typeof MCP_TOOL_ACCESS_DOCUMENT_FORMAT; readiness: McpToolAccessContract["readiness"]; status: "ok"; warnings: readonly string[]; } export declare const MCP_TOOL_ACCESS_NAMES: readonly ("add_reaction" | "add_reactions" | "analyze_community_activity" | "audit_application_commands" | "audit_application_entitlements" | "audit_application_posture" | "audit_application_role_connection_metadata" | "audit_application_skus" | "audit_application_subscriptions" | "audit_bot_installations" | "audit_channel_order" | "audit_channel_role_access" | "audit_forum_tags" | "audit_guild_community" | "audit_guild_webhooks" | "audit_role_deletion" | "audit_role_order" | "capture_guild_blueprint" | "catch_up_messages" | "check_soundboard_playback" | "compile_component_template" | "compile_guild_blueprint_starter" | "create_coordination_address" | "delete_messages" | "discover_discord_tools" | "edit_own_message" | "edit_webhook_message" | "execute_announcement_crosspost" | "execute_announcement_subscription" | "execute_application_emoji_change" | "execute_application_entitlement_consumption" | "execute_application_intent_enablement" | "execute_application_role_connection_metadata_change" | "execute_application_test_entitlement_change" | "execute_attachment_message" | "execute_automod_change" | "execute_bot_profile_change" | "execute_bulk_guild_ban" | "execute_bulk_member_role_change" | "execute_channel_clone" | "execute_channel_creation" | "execute_channel_deletion" | "execute_channel_metadata_change" | "execute_channel_order" | "execute_channel_permission_overwrite" | "execute_channel_permission_sync" | "execute_component_message" | "execute_direct_message_change" | "execute_embed_message" | "execute_forum_post" | "execute_forum_tag_change" | "execute_global_application_command_change" | "execute_guild_application_command_change" | "execute_guild_blueprint" | "execute_guild_community_change" | "execute_guild_departure" | "execute_guild_expression_change" | "execute_guild_incident_action_change" | "execute_guild_integration_deletion" | "execute_guild_profile_change" | "execute_guild_prune" | "execute_guild_scaffold" | "execute_guild_settings_change" | "execute_guild_soundboard_change" | "execute_guild_template_change" | "execute_guild_welcome_screen_change" | "execute_guild_widget_settings_change" | "execute_invite_creation" | "execute_invite_deletion" | "execute_member_moderation" | "execute_member_nickname_change" | "execute_member_role_change" | "execute_member_verification_change" | "execute_member_voice_change" | "execute_message_forward" | "execute_message_pin" | "execute_native_interaction_command" | "execute_onboarding_change" | "execute_poll_creation" | "execute_poll_end" | "execute_reaction_moderation" | "execute_role_configuration" | "execute_role_creation" | "execute_role_deletion" | "execute_role_order" | "execute_scheduled_event_change" | "execute_stage_instance_change" | "execute_thread_change" | "execute_thread_creation" | "execute_voice_channel_status_change" | "execute_webhook_change" | "execute_webhook_creation" | "execute_webhook_deletion" | "execute_webhook_message_deletion" | "explain_channel_access" | "explain_principal_permissions" | "get_application_emoji" | "get_application_entitlement" | "get_automod_rule" | "get_channel" | "get_channel_webhook" | "get_connector_status" | "get_current_bot_profile" | "get_direct_message" | "get_gateway_events" | "get_gateway_status" | "get_guild_audit_entry" | "get_guild_ban" | "get_guild_emoji" | "get_guild_incident_actions" | "get_guild_invite" | "get_guild_member" | "get_guild_onboarding" | "get_guild_profile" | "get_guild_settings" | "get_guild_soundboard_sound" | "get_guild_sticker" | "get_guild_vanity_url" | "get_guild_welcome_screen" | "get_guild_widget_settings" | "get_member_voice_state" | "get_message" | "get_observability_status" | "get_poll" | "get_role" | "get_scheduled_event" | "get_stage_instance" | "get_thread_membership" | "get_thread_state" | "get_voice_channel_status" | "get_webhook_message" | "inspect_application_activity_instance" | "list_active_threads" | "list_activity" | "list_announcement_subscriptions" | "list_application_emojis" | "list_archived_threads" | "list_automod_rules" | "list_channel_permission_overwrites" | "list_channel_webhooks" | "list_channels" | "list_coordination_addresses" | "list_coordination_notes" | "list_default_soundboard_sounds" | "list_direct_messages" | "list_discord_interaction_continuations" | "list_guild_audit_entries" | "list_guild_bans" | "list_guild_emojis" | "list_guild_integrations" | "list_guild_invites" | "list_guild_members" | "list_guild_soundboard_sounds" | "list_guild_stickers" | "list_guild_templates" | "list_guild_voice_regions" | "list_guilds" | "list_message_pins" | "list_message_reactions" | "list_message_replies" | "list_pending_discord_interactions" | "list_poll_answer_voters" | "list_reaction_users" | "list_roles" | "list_scheduled_event_users" | "list_scheduled_events" | "list_stage_instances" | "list_voice_regions" | "parse_discord_reference" | "plan_announcement_crosspost" | "plan_announcement_subscription" | "plan_application_emoji_change" | "plan_application_entitlement_consumption" | "plan_application_intent_enablement" | "plan_application_role_connection_metadata_change" | "plan_application_test_entitlement_change" | "plan_attachment_message" | "plan_automod_change" | "plan_bot_profile_change" | "plan_bulk_guild_ban" | "plan_bulk_member_role_change" | "plan_channel_clone" | "plan_channel_creation" | "plan_channel_deletion" | "plan_channel_metadata_change" | "plan_channel_order" | "plan_channel_permission_overwrite" | "plan_channel_permission_sync" | "plan_component_message" | "plan_direct_message_change" | "plan_embed_message" | "plan_forum_post" | "plan_forum_tag_change" | "plan_global_application_command_change" | "plan_guild_application_command_change" | "plan_guild_blueprint" | "plan_guild_community_change" | "plan_guild_departure" | "plan_guild_expression_change" | "plan_guild_incident_action_change" | "plan_guild_integration_deletion" | "plan_guild_profile_change" | "plan_guild_prune" | "plan_guild_scaffold" | "plan_guild_settings_change" | "plan_guild_soundboard_change" | "plan_guild_template_change" | "plan_guild_welcome_screen_change" | "plan_guild_widget_settings_change" | "plan_invite_creation" | "plan_invite_deletion" | "plan_member_moderation" | "plan_member_nickname_change" | "plan_member_role_change" | "plan_member_verification_change" | "plan_member_voice_change" | "plan_message_deletion" | "plan_message_forward" | "plan_message_pin" | "plan_native_interaction_command" | "plan_onboarding_change" | "plan_poll_creation" | "plan_poll_end" | "plan_reaction_moderation" | "plan_role_configuration" | "plan_role_creation" | "plan_role_deletion" | "plan_role_order" | "plan_scheduled_event_change" | "plan_stage_instance_change" | "plan_thread_change" | "plan_thread_creation" | "plan_voice_channel_status_change" | "plan_webhook_change" | "plan_webhook_creation" | "plan_webhook_deletion" | "plan_webhook_message_deletion" | "play_soundboard_sound" | "preview_component_layout" | "preview_embed_message" | "preview_guild_blueprint" | "read_message_attachment" | "read_messages" | "recall_conversation" | "remove_own_reaction" | "respond_to_discord_interaction" | "search_guild_members" | "search_messages" | "send_coordination_note" | "send_discord_interaction_followup" | "send_message" | "send_webhook_message" | "signal_command_processing" | "verify_automod_change" | "verify_component_message" | "verify_direct_message_change" | "verify_embed_message" | "verify_guild_blueprint" | "verify_guild_scaffold")[]; export declare function isMcpToolName(value: string): value is McpToolName; export declare const MCP_TOOL_CATALOG: Readonly<{ check_soundboard_playback: { keywords: string[]; toolset: "soundboard"; }; add_reaction: { keywords: string[]; toolset: "interactions"; }; add_reactions: { keywords: string[]; toolset: "interactions"; }; analyze_community_activity: { keywords: string[]; toolset: "messages"; }; audit_application_commands: { keywords: string[]; toolset: "connector"; }; audit_bot_installations: { keywords: string[]; toolset: "connector"; }; audit_application_entitlements: { keywords: string[]; toolset: "application-monetization"; }; audit_application_posture: { keywords: string[]; toolset: "connector"; }; audit_application_role_connection_metadata: { keywords: string[]; toolset: "connector"; }; audit_application_skus: { keywords: string[]; toolset: "connector"; }; audit_application_subscriptions: { keywords: string[]; toolset: "application-monetization"; }; get_application_entitlement: { keywords: string[]; toolset: "application-monetization"; }; audit_guild_webhooks: { keywords: string[]; toolset: "webhooks"; }; audit_forum_tags: { keywords: string[]; toolset: "forum-tags"; }; audit_channel_role_access: { keywords: string[]; toolset: "permissions"; }; audit_channel_order: { keywords: string[]; toolset: "channel-ordering"; }; audit_role_order: { keywords: string[]; toolset: "role-ordering"; }; audit_role_deletion: { keywords: string[]; toolset: "role-deletion"; }; capture_guild_blueprint: { keywords: string[]; toolset: "guild-blueprints"; workflow: "guild-blueprint"; }; compile_component_template: { keywords: string[]; toolset: "interactions"; workflow: "component-message"; }; compile_guild_blueprint_starter: { keywords: string[]; toolset: "guild-blueprints"; workflow: "guild-blueprint"; }; create_coordination_address: { keywords: string[]; toolset: "coordination"; }; preview_guild_blueprint: { keywords: string[]; toolset: "guild-blueprints"; workflow: "guild-blueprint"; }; delete_messages: { keywords: string[]; toolset: "deletion"; workflow: "message-deletion"; }; edit_own_message: { keywords: string[]; toolset: "message-writes"; }; edit_webhook_message: { keywords: string[]; toolset: "webhooks"; }; execute_attachment_message: { keywords: string[]; toolset: "attachments"; workflow: "attachment-message"; }; execute_component_message: { keywords: string[]; toolset: "interactions"; workflow: "component-message"; }; execute_embed_message: { keywords: string[]; toolset: "embed-messages"; workflow: "embed-message"; }; execute_direct_message_change: { keywords: string[]; toolset: "direct-messages"; workflow: "direct-message-change"; }; execute_automod_change: { keywords: string[]; toolset: "automod"; workflow: "automod-change"; }; execute_announcement_crosspost: { keywords: string[]; toolset: "announcement-crossposts"; workflow: "announcement-crosspost"; }; execute_announcement_subscription: { keywords: string[]; toolset: "announcement-subscriptions"; workflow: "announcement-subscription"; }; execute_application_emoji_change: { keywords: string[]; toolset: "application-emojis"; workflow: "application-emoji-change"; }; execute_application_entitlement_consumption: { keywords: string[]; toolset: "application-entitlement-changes"; workflow: "application-entitlement-consumption"; }; execute_application_intent_enablement: { keywords: string[]; toolset: "application-security"; workflow: "application-intent-enablement"; }; execute_application_role_connection_metadata_change: { keywords: string[]; toolset: "linked-roles"; workflow: "application-role-connection-metadata-change"; }; execute_application_test_entitlement_change: { keywords: string[]; toolset: "application-entitlement-changes"; workflow: "application-test-entitlement-change"; }; execute_bot_profile_change: { keywords: string[]; toolset: "bot-profile"; workflow: "bot-profile-change"; }; execute_message_forward: { keywords: string[]; toolset: "message-forwarding"; workflow: "message-forward"; }; execute_channel_creation: { keywords: string[]; toolset: "channel-creation"; workflow: "channel-creation"; }; execute_channel_deletion: { keywords: string[]; toolset: "channel-deletion"; workflow: "channel-deletion"; }; execute_role_deletion: { keywords: string[]; toolset: "role-deletion"; workflow: "role-deletion"; }; execute_channel_clone: { keywords: string[]; toolset: "channel-cloning"; workflow: "channel-cloning"; }; execute_channel_metadata_change: { keywords: string[]; toolset: "channel-metadata"; workflow: "channel-metadata-change"; }; execute_voice_channel_status_change: { keywords: string[]; toolset: "channel-metadata"; workflow: "voice-channel-status-change"; }; execute_channel_order: { keywords: string[]; toolset: "channel-ordering"; workflow: "channel-ordering"; }; execute_channel_permission_overwrite: { keywords: string[]; toolset: "permission-overwrites"; workflow: "channel-permission-overwrite"; }; execute_channel_permission_sync: { keywords: string[]; toolset: "permission-sync"; workflow: "channel-permission-sync"; }; execute_forum_post: { keywords: string[]; toolset: "forum-posts"; workflow: "forum-post"; }; execute_forum_tag_change: { keywords: string[]; toolset: "forum-tags"; workflow: "forum-tag-change"; }; execute_thread_creation: { keywords: string[]; toolset: "threads"; workflow: "thread-creation"; }; execute_thread_change: { keywords: string[]; toolset: "thread-governance"; workflow: "thread-governance-change"; }; execute_guild_blueprint: { keywords: string[]; toolset: "guild-blueprints"; workflow: "guild-blueprint"; }; execute_guild_scaffold: { keywords: string[]; toolset: "guild-scaffolds"; workflow: "guild-scaffold"; }; execute_guild_expression_change: { keywords: string[]; toolset: "guild-expressions"; workflow: "guild-expression-change"; }; execute_guild_soundboard_change: { keywords: string[]; toolset: "soundboard"; workflow: "guild-soundboard-change"; }; execute_guild_template_change: { keywords: string[]; toolset: "guild-templates"; workflow: "guild-template-change"; }; execute_guild_integration_deletion: { keywords: string[]; toolset: "integrations"; workflow: "integration-deletion"; }; execute_guild_departure: { keywords: string[]; toolset: "guild-departure"; workflow: "guild-departure"; }; execute_invite_creation: { keywords: string[]; toolset: "invites"; workflow: "invite-creation"; }; execute_invite_deletion: { keywords: string[]; toolset: "invites"; workflow: "invite-deletion"; }; execute_onboarding_change: { keywords: string[]; toolset: "onboarding"; workflow: "onboarding-change"; }; execute_guild_welcome_screen_change: { keywords: string[]; toolset: "welcome-screen"; workflow: "welcome-screen-change"; }; execute_guild_widget_settings_change: { keywords: string[]; toolset: "widget-settings"; workflow: "widget-settings-change"; }; execute_guild_settings_change: { keywords: string[]; toolset: "guild-settings"; workflow: "guild-settings-change"; }; execute_guild_community_change: { keywords: string[]; toolset: "guild-community"; workflow: "guild-community-change"; }; execute_guild_incident_action_change: { keywords: string[]; toolset: "guild-incidents"; workflow: "guild-incident-action-change"; }; execute_guild_profile_change: { keywords: string[]; toolset: "guild-profile"; workflow: "guild-profile-change"; }; execute_poll_creation: { keywords: string[]; toolset: "polls"; workflow: "poll-creation"; }; execute_poll_end: { keywords: string[]; toolset: "polls"; workflow: "poll-end"; }; execute_reaction_moderation: { keywords: string[]; toolset: "interactions"; workflow: "reaction-moderation"; }; execute_member_moderation: { keywords: string[]; toolset: "moderation"; workflow: "member-moderation"; }; execute_bulk_guild_ban: { keywords: string[]; toolset: "bulk-bans"; workflow: "bulk-guild-ban"; }; execute_bulk_member_role_change: { keywords: string[]; toolset: "member-roles"; workflow: "bulk-member-role-change"; }; execute_guild_prune: { keywords: string[]; toolset: "guild-prunes"; workflow: "guild-prune"; }; execute_member_nickname_change: { keywords: string[]; toolset: "member-nicknames"; workflow: "member-nickname-change"; }; execute_member_verification_change: { keywords: string[]; toolset: "member-verification"; workflow: "member-verification-change"; }; execute_member_role_change: { keywords: string[]; toolset: "member-roles"; workflow: "member-role-change"; }; execute_member_voice_change: { keywords: string[]; toolset: "voice-moderation"; workflow: "member-voice-change"; }; execute_message_pin: { keywords: string[]; toolset: "pins"; workflow: "message-pin"; }; execute_native_interaction_command: { keywords: string[]; toolset: "native-interactions"; workflow: "native-interaction-command"; }; execute_guild_application_command_change: { keywords: string[]; toolset: "application-commands"; workflow: "guild-application-command-change"; }; execute_global_application_command_change: { keywords: string[]; toolset: "application-commands"; workflow: "global-application-command-change"; }; execute_role_creation: { keywords: string[]; toolset: "role-creation"; workflow: "role-creation"; }; execute_role_configuration: { keywords: string[]; toolset: "role-configuration"; workflow: "role-configuration"; }; execute_role_order: { keywords: string[]; toolset: "role-ordering"; workflow: "role-ordering"; }; execute_scheduled_event_change: { keywords: string[]; toolset: "scheduled-events"; workflow: "scheduled-event-change"; }; execute_stage_instance_change: { keywords: string[]; toolset: "stage-instances"; workflow: "stage-instance-change"; }; execute_webhook_deletion: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-deletion"; }; execute_webhook_message_deletion: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-message-deletion"; }; execute_webhook_change: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-change"; }; execute_webhook_creation: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-creation"; }; explain_channel_access: { keywords: string[]; toolset: "guilds"; }; explain_principal_permissions: { keywords: string[]; toolset: "permissions"; }; get_guild_audit_entry: { keywords: string[]; toolset: "audit-logs"; }; get_guild_ban: { keywords: string[]; toolset: "bans"; }; get_guild_invite: { keywords: string[]; toolset: "invites"; }; get_guild_vanity_url: { keywords: string[]; toolset: "invites"; }; get_guild_onboarding: { keywords: string[]; toolset: "onboarding"; }; get_guild_welcome_screen: { keywords: string[]; toolset: "welcome-screen"; }; get_guild_widget_settings: { keywords: string[]; toolset: "widget-settings"; }; get_guild_settings: { keywords: string[]; toolset: "guild-settings"; }; audit_guild_community: { keywords: string[]; toolset: "guild-community"; }; get_guild_incident_actions: { keywords: string[]; toolset: "guild-incidents"; }; get_guild_profile: { keywords: string[]; toolset: "guild-profile"; }; get_automod_rule: { keywords: string[]; toolset: "automod"; }; get_guild_member: { keywords: string[]; toolset: "members"; }; get_member_voice_state: { keywords: string[]; toolset: "voice-moderation"; }; get_thread_membership: { keywords: string[]; toolset: "thread-governance"; }; get_thread_state: { keywords: string[]; toolset: "thread-governance"; }; get_guild_emoji: { keywords: string[]; toolset: "guild-expressions"; }; get_guild_sticker: { keywords: string[]; toolset: "guild-expressions"; }; get_guild_soundboard_sound: { keywords: string[]; toolset: "soundboard"; }; get_connector_status: { keywords: string[]; toolset: "connector"; }; get_direct_message: { keywords: string[]; toolset: "direct-messages"; workflow: "direct-message-change"; }; get_gateway_events: { keywords: string[]; toolset: "gateway"; }; get_gateway_status: { keywords: string[]; toolset: "gateway"; }; get_message: { keywords: string[]; toolset: "messages"; }; read_message_attachment: { keywords: string[]; toolset: "messages"; }; get_application_emoji: { keywords: string[]; toolset: "application-emojis"; }; get_current_bot_profile: { keywords: string[]; toolset: "bot-profile"; }; inspect_application_activity_instance: { keywords: string[]; toolset: "connector"; }; get_observability_status: { keywords: string[]; toolset: "observability"; }; get_poll: { keywords: string[]; toolset: "polls"; }; get_role: { keywords: string[]; toolset: "roles"; }; get_scheduled_event: { keywords: string[]; toolset: "scheduled-events"; }; get_stage_instance: { keywords: string[]; toolset: "stage-instances"; }; get_channel_webhook: { keywords: string[]; toolset: "webhooks"; }; get_webhook_message: { keywords: string[]; toolset: "webhooks"; }; get_channel: { keywords: string[]; toolset: "guilds"; }; get_voice_channel_status: { keywords: string[]; toolset: "channel-metadata"; }; list_active_threads: { keywords: string[]; toolset: "threads"; }; list_application_emojis: { keywords: string[]; toolset: "application-emojis"; }; list_automod_rules: { keywords: string[]; toolset: "automod"; }; list_activity: { keywords: string[]; toolset: "activity"; }; list_archived_threads: { keywords: string[]; toolset: "threads"; }; list_channels: { keywords: string[]; toolset: "guilds"; }; list_channel_permission_overwrites: { keywords: string[]; toolset: "permission-overwrites"; }; list_guilds: { keywords: string[]; toolset: "guilds"; }; list_message_pins: { keywords: string[]; toolset: "pins"; }; list_discord_interaction_continuations: { keywords: string[]; toolset: "native-interactions"; }; list_pending_discord_interactions: { keywords: string[]; toolset: "native-interactions"; }; list_poll_answer_voters: { keywords: string[]; toolset: "polls"; }; list_message_reactions: { keywords: string[]; toolset: "interactions"; }; list_coordination_addresses: { keywords: string[]; toolset: "coordination"; }; list_coordination_notes: { keywords: string[]; toolset: "coordination"; }; list_message_replies: { keywords: string[]; toolset: "messages"; }; list_reaction_users: { keywords: string[]; toolset: "interactions"; }; list_guild_audit_entries: { keywords: string[]; toolset: "audit-logs"; }; list_guild_bans: { keywords: string[]; toolset: "bans"; }; list_guild_invites: { keywords: string[]; toolset: "invites"; }; list_guild_voice_regions: { keywords: string[]; toolset: "channel-metadata"; }; list_guild_integrations: { keywords: string[]; toolset: "integrations"; }; list_guild_members: { keywords: string[]; toolset: "members"; }; list_guild_emojis: { keywords: string[]; toolset: "guild-expressions"; }; list_guild_stickers: { keywords: string[]; toolset: "guild-expressions"; }; list_default_soundboard_sounds: { keywords: string[]; toolset: "soundboard"; }; list_direct_messages: { keywords: string[]; toolset: "direct-messages"; workflow: "direct-message-change"; }; list_guild_soundboard_sounds: { keywords: string[]; toolset: "soundboard"; }; list_guild_templates: { keywords: string[]; toolset: "guild-templates"; }; list_roles: { keywords: string[]; toolset: "roles"; }; list_scheduled_events: { keywords: string[]; toolset: "scheduled-events"; }; list_scheduled_event_users: { keywords: string[]; toolset: "scheduled-events"; }; list_stage_instances: { keywords: string[]; toolset: "stage-instances"; }; list_voice_regions: { keywords: string[]; toolset: "channel-metadata"; }; list_channel_webhooks: { keywords: string[]; toolset: "webhooks"; }; list_announcement_subscriptions: { keywords: string[]; toolset: "announcement-subscriptions"; }; plan_member_moderation: { keywords: string[]; toolset: "moderation"; workflow: "member-moderation"; }; plan_bulk_guild_ban: { keywords: string[]; toolset: "bulk-bans"; workflow: "bulk-guild-ban"; }; plan_bulk_member_role_change: { keywords: string[]; toolset: "member-roles"; workflow: "bulk-member-role-change"; }; plan_guild_prune: { keywords: string[]; toolset: "guild-prunes"; workflow: "guild-prune"; }; plan_member_nickname_change: { keywords: string[]; toolset: "member-nicknames"; workflow: "member-nickname-change"; }; plan_member_verification_change: { keywords: string[]; toolset: "member-verification"; workflow: "member-verification-change"; }; plan_member_role_change: { keywords: string[]; toolset: "member-roles"; workflow: "member-role-change"; }; plan_member_voice_change: { keywords: string[]; toolset: "voice-moderation"; workflow: "member-voice-change"; }; plan_automod_change: { keywords: string[]; toolset: "automod"; workflow: "automod-change"; }; plan_announcement_crosspost: { keywords: string[]; toolset: "announcement-crossposts"; workflow: "announcement-crosspost"; }; plan_announcement_subscription: { keywords: string[]; toolset: "announcement-subscriptions"; workflow: "announcement-subscription"; }; plan_message_forward: { keywords: string[]; toolset: "message-forwarding"; workflow: "message-forward"; }; plan_attachment_message: { keywords: string[]; toolset: "attachments"; workflow: "attachment-message"; }; plan_component_message: { keywords: string[]; toolset: "interactions"; workflow: "component-message"; }; plan_embed_message: { keywords: string[]; toolset: "embed-messages"; workflow: "embed-message"; }; plan_direct_message_change: { keywords: string[]; toolset: "direct-messages"; workflow: "direct-message-change"; }; plan_channel_creation: { keywords: string[]; toolset: "channel-creation"; workflow: "channel-creation"; }; plan_channel_deletion: { keywords: string[]; toolset: "channel-deletion"; workflow: "channel-deletion"; }; plan_role_deletion: { keywords: string[]; toolset: "role-deletion"; workflow: "role-deletion"; }; plan_channel_clone: { keywords: string[]; toolset: "channel-cloning"; workflow: "channel-cloning"; }; plan_channel_metadata_change: { keywords: string[]; toolset: "channel-metadata"; workflow: "channel-metadata-change"; }; plan_voice_channel_status_change: { keywords: string[]; toolset: "channel-metadata"; workflow: "voice-channel-status-change"; }; plan_channel_order: { keywords: string[]; toolset: "channel-ordering"; workflow: "channel-ordering"; }; plan_channel_permission_overwrite: { keywords: string[]; toolset: "permission-overwrites"; workflow: "channel-permission-overwrite"; }; plan_channel_permission_sync: { keywords: string[]; toolset: "permission-sync"; workflow: "channel-permission-sync"; }; plan_application_emoji_change: { keywords: string[]; toolset: "application-emojis"; workflow: "application-emoji-change"; }; plan_application_entitlement_consumption: { keywords: string[]; toolset: "application-entitlement-changes"; workflow: "application-entitlement-consumption"; }; plan_application_intent_enablement: { keywords: string[]; toolset: "application-security"; workflow: "application-intent-enablement"; }; plan_application_role_connection_metadata_change: { keywords: string[]; toolset: "linked-roles"; workflow: "application-role-connection-metadata-change"; }; plan_application_test_entitlement_change: { keywords: string[]; toolset: "application-entitlement-changes"; workflow: "application-test-entitlement-change"; }; plan_bot_profile_change: { keywords: string[]; toolset: "bot-profile"; workflow: "bot-profile-change"; }; plan_forum_post: { keywords: string[]; toolset: "forum-posts"; workflow: "forum-post"; }; plan_forum_tag_change: { keywords: string[]; toolset: "forum-tags"; workflow: "forum-tag-change"; }; plan_thread_creation: { keywords: string[]; toolset: "threads"; workflow: "thread-creation"; }; plan_thread_change: { keywords: string[]; toolset: "thread-governance"; workflow: "thread-governance-change"; }; plan_guild_blueprint: { keywords: string[]; toolset: "guild-blueprints"; workflow: "guild-blueprint"; }; verify_guild_blueprint: { keywords: string[]; toolset: "guild-blueprints"; workflow: "guild-blueprint"; }; plan_guild_scaffold: { keywords: string[]; toolset: "guild-scaffolds"; workflow: "guild-scaffold"; }; verify_guild_scaffold: { keywords: string[]; toolset: "guild-scaffolds"; workflow: "guild-scaffold"; }; plan_guild_expression_change: { keywords: string[]; toolset: "guild-expressions"; workflow: "guild-expression-change"; }; plan_guild_soundboard_change: { keywords: string[]; toolset: "soundboard"; workflow: "guild-soundboard-change"; }; play_soundboard_sound: { keywords: string[]; toolset: "soundboard"; }; plan_guild_template_change: { keywords: string[]; toolset: "guild-templates"; workflow: "guild-template-change"; }; plan_guild_integration_deletion: { keywords: string[]; toolset: "integrations"; workflow: "integration-deletion"; }; plan_guild_departure: { keywords: string[]; toolset: "guild-departure"; workflow: "guild-departure"; }; plan_invite_deletion: { keywords: string[]; toolset: "invites"; workflow: "invite-deletion"; }; plan_invite_creation: { keywords: string[]; toolset: "invites"; workflow: "invite-creation"; }; plan_onboarding_change: { keywords: string[]; toolset: "onboarding"; workflow: "onboarding-change"; }; plan_guild_welcome_screen_change: { keywords: string[]; toolset: "welcome-screen"; workflow: "welcome-screen-change"; }; plan_guild_widget_settings_change: { keywords: string[]; toolset: "widget-settings"; workflow: "widget-settings-change"; }; plan_guild_settings_change: { keywords: string[]; toolset: "guild-settings"; workflow: "guild-settings-change"; }; plan_guild_community_change: { keywords: string[]; toolset: "guild-community"; workflow: "guild-community-change"; }; plan_guild_incident_action_change: { keywords: string[]; toolset: "guild-incidents"; workflow: "guild-incident-action-change"; }; plan_guild_profile_change: { keywords: string[]; toolset: "guild-profile"; workflow: "guild-profile-change"; }; plan_poll_creation: { keywords: string[]; toolset: "polls"; workflow: "poll-creation"; }; plan_poll_end: { keywords: string[]; toolset: "polls"; workflow: "poll-end"; }; plan_reaction_moderation: { keywords: string[]; toolset: "interactions"; workflow: "reaction-moderation"; }; plan_message_deletion: { keywords: string[]; toolset: "deletion"; workflow: "message-deletion"; }; plan_message_pin: { keywords: string[]; toolset: "pins"; workflow: "message-pin"; }; plan_native_interaction_command: { keywords: string[]; toolset: "native-interactions"; workflow: "native-interaction-command"; }; plan_guild_application_command_change: { keywords: string[]; toolset: "application-commands"; workflow: "guild-application-command-change"; }; plan_global_application_command_change: { keywords: string[]; toolset: "application-commands"; workflow: "global-application-command-change"; }; plan_role_creation: { keywords: string[]; toolset: "role-creation"; workflow: "role-creation"; }; plan_role_configuration: { keywords: string[]; toolset: "role-configuration"; workflow: "role-configuration"; }; plan_role_order: { keywords: string[]; toolset: "role-ordering"; workflow: "role-ordering"; }; plan_scheduled_event_change: { keywords: string[]; toolset: "scheduled-events"; workflow: "scheduled-event-change"; }; plan_stage_instance_change: { keywords: string[]; toolset: "stage-instances"; workflow: "stage-instance-change"; }; plan_webhook_deletion: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-deletion"; }; plan_webhook_message_deletion: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-message-deletion"; }; plan_webhook_change: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-change"; }; plan_webhook_creation: { keywords: string[]; toolset: "webhooks"; workflow: "webhook-creation"; }; parse_discord_reference: { keywords: string[]; toolset: "connector"; }; preview_component_layout: { keywords: string[]; toolset: "interactions"; workflow: "component-message"; }; preview_embed_message: { keywords: string[]; toolset: "embed-messages"; workflow: "embed-message"; }; catch_up_messages: { keywords: string[]; toolset: "messages"; }; verify_component_message: { keywords: string[]; toolset: "interactions"; workflow: "component-message"; }; verify_embed_message: { keywords: string[]; toolset: "embed-messages"; workflow: "embed-message"; }; verify_direct_message_change: { keywords: string[]; toolset: "direct-messages"; workflow: "direct-message-change"; }; verify_automod_change: { keywords: string[]; toolset: "automod"; workflow: "automod-change"; }; read_messages: { keywords: string[]; toolset: "messages"; }; recall_conversation: { keywords: string[]; toolset: "messages"; }; remove_own_reaction: { keywords: string[]; toolset: "interactions"; }; search_messages: { keywords: string[]; toolset: "messages"; }; search_guild_members: { keywords: string[]; toolset: "members"; }; send_message: { keywords: string[]; toolset: "message-writes"; }; send_coordination_note: { keywords: string[]; toolset: "coordination"; }; signal_command_processing: { keywords: string[]; toolset: "message-writes"; }; send_webhook_message: { keywords: string[]; toolset: "webhooks"; }; respond_to_discord_interaction: { keywords: string[]; toolset: "native-interactions"; }; send_discord_interaction_followup: { keywords: string[]; toolset: "native-interactions"; }; }>; export declare function mcpToolAccessContract(name: McpToolName): McpToolAccessContract; export declare function mcpToolAccessEntry(name: McpToolName): McpToolAccessEntry; export declare function createMcpToolAccessManifest(toolsets?: ReadonlySet): McpToolAccessManifest; export declare function createMcpToolAccessIndex(requirementsUriTemplate: string, toolsets?: ReadonlySet): McpToolAccessIndex; export declare function createMcpToolAccessDocument(name: McpToolName): McpToolAccessDocument; export declare const discoverDiscordToolsInputSchema: z.ZodObject<{ detail: z.ZodDefault>; limit: z.ZodDefault; query: z.ZodOptional; risk: z.ZodOptional>; toolset: z.ZodOptional>; }, z.core.$strict>; export type DiscoverDiscordToolsInput = z.infer; export interface TrackedMcpTool { handle: RegisteredTool; inputSchema: Record; name: CanonicalMcpToolName; } interface SearchableMcpTool extends TrackedMcpTool { access: McpToolAccessContract; annotations: CompleteToolAnnotations; description: string; keywords: readonly string[]; normalizedDescription: string; normalizedKeywordGroups: ReadonlyArray; normalizedName: string; normalizedTitle: string; normalizedToolset: string; risk: McpDiscoveryRisk; summary: string; title: string; toolset: McpToolsetName; workflow?: McpToolWorkflow; } export interface DiscordToolDiscoveryCatalog { entries: readonly SearchableMcpTool[]; surface: McpToolSurface; } export declare function parseMcpToolSurface(value: string | undefined, name: string): McpToolSurface; export declare function parseMcpToolsets(value: string | undefined, name: string): ReadonlySet; export declare function selectedMcpToolsets(toolsets: ReadonlySet): McpToolsetName[]; export declare function mcpToolSelected(name: CanonicalMcpToolName, toolsets: ReadonlySet): boolean; export declare function selectedCanonicalMcpToolNames(toolsets: ReadonlySet): CanonicalMcpToolName[]; export declare function createDiscordToolDiscoveryCatalog(tools: readonly TrackedMcpTool[], surface: McpToolSurface): DiscordToolDiscoveryCatalog; export declare function discoverDiscordTools(input: DiscoverDiscordToolsInput, catalog: DiscordToolDiscoveryCatalog): { detail: McpDiscoveryDetail; matches: { access: McpToolAccessContract; enabled: boolean; name: CanonicalMcpToolName; risk: "destructive" | "external-read" | "local-read" | "write"; summary: string; title: string; toolset: "activity" | "announcement-crossposts" | "announcement-subscriptions" | "application-commands" | "application-emojis" | "application-entitlement-changes" | "application-monetization" | "application-security" | "attachments" | "audit-logs" | "automod" | "bans" | "bot-profile" | "bulk-bans" | "channel-cloning" | "channel-creation" | "channel-deletion" | "channel-metadata" | "channel-ordering" | "connector" | "coordination" | "deletion" | "direct-messages" | "embed-messages" | "forum-posts" | "forum-tags" | "gateway" | "guild-blueprints" | "guild-community" | "guild-departure" | "guild-expressions" | "guild-incidents" | "guild-profile" | "guild-prunes" | "guild-scaffolds" | "guild-settings" | "guild-templates" | "guilds" | "integrations" | "interactions" | "invites" | "linked-roles" | "member-nicknames" | "member-roles" | "member-verification" | "members" | "message-forwarding" | "message-writes" | "messages" | "moderation" | "native-interactions" | "observability" | "onboarding" | "permission-overwrites" | "permission-sync" | "permissions" | "pins" | "polls" | "role-configuration" | "role-creation" | "role-deletion" | "role-ordering" | "roles" | "scheduled-events" | "soundboard" | "stage-instances" | "thread-governance" | "threads" | "voice-moderation" | "webhooks" | "welcome-screen" | "widget-settings"; workflow?: McpToolWorkflow; annotations?: CompleteToolAnnotations; description?: string; inputSchema?: Record; }[]; newlyEnabledToolNames: CanonicalMcpToolName[]; refreshToolsList: boolean; schemaVersion: number; status: "ok"; surface: "full" | "progressive"; toolsets: { availableTools: number; enabledTools: number; name: "activity" | "announcement-crossposts" | "announcement-subscriptions" | "application-commands" | "application-emojis" | "application-entitlement-changes" | "application-monetization" | "application-security" | "attachments" | "audit-logs" | "automod" | "bans" | "bot-profile" | "bulk-bans" | "channel-cloning" | "channel-creation" | "channel-deletion" | "channel-metadata" | "channel-ordering" | "connector" | "coordination" | "deletion" | "direct-messages" | "embed-messages" | "forum-posts" | "forum-tags" | "gateway" | "guild-blueprints" | "guild-community" | "guild-departure" | "guild-expressions" | "guild-incidents" | "guild-profile" | "guild-prunes" | "guild-scaffolds" | "guild-settings" | "guild-templates" | "guilds" | "integrations" | "interactions" | "invites" | "linked-roles" | "member-nicknames" | "member-roles" | "member-verification" | "members" | "message-forwarding" | "message-writes" | "messages" | "moderation" | "native-interactions" | "observability" | "onboarding" | "permission-overwrites" | "permission-sync" | "permissions" | "pins" | "polls" | "role-configuration" | "role-creation" | "role-deletion" | "role-ordering" | "roles" | "scheduled-events" | "soundboard" | "stage-instances" | "thread-governance" | "threads" | "voice-moderation" | "webhooks" | "welcome-screen" | "widget-settings"; }[]; totalMatches: number; }; export {}; //# sourceMappingURL=mcp-tool-catalog.d.ts.map