From 6331c5bfe8ec554b264320d8e6caf8003d175849 Mon Sep 17 00:00:00 2001 From: "molecule-ai[bot]" <276602405+molecule-ai[bot]@users.noreply.github.com> Date: Tue, 21 Apr 2026 06:11:39 +0000 Subject: [PATCH] =?UTF-8?q?docs(blog):=20Discord=20adapter=20launch=20?= =?UTF-8?q?=E2=80=94=20Your=20AI=20Agents=20Just=20Joined=20Discord?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/blog/2026-04-21-discord-adapter/index.md | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 docs/blog/2026-04-21-discord-adapter/index.md diff --git a/docs/blog/2026-04-21-discord-adapter/index.md b/docs/blog/2026-04-21-discord-adapter/index.md new file mode 100644 index 00000000..238df057 --- /dev/null +++ b/docs/blog/2026-04-21-discord-adapter/index.md @@ -0,0 +1,100 @@ +--- +title: "Your AI Agents Just Joined Discord" +date: 2026-04-21 +slug: discord-adapter-launch +description: "Molecule AI workspaces can now connect to Discord — send messages to channels and receive slash commands, using only a webhook URL. No bot account, no OAuth flow, no Gateway connection." +tags: [launch, discord, social-channels, platform, MCP] +--- + +# Your AI Agents Just Joined Discord + +Your team is in Discord. Your AI agents are in Molecule AI. Until today, those two places didn't talk to each other without building a full Discord bot. + +That's now one webhook URL. + +Molecule AI workspaces can now connect to Discord. Here's what shipped in [PR #656](https://github.com/Molecule-AI/molecule-core/pull/656). + +--- + +## The Problem with Traditional Discord Bot Setup + +Most Discord bot integrations follow the same pattern: create an app in the Developer Portal, set up OAuth2, handle the Gateway connection, configure intents and permissions, manage rate limits. That's a significant chunk of work before your agent can say hello in a channel. + +For internal tooling and team workflows, that overhead rarely pays for itself. + +The Molecule AI Discord adapter takes a different approach — two standard Discord primitives, no bot account required. + +--- + +## What the Adapter Does + +**Outbound: your agent sends to Discord** + +You create a Discord Incoming Webhook — one URL, generated from any channel's Integrations settings. That URL encodes the channel and the bot credentials. You paste it into your Molecule AI workspace config. + +That's the only credential. Your workspace agent can now send messages to that Discord channel. Long responses are automatically split into Discord-safe chunks (2,000-character limit). + +**Inbound: slash commands route to your agent** + +Users type `/ask what's the deployment status?` in a Discord channel where your bot is present. Discord POSTs a signed JSON payload to your platform's Interactions endpoint. The adapter parses the command name and options, reconstructs it as plain text, and routes it to your workspace agent. The agent's response goes back to the same Discord channel. + +No polling. No Gateway. No message-reading permissions. The only Discord permission you need is the one that comes with the webhook itself. + +Works in servers and in DMs. + +--- + +## Setup: Less Than a Minute + +1. Create a Discord Incoming Webhook — Channel Settings → Integrations → Webhooks → New Webhook +2. Copy the webhook URL +3. In Molecule AI Canvas: open your workspace → **Channels** tab → **+ Connect** → **Discord** → paste the URL + +Or via API: + +```bash +curl -X POST https://your-platform.com/workspaces/${WORKSPACE_ID}/channels \ + -H 'Authorization: Bearer ${TOKEN}' \ + -H 'Content-Type: application/json' \ + -d '{ + "channel_type": "discord", + "config": { + "webhook_url": "https://discord.com/api/webhooks/123456789/abcdefghijklmnop" + } + }' +``` + +For inbound slash commands, point your Discord app's **Interactions Endpoint URL** at `POST /webhooks/discord` on your platform. Discord handles the signing; your platform verifies the signature at the router layer before the adapter sees the payload. + +--- + +## Security: Webhook Tokens Don't Appear in Logs + +Webhook URLs contain a token (`/webhooks/{id}/{token}`). If that token leaks into server logs, it's a rotation event. The Discord adapter is explicit about this: HTTP request errors are logged without the URL, and the adapter returns a generic error message. This was hardened in [PR #659](https://github.com/Molecule-AI/molecule-core/pull/659). + +--- + +## What to Actually Use It For + +The adapter fits naturally into workflows your team already runs in Discord: + +- **Incident triage** — an agent receives a `/incident ` slash command, runs checks, and posts a formatted status report back to the incident channel +- **Deployment coordination** — a CI/CD agent posts build results, rollback recommendations, and health checks to a DevOps Discord channel +- **Community management** — a Community Manager agent receives `/support `, routes to the right sub-agent, and returns the answer to Discord +- **Scheduled summaries** — agents post periodic status updates, log digests, or metric snapshots to a channel on a schedule + +Slash commands are the interface. The agent decides what to do and how to respond. Your Discord server is the front-end your team already knows. + +--- + +## What's Next + +The Discord adapter is the second channel in Molecule AI's social channels system — after Telegram. The same adapter interface handles new platforms: implement `ChannelAdapter`, register it, and the full CRUD API, Canvas UI, and MCP tools work automatically. + +Documentation: [Social Channels guide](/docs/agent-runtime/social-channels#discord-setup) + +→ [Connect a Discord channel →](/docs/agent-runtime/social-channels#discord-setup) + +--- + +*Discord adapter shipped in [PR #656](https://github.com/Molecule-AI/molecule-core/pull/656). Security hardening in [PR #659](https://github.com/Molecule-AI/molecule-core/pull/659). Molecule AI is open source — contributions welcome.*