July 14, 2026 · 5 min read
Most npm packages have a documentation site. Some are well-organized; most are a maze of sidebar links and API tables that you scan with Ctrl+F. Asking an AI to answer questions about them is often worse — the model either hallucinates or admits it doesn't know the package well enough.
The problem isn't the AI. It's that the AI has no reliable, up-to-date source to ground its answer in. This guide shows how to fix that with AgentReady, which indexes a package's docs site and exposes it as an MCP tool that your AI editor can query in real time.
Training data cutoffs mean models have no knowledge of packages released or significantly updated in the past year. Even for well-known packages, they're working from a snapshot — not from your installed version, not from the current docs, and definitely not from that changelog entry that explains the breaking change you hit this morning.
The right fix isn't a bigger model — it's grounding the model in the actual docs. That's what RAG (Retrieval Augmented Generation) does, and it's what AgentReady sets up automatically.
Most packages link their docs site from npmjs.com/package/<name> in the README or homepage field. For example:
zod → zod.devtrpc → trpc.io/docsdrizzle-orm → orm.drizzle.team/docs@tanstack/react-query → tanstack.com/query/latest/docsIf the package only has a GitHub README and no separate docs site, you can index github.com/org/repo directly — AgentReady will crawl whatever is publicly accessible.
Go to agentready.it.com, paste the docs URL, and hit Index. AgentReady crawls the site, extracts clean content from every page, and builds a searchable index — typically in under 60 seconds for most documentation sites.
You can also do this programmatically via the API:
curl -X POST https://www.agentready.it.com/api/submit \
-H "Content-Type: application/json" \
-d '{"url": "https://zod.dev"}'Once indexed, the docs are queryable forever. You don't re-index on every session — just when the package releases a new major version or the docs change significantly (you can trigger a refresh anytime).
AgentReady exposes an MCP server at https://www.agentready.it.com/api/mcp. Add it to your editor's MCP config:
Claude Desktop — edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"agentready": {
"command": "npx",
"args": ["-y", "@agentreadyweb/mcp"]
}
}
}Cursor — go to Settings → MCP → Add Server → HTTP and paste https://www.agentready.it.com/api/mcp.
Windsurf — open Windsurf Settings (JSON) and add:
{
"mcpServers": {
"agentready": {
"url": "https://www.agentready.it.com/api/mcp"
}
}
}Once connected, ask your AI editor anything about the package. Be explicit about using AgentReady so the model knows where to look:
Using AgentReady, how do I define a discriminated union in Zod?
Ask AgentReady: what's the difference between useQuery and useSuspenseQuery in TanStack Query v5?
Look up in AgentReady how Drizzle handles many-to-many relations.
The AI calls AgentReady's ask_site tool, retrieves the relevant documentation chunks, and answers with citations. No hallucination, no training cutoff — just the actual docs.
You can index as many packages as you need. AgentReady's list_sites tool shows every indexed domain. When you ask a question, specify which site to query with ask_site.
If you ask a cross-package question — "how do Zod and tRPC work together?" — the AI can call ask_site on both domains in sequence and synthesize the answer.
Not every package has a proper docs site. For GitHub-only packages, index the repo URL:
curl -X POST https://www.agentready.it.com/api/submit \
-H "Content-Type: application/json" \
-d '{"url": "https://github.com/sindresorhus/p-limit"}'AgentReady crawls the README, any wiki pages, and linked markdown files. Smaller but still useful — you get the full README as a queryable source rather than hoping the model remembers it from training.
When a package ships a new version and updates its docs, call the refresh endpoint:
curl -X POST https://www.agentready.it.com/api/webhook/refresh \
-H "Content-Type: application/json" \
-d '{"domain": "zod.dev"}'Or just ask Cascade/Cursor to do it: "Refresh zod.dev in AgentReady." It calls refresh_site automatically.
One pattern that works well: when you bump a package version in package.json, add refreshing its docs as a step in your upgrade checklist. That way your AI editor always has the version you're actually running.
Index any npm docs site in 60 seconds — no account, no API key.
Try AgentReady free →