Discord MCP Server

Discord MCP Server

Enables LLMs to read messages, discover channels, send messages, and monitor Discord communities using the Discord HTTP API.

Category
访问服务器

README

Discord MCP Server

A Model Context Protocol (MCP) server that lets LLMs read messages, discover channels, send messages, and monitor Discord communities using the Discord HTTP API.

Features

  • List Discord servers and channels you have access to
  • Read recent messages with time filtering (newest first)
  • Send messages to Discord channels (automatically splits long messages)
  • Send messages with file attachments
  • Read direct messages (1-on-1 and group DMs)
  • Token-based authentication (automatic extraction supported)
  • Fast API-based approach - no browser automation needed at runtime

Quick Start with Claude Code

# Add Discord MCP server (with token)
claude mcp add discord-mcp -s user -e DISCORD_TOKEN=your_token -- uvx --from git+https://github.com/waelsamy/discord-mcp.git discord-mcp

# Or with email/password (auto-extracts token on first use)
claude mcp add discord-mcp -s user -e DISCORD_EMAIL=your_email@example.com -e DISCORD_PASSWORD=your_password -- uvx --from git+https://github.com/waelsamy/discord-mcp.git discord-mcp

# Start Claude Code
claude

Usage Examples

# List your Discord servers
> use get_servers to show me all my Discord servers

# Read recent messages (max_messages is required)
> read the last 20 messages from channel ID 123 in server ID 456

# Send a message (long messages automatically split)
> send "Hello!" to channel 123 in server 456

# Send a message with attachment
> send a file /path/to/image.png to channel 123 in server 456

# List DM conversations
> show me my direct message conversations

# Read DMs from a user
> read the last 10 messages from my DM with johndoe123

# Monitor communities
> summarize discussions from the last 24 hours across my Discord servers

Available Tools

  • get_servers - List all Discord servers you have access to
  • get_channels(server_id) - List channels in a specific server
  • read_messages(server_id, channel_id, max_messages, hours_back?) - Read recent messages (newest first)
  • send_message(server_id, channel_id, content) - Send messages to channels (automatically splits long messages)
  • send_message_with_attachment(server_id, channel_id, content, file_path, filename?) - Send a message with a file attachment
  • get_dm_conversations() - List all direct message conversations
  • read_dm_messages(name, max_messages, hours_back?) - Read messages from a DM by username or display name

Manual Setup

Prerequisites

  • Python 3.10+ with uv package manager
  • Discord token or account credentials

Installation

git clone https://github.com/waelsamy/discord-mcp.git
cd discord-mcp
uv sync
uv run playwright install  # Only needed for token extraction

Configuration

Option 1: Using Discord Token (Recommended)

DISCORD_TOKEN=your_discord_token_here

To extract your token, run:

uv run python get_token.py

Option 2: Using Email/Password

DISCORD_EMAIL=your_email@example.com
DISCORD_PASSWORD=your_password

The server will automatically extract and cache your token on first use.

Run Server

uv run python main.py

Claude Desktop Integration

Add to ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "discord": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/waelsamy/discord-mcp.git", "discord-mcp"],
      "env": {
        "DISCORD_TOKEN": "your_token_here"
      }
    }
  }
}

Or with email/password:

{
  "mcpServers": {
    "discord": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/waelsamy/discord-mcp.git", "discord-mcp"],
      "env": {
        "DISCORD_EMAIL": "your_email@example.com",
        "DISCORD_PASSWORD": "your_password"
      }
    }
  }
}

Development

# Type checking
uv run pyright

# Formatting
uvx ruff format .

# Linting
uvx ruff check --fix --unsafe-fixes .

# Testing
uv run pytest -v tests/

Security Notes

  • Token is cached securely at ~/.discord_mcp_token with 0o600 permissions
  • Never commit your token or .env file to git
  • Consider using a dedicated Discord account for automation
  • Server includes delays to avoid rate limiting (0.5s between split messages)
  • If your token is exposed, change your Discord password to invalidate it

Troubleshooting

  • Token extraction fails: Run uv run python get_token.py interactively
  • MFA/2FA enabled: Use get_token.py to complete authentication manually
  • Rate limits: Reduce max_messages, monitor for Discord warnings
  • Token expired: Server automatically detects 401 errors; re-run token extraction if needed
  • Browser errors: Run uv run playwright install --force

Legal Notice

Ensure compliance with Discord's Terms of Service. Only access information you would normally have access to as a user. Use for legitimate monitoring and research purposes.

Author

waelsamy

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选
mcp-server-qdrant

mcp-server-qdrant

这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。

官方
精选
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选