Configurazione di Discourse MCP in OpenCode CLI

Questa guida fornisce istruzioni testate per installare Discourse MCP in OpenCode CLI. Se stai utilizzando un client MCP diverso, ho scritto anche guide per Codex CLI.

USA IL TUO LLM! Gli LLM sono molto bravi a seguire le istruzioni e possono eseguire la configurazione per te. Indica all’LLM questa guida tramite URL e chiedigli di eseguire la configurazione. Puoi anche chiedergli di spiegare qualsiasi passaggio che non hai compreso.

Prerequisiti

  • Node.js installato (si consiglia la versione 24 LTS)
  • OpenCode CLI installato
  • Accesso al forum Discourse di destinazione come utente normale (non è necessario essere un amministratore!)

È importante rendersi conto che qui ci sono tre componenti separati:

  1. Il forum Discourse remoto, che è la fonte dei dati e la destinazione delle azioni.

  1. Il server Discourse MCP, che è uno strumento open-source in esecuzione in locale che si connette a Discourse e fornisce un’API per OpenCode per interagire con Discourse. Questo viene installato come pacchetto NPX e avviato su richiesta da OpenCode CLI.

  1. OpenCode CLI, che è il client MCP che si connette al server MCP e fornisce l’interfaccia per interagire con Discourse tramite l’API MCP.


1. Genera la chiave API Utente

Questo ti autenticherà su Discourse ed è così che otterrai la tua chiave API. npx scaricherà ed eseguirà il codice, non è necessario installare nulla nel senso tradizionale.

In un terminale, esegui:

npx @discourse/mcp@latest generate-user-api-key \
  --site =DISCOURSE-FORUM= \
  --save-to =PROFILE-PATH=/=NAME=.json

Esempio:

npx @discourse/mcp@latest generate-user-api-key \
  --site https://meta.discourse.org \
  --save-to ~/.config/opencode/discourse-profiles/meta.json

Approva il consenso del browser e copia indietro i dati crittografati, che dimostrano la tua capacità di accedere e generano una chiave API che viene salvata in =PROFILE-PATH= per l’uso da parte del server MCP.

La chiave API avrà lo stesso livello di accesso al forum che hai come utente.

2. Aggiungi il server MCP a OpenCode CLI

Modifica il tuo file di configurazione OpenCode in ~/.config/opencode/opencode.jsonc e aggiungi la seguente voce alla sezione mcp:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    // ... altri server MCP ...
    "discourse-=NAME=-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@discourse/mcp@latest",
        "--profile",
        "=PROFILE-PATH=/=NAME=.json",
      ],
      "enabled": true,
      "environment": {},
    },
  },
}

Esempio:

"discourse-meta-mcp": {
  "type": "local",
  "command": [
    "npx",
    "-y",
    "@discourse/mcp@latest",
    "--profile",
    "/home/marcus/.config/opencode/discourse-profiles/meta.json"
  ],
  "enabled": true,
  "environment": {},
},

Il server MCP verrà avviato su richiesta con npx da OpenCode CLI quando avvii OpenCode. È configurato per utilizzare il profilo in =PROFILE-PATH= e per impostazione predefinita è di sola lettura.

3. Riavvia OpenCode CLI

Riavvia completamente OpenCode in modo che ricarichi la configurazione e si connetta al server MCP.

Se si avvia senza errori, il server Discourse MCP funziona. Puoi chiedere a OpenCode di fare riferimento al tuo forum Discourse per informazioni - in particolare informazioni a cui hai accesso ma che non sono pubbliche - questo verificherà che si stia connettendo come te.

4. Abilita le Funzionalità di Scrittura (Opzionale)

Per impostazione predefinita, il server Discourse MCP viene eseguito in modalità di sola lettura. Per abilitare le operazioni di scrittura (creazione di post, argomenti, utenti, ecc.), è necessario aggiungere due flag al file JSON del profilo.

Modifica =PROFILE-PATH=/=NAME=.json e aggiungi "read_only": false e "allow_writes": true come fratelli dell’array auth_pairs:

{
  "read_only": false,
  "allow_writes": true,
  "auth_pairs": [
    {
      "site": "=DISCOURSE-FORUM=",
      "user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "user_api_client_id": "discourse-mcp"
    }
  ]
}

Esempio:

{
  "read_only": false,
  "allow_writes": true,
  "auth_pairs": [
    {
      "site": "https://meta.discourse.org",
      "user_api_key": "abc123def456ghi789jkl012mno345pqr",
      "user_api_client_id": "discourse-mcp"
    }
  ]
}

Dopo aver aggiunto questi flag, riavvia OpenCode CLI affinché le modifiche abbiano effetto. Il server MCP ora consentirà operazioni di scrittura come:

  • Creazione e aggiornamento di argomenti
  • Creazione di post e risposte
  • Gestione delle bozze
  • Caricamento di file
  • Creazione di categorie (se si dispone delle autorizzazioni)
  • Gestione degli utenti (se si dispone delle autorizzazioni di amministratore)

Attenzione: Le operazioni di scrittura utilizzeranno le autorizzazioni del tuo account utente. Qualsiasi contenuto creato apparirà come se fosse stato creato manualmente. Usa le funzionalità di scrittura in modo responsabile.

Gestione di Istanze Discourse Multiple

È possibile aggiungere più forum Discourse ripetendo il processo con file di profilo e nomi di server MCP diversi:

"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": {},
},

File di Configurazione

Ci sono due file principali:

  1. =OPENCODE-CONFIG= - File di configurazione OpenCode CLI in ~/.config/opencode/opencode.jsonc, che include le impostazioni del server MCP.

  2. =PROFILE-PATH= - Il profilo per il server Discourse MCP, che include la chiave API e altre impostazioni per la connessione a Discourse.

Impostazioni OpenCode

Le impostazioni per la connessione al server MCP si trovano in =OPENCODE-CONFIG= (tipicamente ~/.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": {},
    },
  },
}

Documentazione delle impostazioni MCP di OpenCode: Documentazione OpenCode

Impostazioni Discourse MCP

Le impostazioni per il server Discourse MCP stesso si trovano in =PROFILE-PATH=/=NAME=.json=:

{
  "auth_pairs": [
    {
      "site": "=DISCOURSE-FORUM=",
      "user_api_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
      "user_api_client_id": "discourse-mcp"
    }
  ]
}

Documentazione delle impostazioni di Discourse MCP: GitHub - discourse/discourse-mcp

Best Practice di Sicurezza

Si consiglia di:

  1. Archiviare i file di profilo in una directory dedicata (ad esempio, ~/.config/opencode/discourse-profiles/)
  2. Aggiungere questa directory a .gitignore se si sta tracciando la propria configurazione in un sistema di controllo versione
  3. Utilizzare nomi descrittivi per i file di profilo (ad esempio, meta.json, mycommunity.json)
  4. Mantenere riservate le chiavi API - hanno lo stesso livello di accesso del tuo account utente

Risoluzione dei problemi

  • Problemi di connessione: Verificare che il percorso del profilo in opencode.jsonc sia corretto e che il file esista
  • Errori di autorizzazione: Controllare che la chiave API non sia stata revocata nelle preferenze utente di Discourse
  • Errori di permesso: Assicurarsi di disporre delle autorizzazioni necessarie sull’istanza di Discourse
  • Riavvio richiesto: Le modifiche a opencode.jsonc richiedono il riavvio di OpenCode CLI
3 Mi Piace