Skip to content

Caller-owned Discord operations

Connect your AI to Discord

Do real community work safely through a caller-owned bot. Plan high-risk guild changes, approve the exact target, and verify complete builds against Discord.
Example guild-build lifecycleThrough a caller-owned bot
target locked
request build a professional community
plan    ready · exact bot + guild
apply   checkpointed · resumable
verify  blueprint evidence · verified

Caller-owned bot209 tools · 31 categoriesstdio + authenticated HTTPActivity Evidence for guild buildsPre-1.0

Your AI host owns the conversation, reasoning, and scheduling. discord-mcp owns the Discord boundary: typed operations, exact bot and guild scope, resumable execution, and live readback. It runs locally as a child process by default or as a bearer-protected Streamable HTTP endpoint. There is no hosted bot relay and no separate discord-mcp account.

1. Observe through your bot

The caller supplies one dedicated Discord bot. Server-side allowlists bind operations to the intended guild while structured reads give the AI current Discord context.

2. Propose and approve

Typed contracts constrain every call. Complete guild builds begin with a target-bound dry run and require approval of the exact bot, guild, plan, and operation summary.

3. Act, resume, and verify

Discord returns reusable structured data. Approved guild builds checkpoint every step and finish with Activity Evidence backed by an independent live readback.

The tutorial covers bot creation, CLI installation, guided setup, and client configuration. Its connection track begins with a read-only identity check. An optional final unit then walks through one complete plan, approval, apply, resume, and Activity Evidence lifecycle in a private test guild.

Terminal window
npm install -g @discord-mcp/cli
discord-mcp setup --profile devbot --client claude-desktop

Requires Node.js 22.12 or newer. You also need a Discord bot installed in a test server. Follow the setup tutorial → or go directly to the verified-outcome track →

You can validate the real MCP catalog before creating or configuring a Discord bot:

Terminal window
discord-mcp catalog --check
# or: discord-mcp catalog --check --json

This check needs no Discord token, performs no Discord request or write, and does not count as Activity Evidence. It only confirms that the installed package exposes the real catalog contract. When it passes, continue with the setup tutorial → to connect a caller-owned bot and reach a verified Discord outcome.

discord-mcp cannot do more than the bot can do in Discord, so bot roles and channel overrides are the primary access boundary. Tool annotations describe risk, but ordinary writes can execute immediately. Only tools explicitly marked Confirmation required use the two-part __confirm and MCP_DRY_RUN gate.

Before production use:

  • grant the bot only the server and channel permissions required by the workflow;
  • restrict enabled categories with MCP_CATEGORIES;
  • understand which mutations are confirmation-gated;
  • treat the current audit trail as an operational aid, not a blanket compliance guarantee;
  • validate the exact release in a test guild because the project is still pre-1.0.

Configure a safe baseline →

Searchable reference

Filter every tool by name, task, category, and risk. Leaf pages stay searchable without taking over navigation.

Source-linked contracts

Generated pages link their Edit action to the TypeScript definition and expose the full input and output JSON Schemas.

Operational controls

OpenTelemetry, retries, timeouts, circuit breaking, bulkheads, category filtering, and audit sinks are configured through explicit environment variables.

Discord-native output

Components V2, webhooks, threads, roles, moderation, scheduled events, and other Discord surfaces return reusable structured fields.

Need help? Use Troubleshooting, ask a redacted question in GitHub Discussions, or open a GitHub issue with secrets removed. Share a credential-safe result in Show and tell.

The optional discord-mcp activity --report shortcut only prints the fixed credential-safe outcome-form URL. It never opens a browser, accesses the network, or submits a report. Local activity remains on the operator’s machine and records only timestamps plus predefined command or blueprint-stage, status, outcome, transport, and signal values. It contains no Discord IDs, names, message content, tokens, paths, or raw errors.