MCP Servers
Model Context Protocol servers that let AI tools both read a docs site and edit it — a generated read MCP per site and an authoring (write) MCP.
Model Context Protocol servers that let AI tools both read a docs site and edit it — a generated read MCP per site and an authoring (write) MCP.
Papervine exposes Model Context Protocol servers so AI tools can both read a docs site and edit it — two distinct MCP servers. The two have very different maturity and trust models.
Both are built. The read MCP is auto-generated per site and needs no auth. The authoring (write) MCP shares its backend with the web editor and is authenticated — today via the dashboard session; token-scoped external access (platform-auth) is the follow-up.
Every published site gets a read MCP server automatically — no authoring step. It is for the
readers’ AI tools (Claude, Cursor, Windsurf) and exposes the same tool layer as the
AI assistant — search_docs, read_page, list_pages, and
search_api — over Streamable HTTP at https://{tenant}/mcp. One implementation, two
transports (in-docs chat and MCP).
Connect any MCP-capable tool to https://<host>/mcp:
Add https://<your-docs-host>/mcp as a Streamable HTTP MCP server in Claude, Cursor, or
Windsurf.
It sees search_docs, read_page, list_pages, and — only when the site references an
OpenAPI spec — search_api.
The same index the docs site uses, scoped to that tenant.
What ships today:
/mcp (stateless), exposing the four tools. search_api
appears only when the site has an OpenAPI reference. The tools are the shared docs-tools
capabilities — the same code the assistant calls.search_docs
becomes an MCP-search event and read_page becomes an agent page view
(source:"agent"), which feeds the Agents tab in Analytics.llms.txt. Every site also serves /llms.txt and /llms-full.txt — the
llmstxt.org index of every page (the full variant inlines page
bodies), generated from the in-scope content source and logged as agent traffic.Indexing follows the same freshness rules as
the assistant — published pages + OpenAPI specs, excluding hidden/noindex.
Still to come for the read MCP: a docs.json opt-out and per-tenant rate limits; live API
execution as MCP tools (which depends on the “Try it” auth/proxy work, see the
API playground); and building the index at sync time.
The authoring MCP lets a docs owner connect an AI tool to edit their docs (an admin MCP). It is the agent-native counterpart to the web editor: any action an owner can take in the editor, an agent can take through this MCP — they share one backend.
Edits happen on a session branch and land via commit or Pull Request — never silently
on the deploy branch. The authoring MCP is authenticated: it requires a dashboard session and
the x-papervine-org / x-papervine-site headers naming the target site, with the editor
feature enabled for your role. Token-scoped external access (platform-auth)
is the follow-up.
It serves at /authoring/mcp. The tools, grouped by what they touch:
read, search, list_pages, write_page (full MDX), edit_page (a
targeted find/replace on the raw MDX).save (mode: "pr" | "commit"). A working branch is checked out automatically on
first use (or named via the x-papervine-branch header).Editing the navigation structure and docs.json from the MCP (create_node / move_node /
update_config) is a planned extension.
The authoring MCP and the web editor are not separate write paths. They operate on the same session branch and the same server-side draft buffer:
checkout’s response includes an editorUrl you can open to “follow along” in the
dashboard editor on that same branch.save / publish — a direct commit if you’re on
the deploy branch, otherwise a PR with a returned link.The draft buffer is real persistent state, not a commit-on-save shortcut. The authoring layer
is written once — GitHub-App write creds → session branch + draft buffer → save as
commit-or-PR — and both the MCP and the web editor sit on top of it.
Auto-generated per site. No auth. Read-only retrieval (search_docs, read_page,
list_pages, search_api). For docs readers’ tools. Shipped.
Owner-connected, authenticated. Reads + writes (write_page, edit_page, save) via a
session branch → commit/PR. Shares the editor’s backend. For docs owners. Built.