Skip to main content
Glama
fboiero

Discord MCP

by fboiero

Discord MCP

Discord をツールとして公開するリモート MCP サーバー(Streamable HTTP)。Claude → 設定 → コネクタ → Add custom connectorhttps://claude.ai/ask-your-org/setupCustom オプション)から接続することを想定しています。

公開するもの

discord.py を使用した Discord API のツール:

  • list_guilds — ボットがアクセスできるサーバー。

  • list_channels(guild_id) — サーバーのチャンネル。

  • list_members(guild_id, limit) — サーバーのメンバー。

  • list_roles(guild_id) — サーバーのロール。

  • send_message(channel_id, content) — メッセージを送信。

  • read_messages(channel_id, limit, before_message_id) — 履歴を読む。

  • create_thread(channel_id, name, message_id?, auto_archive_minutes) — スレッドを作成。

  • add_reaction(channel_id, message_id, emoji) / remove_reaction(...) — リアクション。

  • add_role_to_member(guild_id, user_id, role_id) / remove_role_from_member(...) — ロール。

すべての ID(サーバー、チャンネル、メッセージ、ユーザー、ロール)は Discord のスノーフレークで、文字列として扱われます。

Related MCP server: Discord MCP Server

1. Discord ボットを作成する

  1. Discord Developer Portal にアクセスし、New Application を作成します。

  2. Bot セクションでボットを作成し、TokenReset Token ボタン)をコピーします。これが DISCORD_BOT_TOKEN の値です。

  3. 同じ Bot → Privileged Gateway Intents セクションで、以下を有効にします:

    • Server Members Intentlist_members とロール管理に必要)。

    • Message Content Intentread_messages でメッセージの内容を読むために必要)。

  4. OAuth2 → URL Generator で:

    • Scopes: bot

    • Bot Permissions(使用するものに応じて調整):View ChannelsSend MessagesRead Message HistoryCreate Public ThreadsAdd ReactionsManage Roles

    • 生成された URL を開き、使用するサーバーにボットを招待します。

  5. add_role_to_member / remove_role_from_member を使用する場合は、ボットのロールが割り当てたいロールより上位にある(階層が高い)ことを確認してください。

2. 環境変数を設定する

.env.example.env にコピーして、以下を入力します:

cp .env.example .env
  • DISCORD_BOT_TOKEN: 前の手順のトークン。

  • MCP_AUTH_TOKEN: サーバーを保護するための独自のシークレット(python -c "import secrets; print(secrets.token_urlsafe(32))" で生成)。Claude.ai は各リクエストで Authorization: Bearer <token> ヘッダーとして送信します(手順 4 を参照)。

  • 残りの変数には妥当なデフォルト値があります — .env.example のコメントを参照してください。

3. サーバーを実行する

ローカル(Docker なし)

python -m venv .venv && source .venv/bin/activate
pip install -e .
python -m discord_mcp   # o: discord-mcp

デフォルトでは http://0.0.0.0:8000/mcp で待ち受けます。

Docker を使用する場合

docker compose up --build

または手動で:

docker build -t discord-mcp .
docker run --env-file .env -p 8000:8000 discord-mcp

デプロイ(Render / Railway / Fly.io / 任意の VPS)

このイメージは独自の永続状態を持たない汎用 HTTP コンテナです(ボットの状態はメモリと Discord にあります)。そのため、Docker をサポートする任意のプロバイダーで動作します:

  • プロバイダーのパネルで手順 2 の環境変数を設定します。

  • ポート 8000(または PORT で定義したポート)を HTTPS で公開します — Claude.ai は MCP サーバーが https:// でアクセス可能であることを要求します。

  • デプロイ後、コネクタの URL は https://<tu-dominio>/mcp になります。

本番環境での DNS リバインディング対策を強化するには、ALLOWED_HOSTS(サーバーの公開ホスト名)と ALLOWED_ORIGINS(例:https://claude.ai)を設定します。

4. claude.ai でカスタムコネクタとして接続する

  1. https://claude.ai/ask-your-org/setup(または 設定 → コネクタ)にアクセスし、Add custom connector / Custom を選択します。

  2. Name: Discord(または任意の名前)。

  3. URL: https://<tu-dominio>/mcp

  4. Request headers / Advanced settings で、以下を追加します:

    • Header: Authorization

    • 値: Bearer <MCP_AUTH_TOKEN に設定した値>

  5. 保存して、Claude に "利用可能な Discord サーバーをリストアップして" のような依頼をしてテストします — list_guilds が呼び出されるはずです。

認証を使用しない場合(クイックテストのみ、本番では禁止)、MCP_AUTH_TOKEN を空にしてヘッダーを省略します。

開発

pip install -e ".[dev]"
pytest

テストは設定、認証ミドルウェア、および実際の Discord 接続を必要としない DiscordService のロジックをカバーしています(実際の Discord API に対する統合テストはありません)。

アーキテクチャのメモ

  • discord.py のボットは、ASGI サーバー(Starlette/uvicorn)と同じイベントループ内でバックグラウンドタスクとして実行されます。アプリのライフスパンとともに起動・停止します(src/discord_mcp/server.py)。

  • MCP サーバーは Streamable HTTP トランスポート(公式 SDK mcpmcp.server.MCPServer)を使用します。これは Claude のカスタムコネクタがサポートするリモートトランスポートです。

  • 認証は、独自の ASGI ミドルウェア(auth_middleware.py)で検証される静的ベアラートークンです。カスタムコネクタの「Request headers」メカニズムを想定しており、完全な OAuth フローは実装していません。

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    A Dockerized MCP server that enables Discord integration, offering tools for role management, messaging, moderation, and server administration via natural language.
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that enables LLMs to control Discord servers via a bot token, providing comprehensive management tools for messages, members, roles, channels, permissions, and more.
    67
    124
    MIT
  • F
    license
    C
    quality
    C
    maintenance
    An MCP server that exposes Discord bot actions as tools for LLM clients.
    4
    29
    1

View all related MCP servers

Related MCP Connectors

  • An MCP server that integrates with Discord to provide AI-powered features.

  • Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.

  • MCP server for AI dialogue using various LLM models via AceDataCloud

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/fboiero/DiscordMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server