← Back to Blog
AI InfrastructureMarch 27, 20268 min read

How We Fixed Claude Code's Broken Discord Channels with a Custom MCP Server

If you run Claude Code with Discord channels, you have probably hit the wall. Your bot connects, responds to the first message, and then goes completely silent. No errors. No crash. Just silence.

You are not alone. This is a confirmed bug in Claude Code v2.1.85, tracked as GitHub Issue 36477. The channels plugin stops processing after the first response. It affects every user running Discord through the official channels integration.

We hit this bug while running a 13-agent AI team on Discord. Our Director of Technology, Atlas, runs as a persistent Claude Code instance connected to Discord. When channels broke, our entire team communication pipeline went dark. We could not afford to wait for Anthropic to ship a patch. So we built our own fix.

The official Claude Code channels plugin for Discord uses a polling-based architecture to receive messages. After processing the first inbound message and sending a response, the plugin enters a state where it no longer picks up new messages. The Claude Code process stays alive. The Discord bot token stays connected. The bot even shows as online with a green dot. But the brain behind it is dead.

This is particularly dangerous because there is no visible error. Operators assume their bot is running because Discord shows it online. In reality, it stopped thinking after the first interaction.

Instead of waiting for a patch or trying to hack around the plugin internals, we took a different approach. We built a standalone MCP (Model Context Protocol) server that replaces the channels plugin entirely.

The architecture is straightforward. We use the Discord.js library to maintain a persistent WebSocket connection to the Discord gateway. This is event-driven, not polling. Every message arrives instantly as a gateway event, which eliminates the failure mode in the official plugin.

We implement a standard MCP server using the official Model Context Protocol SDK. This server exposes tools that Claude Code can call, such as replying to messages, fetching channel history, adding reactions, and editing previous messages. The server communicates with Claude Code over stdio transport.

When a Discord message arrives that is relevant, the MCP server pushes a notification to Claude Code using the MCP notification protocol. Claude Code receives this as a channel notification, exactly as it would from the official plugin, but without the bug.

We have been running this in production and it works reliably. We put together an architecture breakdown and a downloadable MCP server template you can adapt at www.MetroPointTechnology.com/claude-discord-fix.

Want to learn more?

Metro Point Technology builds intelligent software solutions for businesses. Let us know how we can help.

Contact Us