Discord Dot Bridge
Bridges owner-only Discord DMs using the official Discord bot API (Gateway and REST): it verifies owner DMs, routes them through a durable outbox to an existing ChatGPT dot, and posts the dot's explicit reply text back to the original DM. Guilds, group DMs, non-owner authors and bot echoes are blocked, with reconnect/resume and rate-limit handling.
Connects to an existing ChatGPT dot via OpenAI's MCP Events: exposes a version-specific MCP 2026-07-28 Streamable HTTP endpoint with server/discover, tools and signed webhook event callbacks, letting the existing dot provide the reasoning and context and return replies through an OAuth-authenticated discord_reply tool.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Discord Dot Bridge
An experimental, owner-only Discord bridge to an existing ChatGPT dot. Use a bot DM or explicit bot mentions in one configured private guild text channel. MIT licensed. This project is not affiliated with OpenAI or Discord.
Status: real Discord Gateway/REST, MCP HTTP, OAuth resource-server, and signed webhook adapters are implemented and tested against local mock services. A real ChatGPT account, dot, bot and identity provider have not been tested together. Metadata-only Docker staging is verified; live bridge activation remains pending. There is no claim of verified end-to-end operation with ChatGPT.
Owner DM -> Discord bot Gateway -> verified owner DM -> SQLite outbox
-> signed MCP Events callback -> existing dot subscription
-> OAuth-authenticated discord_reply -> original owner DMThe dot supplies the reasoning and existing context. No separate model API, OpenAI API key, private ChatGPT API, browser scraping, selfbot, or context-export tool is used. Only the explicit reply text returns to Discord.
Quick start: local tests
Python 3.12 is the tested runtime. Create and activate a virtual environment, then:
python -m pip install -r requirements.lock
python -m tests
python -m integration
python -m bridge demotests blocks all sockets and DNS. integration permits loopback only: it runs
real local HTTP and WebSocket mock services, real discord.py parsing/reconnect,
real JWT validation, signed callback verification, and a real MCP HTTP listener.
Keys generated by integration tests are ephemeral and synthetic. No accounts,
working tokens, external messages, or platform grants are needed.
Related MCP server: Feishu ↔ dot Bridge
Implemented
Official Discord bot API through
discord.py: DM intent (4096) by default; opt-in guild mention mode uses Guilds + Guild Messages (513), never the privileged Message Content intent. Identity, exact destination and fresh channel checks reject other guilds/channels, group DMs, threads, non-owner authors and bot echoes.Version-specific MCP 2026-07-28 Streamable HTTP JSON responses: stateless POST
/mcp, required metadata/header validation,server/discover, tools and webhook events. Legacyinitialize, polling and streaming events are not supported.OAuth resource-server verification using PyJWT: RS256 signatures, pinned public JWKS file, exact issuer/audience/subject, expiry/not-before and
discord:bridgescope. Protected-resource metadata is exposed for the platform's OAuth discovery. An established external identity provider handles login, consent, PKCE and tokens.Standard Webhooks library signatures, verification challenges, rotation overlap, persistent subscriptions, expiry and idempotent unsubscribe. Event callbacks use public-IP validation, pinned-IP TLS with original Host/SNI, and no redirects/proxies.
Durable inbound deduplication, stable event IDs, bounded retry outbox and fixed reply destinations. Duplicate reply calls do not resend. Discord send uncertainty remains
unknown, requiring reconciliation instead of automatic resend.Strict configuration validation, secure token-file input, loopback-only listener, persistent disable file, bounded serialized worker, and no content/request logs.
Owner-only
/setup,/status,/disconnectcommands, restricted to User Install and the app DM, with private responses and explicit command registration. Discord setup explains their limits.A separate metadata-only setup mode rejects all MCP actions while infrastructure is being prepared, without loading Discord credentials.
Platform prerequisites
OpenAI's MCP Events guide documents support with dots and MCP 2.0. Availability and workspace permissions must still be confirmed for each account. See protocol compatibility.
Discord's Gateway documentation documents DM messages and the DM content exception to Message Content intent. The bridge requests no guild, member, presence or privileged Message Content intent.
Private setup
Follow the setup and live acceptance guide. You need an owner numeric Discord ID, a bot you own, an existing dot with custom MCP Events access, an OAuth identity provider, and an approved HTTPS endpoint or supported tunnel. ChatGPT cannot send a custom static API key; the live adapter uses OAuth. See provider compatibility options; no vendor is required.
Copy config.example.json to ignored config.local.json, replace all synthetic
IDs/hosts and absolute paths, and validate without connecting or reading secrets:
python -m bridge validate-config --config config.local.jsonAfter secure setup and explicit authorization for networking/deployment:
python -m bridge serve --config config.local.json --enable-networkThis starts the real bot and loopback MCP service. An approved HTTPS reverse proxy
must reach the listener. The example is Linux-oriented; use absolute Windows paths
when testing there. The enable file must contain exactly enabled; changing it
disables new actions and event delivery. Never paste credentials into chat or Git.
Docker
docker compose build
docker compose run --rm proof
docker compose run --rm proof python -m integrationThe included Compose file is a network-disabled test harness, not a deployed service. The image contains the real runtime but defaults to the offline demo. It runs non-root with a read-only root, dropped capabilities and temporary state. A production compose/proxy arrangement needs separate review and approval. Dependencies are version-pinned; pin a verified base-image digest for deployment.
Limits
Single owner, bot and callback; one worker; text-only messages up to 2000 characters; 30 accepted messages/minute; 1000 retained records; five event attempts; ten-minute delivery/reply lifetime. Capacity fails closed. No historical replay is advertised. Attachments, edits and reactions are not forwarded. OAuth access-token expiry caps subscriptions, so the platform must refresh them. Local public JWKS rotation is operator-managed. Storage is plaintext under private filesystem permissions.
No lossless delivery or exactly-once guarantee is claimed. See SECURITY.md and validation evidence for remaining operational limits.
License and contributions
MIT. Keep real IDs, secrets, databases, callback URLs and private messages
out of issues, pull requests and fixtures. The CI template uses synthetic data only.
It is supplied at ci/github-actions.yml but is not installed or running:
the publishing credential lacked GitHub's workflow permission. An authorized
maintainer can copy it to .github/workflows/test.yml using suitable access.
Contributions
should preserve the existing-dot design and document any protocol-version changes.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Discord MCP server for ChatGPT, Claude and any AI agent: list servers and channels, read channel messages, search messages, send message, reply to message, send DM, read mentions and assign role in your own Discord account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Discord yourself; Cotlet does not store your password and you need no Discord API key. About the official Discord API: Yes, Discord has an official API for bots and OAuth2 apps, but it acts as a bot that a server manager adds, not as you, and Discord has no official MCP server for it (checked 5 Nov 2026). The MCP server on Discord's docs site only searches documentation. Setup and FAQ: https://cotlet.dev/integrations/discord-api-mcp-server
Connect a Muse and a Grok Bot to exchange messages, with per-message delivery and read status.
Create your offers and launch AI Instagram DM sales agents from any MCP client, over OAuth.
Connect any AI agent to 1,000+ apps and 27,000+ actions through one remote MCP server (OAuth).
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables MCP clients to read, post to, and moderate a Discord server through the Discord REST API, with opt-in guardrails and dry-run safeguards.-
- AlicenseNot gradedqualityCmaintenanceEnables each user to securely bind their own Feishu private chat account to an existing personal dot, subscribe to incoming p2p text messages through authenticated MCP Events, and reply only to the originating conversation via MCP tools.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables a self-hosted bridge that lets dots list permitted Discord channels, read message history, fetch individual messages, and send replies, while subscribing to signed webhook notifications for new human messages. Channel, server, history-window, and write permissions are enforced server-side, and the bot token is never exposed to dots.MIT
- AlicenseNot gradedqualityCmaintenanceEnables a single owner to receive WhatsApp messages and attachments in a ChatGPT MCP Events client and to send creator-bound text or file replies through OAuth-secured MCP tools. It also supports reading unanswered messages, attachment parts, and delivery/recovery status without any hosted AI model or API key.MIT