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
- 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.
Connect Claude to Fathom meeting recordings, transcripts, and summaries
Give Claude only the Google Drive files you choose. Every action logged.
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).813 npm1MIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to manage Discord servers through the Discord API, supporting server info, messaging, channel management, webhooks, and user interactions.6 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude Code to interact with Discord servers, including sending messages, reading channels, managing threads, and adding reactions via natural language commands.11 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to send messages to a Discord channel and read replies, allowing for notifications and approvals via Discord.MIT