Klavis-AI

Discord MCP Server

Community Klavis-AI
Updated

Klavis AI (YC X25): Open Source, easy to use MCPs on Slack, Discord and Web

Discord MCP Server

License: MITPython: 3.12+FastAPIDiscord API

๐Ÿ“– Overview

Discord MCP Server is a Model Context Protocol (MCP) implementation that bridges language models and other applications with Discord's API. It provides a standardized interface for executing Discord operations through various tools defined by the MCP standard.

๐Ÿš€ Features

This server provides the following capabilities through MCP tools:

Tool Description
get_server_info Retrieve detailed information about a Discord server (guild)
list_members List members of a server with customizable result limits
create_text_channel Create a new text channel with optional category and topic
send_message Send a message to a specified channel
read_messages Retrieve recent messages from a channel
add_reaction Add a single emoji reaction to a message
add_multiple_reactions Add multiple emoji reactions to a message
remove_reaction Remove a specific reaction from a message
get_user_info Retrieve information about a specific Discord user

๐Ÿ”ง Prerequisites

You'll need one of the following:

  • Docker: Docker installed and running (recommended)
  • Python: Python 3.12+ with pip

โš™๏ธ Setup & Configuration

Discord Bot Setup

  1. Create a Discord Bot:

    • Visit the Discord Developer Portal
    • Create a new application and add a bot user
    • Under the "Bot" section, enable the following Privileged Gateway Intents:
      • Server Members Intent
      • Message Content Intent
    • Copy your Bot Token
  2. Invite the Bot:

    • Navigate to OAuth2 > URL Generator
    • Select scopes: bot and applications.commands
    • Select bot permissions:
      • Read Messages/View Channels
      • Send Messages
      • Manage Messages (for reactions)
      • Manage Channels (for channel creation)
    • Use the generated URL to invite the bot to your server

Environment Configuration

  1. Create your environment file:

    cp .env.example .env
    
  2. Edit the .env file with your bot token:

    DISCORD_TOKEN=YOUR_ACTUAL_DISCORD_BOT_TOKEN
    DISCORD_MCP_SERVER_PORT=5000
    

๐Ÿƒโ€โ™‚๏ธ Running the Server

Option 1: Docker (Recommended)

The Docker build must be run from the project root directory (klavis/):

# Navigate to the root directory of the project
cd /path/to/klavis

# Build the Docker image
docker build -t discord-mcp-server -f mcp_servers/discord/Dockerfile .

# Run the container
docker run -d -p 5000:5000 --name discord-mcp discord-mcp-server

To use your local .env file instead of building it into the image:

docker run -d -p 5000:5000 --env-file mcp_servers/discord/.env --name discord-mcp discord-mcp-server

Option 2: Python Virtual Environment

# Create and activate virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run the server
python server.py

Once running, the server will be accessible at http://localhost:5000.

๐Ÿ”Œ API Usage

The server implements the Model Context Protocol (MCP) standard. Here's an example of how to call a tool:

import httpx

async def call_discord_tool():
    url = "http://localhost:5000/execute"
    payload = {
        "tool_name": "send_message",
        "tool_args": {
            "channel_id": "123456789012345678",
            "content": "Hello from MCP!"
        }
    }
    
    async with httpx.AsyncClient() as client:
        response = await client.post(url, json=payload)
        result = response.json()
        return result

๐Ÿ“‹ Common Operations

Getting Server Information

payload = {
    "tool_name": "get_server_info",
    "tool_args": {
        "server_id": "YOUR_SERVER_ID"
    }
}

Sending a Message

payload = {
    "tool_name": "send_message",
    "tool_args": {
        "channel_id": "YOUR_CHANNEL_ID",
        "content": "Hello from Discord MCP Server!"
    }
}

๐Ÿ› ๏ธ Troubleshooting

Docker Build Issues

  • File Not Found Errors: If you see errors like failed to compute cache key: failed to calculate checksum of ref: not found, this means Docker can't find the files referenced in the Dockerfile. Make sure you're building from the root project directory (klavis/), not from the server directory.

Common Runtime Issues

  • API Errors: Check Discord API documentation for error meanings
  • Authentication Failures: Verify your bot token is correct and hasn't expired
  • Missing Permissions: Ensure your bot has the necessary permissions in the server
  • Intents Issues: Confirm you've enabled the required intents in the Developer Portal

๐Ÿค Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

MCP Server ยท Populars

MCP Server ยท New

    chatmcp

    mcpso

    directory for Awesome MCP Servers

    Community chatmcp
    TBXark

    MCP Proxy Server

    An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.

    Community TBXark
    ttommyth

    interactive-mcp

    Ask users questions from your LLM! interactive-mcp: Local, cross-platform MCP server for interactive prompts, chat & notifications.

    Community ttommyth
    lpigeon

    ros-mcp-server

    The ROS MCP Server is designed to support robots in performing complex tasks and adapting effectively to various environments by providing a set of functions that transform natural language commands, entered by a user through an LLM, into ROS commands for robot control.

    Community lpigeon
    emicklei

    melrose-mcp

    interactive programming of melodies, producing MIDI

    Community emicklei