Discord Raw API MCP Server
@hanweg
MCP server for discord bot - adds one tool with raw API access
Overview
What is Discord Raw API MCP Server?
This MCP server provides raw Discord API access through a single flexible tool. It supports both REST API calls and slash command syntax, giving users direct control over Discord's REST endpoints.
How to use Discord Raw API MCP Server?
Install via Smithery (npx -y @smithery/cli install @hanweg/mcp-discord-raw --client claude) or manually from GitHub. Configure your Discord bot token as the DISCORD_TOKEN environment variable in claude_desktop_config.json. Use the discord_api tool with three parameters: method (HTTP verb), endpoint (Discord API endpoint), and optional payload (JSON body).
Key features of Discord Raw API MCP Server
- Single tool for full Discord REST API access
- Supports both raw REST and slash command syntax
- Handles creation, modification, and querying of Discord resources
- Works with roles, channels, messages, members, and more
- Lightweight Python-based implementation using uv
Use cases of Discord Raw API MCP Server
- Create and manage server roles with custom colors and permissions
- Send messages to channels, including emojis
- Organize channels into categories and move them between categories
- Assign roles to members programmatically
- Retrieve server or channel metadata
FAQ from Discord Raw API MCP Server
What Discord bot intents are required?
The bot must have MESSAGE CONTENT INTENT, PRESENCE INTENT, and SERVER MEMBERS INTENT enabled in the Discord Developer Portal.
What dependencies does the server need?
It requires Python, uv for package management, and optionally audioop-lts if using Python 3.13+. The Discord bot token must be provided via the DISCORD_TOKEN environment variable.
Does the server store any data?
No. All requests go directly to the Discord API; the server itself stores no user data.
What transport does the server use?
The server uses standard MCP stdio transport, configured via claude_desktop_config.json with the uv run discord-raw-mcp command.
Are there any known limitations?
Messages containing Unicode emojis may cause Claude Desktop to hang; use Discord emoji syntax (e.g., :champagne_glass:) instead. Empty payloads must be {} not null.