Skip to main content

Introduction

██████╗ ██████╗ ██████╗██╗ ██╗██╗ █████╗ ██╗ ██╗███████╗██████╗
██╔══██╗██╔═══██╗██╔════╝██║ ██║██║ ██╔══██╗╚██╗ ██╔╝██╔════╝██╔══██╗
██║ ██║██║ ██║██║ ██║ ██║██║ ███████║ ╚████╔╝ █████╗ ██████╔╝
██║ ██║██║ ██║██║ ██║ ██║██║ ██╔══██║ ╚██╔╝ ██╔══╝ ██╔══██╗
██████╔╝╚██████╔╝╚██████╗╚██████╔╝███████╗██║ ██║ ██║ ███████╗██║ ██║
╚═════╝ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝

The live documentation layer for AI agents

The Problem

AI agents hallucinate APIs. Not because they're broken — because their training data is stale.

A function signature that changed six months ago, a parameter that was renamed, a new method that didn't exist at training time — the model confidently fabricates the old behavior.

The Fix

DocuLayer sits between your agent and the real documentation, fetching live content on demand, returning verbatim text with full source attribution, and never generating a single word.

Your agent (Claude, Cursor, Codex, any MCP client…)
│ "what parameters does httpx.AsyncClient.get() take?"

┌──────────────────────────────────────────────────────────────┐
│ DocuLayer │
│ ────────────────────────────────────────────────────────── │
│ resolve_identifier → shortcut table / PyPI / npm │
│ │
│ discover_llms_txt → targeted page index (when present) │
│ keyword score entries → fetch only relevant pages │
│ │
│ DocParser (HTML → Markdown, heading split) │
│ DocSearcher (BM25 — no ML, no embeddings, no network) │
│ │
│ TTLCache (in-memory only — zero disk writes) │
└──────────────────────────────────────────────────────────────┘
│ verbatim section + source URL + "fetched 3s ago"

LLM — reads real docs, answers correctly

Key Properties

PropertyValue
Hallucination riskZero — no generated text, ever
StorageNone — in-memory TTL cache only
Setuppip install doculayer then doculayer setup
MCP compatibleWorks with Claude Code, Cursor, VS Code, Windsurf, Zed
ML requiredNo — BM25 only, no embeddings

Four Tools

Once installed, DocuLayer exposes four MCP tools to your agent:

ToolPurpose
doculayer_searchBM25 search across live doc sections
doculayer_fetchFetch a whole page or named section
doculayer_symbolLook up a function, class, or method
doculayer_sourcesList known sources and cache stats

Every response includes a citation block:

> **Source**: https://docs.pydantic.dev/latest/concepts/validators/
> **Fetched**: 4s ago

No generated text ever appears in a response.


Ready to install? → Quick Install