discord-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@discord-mcpRead this Discord thread: https://discord.com/channels/123/456/789"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
discord-mcp
A personal MCP (Model Context Protocol) server that lets Claude read Discord message threads. Give Claude a Discord message URL and it can fetch the thread content directly.
What it does
Exposes a single read_discord_thread tool to Claude that:
Fetches the anchor message and all subsequent messages in a channel thread
Supports pagination for long threads via
after_idandbatch_sizeSkips system messages and embeds (empty-content messages)
Returns structured data: author, timestamp, content, and pagination state
This uses your personal Discord account token, so it can read any server you're a member of — no bot invite required.
Related MCP server: discord-mcp
Obtaining your Discord auth token
Warning: Your user token is equivalent to your Discord password. Never share it or commit it to version control.
Open Discord in your browser (discord.com)
Open DevTools (
F12orCtrl+Shift+I)Go to the Network tab
In Discord, navigate to any channel or send any message to trigger a network request
Filter requests by
XHRor search formessagesClick any request to
discord.com/api/v9/ordiscord.com/api/v10/In the Request Headers section, find the
Authorizationheader — its value is your token
Alternatively, in the Console tab you can run:
webpackChunkdiscord_app.push([[Math.random()],{},r=>{m=[];for(let c in r.c)m.push(r.c[c])}]);
m.find(m=>m?.exports?.default?.getToken).exports.default.getToken()Copy the token value (no Bot prefix — that's only for bot accounts).
Setup
Prerequisites: Python 3.10+, uv
cd /path/to/discord-mcp
uv venv
uv pip install -r requirements.txtCreate a .env file (see .env.example):
DISCORD_USER_TOKEN=your_token_hereTesting
Run the unit tests:
.venv/bin/pytestRun the smoke test with a real Discord URL:
.venv/bin/python smoke_test.pyRegistering with Claude Code
Register the server globally so it's available in all your Claude Code sessions:
claude mcp add --scope user discord \
/path/to/discord-mcp/.venv/bin/python \
/path/to/discord-mcp/server.pyVerify it's connected:
claude mcp get discordYou should see Status ✔ Connected.
Registering with Codex
Register the server with Codex as a local stdio MCP server:
codex mcp add discord -- \
/path/to/discord-mcp/.venv/bin/python \
/path/to/discord-mcp/server.pyVerify that it is configured:
codex mcp get discord
codex mcp listRestart Codex or open a new session after adding the server. In the Codex
terminal UI, run /mcp to confirm that discord and its
read_discord_thread tool are available.
Usage
Once registered, ask Claude or Codex things like:
"Read this Discord thread: https://discord.com/channels/123/456/789"
"Summarize the conversation starting at this message: https://discord.com/channels/..."
The assistant will call read_discord_thread and have access to the message content. For long threads, it can paginate by passing the returned last_id as after_id in subsequent calls.
How it works
Uses Discord's REST API v10 with your user token
Fetches the anchor message via
?around=<id>&limit=1(the direct endpoint is bot-only)Paginates forward with
?after=<id>&limit=<batch_size>Runs as a stdio MCP server — Claude Code or Codex spawns it as a subprocess when needed
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect a Discord bot (bot token from the developer portal) to read/send messages, list guilds and c
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
WHOOP recovery, strain, sleep and workouts in Claude via official WHOOP OAuth. Free, open source.
Control your Discord community: send/read messages, manage channels and forums, and handle webhook…
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables LLMs to read and send Discord messages, list servers and channels, and monitor unread messages via a selfbot that uses a user token (violates Discord ToS).820 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to manage Discord servers through the Discord API, supporting server info, messaging, channel management, webhooks, and user interactions.8 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code to interact with Discord servers, including sending messages, reading channels, managing threads, and adding reactions via natural language commands.6 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to send messages to a Discord channel and read replies, allowing for notifications and approvals via Discord.MIT