eAsk Embedded Docs: a **source-grounded, page-cited evidence-retrieval** MCP server for coding agents (Claude Code, Codex, Cursor) that write firmware / driver / protocol code and need exact* facts — SunSpec points, register offsets, Modbus function codes, trip thresholds, SCPI commands, API symbols.
ByteAsk Embedded MCP
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
**Page-cited answers from embedded & firmware reference docs — for coding agents that can't afford to guess a register value.**
Official MCP Registry Namespace: ai.byteask/embedded-docs · Remote MCP Endpoint: https://mcp.byteask.ai/mcp
Quickstart · Tools · Connect a client · Configuration · Hosted server · Contributing
---
ByteAsk Embedded MCP is the open-source server behind ByteAsk Embedded Docs:
a **source-grounded, page-cited evidence-retrieval** MCP server for coding agents
(Claude Code, Codex, Cursor) that write firmware / driver / protocol code and need
*exact* facts — SunSpec points, register offsets, Modbus function codes, trip
thresholds, SCPI commands, API symbols.
It returns **verbatim snippets with page citations** — never an authored answer — and
when nothing is relevant enough it says **no match** rather than fabricate. Every
document is treated equally: no authority layer, no filters.
> [!NOTE]
> **What's in this repo:** the MCP *server* — tools, transports (stdio + Streamable
> HTTP), bearer auth, DNS-rebinding protection, result rendering — plus a small,
> pluggable retrieval interface.
>
> **What's _not_ in this repo:** the retrieval engine and the document corpus. How
> documents are parsed, chunked, embedded, and ranked, and the licensed source
> material itself, sit behind the SearchBackend
> seam and power the hosted endpoint at https://mcp.byteask.ai/mcp. This repo ships
> an in-memory SampleBackend (a few
> illustrative, public-knowledge records) so the server runs out of the box.
Why
- **Cited, or nothing.** Every hit is verbatim source text with a section + page
citation. On a miss it returns an honest "no confident match" — it never invents a
register value.
- **Built for coding agents.** The tool descriptions and triggers are tuned so agents
call search_docs reflexively the moment they see a hex literal, a Modbus code, an
IEEE clause, a SCPI verb, or an MCU part number — before answering from memory.
- **Two transports, one server.** stdio for local agents, Streamable HTTP for hosted.
- **Bring your own retrieval.** The search engine is a two-method interface — swap in
anything behind BYTEASK_BACKEND without touching the server.
- **Zero-setup demo.** The bundled SampleBackend runs immediately. No API keys.
Quickstart
Requires Python ≥ 3.10 and uv.
That's it — the bundled SampleBackend serves a couple of illustrative records, so
search_docs works immediately. Run the offline tests with uv run pytest.
Connect a client
Hosted (no install)
The hosted server speaks **Streamable HTTP** at https://mcp.byteask.ai/mcp and is
backed by the full licensed corpus.
**Claude Code:**
Codex, Cursor, and other clients (mcp-remote)
Local (this repo)
The project-scoped .mcp.json registers the stdio server for clients
that read it. Manually, for Claude Code:
Tools
Input is natural language (or an exact identifier). Output is compact markdown.
| Tool | What it does |
|------|--------------|
| **search_docs(query, limit=8)** | Search the corpus; return ranked, page-cited evidence. Each hit has a document title, a section + page citation, the verbatim snippet, and a result_id. A "no confident match" response means *not found — do not fabricate*. |