dependabot/github_actions/pnpm/action-setup-6 deployment.Agents
Summary
Every site built with this generator publishes machine-readable dumps of its content, and docs.pmnd.rs serves them to agents over MCP.
llms.txt
Each site publishes llms.txt and llms-full.txt, linked in the HTML head:
<link rel="alternate" type="text/plain" href="/llms.txt" />
<link rel="alternate" type="text/plain" href="/llms-full.txt" />
MCP server
The MCP server's requests, live — see the full view.
llms-full.txt is too big to paste into an agent. The MCP server lets an agent read an index first, then fetch only the page it needs.
One endpoint for all libraries, over streamable HTTP: https://docs.pmnd.rs/api/mcp.
eg. "how do I use TypeScript with Zustand?":
read docs://zustand/index
→ [...] /learn/guides/beginner-typescript - Beginner TypeScript Guide [...]
call get_page_content(lib="zustand", path="/learn/guides/beginner-typescript")
→ the page, as markdown
Install
With Claude Code, use pmndrs/claude-code-plugin:
/plugin marketplace add pmndrs/claude-code-plugin
/plugin install pmndrs@pmndrs
For other clients, copy the JSON config from the MCP box on the home page. The server is also listed on the MCP Registry as io.github.pmndrs/docs.
Inspect
$ HOST=127.0.0.1 npx -y @modelcontextprotocol/inspector
Then Add Servers › Add manually, transport streamable-http, URL https://docs.pmnd.rs/api/mcp (or http://localhost:3000/api/mcp), and toggle the server on.

Examples
The same endpoint serves the examples gallery, for questions about how something is put together rather than what an API takes:
read examples://index
→ [...] caustics · #transmission [...]
diamond-refraction · Diamon refraction material · +postprocessing,leva · #refraction,bvh
call get_example(name="caustics")
→ its source, live URL, asset attribution and dependency versions
In an index line, + lists dependencies beyond @react-three/fiber and @react-three/drei, and a trailing ~23k flags a large example by its token cost.
An example pins its own versions: for a current API signature, check the docs.
pmndrs/examples publishes these documents at build time, each linked from its page as <link rel="alternate" type="text/markdown">:
Serving your library
Libraries publishing /llms-full.txt are served, and badged MCP on docs.pmnd.rs. To join:
- Publish the dump. Build with this generator,
v3.4.1or later, eg. with the reusable workflow. Otherwise, emit the same<page path="…" title="…">…</page>shape yourself. - Check it.
curl -sI <NEXT_PUBLIC_URL>/llms-full.txtmust return200, and the body must contain<page …>entries. - Flip the flag. Open a PR on pmndrs/docs setting
llms_full: trueon your entry inlibs(src/app/page.tsx). It takes effect on the next push tomain.
Once served, content updates need no redeploy: pages are fetched at request time and revalidated every 5 minutes.