Obtain a bot token and ensure the application is authorized with the applications.commands scope in at least one guild
PUT https://discord.com/api/v10/applications/{application.id}/commands with a JSON array of command objects, each containing name, description, and optional options array
Use PUT (bulk overwrite) rather than POST for deployment pipelines to make the global command set idempotent; this replaces all existing global commands
For faster iteration during development, register commands to a specific guild using PUT /applications/{application.id}/guilds/{guild.id}/commands — guild commands are available instantly versus up to an hour for global propagation
Handle the INTERACTION_CREATE gateway event or configure an interactions endpoint URL in the developer portal to receive slash command invocations
Known gotchas
Global command registration can take up to an hour to propagate to all guilds; always test with guild commands first and only promote to global for production releases
An app can have a maximum of 100 global commands; exceeding this limit returns a 400 error, requiring deletion of unused commands
Command names must be lowercase and match the regex ^[-_\p{L}\p{N}\p{sc=Deva}\p{sc=Thai}]{1,32}$ — spaces and uppercase letters cause validation failures
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp