SkillTide Submit
Official description7 sourcesMCP servers8d ago
jaimenbell/discord-mcp

jaimenbell/discord-mcp

Discord REST API: list channels
View on GitHub ↗Direct link · no redirect page
Config template (adjust for your client)
claude mcp add discord-mcp -- npx -y discord-mcp
A pasteable skeleton generated from the repository name. Check the project README for the exact package and arguments.
Star count
0 ★ · jaimenbell/discord-mcp · read from the GitHub search API · (checked 2026-10-16 20:00:20)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-10-09 · last seen 2026-10-16 · seen 32× · listed by 7 sources
Score
score 703 · 7 sources · mcp
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository jaimenbell/discord-mcp;first catalogued 2026-10-09;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
Third-party quality signals

discord-mcp

以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →

An MCP server over the real Discord REST API
-- so a Claude agent calls list_channels(guild_id="...") instead of
hand-rolling an authenticated httpx request. Built to the
github-mcp/bus-mcp
standard in this portfolio (own pyproject, fastmcp server, typed errors, real
test suite, honest README) -- fifth flagship, first over Discord.
**5 read-only tools, always on** + **7 write tools, gated OFF by default**
behind DISCORD_MCP_ENABLE_WRITE=1 -- see "Write tools" below.
Quickstart (60 seconds)
Add to your Claude Desktop/Code MCP config:
Without DISCORD_BOT_TOKEN set, every tool call still returns a clean
structured error (Discord's own 401) instead of crashing -- see "Typed
errors" below. Write tools also need DISCORD_MCP_ENABLE_WRITE=1 in the same
env block, or they refuse locally with policy_refusal -- see "Write
tools" below.
What this is / is not
This is a **reference portfolio implementation** demonstrating an MCP server
over a real external SaaS API (Discord) -- it is **NOT** an official Discord
MCP server, and it is not affiliated with Discord Inc. It started from an
earlier, separate sibling project's HttpDiscordClient, a stdlib-urllib
Discord transport built and verified against a real live guild for that
project's own server-provisioning tooling. This repo hand-adapts that
client's request-building, header construction (including its deliberately
descriptive User-Agent -- see below), and error handling onto httpx
(matching this fleet's other MCP servers) as its own standalone client with
no dependency on that sibling project. discord-mcp does not import from or
depend on that other package at all.
Started as 5 read-only tools with no write capability at all; now ships a
7-tool write group, off by default, mirroring the *_MCP_ENABLE_WRITE-style
gate already shipped in github-mcp/bus-mcp/desktop-mcp in this same
portfolio -- see "Write tools" below.
Tools
Read (always on, no gate)
| Tool | Discord endpoint | Purpose |
|---|---|---|
| list_channels | GET /guilds/{guild_id}/channels | All channels (every type) in a guild |
| list_roles | GET /guilds/{guild_id}/roles | All roles in a guild |
| list_categories | GET /guilds/{guild_id}/channels (filtered) | Category channels only (Discord type 4) -- Discord has no dedicated categories-only endpoint, so this filters the same channels payload client-side |
| get_channel_permission_overwrites | GET /channels/{channel_id} (permission_overwrites field) | Role/member allow+deny bitfields set on one channel |
| get_member_roles | GET /guilds/{guild_id}/members/{member_id} (roles field) | Role ids currently assigned to one guild member |
Write (gated behind DISCORD_MCP_ENABLE_WRITE=1, default OFF)
| Tool | Discord endpoint | Purpose |
|---|---|---|
| create_channel | POST /guilds/{guild_id}/channels | Create a text/voice/category channel |
| edit_channel | PATCH /channels/{channel_id} | Rename/re-topic/re-parent/reorder an existing channel |
| create_role | POST /guilds/{guild_id}/roles | Create a role |
| edit_role | PATCH /guilds/{guild_id}/roles/{role_id} | Edit an existing role |
| edit_guild | PATCH /guilds/{guild_id} | Update guild-level identity (name/icon/banner/description) |
| delete_channel | DELETE /channels/{channel_id} | **Destructive.** Delete a channel |
| create_message | POST /channels/{channel_id}/messages | Post a message to a text channel (content: non-empty, ),
not a bare base64 payload. edit_guild accepts either:
- a full data:...;base64,... URI, passed through unchanged, or
- raw base64 bytes, which are **assumed to be PNG** and wrapped as
data:image/png;base64, .
**This PNG assumption is not verified against a real Discord response** --
this repo has not confirmed whether Discord accepts, rejects, or silently
mis-renders a non-PNG image (JPEG, animated GIF for boosted-server icons,
etc.) sent under an image/png label. If you have a non-PNG image, pass a
full data:image/...;base64,... URI yourself rather than relying on the
Source
awesome · https://github.com/jaimenbell/discord-mcp
Browse by field
MCP servers
added
yesterday

More in MCP servers

All 5,525 in MCP servers →

Filed under

Every tag opens the full list for that filter. Counts are the live catalogue figures.

Browse all fields →

← Back to index