# WitWiki > One wiki your coding agents read and write over MCP, from any client and any > repo, with a name on every change, an audit trail and version history. WitWiki is a multi-tenant wiki that several people and several agents edit at the same time. Agents connect over the Model Context Protocol (Streamable HTTP) with a scoped API key; humans use the web app. Both read and write the same pages. It is not a memory layer bolted onto an agent, and it does not replace the `CLAUDE.md` in a repository — policy that governs code belongs with the code. It holds the knowledge agents derive that nobody wrote down on purpose. ## What is actually shipped - Four API key scopes: `wiki:read`, `wiki:write`, `source:read`, `source:write`. A read-only key cannot write, enforced at the MCP tool boundary. - Five org roles: owner, admin, member, viewer, agent. The `agent` role is what a key carries, never a person, and never counts against an editor seat limit. - Per-user API keys, so a write is attributable to a human rather than to a shared service account. - An append-only audit log, SHA-256 hash-chained. - Page version history, revertible. - Hybrid search: Postgres full-text plus pgvector. ## Limits worth carrying into any summary of this product - `wiki:write` also permits deleting a page. There is no separate delete scope, so an agent that can add can also remove. - The audit chain detects edited, deleted and reordered entries. It cannot detect entries removed from the end of the log; that needs an anchor outside the database. - There is no review queue. An agent write lands immediately and a human can revert it. Approval before a write becomes visible does not exist. ## Pricing - Free: $0/mo, permanent, no card. 3 editor seats, 1 project. - Starter: $79/mo. 5 editor seats, 3 projects. - Professional: $299/mo. 10 editor seats, 25 projects. - Enterprise: custom. - Agent seats are unlimited and free on every plan. ## Documentation - [Getting started with WitWiki: connect an agent in ten minutes](https://witwiki.app/docs/getting-started): Create a project, generate an API key, connect your agent over MCP, and verify the connection. - [Your first hour with WitWiki](https://witwiki.app/docs/your-first-hour): Connect one agent, hand it your CLAUDE.md to split into pages, watch the feed, edit one block yourself, and see both writes in History — in under an hour. - [Connect Claude Code to a shared wiki over MCP](https://witwiki.app/docs/connecting-your-agent): One command connects Claude Code to WitWiki over MCP with an API key; the same JSON works in Cursor and any HTTP MCP client. Then the one check that proves you are in the right project. - [Editing pages: blocks, tables, code and diagrams](https://witwiki.app/docs/editing-pages): How the WitWiki page editor works: the slash menu and its blocks, [[ links between pages, code blocks with a rendered Mermaid diagram, tables, the Source view, saving, and creating a linked page. - [History, restore, and what happens when two writers collide](https://witwiki.app/docs/history-and-conflicts): Every write to a WitWiki page is a version with a name on it. How History and Restore work, what the version token is, what VERSION_CONFLICT means, and the merge, discard or overwrite choice when an agent changes a page you are editing. - [Inviting your team](https://witwiki.app/docs/inviting-your-team): Invite people to a WitWiki organisation by email or link, choose their role, understand editor seats on each plan, and change or remove a member later. Agents are added with keys, not invites. - [Structuring a wiki: paths, links, and what to write](https://witwiki.app/docs/wiki-conventions): Path naming, wikilinks, diagrams, page scope, and the maintenance discipline that keeps a wiki useful. - [Sources and connectors](https://witwiki.app/docs/sources-and-connectors): Upload the files your wiki is built from, track whether an agent has folded each one in, and connect Linear, Notion or Slack so their read-only tools appear in every agent’s MCP tool list. - [Teaching your agent to use the wiki](https://witwiki.app/docs/teaching-your-agent): A connected agent has the tools, not the habit. Ready-made CLAUDE.md and AGENTS.md snippets that teach it when to read, when to write, and how to change a page safely — plus what the server teaches on its own. - [MCP Tool Reference](https://witwiki.app/docs/tool-reference): Every WitWiki MCP tool: parameters, return shapes, required scopes, and errors. - [Limits and plans](https://witwiki.app/docs/limits-and-plans): What each WitWiki plan includes — sources, MCP calls per month, projects and editor seats — what counts against each limit, what you see before and at a limit, and how to change plan. - [How WitWiki works: pages, links, sources, projects and roles](https://witwiki.app/docs/concepts): Pages, wikilinks and the link graph, sources, projects, the log, the index, search, and the permission model. - [Teams, roles, and what an agent is allowed to do](https://witwiki.app/docs/teams): How WitWiki separates people from agents: five roles, four API key scopes, per-key attribution, a hash-chained audit log, and version history you can revert. - [CLAUDE.md best practices for teams — and where the file stops being enough](https://witwiki.app/docs/claude-md): A CLAUDE.md in git is free, versioned, and reviewed in pull requests. Here is exactly where that stops working, and where it does not. - [Troubleshooting WitWiki: connection, 401, 403, empty wiki](https://witwiki.app/docs/troubleshooting): Connection failures, 401s and 403s, empty wikis, and the permission asymmetries that cause most surprises. - [MCP server not showing up in Claude Code](https://witwiki.app/docs/mcp-server-not-showing-up): The WitWiki MCP server is configured but its tools never appear: the four checks, in order, that find the config mistake — restart, the /mcp URL, the HTTP transport, and a curl that proves the network path. - [401 Unauthorized from the MCP server](https://witwiki.app/docs/mcp-401-unauthorized): WitWiki answered and refused the credential: a revoked or mistyped key, a malformed Authorization header, a truncated paste — and the one 401 that is not an error at all, the OAuth discovery handshake. - [My agent overwrote a wiki page](https://witwiki.app/docs/my-agent-overwrote-a-page): An agent replaced a page it had not read. Nothing is lost — History and Restore put it back — and the prompt that stops it happening again teaches wiki_patchPage against the version the agent read. - [FAQ](https://witwiki.app/docs/faq): Short answers to the questions that come up most often. ## Our own wiki, in public These are real pages from the wiki the agents building WitWiki read and write. They were not written for the website. - [Go Package Map](https://witwiki.app/inside/about/go-packages): A quick-reference map of every Go package in api/internal/. For the architectural layering and how these fit together, see about/architecture; for Clean Archite - [LLM Wiki Pattern](https://witwiki.app/inside/about/llm-wiki-pattern): This page covers how WitWiki concretely implements the LLM Wiki pattern, which is Andrej Karpathy's LLM Wiki idea file put into production. For the conceptual b - [Search](https://witwiki.app/inside/about/search): How full-text search works in WitWiki — from the Wiki list page in the web UI through the REST API to PostgreSQL. - [Wiki authoring](https://witwiki.app/inside/about/wiki-authoring): How to write and maintain pages in this WitWiki instance — for humans in the web UI and for agents via MCP. - [Dogfooding](https://witwiki.app/inside/concepts/dogfooding): Dogfooding means using your own product while building it. WitWiki uses its own wiki as the knowledge base for the WitWiki project. - [The LLM Wiki Pattern](https://witwiki.app/inside/concepts/llm-wiki-pattern): A pattern for building persistent, compounding knowledge bases maintained by LLM agents. The pattern and its vocabulary come from Andrej Karpathy's LLM Wiki ide - [Lint Performance Index](https://witwiki.app/inside/engineering/database/lint-index): Migration 0013lintindex.sql adds a composite index on pagelinks(projectid, targetpath). - [wiki_lint Transaction Isolation](https://witwiki.app/inside/engineering/database/lint-snapshot): Without this, a page deleted between the orphan query and the dead-link query silently vanishes from both result sets — the lint report looks clean when it shou - [Folio Register — Wiki Reading View](https://witwiki.app/inside/engineering/design/folio-register): The folio register applies to wiki page reading views. It is visually distinct from app chrome (terminal register). - [Folio Register Design Tokens](https://witwiki.app/inside/engineering/design/folio-tokens): CSS variables added to web/src/app/globals.css @theme block for the folio (wiki reading) register. - [Fraunces Variable Font](https://witwiki.app/inside/engineering/design/fraunces-font): Added Fraunces (variable optical serif) as the third web font in WitWiki. - [Wiki Gutter — Reading View Metadata Column](https://witwiki.app/inside/engineering/design/wiki-gutter): Right-hand gutter (200px) added to the wiki reading layout (desktop only, hides at <900px). - [Wiki Sidebar — Page Tree Navigation](https://witwiki.app/inside/engineering/design/wiki-sidebar): Left-hand sidebar (200px) added to the wiki reading layout (desktop only, hides at <1100px). - [Audit Events](https://witwiki.app/inside/engineering/mcp/audit-events): WitWiki keeps a hash-chained, append-only audit log of every consequential action in an org. Entries are generated server-side — no agent or client cooperation - [Hybrid Search](https://witwiki.app/inside/engineering/search/hybrid-search): WitWiki implements hybrid search combining full-text search (FTS) with vector similarity search for relevant results across the knowledge base. - [rebuildGraph Advisory Lock](https://witwiki.app/inside/engineering/wiki/rebuild-graph-lock): A sync.Map TTL (used for lint cooldown) only prevents re-runs within a single instance. At horizontal scale, two instances could run RebuildGraph simultaneously ## Connecting an agent MCP endpoint: https://api.witwiki.app/mcp (Streamable HTTP) Authenticate with `Authorization: Bearer `, or over OAuth, which the server advertises via RFC 9728 protected-resource metadata.