Also in: Español, Português, 日本語, Deutsch, Français, 한국어, 简体中文, Italiano, हिन्दी
Disclosure: we build Carbon Forge at 100monkeys.ai, so read this as a maker's account. This guide was drafted by one of our AI agents from the public docs, chiefly Reading a public cortex without an account (R#64944) and MCP tokens (R#61824), and reviewed by the company. The command, the sample call and the quoted sentences are the docs' own; none was run for this guide. Where the docs leave a question open, the last section says so.
Why read without an account
Public workspaces on Carbon Forge are read by people in a browser and by agents over MCP through the same server. The anonymous surface lets an agent use a public knowledge base, such as the Carbon Forge docs themselves, before anyone has signed up or minted a key. The docs put the rule in one line: a client with no token "can read what a browser visitor can read."
Step 1. Find the endpoint
Each public instance serves MCP over Streamable HTTP. For carbonforge.dev the endpoint is https://carbonforge.dev/api/mcp. Anonymous reads exist only on an instance whose public switch is on; one whose switch is off "asks you to sign in, exactly as it always has."
Step 2. Attach with no Authorization header
Add the endpoint to your client and send no Authorization header. The docs' command for Claude Code:
claude mcp add --transport http cortex-public https://carbonforge.dev/api/mcp Any client that speaks Streamable HTTP takes the same URL. Send no header at all rather than an empty or old one: "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."
Step 3. Ground first
The initialize handshake answers with the instance's grounding document, its public workspaces and the tools you may call. "No session id is issued; you do not need one." Call cortex.ground to orient: it is one of the tools open to you, and the workspaces it lists are the ones you can name in the next step.
Step 4. Name the workspace on every call
A token carries a current-workspace pointer. With no token there is no pointer, so every call that acts inside a workspace passes workspace, by slug or UUID. The docs' example reads the docs home page:
{ "name": "pages.read", "arguments": { "workspace": "docs", "pathOrId": "home" } } Leave workspace out and the call tells you to supply it. To read another public instance, add instance with its slug.
Step 5. Read, search and follow links
The docs count twenty-two read-only tools. Among them: list and resolve public workspaces, list and read pages and atoms, search by hybrid and exact-substring match, browse and search the discovery catalogue, follow cross-links and semantic neighbours, read comment threads and media metadata, and files.list and trees.get for code. Two of these behave differently from the rest: the two search tools "search across every public instance whatever you pass", and the result envelope says so. To stay inside one workspace, read and list rather than search.
Step 6. Read the history of a page
Revision history and diffs are among the anonymous reads. An agent that cites a public page can therefore name the revision it read and check later what changed since, without an account. That is the same record a signed-in editor sees, limited to public content.
Step 7. Slow down at the limit
Anonymous requests are rate-limited per IP address. At the limit the answer is a 429 with a Retry-After header, and a message saying how many seconds to wait, asking you to slow down and pointing at sign-up. Honour Retry-After in the client rather than retrying at once.
Step 8. Know when you need a token
"Everything else answers as though it did not exist." A private page, a private workspace and a page that does not exist all answer "not found", as in the browser, so an anonymous client cannot learn what it is not shown. A token is what you need "to write, to read private content, or to lift the anonymous limit"; it has its own, separate rate limit. Every account includes one free private workspace and public workspaces are free (see pricing). The MCP tokens page walks the token form: workspace, role cap, tool-scope, a name, and a secret shown once.
To give Claude Code a token with a narrow scope and write memory to your own workspace, read our guide Connect Claude Code to Carbon Forge over MCP.
What the docs leave unanswered
- The rate limit itself. The docs say requests are limited per IP address and describe the 429, but give no number or window.
- The list of twenty-two tools by name. The page describes them by group and names only
cortex.ground,files.listandtrees.get. - How a client that is not Claude Code is configured. Only the Claude Code command is given.
- Whether anonymous reads can see a lane, a cut or a changeset. The page lists code trees and files but does not mention lanes, cuts or changesets.