Discord Teammate MCP Server
Enables Claude to send messages to a Discord channel and read replies, allowing for notifications and approvals via Discord.
README
Discord Teammate — a Claude connector that pings you on Discord
This is a tiny remote MCP server. Once it's deployed and connected to Claude, any of your scheduled runs can message you in a Discord channel when it needs a check-in or an approval — and can read your reply back, so approvals can happen right there in Discord.
It exposes two tools to Claude:
send_discord_message— posts a message to your channel. Withurgency: "urgent"it @-mentions you for a strong notification.read_recent_replies— reads the latest messages in the channel, so a later run can check whether you approved.
Total setup time is about 15 minutes. It runs free on Cloudflare Workers.
What you'll need
- Node 20+ on your machine (check with
node -v). - A Cloudflare account (free — you'll create it during
wrangler loginif you don't have one). - A Discord server you own, with a channel you want the pings in. (A private server with one channel just for this is perfect.)
Step 1 — Create the Discord bot (~5 min)
- Go to https://discord.com/developers/applications → New Application.
Name it something like
Claude Teammate. Create. - In the left sidebar, open Bot.
- Click Reset Token, confirm, then Copy the token. Keep it somewhere
safe for a moment — this is your
DISCORD_BOT_TOKEN. - Scroll down to Privileged Gateway Intents and turn ON Message Content Intent. (Needed so the bot can read your replies. If you only ever want one-way pings, you can skip this.)
- Save changes.
- Click Reset Token, confirm, then Copy the token. Keep it somewhere
safe for a moment — this is your
- In the left sidebar, open OAuth2 → URL Generator.
- Under Scopes, check
bot. - Under Bot Permissions, check View Channel, Send Messages, and Read Message History.
- Copy the Generated URL at the bottom, open it in your browser, pick your server, and Authorize. The bot is now in your server.
- Under Scopes, check
Step 2 — Get your channel ID (~1 min)
- In Discord: User Settings → Advanced → Developer Mode → ON.
- Right-click the channel you want the pings in → Copy Channel ID. This is
your
DISCORD_CHANNEL_ID. - (Optional, for @-mentions) Right-click your own name → Copy User ID.
This is your
DISCORD_USER_ID.
Step 3 — Deploy the server (~5 min)
Open a terminal in this folder and run:
npm install
npx wrangler login # opens a browser to sign in / create a free Cloudflare account
npx wrangler deploy # creates the Worker and prints its URL
The last command prints a URL like:
https://discord-teammate-mcp.<your-subdomain>.workers.dev
Copy that URL. Then set your secrets (each one uploads to the live Worker immediately — no redeploy needed):
npx wrangler secret put DISCORD_BOT_TOKEN # paste the bot token
npx wrangler secret put DISCORD_CHANNEL_ID # paste the channel ID
npx wrangler secret put DISCORD_USER_ID # optional: paste your user ID
(Optional hardening — see "Security" below):
npx wrangler secret put MCP_KEY # paste any long random string
Step 4 — Connect it to Claude (~2 min)
-
In Claude, go to Settings → Connectors → Add custom connector.
-
For the URL, take your Worker URL and add
/mcpto the end:https://discord-teammate-mcp.<your-subdomain>.workers.dev/mcpIf you set an
MCP_KEY, add it as a query parameter:https://discord-teammate-mcp.<your-subdomain>.workers.dev/mcp?k=YOUR_MCP_KEY -
Click Add. That's it — no OAuth needed.
-
Make sure the connector is enabled in the chat where your routines run.
Step 5 — Test it
In a chat with the connector enabled, ask Claude:
Send a test message to my Discord channel.
You should see it appear in the channel within a second or two. Try:
Send an urgent Discord ping saying the deploy needs my approval.
…and confirm you get an @-mention notification.
Security
By default the server is authless: anyone who knows the exact
.workers.dev URL could call it. The blast radius is small (the bot can only
post to and read the one channel you configured), but to lock it down, set an
MCP_KEY secret (Step 3) and append ?k=YOUR_MCP_KEY to the connector URL
(Step 4). The Worker then rejects any request without the right key. Don't paste
the URL anywhere public either way.
Cost
Cloudflare Workers' free plan includes 100,000 requests/day. A ping and a couple of reply-checks per run is nowhere near that — this will stay free.
Updating tools later
The tools live in src/server.ts. Edit, then run npx wrangler deploy again.
Claude picks up the new tool list automatically.
Troubleshooting
Method not allowedin a browser — expected. The/mcpendpoint only answers POST from an MCP client; visiting it in a browser (GET) returns 405.- Tools return "misconfigured" — the bot token or channel ID secret isn't
set. Re-run the
wrangler secret putcommands from Step 3. read_recent_repliesreturns empty content — enable Message Content Intent in the Discord Developer Portal (Step 1) and make sure the bot has Read Message History on the channel.403 Missing Access— the bot isn't in the server or can't see the channel. Re-run the OAuth invite from Step 1 and check channel permissions.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.