このガイドは、OpenCode CLIにDiscourse MCPをインストールするためのテスト済みの手順を提供します。別のMCPクライアントを使用している場合は、Codex CLIのセットアップガイドも作成しました。
LLMを活用しましょう! LLMは指示に従うのが非常に得意なので、セットアップを任せることができます。LLMにこのガイドのURLを示し、セットアップを行うように依頼してください。理解できない手順があれば、説明を求めることもできます。
前提条件
- Node.jsがインストールされていること(24 LTS推奨)
- OpenCode CLIがインストールされていること
- 対象のDiscourseフォーラムへの一般ユーザーとしてのアクセス権(管理者である必要はありません!)
ここで3つの独立したコンポーネントがあることを認識しておくことが重要です。
- リモートのDiscourseフォーラム。データソースであり、アクションのターゲットとなります。
- Discourse MCPサーバー。これは、Discourseに接続し、OpenCodeがDiscourseと対話するためのAPIを提供する、オープンソースのローカルで実行されるツールです。これはNPXパッケージとしてインストールされ、OpenCode CLIによってオンデマンドで起動されます。
- OpenCode CLI。これは、MCPサーバーに接続し、MCP APIを介してDiscourseと対話するためのインターフェイスを提供するMCPクライアントです。
1. ユーザーAPIキーの生成
これによりDiscourseへの認証が行われ、APIキーを取得する方法となります。npxはコードをダウンロードして実行するため、従来の意味でインストールする必要があるものはありません。
ターミナルで以下を実行します。
npx @discourse/mcp@latest generate-user-api-key \
--site =DISCOURSE-FORUM= \
--save-to =PROFILE-PATH/=NAME=.json
例:
npx @discourse/mcp@latest generate-user-api-key \
--site https://meta.discourse.org \
--save-to ~/.config/opencode/discourse-profiles/meta.json
ブラウザの同意を承認し、暗号化されたデータをコピーして戻すと、ログイン能力の証明となり、APIキーが生成され、MCPサーバーで使用するために=PROFILE-PATH=に保存されます。
APIキーは、ユーザーとしてのアクセスレベルと同じレベルのアクセス権を持ちます。
2. OpenCode CLIへのMCPサーバーの追加
~/.config/opencode/opencode.jsoncにあるOpenCode設定ファイルを編集し、mcpセクションに次のエントリを追加します。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
// ... 他のMCPサーバー ...
"discourse-=NAME=-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@discourse/mcp@latest",
"--profile",
"=PROFILE-PATH/=NAME=.json",
],
"enabled": true,
"environment": {},
},
},
}
例:
"discourse-meta-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@discourse/mcp@latest",
"--profile",
"/home/marcus/.config/opencode/discourse-profiles/meta.json"
],
"enabled": true,
"environment": {},
},
MCPサーバーは、OpenCodeを起動したときにnpxによってオンデマンドで起動されます。これは=PROFILE-PATH=のプロファイルを使用するように構成されており、デフォルトでは読み取り専用です。
3. OpenCode CLIの再起動
OpenCodeを完全に再起動して、設定をリロードし、MCPサーバーに接続します。
エラーなしで起動した場合、Discourse MCPサーバーは機能しています。OpenCodeにDiscourseフォーラムを参照するように依頼して、アクセスできるが公開されていない情報、特にあなたとして接続していることを確認できます。
4. 書き込み機能の有効化(オプション)
デフォルトでは、Discourse MCPサーバーは読み取り専用モードで実行されます。書き込み操作(投稿、トピック、ユーザーの作成など)を有効にするには、プロファイルJSONファイルに2つのフラグを追加する必要があります。
=PROFILE-PATH/=NAME=.jsonを編集し、auth_pairs配列の兄弟として"read_only": falseと"allow_writes": trueを追加します。
{
"read_only": false,
"allow_writes": true,
"auth_pairs": [
{
"site": "=DISCOURSE-FORUM=",
"user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"user_api_client_id": "discourse-mcp"
}
]
}
例:
{
"read_only": false,
"allow_writes": true,
"auth_pairs": [
{
"site": "https://meta.discourse.org",
"user_api_key": "abc123def456ghi789jkl012mno345pqr",
"user_api_client_id": "discourse-mcp"
}
]
}
これらのフラグを追加した後、OpenCode CLIを再起動して変更を有効にします。MCPサーバーはこれで、以下のような書き込み操作を許可するようになります。
- トピックの作成と更新
- 投稿と返信の作成
- 下書きの管理
- ファイルのアップロード
- カテゴリの作成(権限がある場合)
- ユーザーの管理(管理者権限がある場合)
警告: 書き込み操作では、ユーザーアカウントの権限が使用されます。作成されたコンテンツは、手動で作成されたかのように表示されます。書き込み機能を責任を持って使用してください。
複数のDiscourseインスタンスの管理
複数のDiscourseフォーラムを追加するには、異なるプロファイルファイルとMCPサーバー名を使用してプロセスを繰り返します。
"discourse-meta-mcp": {
"type": "local",
"command": [
"npx", "-y", "@discourse/mcp@latest",
"--profile", "/home/username/.config/opencode/discourse-profiles/meta.json"
],
"enabled": true,
"environment": {},
},
"discourse-mycommunity-mcp": {
"type": "local",
"command": [
"npx", "-y", "@discourse/mcp@latest",
"--profile", "/home/username/.config/opencode/discourse-profiles/mycommunity.json"
],
"enabled": true,
"environment": {},
},
設定ファイル
2つの主要なファイルがあります。
-
=OPENCODE-CONFIG=-~/.config/opencode/opencode.jsoncにあるOpenCode CLI設定ファイルで、MCPサーバー設定が含まれます。 -
=PROFILE-PATH=- Discourse MCPサーバーのプロファイルで、Discourseへの接続のためのAPIキーやその他の設定が含まれます。
OpenCode設定
MCPサーバーへの接続設定は=OPENCODE-CONFIG=(通常は~/.config/opencode/opencode.jsonc)にあります。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"discourse-=NAME=-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@discourse/mcp@latest",
"--profile",
"=PROFILE-PATH/=NAME=.json",
],
"enabled": true,
"environment": {},
},
},
}
OpenCode MCP設定ドキュメント: OpenCodeドキュメント
Discourse MCP設定
Discourse MCPサーバー自体の設定は=PROFILE-PATH/=NAME=.json=にあります。
{
"auth_pairs": [
{
"site": "=DISCOURSE-FORUM=",
"user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"user_api_client_id": "discourse-mcp"
}
]
}
Discourse MCP設定ドキュメント: GitHub - discourse/discourse-mcp
セキュリティに関するベストプラクティス
推奨される対策は次のとおりです。
- プロファイルファイルを専用のディレクトリ(例:
~/.config/opencode/discourse-profiles/)に保存する - ドットファイル(dotfiles)をバージョン管理している場合は、このディレクトリを
.gitignoreに追加する - プロファイルファイルにはわかりやすい名前を付ける(例:
meta.json,mycommunity.json) - APIキーを秘密に保つ - これらはユーザーアカウントと同じアクセスレベルを持ちます
トラブルシューティング
- 接続の問題:
opencode.jsoncのプロファイルパスが正しいことと、ファイルが存在することを確認してください - 認証エラー: Discourseのユーザー設定でAPIキーが取り消されていないか確認してください
- 権限エラー: Discourseインスタンスで必要な権限があることを確認してください
- 再起動が必要:
opencode.jsoncの変更を有効にするには、OpenCode CLIを再起動する必要があります