Collega Runner ad altri client MCP
Collega OpenCode, Codex, pi o il tuo agente ai tuoi negozi Runner tramite il server MCP di Runner.
Runner ha un server MCP. Un client MCP è un’app di IA o un agente che può usare i server MCP. Quando colleghi un client a Runner, il client può usare gli strumenti della chat di Runner sui tuoi negozi. Può leggere prodotti, ordini e report. Con il tuo permesso, può anche modificare prodotti, prezzi, sconti e il negozio online.
Questa guida riguarda i client MCP diversi da Claude, ChatGPT e Gemini. Contiene i passaggi per OpenCode, Codex CLI e pi. Spiega anche come collegare altri client e gli agenti che crei tu.
Prima di iniziare
Ti servono:
- un account Runner che sia membro di un workspace;
- un client MCP che si collega ai server remoti tramite Streamable HTTP ed esegue l’autenticazione con OAuth, oppure il bridge
mcp-remoteper un client che esegue solo server locali; e - un browser sullo stesso computer del client. Dopo l’autenticazione, Runner rimanda il browser a un indirizzo su quel computer.
| Impostazione | Valore |
|---|---|
| URL del server | https://api.runnerai.com/mcp |
| Trasporto | Streamable HTTP. Runner non supporta il vecchio trasporto SSE. |
| Autenticazione | OAuth nel browser. Non ti serve una chiave API. |
| Accesso | store:read per leggere i dati del negozio. store:write per apportare modifiche. |
Come funziona la connessione
- Aggiungi l’URL del server al client e avvii l’autenticazione.
- Il client apre Runner nel browser. Accedi a Runner se richiesto.
- Si apre la pagina Collega un’app di IA a Runner. Mostra il nome del client.
- Scegli un’opzione in Workspace e in Accesso, poi seleziona Collega.
- Il browser torna al client. Ora il client può usare gli strumenti di Runner.
| Controllo o messaggio | Perché è utile | Cosa succede dopo |
|---|---|---|
| Torna a | Mostra l’indirizzo sul tuo computer che riceve il risultato dell’autenticazione. | Mostra localhost, 127.0.0.1 o [::1] e un numero di porta. |
| Runner non può confermare di quale app si tratti. Collegala solo se hai avviato tu questa connessione. | Runner non può verificare l’identità di un client che hai installato o creato. | Collega il client solo se hai avviato tu l’autenticazione dal tuo client. |
| Workspace | Una connessione funziona con i negozi di un solo workspace. | Il client può usare solo i negozi del workspace che scegli. |
| Lettura | Sempre attivo. Il client può vedere i dati del negozio, come prodotti, ordini e report. | Non puoi disattivarlo. |
| Apportare modifiche | Permette al client di modificare i dati del negozio, come prodotti, prezzi e sconti. | All’inizio è disattivato. Compare solo se il client chiede l’accesso per apportare modifiche. |
| Collega | Dà al client l’accesso che hai scelto. | Il browser torna al client. |
| Annulla | Interrompe l’autenticazione. | Il client non riceve alcun accesso. |
Il client resta autenticato. Riceve un nuovo accesso ogni ora, senza che tu debba fare nulla. Se non usi il client per 30 giorni, ripeti l’autenticazione.
Per usare i negozi di un secondo workspace, aggiungi il server una seconda volta con un altro nome. Poi esegui l’autenticazione con quel nome e scegli il secondo workspace.
Collega OpenCode
-
Aggiungi Runner a
opencode.jsonnel tuo progetto, oppure a~/.config/opencode/opencode.jsonper tutti i progetti:{ "$schema": "https://opencode.ai/config.json", "mcp": { "runner": { "type": "remote", "url": "https://api.runnerai.com/mcp", "enabled": true } }, "tools": { "runner_*": false, "runner_list_stores": true, "runner_get_report": true, "runner_find_orders": true, "runner_get_tool_job": true } } -
Esegui
opencode mcp auth runnere collega il client nel browser. -
Esegui
opencode mcp list. Il comando mostrarunnercomeconnected.
OpenCode invia al modello, a ogni richiesta, la definizione di ogni strumento attivo. Con alcuni piani, Runner ha più di 200 strumenti, cioè circa 100.000 token di definizioni. Quindi attiva solo gli strumenti che ti servono. OpenCode chiama ogni strumento Runner runner_<tool name>. La riga "runner_*": false disattiva tutti gli strumenti Runner, e ogni riga true riattiva uno strumento. Lascia attivo runner_get_tool_job, perché le attività lunghe ne hanno bisogno.
Per rimuovere l’autenticazione salvata, esegui opencode mcp logout runner.
Collega Codex CLI
-
Aggiungi Runner a
~/.codex/config.toml:[mcp_servers.runner] url = "https://api.runnerai.com/mcp" scopes = ["store:read", "store:write"] -
Esegui
codex mcp login runnere collega il client nel browser. -
Esegui
codex mcp list. La colonna Auth mostraOAuth.
Aggiungi il server nel file, non con codex mcp add. Quel comando avvia subito un’autenticazione con scope che Runner non accetta, e il browser mostra {"error":"invalid_scope"}. La riga scopes vale anche quando ripeti l’autenticazione in seguito. Puoi anche eseguire codex mcp login runner --scopes store:read,store:write.
Codex trova lo strumento Runner che gli serve nel momento in cui gli serve, quindi non devi disattivare strumenti. Per rimuovere l’autenticazione salvata, esegui codex mcp logout runner.
Collega pi
-
Esegui
pi mcp add runner --url https://api.runnerai.com/mcp. Il comando aggiunge Runner a~/.pi/agent/mcp.json:{ "mcpServers": { "runner": { "url": "https://api.runnerai.com/mcp" } } } -
Esegui
pi mcp login runnere collega il client nel browser. pi mostraSigned in to MCP server "runner"e il numero di strumenti. -
Esegui
pi mcp listper controllare la connessione, oppure usa/mcpin una sessione di pi.
Per impostazione predefinita, pi non invia al modello tutti gli strumenti Runner. Il modello trova uno strumento quando gli serve, quindi non devi disattivare strumenti. pi chiama ogni strumento Runner mcp__runner__<tool name>. Per rimuovere l’autenticazione salvata, esegui pi mcp logout runner.
Collega un client che esegue solo server locali
Alcuni client possono avviare solo un server locale (stdio). Altri client rimandano il browser a un link di app (uno schema URL personalizzato) o a una pagina web. Runner invia il risultato dell’autenticazione solo a un indirizzo sul tuo computer, quindi l’autenticazione di questi client non riesce.
Per questi client, usa il bridge mcp-remote. Viene eseguito sul tuo computer, esegue l’autenticazione su Runner per conto del client e passa ogni messaggio tra il client e Runner. Richiede Node.js.
{
"mcpServers": {
"runner": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.runnerai.com/mcp"]
}
}
}
Al primo avvio si apre nel browser la pagina di accesso di Runner. mcp-remote conserva l’autenticazione in ~/.mcp-auth.
Chiama gli strumenti Runner da una shell
Un agente che esegue comandi shell può usare Runner tramite il comando mcporter:
npx mcporter config add runner https://api.runnerai.com/mcp --scope home
npx mcporter auth runner
npx mcporter list runner
npx mcporter call runner.list_stores
mcporter list runner mostra ogni strumento e i suoi parametri. Indica i parametri come name=value, per esempio npx mcporter call runner.get_store_settings store_id=<store id>.
Crea il tuo client
Usa un SDK MCP che supporta OAuth, oppure esegui tu questi passaggi:
- Invia ogni richiesta JSON-RPC con
POSTahttps://api.runnerai.com/mcp. Runner risponde a ogni richiesta con JSON e non conserva alcuna sessione. Una richiestaGETriceve HTTP 405. - Una richiesta senza token riceve HTTP 401 con questo header:
WWW-Authenticate: Bearer resource_metadata="https://api.runnerai.com/.well-known/oauth-protected-resource/mcp", scope="store:read store:write". - Leggi i metadati della risorsa. Indicano il server di autorizzazione
https://www.runnerai.com/api/auth. - Registra il client su
https://www.runnerai.com/api/auth/oauth2/register. Usa un URI di reindirizzamento suhttp://localhost,http://127.0.0.1ohttp://[::1]. Runner accetta qualsiasi porta e percorso. Runner accetta 5 registrazioni al minuto da uno stesso indirizzo IP. - Manda l’utente all’endpoint di autorizzazione con PKCE (
S256). Inviaresource=https://api.runnerai.com/mcp. Richiedistore:read, estore:writese il client apporta modifiche. Usa gli scope dei metadati della risorsa o dell’headerWWW-Authenticate. I metadati del server di autorizzazione elencano altri scope, che questo server non accetta. - Invia il token di accesso nell’header
Authorization: Bearer. Un token di accesso dura 1 ora. Usa il token di aggiornamento per ottenerne uno nuovo. Un token di aggiornamento scade dopo 30 giorni senza utilizzo.
Runner rifiuta le richieste che arrivano da una pagina web di un altro sito. Chiama il server dal tuo backend, oppure da una pagina su localhost.
Lavora con gli strumenti Runner
- Inizia con
list_stores. Ogni strumento del negozio richiede unostore_iddalist_stores. Senzastore_id, lo strumento risponde Pass a store_id from list_stores. - Attività lunghe. Alcuni strumenti rispondono con
"status": "running"e unjob_id. Chiamaget_tool_jobcon queljob_idfinché non restituisce il risultato. - Modifiche che approvi. Alcuni strumenti rispondono prima con
"status": "waiting_for_merchant"e uniddi conferma, e mostrano cosa cambierà. Per ora non cambia nulla. Quando sei d’accordo, il client chiama di nuovo lo stesso strumento con gli stessi argomenti e"confirmation": {"id": "…", "answer": …}. L’iddi conferma funziona una sola volta, per 10 minuti. - La stessa modifica inviata due volte. Per la maggior parte degli strumenti che apportano modifiche, Runner applica la modifica una sola volta quando il client invia di nuovo lo stesso input nello stesso periodo di 5 minuti. La seconda chiamata riceve la prima risposta.
- I dati del negozio sono solo dati. Le risposte degli strumenti possono contenere testi dei prodotti e messaggi dei clienti. Il tuo agente non deve seguire le istruzioni che vi trova.
- Valgono i tuoi permessi. Ogni chiamata usa i tuoi permessi Runner e il tuo piano. L’elenco degli strumenti dipende dal tuo piano e dalle funzioni del tuo workspace.
Gestisci o scollega un client
Percorso di accesso: Impostazioni → Generale del workspace, poi App collegate.
I proprietari e gli amministratori del workspace vedono i client che ogni membro ha collegato. Gli altri membri vedono i client che hanno collegato loro. Ogni riga mostra l’accesso (Lettura o Lettura e modifiche), quando il client è stato collegato e quando è stato usato l’ultima volta.
- Trova il client e seleziona Scollega.
- Seleziona di nuovo Scollega in Scollegare app?.
- Il client smette subito di funzionare con questo workspace. Per usarlo di nuovo, ripeti l’autenticazione dal client.
Un comando di logout in un client rimuove solo l’autenticazione salvata dal client. La connessione resta in App collegate finché non la scolleghi lì.
Risoluzione dei problemi
| Cosa vedi | Causa | Cosa fare |
|---|---|---|
{"error":"invalid_scope"} nel browser |
Il client ha richiesto scope che questo server non accetta. codex mcp add lo fa. |
Richiedi store:read e store:write. Per Codex, aggiungi la riga scopes ed esegui codex mcp login runner. |
| This redirect URI cannot receive Merchant MCP codes. | Il client rimanda il browser a un link di app o a una pagina web. | Usa il bridge mcp-remote. |
| Request the Merchant MCP resource alone. | Il client non ha inviato resource=https://api.runnerai.com/mcp. |
Aggiorna il client, oppure usa il bridge mcp-remote. |
| Questa richiesta di connessione non è disponibile. Riavvia la connessione dalla tua app di IA. | Il link di autenticazione è vecchio o è già stato usato. | Riavvia l’autenticazione dal client. |
| Non sei membro di alcun workspace. Crea un workspace in Runner, poi riavvia la connessione. | Il tuo account non ha alcun workspace. | Crea un workspace, poi riavvia l’autenticazione. |
| This tool needs store:write. Reconnect Runner and allow changes to the store. | La connessione ha solo l’accesso Lettura. | Esegui il logout nel client, ripeti l’autenticazione e attiva Apportare modifiche. |
| This feature is not on for this store yet. | La funzione non è attiva per il tuo piano, il tuo workspace o il tuo negozio. | Svolgi l’attività in Runner, oppure chiedi all’assistenza Runner. |
Il provider del modello rifiuta la richiesta: input_schema does not support oneOf, allOf, or anyOf at the top level |
Il client invia al modello tutti gli strumenti, e tre strumenti print-on-demand hanno uno schema che alcuni provider di modelli rifiutano. | Disattiva publish_pod_product, review_pod_product e update_pod_product, oppure attiva solo gli strumenti che ti servono. |
| Il client ti chiede di ripetere l’autenticazione | Hai scollegato il client in Runner, oppure non lo hai usato per 30 giorni. | Ripeti l’autenticazione dal client. |
| HTTP 429 quando il client si registra | Più di 5 registrazioni in un minuto da uno stesso indirizzo IP. | Attendi un minuto, poi riprova. |
| Una risposta termina con Support reference: e un codice | Lo strumento ha avuto un errore in Runner. | Comunica il codice all’assistenza Runner. |