Anche in: English, Español, Português, 日本語, Deutsch, Français, 한국어, 简体中文, हिन्दी · Tutte le guide in italiano
Trasparenza: Carbon Forge è sviluppato da noi di 100monkeys.ai, quindi leggete questa guida come il resoconto di chi lo costruisce. L'ha scritta in bozza uno dei nostri agenti di IA a partire dalla documentazione pubblica (in inglese), soprattutto Reading a public cortex without an account (R#64944) e MCP tokens (R#61824), e l'azienda l'ha rivista; questa edizione italiana è una traduzione della guida originale in inglese. Il comando, la chiamata di esempio e le frasi citate sono quelli della documentazione, le citazioni in inglese con la traduzione accanto; nessuno è stato eseguito per questa guida. Dove la documentazione lascia una domanda aperta, l'ultima sezione lo dice.
Perché leggere senza account
I workspace pubblici di Carbon Forge sono letti dalle persone nel browser e dagli agenti via MCP attraverso lo stesso server. L'accesso anonimo permette a un agente di usare una base di conoscenza pubblica, come la documentazione stessa di Carbon Forge, prima che qualcuno si sia registrato o abbia generato una chiave. La documentazione mette la regola in una riga: un client senza token "can read what a browser visitor can read." (può leggere ciò che legge chi visita dal browser).
Trovate l'endpoint
Ogni istanza pubblica serve MCP su Streamable HTTP. Per carbonforge.dev l'endpoint è https://carbonforge.dev/api/mcp. Le letture anonime esistono solo su un'istanza con l'interruttore pubblico acceso; una con l'interruttore spento "asks you to sign in, exactly as it always has." (vi chiede di accedere, esattamente come ha sempre fatto).
Collegatevi senza header Authorization
Aggiungete l'endpoint al vostro client e non inviate alcun header Authorization. Il comando della documentazione per Claude Code:
claude mcp add --transport http cortex-public https://carbonforge.dev/api/mcp Qualsiasi client che parla Streamable HTTP usa lo stesso URL. Non inviate proprio l'header, piuttosto che uno vuoto o vecchio: "A wrong, expired or revoked token is refused outright rather than quietly treated as anonymous, so a client can never be reading less than it thinks it is." (un token sbagliato, scaduto o revocato viene rifiutato subito invece di essere trattato in silenzio come anonimo, così un client non legge mai meno di quanto crede).
Prima il grounding
L'handshake initialize risponde con il documento di grounding dell'istanza, i suoi workspace pubblici e gli strumenti che potete chiamare. "No session id is issued; you do not need one." (non viene emesso alcun id di sessione; non vi serve). Chiamate cortex.ground per orientarvi: è uno degli strumenti aperti a voi, e i workspace che elenca sono quelli che potete indicare nel passo successivo.
Indicate il workspace in ogni chiamata
Un token porta con sé un puntatore al workspace corrente. Senza token non c'è puntatore, quindi ogni chiamata che agisce dentro un workspace passa workspace, per slug o UUID. L'esempio della documentazione legge la home della documentazione:
{ "name": "pages.read", "arguments": { "workspace": "docs", "pathOrId": "home" } } Se omettete workspace, la chiamata vi dice di fornirlo. Per leggere un'altra istanza pubblica, aggiungete instance con il suo slug.
Leggete, cercate e seguite i link
La documentazione conta ventidue strumenti di sola lettura. Tra questi: elencare e risolvere i workspace pubblici, elencare e leggere pagine e atom, cercare per corrispondenza ibrida e per sottostringa esatta, sfogliare e cercare nel catalogo di discovery, seguire i link incrociati e i vicini semantici, leggere i thread di commenti e i metadati dei media, e files.list e trees.get per il codice. Due si comportano diversamente dagli altri: i due strumenti di ricerca "search across every public instance whatever you pass" (cercano in tutte le istanze pubbliche qualunque cosa passiate), e la risposta lo dice. Per restare in un solo workspace, leggete ed elencate invece di cercare.
Leggete la cronologia di una pagina
Cronologia delle revisioni e differenze sono tra le letture anonime. Un agente che cita una pagina pubblica può quindi indicare la revisione che ha letto e controllare in seguito cosa è cambiato, senza account. È lo stesso registro che vede un editor che ha effettuato l'accesso, limitato ai contenuti pubblici.
Rallentate al limite
Le richieste anonime hanno un limite per indirizzo IP. Al limite la risposta è un 429 con un header Retry-After e un messaggio che dice quanti secondi aspettare, vi chiede di rallentare e indica la registrazione. Rispettate Retry-After nel client invece di ritentare subito.
Sappiate quando serve un token
"Everything else answers as though it did not exist." (tutto il resto risponde come se non esistesse). Una pagina privata, un workspace privato e una pagina inesistente rispondono tutti "not found" (non trovato), come nel browser, così un client anonimo non può sapere cosa non gli viene mostrato. Un token serve "to write, to read private content, or to lift the anonymous limit" (per scrivere, leggere contenuti privati o superare il limite anonimo); ha un suo limite separato. Ogni account include un workspace privato gratuito e i workspace pubblici sono gratuiti (vedete i prezzi). La pagina MCP tokens accompagna nel modulo del token: workspace, tetto di ruolo, ambito degli strumenti, un nome e un segreto mostrato una sola volta.
Per dare a Claude Code un token con un ambito ristretto e scrivere memoria nel vostro workspace, leggete la nostra guida Collegare Claude Code a Carbon Forge via MCP.
Cosa lascia senza risposta la documentazione
- Il limite stesso. La documentazione dice che le richieste sono limitate per indirizzo IP e descrive il 429, ma non dà un numero né una finestra temporale.
- L'elenco per nome dei ventidue strumenti. La pagina li descrive per gruppi e nomina solo
cortex.ground,files.listetrees.get. - Come si configura un client che non sia Claude Code. È dato solo il comando di Claude Code.
- Se le letture anonime possono vedere una lane, un cut o un changeset. La pagina elenca alberi di codice e file ma non menziona lane, cut o changeset.