mcpField
B
Byteask Embedded Docs

Byteask Embedded Docs

远程服务
docs.byteask.ai记忆与知识2619 周前更新

关于 Byteask Embedded Docs

ByteAsk Embedded MCP 是 ByteAsk Embedded Docs 背后的开源 MCP 服务,为编码 Agent 提供带页码引用的嵌入式与固件参考文档检索。它只返回原文片段,未命中时明确返回无匹配,而不是编造内容。

主要功能

  1. 01返回原文片段并附带章节和页码引用
  2. 02未命中时明确返回无匹配结果
  3. 03提供 search_docs、get_context 和 request_document 工具
  4. 04支持 stdio 与 Streamable HTTP 传输

适用场景

  1. 01编写固件或驱动代码时核对寄存器偏移与功能码
  2. 02查询 Modbus、SCPI 等协议命令的准确定义
  3. 03在编码 Agent 中核实数据手册中的阈值与规格参数

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 search_docs、get_context 和 request_document 三个工具。检索引擎与文档语料不包含在本仓库中,可通过 SearchBackend 接口替换。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.byteask.ai/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

3
参数类型必填说明
querystring是
limitinteger否
effortany否

详细介绍

ByteAsk Embedded MCP

来自嵌入式与固件参考文档的带页码引用答案——专为那些无法承受猜错寄存器值的编码 Agent 打造。

smithery badge License: MIT Python 3.10+ Model Context Protocol Status: beta PRs welcome Hosted

官方 MCP Registry 命名空间:ai.byteask/embedded-docs · 远程 MCP 端点:https://mcp.byteask.ai/mcp

快速开始 · 工具 · 连接客户端 · 配置 · 托管服务 · 参与贡献

编码 Agent 凭记忆写出 ETH_DMATDLAR;byteask 读取语料库后,该行修正为有引用来源的 ETH_DMACTXDLAR,并附带页码引用。

ByteAsk Embedded MCP 是 ByteAsk Embedded Docs 背后的开源服务: 一个面向编码 Agent 的基于来源、带页码引用的证据检索 MCP 服务 (Claude Code、Codex、Cursor),这些 Agent 编写固件 / 驱动 / 协议代码,需要 精确 的事实——SunSpec 数据点、寄存器偏移、Modbus 功能码、跳闸阈值、 SCPI 命令、API 符号。

它返回逐字原文片段并附页码引用——绝不自撰答案——当没有足够相关的内容时, 它会明确返回无匹配,而不是捏造。所有文档一视同仁:没有权威层级,没有过滤器。

说明

本仓库包含什么: MCP 服务——工具、传输方式(stdio + Streamable HTTP)、bearer 认证、DNS 重绑定防护、结果渲染——以及一个小的、 可插拔的检索接口。

本仓库不包含什么: 检索引擎和文档语料库。文档如何被解析、分块、 嵌入和排序,以及获得授权的源材料本身,都位于 SearchBackend 接缝之后,并为托管端点 https://mcp.byteask.ai/mcp 提供支持。本仓库附带一个内存版 SampleBackend(若干 示例性的公开知识记录),使服务开箱即用。

为什么

  • 有引用,否则不给。 每个结果都是逐字源文本,并附有章节 + 页码 引用。检索失败时,它会诚实地返回“无可靠匹配”——绝不编造 寄存器值。
  • 为编码 Agent 而生。 工具描述和触发条件经过调优,使 Agent 在看到 十六进制字面量、Modbus 代码、IEEE 条款、SCPI 动词或 MCU 型号时 会条件反射式地调用 search_docs——而不是凭记忆作答。
  • 两种传输方式,一个服务。 stdio 用于本地 Agent,Streamable HTTP 用于托管。
  • 自带检索。 搜索引擎是一个包含两个方法的接口——可以在 BYTEASK_BACKEND 之后替换为任何实现,而无需改动服务。
  • 零配置演示。 内置的 SampleBackend 可立即运行。无需 API 密钥。

快速开始

需要 Python ≥ 3.10 和 uv。

uv sync
uv run byteask-embedded-mcp        # run as an MCP server (stdio)

就这样——内置的 SampleBackend 提供若干示例记录,因此 search_docs 立即可用。使用 uv run pytest 运行离线测试。

连接客户端

托管服务(无需安装)

托管服务在 https://mcp.byteask.ai/mcp 上使用 Streamable HTTP 协议,并以完整的授权语料库为后端。

添加到 Cursor

Claude Code:

claude mcp add --transport http byteask-embedded-docs https://mcp.byteask.ai/mcp
Codex、Cursor 及其他客户端(mcp-remote)
{
  "mcpServers": {
    "byteask-embedded-docs": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.byteask.ai/mcp"]
    }
  }
}
本地(本仓库)

项目级 .mcp.json 为读取它的客户端注册了 stdio 服务。对于 Claude Code,可手动执行:

claude mcp add byteask-embedded-docs -- uv run byteask-embedded-mcp

工具

输入为自然语言(或精确标识符)。输出为紧凑的 markdown。

工具功能
search_docs(query, limit=8)检索语料库;返回按排名排列、标注页码引用的证据。每条命中包含文档标题、章节 + 页码引用、原文片段以及 result_id。"no confident match" 响应表示未找到——请勿编造。
get_context(result_id)将命中扩展为其完整源章节。
request_document(request)请求添加缺失的文档(服务端记录日志)。

示例输出:

## Results for "what Modbus function code writes multiple registers"

### Sample — Modbus Application Protocol (illustrative) — §6.12, p.30
> Function code 16 (0x10), Write Multiple Registers, writes a block of contiguous
> holding registers (1 to 123 registers) in a remote device. ...
_ref: sample:modbus-fc16_

接入你自己的检索

该服务仅依赖一个包含两个方法的接口(backend.py):

class SearchBackend(Protocol):
    def search(self, query, limit=8, effort=None) -> dict: ...
    def get_context(self, result_id, effort=None) -> dict: ...

实现它,暴露工厂函数 make_backend(config) -> SearchBackend,并让服务指向它:

BYTEASK_BACKEND="my_pkg.my_module:make_backend"

确切的返回值约定记录在 backend.py 的顶部。

配置

所有设置均为环境变量(从 .env 加载;参见 .env.example)。

变量默认值说明
BYTEASK_BACKEND—返回 SearchBackend 的 module:callable;为空 → SampleBackend
BYTEASK_LOGSlogs查询 / 请求 JSONL 日志的写入位置
MCP_TRANSPORTstdiostdio(本地 Agent)或 http
MCP_HTTP_HOST / MCP_HTTP_PORT127.0.0.1 / 8000HTTP 绑定地址
MCP_HTTP_AUTH_TOKEN—HTTP 的 bearer token(为空 = 无认证,仅限开发)
MCP_ALLOWED_HOSTS—Host 头中允许的主机,逗号分隔(* 禁用该限制)
LOG_LEVELINFOstderr 日志详细程度
通过 HTTP 运行
MCP_TRANSPORT=http MCP_HTTP_AUTH_TOKEN=$(openssl rand -hex 32) \
  uv run byteask-embedded-mcp --host 0.0.0.0 --port 8000

之后客户端发送 Authorization: Bearer <token>。内置的 bearer 校验是一个共享密钥存根——在公开暴露之前,请将其替换为真正的认证(OAuth 2.1 资源服务器、mTLS 或可信反向代理)。DNS 重绑定保护通过 MCP_ALLOWED_HOSTS 独立保持开启。

托管服务

使用 ByteAsk Embedded Docs 无需运行任何东西。托管服务为 Claude Code、Codex、Cursor 以及任何 MCP 客户端提供来自嵌入式与固件参考文档的精确、标注页码的事实——寄存器映射、协议功能码、SCPI 命令、标准阈值、数据手册规格。其保证是:原文引用,或"无匹配"——绝不编造数值。

名称byteask-embedded-docs
端点https://mcp.byteask.ai/mcp(Streamable HTTP)
文档与各客户端设置https://docs.byteask.ai/embedded

本仓库是为该端点提供支持的开源服务。

项目结构

src/byteask_embedded_mcp/
  server.py     # FastMCP app + 3 tools (search_docs, get_context, request_document)
  backend.py    # SearchBackend protocol + in-memory SampleBackend (swap for real retrieval)
  render.py     # structured result -> compact markdown
  http_auth.py  # Streamable HTTP entrypoint + stub bearer-token guard
  config.py     # server config (transport, logging, backend selection)
  schemas.py    # Hit / Section result types
  obs.py        # per-call JSONL logging
tests/          # offline unit tests (renderer, backend, server tools)
assets/         # README demo GIF + its deterministic generator

安全

  • 在 stdio 模式下,stdout 保持干净(它是 JSON-RPC 通道);所有日志写入 stderr / logs/*.jsonl。
  • HTTP 的 bearer 校验是一个存根——未设置 token 时无认证,最多只是一个共享密钥。在广泛暴露之前请加强它。
  • DNS 重绑定保护在 HTTP 传输下默认开启。

贡献

欢迎提交 PR 和 issue。

uv sync            # install (incl. dev tools)
uv run pytest      # run the offline test suite

以下是一些保持服务整洁的约定:

  • 后端接缝就是扩展点。 检索内部实现(解析、分块、嵌入、排序)有意不在此范围内 —— 请在自己的包中基于 SearchBackend 构建它们,而不是放在本仓库中。
  • 保持依赖面尽可能小,并让 stdio 路径不依赖 HTTP 技术栈。
  • 为新行为添加测试;测试套件完全离线(无网络、无密钥)。

许可证

MIT © ByteAsk

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。