記事一覧

Discord を MCP で完全自動化運用する手順(Nodeflare × Claude Code)

GitHubの Discord MCPサーバーをNodeflareにデプロイし、Claude Codeで「Reddit取得 → 要約 → Discord自動投稿」を完全自動化する手順を解説。Bot設定・デプロイ・OAuth接続・定期実行まで一気通貫で紹介します。

GitHub の Discord MCP サーバーを Nodeflare にデプロイし、Claude Code のランタイムから「Reddit の投稿から MCP の情報を取ってきて、Discord MCP で自動投稿する」ところまでを一気通貫で構築します。

実際に Nodeflare 上で稼働している discord1(リポジトリ名:v-3/discordmcp をデプロイしたもの)を題材に、リポジトリの選び方・ランタイム設定・環境変数まで、そのまま再現できる形で解説します。

📌 Nodeflare のご紹介

GitHubで公開されているMCPサーバーを数分でリモートデプロイできるサービスです。Discord MCPもすぐに使い始められます。

👉 Nodeflare を使ってみる

全体像

┌────────────────────┐     deploy     ┌──────────────────────────┐
│ GitHub             │ ─────────────▶ │ Nodeflare                │
│ v-3/discordmcp     │                │ ・ビルド & 常時ホスト       │
│ (Discord MCP)      │                │ ・STDIO → MCP エンドポイント │
└────────────────────┘                │ ・OAuth で保護            │
                                       └────────────┬─────────────┘
                                                    │ MCP (OAuth) で接続
                                                    ▼
┌──────────────────────────────────────────────────────────────┐
│ Claude Code ランタイム                                          │
│                                                                │
│  Reddit (MCP / Web) ──▶ 要約・整形 ──▶ Discord MCP send-message │
│       新着投稿を取得          Claude            指定チャンネルへ投稿 │
└──────────────────────────────────────────────────────────────┘

ポイントは 「MCP サーバーは Nodeflare に置きっぱなしにして常時利用可能にする」 こと。Claude 側は接続するだけで、Bot トークンなどの秘密情報を手元に持つ必要がありません。

アジェンダ

  1. なぜ Nodeflare に置くのか(ローカル stdio との違い)
  2. Discord Bot を用意する
  3. Nodeflare にデプロイする
  4. Claude に MCP として接続する
  5. Claude Code ランタイムで自動運用する

1. なぜ Nodeflare に置くのか(ローカル stdio との違い)

多くの MCP サーバーは stdio(標準入出力)で動くローカル前提です。Claude Desktop などで node build/index.js のように自分の PC 上でプロセスを起動する構成だと、

  • PC を閉じる/スリープ/再起動すると、その MCP プロセスも止まる → MCP が使えなくなる
  • 外出中やバックグラウンドの自動運用(定期投稿)も止まる
  • Bot トークンなどの秘密情報も自分のマシンに置くことになる

つまり stdio のままでは「完全自動運用」になりません。

そこで Nodeflare に載せて MCP をリモート化します。Nodeflare は stdio で動くサーバーでも、クラウド上で起動して"リモートの MCP エンドポイント(Streamable HTTP)"として公開します。これにより、

  • 自分の PC を閉じていても MCP は常に生きている(24時間利用可能)
  • どこからでも、複数のクライアントから同じエンドポイントに接続できる
  • 秘密情報(DISCORD_TOKEN)はサーバー側の Secrets に隔離される
  • 使われていない間はスケール・トゥ・ゼロで停止し、アクセス時に自動起動するのでコストも抑えられる

要するに「ローカル stdio = PC が起きている間だけ」「Nodeflare = 常時リモートで使える」。自動運用するならリモート化が必須です。

前提条件

  • Nodeflare アカウント(GitHub 連携済み)
  • Discord サーバーの管理権限(Bot を招待できること)
  • Claude(claude.ai のコネクタ、または Claude Code)

2. Discord Bot を用意する

v-3/discordmcpBot トークンで Discord に接続します。まず Bot を作ります。

  1. Discord Developer PortalNew Application
  2. 左メニュー BotReset Token でトークンを発行し、控えておく(これが後で Nodeflare に入れる DISCORD_TOKEN
  3. 同じ Bot 画面で Privileged Gateway IntentsMESSAGE CONTENT INTENTON(メッセージ本文を読むのに必須)
  4. 左メニュー
    OAuth2 → URL Generator
    • SCOPES: bot
    • BOT PERMISSIONS: View Channels / Send Messages / Read Message History
    • 生成された URL を開き、対象の Discord サーバーに Bot を招待

投稿させたいチャンネルに Bot のアクセス権があることを確認してください。

3. Nodeflare にデプロイする(discord1 の設定)

ダッシュボードの Servers → New Server から作成します。以下は実際の discord1 と同じ構成です。

3-1. リポジトリを指定

  • ソース: Public URL
  • 入力: リポジトリ名 v-3/discordmcpowner/repo 形式でも、https://github.com/v-3/discordmcp でも可)

自分でフォーク/改造したい場合は My Repos から自分のリポジトリを選んでも構いません。

3-2. 基本設定(Configuration)

項目備考
Namediscord(任意)エンドポイントの slug の元になる
DescriptionDiscord MCP任意
Branchmainリポジトリのデフォルトブランチ

3-3. Transport

STDIO を選択。v-3/discordmcp は stdio で動く MCP サーバーなので、Nodeflare が stdio プロセスを起動し、外向きの MCP エンドポイント(Streamable HTTP)へ自動的にブリッジします。ここで stdio を選んでも、公開されるのはリモートの MCP エンドポイントです。つまり「ローカルで stdio 起動」ではなくなり、PC を閉じても使い続けられる状態になります(これが「リモート化」の正体)。

3-4. Runtime

Node を選択(discord.js / TypeScript 製のため)。

3-5. Advanced settings(詳細設定)

「Advanced settings」を開いて以下を設定します。

項目備考
Build commandnpm install && npm run buildTypeScript を build/ にコンパイル
Entry commandnode build/index.jsstdio サーバーの起動コマンド
Root directory(空)モノレポの一部なら packages/... を指定
Machine memory256MB〜Discord MCP は軽量。Free プランは 256MB が上限
Auth (OAuth)ON推奨。エンドポイントを OAuth で保護する

自動検出に任せる場合は Build / Entry を空にしても動くことがありますが、確実性のため明示しておくのがおすすめです。

3-6. Visibility

Private(自分専用)でOK。チームで使うなら Team

ここまで設定したら Create で作成 → ビルドが始まります。

3-7. 環境変数(Secrets)を設定する ★最重要

作成後、サーバー詳細ページの Secrets / Environment 欄で Bot トークンを登録します。リポジトリにトークンを書かず、ここで安全に注入します。

KeyValue必須説明
DISCORD_TOKENPart 1 で発行した Bot トークンDiscord への接続に使用

DISCORD_TOKENv-3/discordmcp唯一の必須環境変数です。サーバー名・チャンネル名は MCP のツール呼び出し時(server / channel 引数)に渡すため、環境変数は不要です。

Secret を保存したら Redeploy(再デプロイ) して、トークンを反映させます。

4. Claude に MCP として接続する

  1. Nodeflare のサーバー詳細ページで MCP エンドポイント URL をコピー(Connect ボタン等から取得できます)
  2. Claude 側に「コネクタ(カスタム MCP)」として URL を追加
  3. OAuth が有効な場合、Nodeflare の同意画面が表示されるので、アプリ名と権限(スコープ)を確認して Authorize で承認
  4. 接続が完了すると、Claude から以下のツールが使えるようになります
ツール引数説明
send-messagechannel(必須), message(必須), server(任意)チャンネルへ投稿
read-messageschannel(必須), limit(既定50/最大100), server(任意)直近メッセージを取得

server は Bot が1つのサーバーにしか入っていなければ省略可能です。

5. Claude Code ランタイムで自動運用する

ここからが本題です。Claude Code のランタイムで、Reddit から MCP の話題を拾い、Discord に自動投稿させます。Reddit 側は Reddit の MCP コネクタ、もしくは Web 検索/取得で代替できます。

5-1. 一回きりの実行(プロンプト例)

r/mcp と r/LocalLLaMA の直近24時間の人気投稿から、
「新しい MCP サーバー / MCP 関連ツール」の話題を3件ピックアップして。
それぞれ「タイトル / 1〜2行の要約 / 元リンク」に整形し、
Discord MCP の send-message で server="My Server", channel="mcp-news" に、
1メッセージにまとめて投稿して。重複や宣伝色の強いものは除外して。

Claude は内部的に次の流れを実行します:

  1. Reddit から新着投稿を取得(Reddit MCP もしくは Web)
  2. MCP 関連の投稿を抽出・要約・整形
  3. discord MCP の send-messagechannel="mcp-news", message=整形結果)で投稿

5-2. 重複投稿を避ける(read-messages を併用)

投稿前に、同じチャンネルの直近を読んで既出を除外させると、毎回流しても重複しません。

投稿する前に discord の read-messages で channel="mcp-news" の直近50件を読み、
すでに紹介済みのリンク/タイトルは除外してから投稿して。

5-3. 定期自動化(スケジュール運用)

Claude Code でループ/スケジュール実行にすれば、「完全自動運用」になります。

  • /loop を使う:上記プロンプトを渡し、「6時間ごとに実行」のように間隔を指定
  • cron / スケジュールジョブ:マシン側の cron で claude -p "<上記プロンプト>" を定期実行

実行のたびに「Reddit を見る → 新着 MCP 情報を要約 → Discord に投稿(既出は除外)」が回り続けます。

環境変数・設定まとめ(早見表)

レイヤーキー / 設定
Nodeflare(作成時)Sourcev-3/discordmcp(Public URL)
Nodeflare(作成時)TransportSTDIO
Nodeflare(作成時)RuntimeNode
Nodeflare(作成時)Build commandnpm install && npm run build
Nodeflare(作成時)Entry commandnode build/index.js
Nodeflare(Secrets)DISCORD_TOKENDiscord Bot トークン(必須)
Discord BotIntentMESSAGE CONTENT INTENT を ON
Discord Bot権限View Channels / Send Messages / Read Message History
ClaudeコネクタNodeflare の MCP エンドポイント URL(OAuth 承認)

トラブルシューティング

症状原因 / 対処
デプロイは成功するが Discord に繋がらないDISCORD_TOKEN 未設定/誤り。Secret 登録後に Redeploy したか確認
メッセージ本文が空・読めないDeveloper Portal で MESSAGE CONTENT INTENT が OFF
「権限がない」エラーBot が対象チャンネルを見られない/送信権限がない。招待時の権限を確認
server 指定が必要と言われるBot が複数サーバーに参加。server="サーバー名 or ID" を明示
ビルド失敗Runtime が Node か、Build/Entry コマンドが正しいか確認
メモリ不足で落ちるMachine memory を引き上げる(Free は 256MB 上限)

まとめ

  • MCP サーバーは Nodeflare に常駐させ、秘密情報(Bot トークン)は Secrets に隔離する
  • Claude は OAuth で接続するだけ。send-message / read-messages がそのまま使える
  • Claude Code ランタイムで「Reddit 取得 → 要約 → Discord 投稿」をループ/cron 化すれば、Discord 運用がそのまま自動化される

これで、人手を介さず Discord に有益な情報を流し続ける完全自動運用が完成します。

Nodeflare でリモート MCP を今すぐ試す

GitHubで公開されているMCPサーバーを数分でリモートデプロイできます。Discord MCP 以外のサーバーも同じ手順で使い始められます。

👉 Nodeflare を使ってみる

nodeflareNodeFlare

MCP専用ホスティングサービス

GitHubにあるMCPを簡単デプロイ・簡単運用で最適化
無料で始める