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もすぐに使い始められます。
全体像
┌────────────────────┐ 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 トークンなどの秘密情報を手元に持つ必要がありません。
アジェンダ
- なぜ Nodeflare に置くのか(ローカル stdio との違い)
- Discord Bot を用意する
- Nodeflare にデプロイする
- Claude に MCP として接続する
- 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/discordmcp は Bot トークンで Discord に接続します。まず Bot を作ります。
- Discord Developer Portal → New Application
- 左メニュー Bot → Reset Token でトークンを発行し、控えておく(これが後で Nodeflare に入れる
DISCORD_TOKEN) - 同じ Bot 画面で Privileged Gateway Intents の MESSAGE CONTENT INTENT を ON(メッセージ本文を読むのに必須)
- 左メニュー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/discordmcp(owner/repo形式でも、https://github.com/v-3/discordmcpでも可)
自分でフォーク/改造したい場合は My Repos から自分のリポジトリを選んでも構いません。
3-2. 基本設定(Configuration)
| 項目 | 値 | 備考 |
|---|---|---|
| Name | discord(任意) | エンドポイントの slug の元になる |
| Description | Discord MCP 等 | 任意 |
| Branch | main | リポジトリのデフォルトブランチ |
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 command | npm install && npm run build | TypeScript を build/ にコンパイル |
| Entry command | node build/index.js | stdio サーバーの起動コマンド |
| Root directory | (空) | モノレポの一部なら packages/... を指定 |
| Machine memory | 256MB〜 | Discord MCP は軽量。Free プランは 256MB が上限 |
| Auth (OAuth) | ON | 推奨。エンドポイントを OAuth で保護する |
自動検出に任せる場合は Build / Entry を空にしても動くことがありますが、確実性のため明示しておくのがおすすめです。
3-6. Visibility
Private(自分専用)でOK。チームで使うなら Team。
ここまで設定したら Create で作成 → ビルドが始まります。
3-7. 環境変数(Secrets)を設定する ★最重要
作成後、サーバー詳細ページの Secrets / Environment 欄で Bot トークンを登録します。リポジトリにトークンを書かず、ここで安全に注入します。
| Key | Value | 必須 | 説明 |
|---|---|---|---|
DISCORD_TOKEN | Part 1 で発行した Bot トークン | ✅ | Discord への接続に使用 |
DISCORD_TOKEN が v-3/discordmcp の唯一の必須環境変数です。サーバー名・チャンネル名は MCP のツール呼び出し時(server / channel 引数)に渡すため、環境変数は不要です。
Secret を保存したら Redeploy(再デプロイ) して、トークンを反映させます。
4. Claude に MCP として接続する
- Nodeflare のサーバー詳細ページで MCP エンドポイント URL をコピー(
Connectボタン等から取得できます) - Claude 側に「コネクタ(カスタム MCP)」として URL を追加
- OAuth が有効な場合、Nodeflare の同意画面が表示されるので、アプリ名と権限(スコープ)を確認して Authorize で承認
- 接続が完了すると、Claude から以下のツールが使えるようになります
| ツール | 引数 | 説明 |
|---|---|---|
send-message | channel(必須), message(必須), server(任意) | チャンネルへ投稿 |
read-messages | channel(必須), 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 は内部的に次の流れを実行します:
- Reddit から新着投稿を取得(Reddit MCP もしくは Web)
- MCP 関連の投稿を抽出・要約・整形
discordMCP のsend-message(channel="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(作成時) | Source | v-3/discordmcp(Public URL) |
| Nodeflare(作成時) | Transport | STDIO |
| Nodeflare(作成時) | Runtime | Node |
| Nodeflare(作成時) | Build command | npm install && npm run build |
| Nodeflare(作成時) | Entry command | node build/index.js |
| Nodeflare(Secrets) | DISCORD_TOKEN | Discord Bot トークン(必須) |
| Discord Bot | Intent | MESSAGE 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 以外のサーバーも同じ手順で使い始められます。

