MCP 服务 · DeepSeek Harness 插件 MCP service · DeepSeek Harness plugin

让 AI 直接查
植物组学的公开数据
Let an AI query
public plant-omics data

把植物组学数据库的公开接口整理成 模型真能调用的工具:一次维护,两个出口——远程 MCP 服务与 DSH 插件。每条结果都带可复现的出处,单次输出有界。 Public plant-omics database APIs, wrapped as tools a model can actually call. Built once, exposed twice: a remote MCP service and a DeepSeek Harness plugin. Every result carries reproducible provenance, and every output is bounded.

已接入源Sources
—/ —
可调用工具MCP tools
—/ —
源等级Source tiers
T1 — T2 —
单次输出上限Output cap
4 KB

统计自当前源码构建,非已发布包;斜杠后是预算上限(源 ≤ 20、工具 ≤ 40),不是比例 Counted from the current source build, not the published package; the number after the slash is the budget cap (≤ 20 sources, ≤ 40 tools), not a ratio

当前源码口径(取自工作区注册表与 npm run stats,取数时间见下方):这是源码里此刻能调的源与工具,不是已发布 npm 包的能力清单,也不表示上游此刻可用。 Current source-tree figures (from the working-tree registry and npm run stats; timestamp below): what the source can call right now — not the published package's tool list, and not a statement that any upstream is reachable.

这是什么What this is

一套工具,不是又一个数据库门户。它只做一件事:把公开接口翻译成模型不会用错的意图级工具。 A tool layer, not another database portal. It does one thing: turn public APIs into intent-level tools a model will not misuse.

一套工具,两个出口One tool set, two exits

同一份源注册表同时产出 Streamable HTTP 的 MCP 服务与 DSH 原生插件。Claude Code、Codex 这类 stdio 客户端也走同一个 MCP 出口。 One registry feeds both a Streamable HTTP MCP service and a native DSH plugin; stdio clients such as Claude Code and Codex ride the same MCP exit.

出处可复现Reproducible provenance

每次返回末尾都带「源 / 完整请求(含参数)/ HTTP 状态 / 耗时 / 查询时刻」,数据版本另起一行,未知就写未知,不按 ID 外观猜。 Every result ends with source, the full request including parameters, HTTP status, elapsed time and query time; data versions go on their own line, and unknown stays unknown.

只读,不镜像,不越权Read-only, no mirrors, no bypass

只调用公开接口,不落任何数据集,不过盾、不模拟登录。需要访问控制的源只登记、不实现。 Only public endpoints are called: no datasets are stored, no challenge or login is bypassed. Sources behind access control are registered but not implemented.

能查什么What you can query

每个源都按「实测能力」写覆盖与盲区:T1 有文档化 JSON 接口,T2 无文档但参数化 URL 稳定。下面每个源都附工具清单与盲区原文。 Coverage and blind spots follow what was actually tested: T1 has a documented JSON API, T2 has no docs but stable parameterised URLs. Every card lists its tools and its blind spots verbatim.

T1 有文档化 JSON 接口documented JSON API T2 无文档,URL 稳定undocumented, stable URLs

正在读取构建期数据…Loading build-time data…

两个元工具:先问「谁能答」 Two meta tools: ask who can answer first

怎么装How to install

需要 Node.js ≥ 20。没有 API key;只要求能访问 npm 与各数据库站点。三步:装包 → 起服务 → 接客户端。 Requires Node.js ≥ 20. No API keys; you only need to reach npm and the database sites. Three steps: install, start the service, connect a client.

  1. 安装Install the package

    包已发布在 npm:plantomics-hub@0.1.0(latest)。只想临时跑一次时用下面注释里那行。装的是这个已发布版本,它实际包含的源与工具以该版本自己的清单为准,与上面「当前源码口径」的数字不一定相同。 Published on npm as plantomics-hub@0.1.0 (latest). To try it without installing, use the commented line. You install that published version; the sources and tools it actually carries are its own list, which need not equal the source-tree figures above.

    已发布的 — 实际包含 — 个源、— 个工具;尚未随该版本发布的源:—。 The published — actually carries — sources and — tools; not yet in that release: —.

    npm install plantomics-hub@0.1.0
    
    # run once without installing
    npx -p plantomics-hub@0.1.0 plantomics-hub-mcp
  2. 起服务Start the MCP service

    默认只监听回环地址、不鉴权,适合本机用。起完先看 /healthz:它不需要 token,也不泄露工具清单。 Listens on loopback only, without auth, which suits local use. Check /healthz after starting: it needs no token and does not leak the tool list.

    npx plantomics-hub-mcp            # Streamable HTTP, default 127.0.0.1:8787
    curl http://127.0.0.1:8787/healthz

    健康检查的真实响应(本机实测,数字随注册表变化): Actual health response (measured locally; figures follow the registry):

    —

    version 可能带构建后缀(如 0.1.0+svc.6),不影响用法;该端点不校验 token,也不返回工具清单。上面的 sources/tools 是当前源码口径的本机实测值,你装已发布版本时可能不同。 version may carry a build suffix (e.g. 0.1.0+svc.6); it does not change how you use it, and this endpoint requires no token and returns no tool list. The sources/tools numbers above are this working tree's, measured locally; a published install may report different ones.

  3. 接客户端Connect a client

    三种接法,按你的客户端选一个。DSH 桌面端要把服务先起起来再装插件,否则插件装上、工具一个都不会出现。 Pick the one that matches your client. On DSH desktop the service must be running first, otherwise the plugin installs and no tool ever appears.

    DeepSeek Harness(插件) (plugin)

    服务地址不是默认值时,先设环境变量再启动 DSH: If the service is not on the default URL, set these before starting DSH:

    PLANTOMICS_HUB_URL=http://127.0.0.1:8787/mcp
    PLANTOMICS_HUB_TOKEN=<token>

    插件包从本地 tgz 装(插件管理器只接受压缩包或路径,不接受包名)。工具名带命名空间前缀,形如 mcp__plantomics-hub__wheatomics_search_known_genes。 Install the plugin from a local tgz; the plugin manager takes an archive or a path, not a package name. Tool names carry a namespace prefix, e.g. mcp__plantomics-hub__wheatomics_search_known_genes.

    Claude Code(stdio) (stdio)

    不需要起服务,直接接 stdio 出口: No service needed; connect the stdio exit directly:

    claude mcp add plant-omics -- node "<仓库路径>/dist/mcp/cli.js"

    通用 JSON 配置Generic JSON config

    Codex / Reasonix 等客户端通用;路径按你的实际安装位置改。 Works for Codex, Reasonix and similar; adjust the path to your install.

    {
      "mcpServers": {
        "plant-omics": {
          "command": "node",
          "args": ["<仓库路径>/dist/mcp/cli.js"]
        }
      }
    }

    只挂一部分源:同一份安装,用 PLANTOMICS_SOURCES=wheatomics 控制加载哪些源;源 id 写错会直接报错并列出可用源,不会静默变成「零工具」。 Load a subset: one install, choose sources with PLANTOMICS_SOURCES=wheatomics. A wrong source id fails loudly and lists the valid ones instead of silently loading zero tools.

    对外提供服务:必须同时设 PLANTOMICS_HUB_HOST=0.0.0.0、至少 16 字符的 PLANTOMICS_HUB_TOKEN;放到反向代理后面还要用 PLANTOMICS_HUB_ALLOWED_HOSTS 放行代理域名,否则 403。 Expose it: set PLANTOMICS_HUB_HOST=0.0.0.0 together with a PLANTOMICS_HUB_TOKEN of at least 16 characters; behind a reverse proxy also allow the proxy host via PLANTOMICS_HUB_ALLOWED_HOSTS, or requests get 403.

边界与已知限制Boundaries and known limits

下面每一条都不是免责声明,而是会实际影响结果怎么读的事。源级盲区见上方的源卡片,这里写全局的。 Each item below changes how a result should be read. Source-level blind spots are on the cards above; these are the global ones.

  • 只读。Read-only. 不提供任何提交、上传、写库能力。 No write, upload or database modification is offered.
  • 不镜像数据。No data mirroring. 要批量下载数据,请回各自的科研项目按那边规则走。 For bulk downloads, go back to the research project that owns the data.
  • 上游会间歇性挂。Upstreams fail intermittently. 工具会按 Retry-After 退避重试(单次调用总时长上限 45 s),但不保证每次都成功;失败会明确区分「对面挂了」和「参数写错了」。 Tools back off and retry per Retry-After (45 s cap per call) but cannot guarantee success, and errors distinguish "upstream is down" from "your parameters are wrong".
  • 输出有界。Output is bounded. 单次输出按 UTF-8 字节计不超过 4 KB;超长时截断正文,但出处尾注一定完整保留。 Each output stays under 4 KB of UTF-8 bytes; long bodies are truncated, while the provenance footer is always kept intact.
  • 查无 ≠ 不存在。Empty is not "absent". 不少源用 HTTP 200 + 空结构表示查无,个别用 400;工具只在锚定清楚时才判「本次未找到」,否则报错而不归零。 Several sources signal "not found" with HTTP 200 and an empty structure, one with 400. Tools only report "not found this time" when the evidence is anchored, otherwise they error rather than return zero.
  • 侧边栏面板是静态快照。The sidebar panel is a static snapshot. 它显示构建时的源、工具与盲区,不显示探活与调用统计,也不反映运行时的源子集配置;判断上游是否可用只能靠实测。 It shows sources, tools and blind spots as of build time — not liveness, not call stats, not the runtime source subset. Only a probe answers whether an upstream is up.
  • 完整宿主链路的验证范围。How far the host path is verified. 已验证:适配器取数、MCP 握手、包安装、插件装配形状。未验证:真实宿主要求下「模型自主选工具→取数→带出处作答」的完整链路,别把前者当后者。 Verified: adapters fetch data, the MCP handshake, package install, and plugin wiring. Not verified: a real host session where the model picks tools, fetches and answers with provenance — do not read the former as the latter.
  • 把上游文本当数据。Treat upstream text as data. 数据库内容里可能有看起来像指令的文字,本仓不过滤;请在客户端侧把它当数据、不当指令。 Database records may contain text that looks like instructions; nothing filters it, so treat it as data on the client side.