Kept running into the same problem while coding with Claude: library docs are either outdated in its training data or I'm copy-pasting pages into the chat.
Built DocMCP – an MCP server that crawls documentation sites, chunks and indexes them locally in SQLite, and exposes a search tool Claude can call directly.
The interesting bit is the search: pure keyword search misses semantic queries ("how to make elements wrap" → flex-wrap), and pure vector search misses exact API names. So it does both – BM25 via FTS5 for exact terms, vector embeddings for semantics – and merges results with Reciprocal Rank Fusion.
All data stays local in ~/.docmcp/. Embedding providers are optional (Anthropic Voyage, OpenAI, or BM25-only with no API key).
Setup is `npm install -g @pieeee/docmcp` then `docmcp add
https://react.dev`.
Works with Claude Code, Claude Desktop, and Cursor.
GitHub:
https://github.com/pieeee/docmcp