DocsForge v1.1.0

Documentation for technologies your model was never trained on.

DocsForge finds a library's official docs from its name alone, verifies the page really documents it, harvests the whole thing, and hands it to any MCP client — Claude Code, Cursor, Codex and other AI coding assistants — with a coverage figure you can gate on.

MCP serveropen sourceMIT
The DocsForge fox
learn_technologya recorded run
$ learn_technology(name="pydantic")npmPyPIcrates.iodocs.pydantic.devnames 'pydantic' 214 timesharvestingcomplete — every page the sitemap listsstored as pydantic 1.10
13tools5source types0API keys to resolve a name1file per version

How it works

Name a library. DocsForge works out where it documents itself, confirms the page really documents it, and harvests the whole set.

01Resolve

Asks the package registries — npm, PyPI, crates.io, all keyless — where the library declares its documentation, then probes the site for an llms.txt or a docs root.

"effect"npmeffect.websitePyPI—crates.iodocs.rs/effectkeyless · the registry says where the library documents itself

02Verify

A page must name the package repeatedly before it is trusted. If nothing verifies, DocsForge says so and asks for a URL instead of picking something plausible.

docs.pydantic.devnames it214×verifiedone mention is noise

03Harvest

Best strategy first: llms-full.txt, then a docs-scoped sitemap, then a scoped crawl. Every page lands as Markdown, versions kept apart, incompleteness reported — never hidden.

llms-full.txtsitemap.xmlscoped crawlfirst strategy that works winspydantic/1.10.mdone file per version

Every source type, detected automatically

The URL and, when needed, the content decide the strategy. You never pick.

llms.txt / llms-full.txtOpenAPI / Swaggersitemap.xmlGitHub repositoriesHTML docs & raw Markdowndetectthe URL decides.md

Honest about coverage

A third of a manual that looks whole produces confident, wrong answers. So a partial harvest says so — in the harvest result, in list_knowledge_base, and again every time the content is read.

INCOMPLETE — stopped at the 200-page limit, 400+ pages still queued.

Versions are stored side by side. v2 and v3 contradict each other, and a model handed both will quote the wrong one.

200 stored400+ still queued

One engine, every surface

One extraction engine backs every surface, so an MCP client and the chat panel return byte-identical results. Several DocsForge instances can share one store.

Claude CodeCursorChatGPTCodexWindsurfGemini CLIDocsForge /mcp13 tools · streamable HTTPone engine, every surfacePostgreSQLa row per pagepython main.pyyour machine, long-livedlarge harvests happen here · readable everywhere at once

Frequently asked questions

What is DocsForge?

DocsForge is an open-source documentation MCP server. Give it the name of a library, framework or tool and it finds the official documentation through the package registries, verifies that the page really documents that library, harvests the whole set as Markdown, and serves it to your AI coding assistant through MCP tools.

Who is it for?

Developers whose AI coding assistant writes code against libraries newer than its training data, or mixes up their versions; AI engineers building agents that must answer from real documentation rather than from memory; and teams that want one shared, searchable store of the docs their projects depend on.

What is an MCP server, and which tools does DocsForge provide?

The Model Context Protocol (MCP) is an open standard that lets an AI assistant call tools on a server. DocsForge provides thirteen: learn_technology learns a library from its name alone, search_knowledge_base and read_knowledge_base answer from what is stored, scan_project reports a project's dependencies and which are already documented, and the rest fetch, harvest and manage documentation. They are served over Streamable HTTP or stdio.

Which AI coding assistants does it work with?

Any MCP client. The connect page has a ready command or config block for Claude Code, Codex, ChatGPT, Cursor, Windsurf, Antigravity, Gemini CLI, VS Code and Claude Desktop.

How does it avoid handing the model the wrong documentation?

A page must name the package repeatedly before it is trusted; if nothing verifies, DocsForge says so and asks for a URL instead of guessing. Versions are stored apart, so v2 and v3 are never mixed, and a harvest that stopped early is marked incomplete every time it is read.

Does it need an API key?

Not to resolve a name: npm, PyPI and crates.io are asked without a key. A hosted DocsForge asks clients for a bearer token; running it yourself on your own machine needs none.

Is DocsForge free and open source?

Yes. DocsForge is MIT-licensed. Install it with pipx install docsforge, run it on your own machine or host it yourself, and keep harvested documentation as Markdown files or in PostgreSQL.

Built by Raj Patel

DocsForge is designed, built and maintained by Raj Patel. Found a bug or a bad extraction, have an idea, or want to contribute? Open an issue on GitHub, or reach out directly. Meet everyone who has contributed.

Connect your MCP client.

Streamable HTTP. One URL, one bearer token. The same thirteen tools whichever client you use.

Claude CodeCodexChatGPTCursorWindsurfAntigravityGemini CLIVS CodeClaude Desktop