Labsco
elyxlz logo

Discord

β˜… 10

from elyxlz

A server for reading and sending messages on Discord.

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedAccount requiredNeeds API keys

Discord MCP Server

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

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)
  • Web scraping approach - works with any Discord server you can access as a user
  • No bot permissions or API tokens required

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, max_messages required)
  • send_message(server_id, channel_id, content) - Send messages to channels (automatically splits long messages)

Claude Desktop Integration

Add to ~/.claude/claude_desktop_config.json:

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

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

  • Use app passwords if 2FA is enabled
  • Consider using a dedicated Discord account for automation
  • Server includes delays to avoid rate limiting (0.5s between split messages)
  • Always use DISCORD_HEADLESS=true in production

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.