By michaelayles
Ingest PDF datasheets and reference manuals for embedded systems into a local search index, then query for registers, memory maps, peripheral details, and hardware documentation using MCP tools.
npx claudepluginhub michaelayles/bitwise-mcp --plugin bitwise-embedded-docsMCP server for embedded developers. Ingests PDF reference manuals (1000+ pages), extracts register definitions, and provides fast semantic search. Built with FastMCP and available as a Claude Code plugin.
[Manual > FlexCAN > MCR Register]) for better retrievalInstall directly from the Claude Code plugin marketplace:
claude plugin add bitwise-embedded-docs
This registers the MCP server and adds /ingest-docs and /search-docs slash commands.
Install once, use across all projects:
# From this repository directory
pip install -e .
# Then in ANY project directory where you want to use it
claude mcp add --scope project embedded-docs python -m mcp_embedded_docs
Each project maintains its own isolated documentation index. When you run the server in a project, it only indexes and searches PDFs in that project's docs/ directory.
poetry install
# Add to Claude Code
claude mcp add embedded-docs --command poetry --args "run" "mcp-embedded-docs" "serve" --cwd "<path-to-this-repo>"
Restart Claude Code after adding the server.
Place PDFs in a docs/ directory, then in Claude Code:
What PDFs are available?
Ingest any files that haven't been ingested yet
What's the base address for FlexCAN0?
The MCP server automatically queries the indexed documentation when you ask questions:
poetry run mcp-embedded-docs ingest docs/manual.pdf --title "MCU Manual"
poetry run mcp-embedded-docs list # View indexed documents
| Tool | Description |
|---|---|
search_docs | Search documentation with hybrid keyword + semantic retrieval |
find_register | Find specific register definitions by name |
list_docs | List all documentation files with status (indexed + available) |
ingest_docs | Ingest PDF documentation files into the search index |
remove_docs | Remove documents from the search index by ID |
Built on FastMCP for the MCP server layer. The ingestion pipeline:
Python 3.10+ | FastMCP | PyMuPDF | pdfplumber | sentence-transformers | FAISS | SQLite FTS5
Tested: S32K144 Reference Manual (2,179 pages, 14MB) Results: 3min indexing, <500ms search, ~500MB memory
Search your local documents with natural language. Index folders of PDFs, Word docs, markdown, and more — then ask questions in English or German and get answers with source citations.
Share bugs, ideas, or general feedback.
Search and retrieve documents from local markdown files.
Zero-config knowledge base MCP server — search, manage, and embed documentation (SQLite default, PostgreSQL optional)
Crawl, index, and search web documentation directly inside Claude Code. Quick mode for focused lookups, deep mode for up to 100 pages with in-memory search.
Fast local documentation search with llms.txt indexing. Search 12K+ line docs in 6ms with line-accurate citations. One command (/blz) and one agent (@blz:blazer) for all documentation operations.
Document search with hybrid BM25/semantic retrieval, GraphRAG knowledge graphs, and pluggable providers for Claude Code. Index documentation and code, then search using keyword matching, semantic similarity, graph relationships, or comprehensive multi-mode fusion.