note 有料記事生成パイプライン
Bridge — Discord/LINE MCP セットアップ
Claude Code が Discord/LINE を直接読み書きするための MCP サーバセットアップガイド。
これにより Zapier/Make 等の外部 SaaS を経由せず、@inbox-sync エージェントが Claude Code 内で完結する。
全体アーキテクチャ
[スマホ] [PC: Claude Code]
│
├ Discord ──→ Discord MCP ──┐
│ ├─→ @inbox-sync ─→ Google Sheets (Drive MCP)
└ LINE ────→ LINE MCP ──────┘ │
▼
@scout 読込
│
▼
topics-YYYYMMDD.md
---
1. Discord MCP のセットアップ
1-1. Discord Bot の作成
- Discord Developer Portal で新規アプリケーション作成
- 「Bot」タブで Bot を作成し、
MESSAGE CONTENT INTENTを ON - Bot Token を取得(後で MCP に渡す)
- OAuth2 → URL Generator で
botスコープ、Read Message History/Read Messages/Add Reactions権限を選択 - 生成された URL で自分のサーバに招待
- 専用チャンネル
#note-ideasを作成し、Bot を読める設定にする
1-2. Discord MCP サーバの導入
コミュニティで公開されている Discord MCP サーバを利用する。代表的なもの:
@hanweg/mcp-discord(TypeScript):npx @hanweg/mcp-discordmcp-discord(Python):pip install mcp-discord系- 自前実装も可
最新の選択肢は https://github.com/modelcontextprotocol 配下や npmjs.com で mcp discord 検索で確認すること。
1-3. Claude Code への登録
Claude Code の設定ファイル(~/.claude/mcp.json または .claude/mcp.json)に追加:
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@hanweg/mcp-discord"],
"env": {
"DISCORD_BOT_TOKEN": "YOUR_BOT_TOKEN_HERE",
"DISCORD_GUILD_ID": "YOUR_SERVER_ID",
"DISCORD_CHANNEL_ID": "YOUR_NOTE_IDEAS_CHANNEL_ID"
}
}
}
}
mcp.json の正確な配置場所と書式は使用する MCP サーバ実装の README を確認すること。Claude Code 公式の MCP 設定方法は /mcp コマンドで確認できる。
1-4. 動作確認
Claude Code を再起動後、以下のような呼び出しでツールが見えれば成功:
mcp__discord__get_recent_messages
mcp__discord__add_reaction
mcp__discord__send_message
ツール名は MCP サーバの実装によって異なる。@inbox-sync エージェントの実装は実際のツール名に合わせて微調整が必要。
---
2. LINE MCP のセットアップ
2-1. LINE Messaging API のチャネル作成
- LINE Developers でログイン
- 新規プロバイダー → Messaging API チャネル作成
- チャネルアクセストークン(長期)を発行
- 自分の LINE アカウントから Bot を友だち追加
- 自分の LINE ユーザー ID を取得(Webhook で
events[0].source.userIdを確認 or 別途取得方法)
2-2. LINE MCP サーバの導入
LINE 公式が提供している MCP サーバ:
@line/line-bot-mcp-server: LINE 公式リポジトリ(https://github.com/line/line-bot-mcp-server)
または自前で Messaging API ラッパーを書く。
2-3. Claude Code への登録
{
"mcpServers": {
"line": {
"command": "npx",
"args": ["-y", "@line/line-bot-mcp-server"],
"env": {
"LINE_CHANNEL_ACCESS_TOKEN": "YOUR_TOKEN",
"LINE_USER_ID": "YOUR_OWN_LINE_USER_ID"
}
}
}
}
2-4. メッセージ履歴の取扱い
LINE Messaging API は履歴取得が制限的(プッシュベース)。
回避策:
- Option A: LINE 側で webhook サーバを立て、受信メッセージをローカルファイル(例:
bridge/line-inbox.jsonl)に蓄積。MCP はこのファイルを読む - Option B: LINE MCP 内部で webhook サーバを起動する実装を使う(一部の実装ではこの方式)
自前 webhook の最小例は bridge/line-webhook-sample.py を参照(必要なら作成可能)。
---
3. Google Sheets の準備
3-1. スプレッドシート作成
- ファイル名:
note-ideas - タブ名:
inbox - ヘッダー(1行目):
| A: 投稿日時 | B: テーマ | C: メモ | D: ソース | E: ステータス |
|---|
3-2. 共有設定
Google Drive MCP からアクセスできる必要がある。以下のいずれか:
- (a) 「リンクを知っている全員が編集可能」(簡単・推奨)
- (b) Google Drive MCP に紐づくアカウントに直接共有
3-3. URL を /docs/scout-config.md に記入
https://docs.google.com/spreadsheets/d/[SHEET_ID]/edit
3-4. Sheets 書き込み権限について
Google Drive MCP の現行ツールセットは主に「ファイルの作成・読み取り」中心で、シート行への append が直接できない。
そのため Google Apps Script (GAS) Web App を立てて REST API として扱う方式 を採用する。
- GAS Web App セットアップ:
bridge/gas-setup.mdに詳細手順 - GAS コード:
bridge/gas-code.gs(コピペでデプロイ可能) - クライアント:
bridge/sheets_client.py(.envから接続情報を読み、Python urllib で叩く) - 機能: 行追加 (
append) / 一覧取得 (list-new) / ステータス更新 (update-status) - 認証: スクリプトプロパティに保存したトークン(
.envのGAS_API_TOKEN) - 呼び出し:
@inbox-syncと@scoutからpython bridge/sheets_client.py ...で叩く
代替手段(GAS を使いたくない場合):
- Python gspread ヘルパー: service account +
gspreadで書く - Drive MCP 直接: ファイル全体を書き直す方式(行数が多いと非効率)
---
4. .env への設定追記
リポジトリルートの .env(無ければ .env.example をコピー)に以下を埋める:
SHEETS_WRITE_METHOD=gas
SHEETS_ID=...
SHEETS_TAB=inbox
GAS_WEB_APP_URL=https://script.google.com/macros/s/.../exec
GAS_API_TOKEN=...
DISCORD_GUILD_ID=...
DISCORD_CHANNEL_ID=...
DISCORD_USER_IDS=...
DISCORD_PROCESSED_REACTION=✅
LINE_USER_ID=Uxxxxxxxxxxxxxxx
LINE_RECEIPT_REPLY=受領しました📥
docs/scout-config.md 側にはペルソナ・読者像・NG ジャンルなどの運用設定のみを残す
(接続情報は .env に一本化)。
---
5. 動作確認フロー
- Discord の
#note-ideasチャンネルにテストメッセージと投稿 - LINE で Bot に
テストメッセージと送信 - Claude Code で
@inbox-syncを実行 - 期待結果:
- Sheets
note-ideasのinboxシートに 2行追記される - Discord 側のメッセージに ✓ リアクションが付く
- LINE Bot から「受領しました📥」と返信が届く
@scoutを実行し、Sheets から拾えていることを確認
---
トラブルシューティング
Discord MCP のツールが見えない
- Claude Code を再起動
/mcpコマンドで MCP サーバの状態を確認- Bot Token が正しいか、Bot がチャンネルを読める権限を持つか
Message Content Intentが ON か
LINE のメッセージが届かない
- Bot を友だち追加しているか
- webhook URL が HTTPS で公開されているか(ngrok や Cloudflare Tunnel が必要な場合あり)
- チャネルアクセストークンが有効か
Sheets に書き込めない
- 共有設定(リンクを知っている全員に編集権限)
- Drive MCP の認証が有効か
- GAS Web App / Python helper の URL/パスが正しいか
同じメッセージが二重取り込みされる
/docs/inbox-sync-state.mdが更新されているか確認- Discord 側に ✓ リアクションが付いているか確認(付いていなければ書き込み失敗の可能性)
---
オプション: 自動定期実行
@inbox-sync を手動実行する代わりに、Claude Code の /schedule スキルで定期実行も可能。
例: 30分ごとに @inbox-sync を実行し、新規メッセージを Sheets に流す。
/schedule */30 * * * * @inbox-sync
詳細は Claude Code の /schedule スキルのドキュメントを参照。