mcpField
D
docs-search

docs-search

github.com/arabold开发1.9k60 次安装3 天前更新
代码仓库

关于 docs-search

Docs Search 是用于查询本地 Grounded Docs 文档索引的命令行技能,面向开发者,可列出已索引的库和版本、搜索文档片段,并匹配版本约束。

主要功能

  1. 01列出已索引的库和版本
  2. 02用自然语言搜索文档
  3. 03解析符合条件的索引版本
  4. 04支持 JSON、YAML 和 TOON 输出

适用场景

  1. 01查找索引文档中的 API 行为
  2. 02确认库版本是否已建立索引
  3. 03选择符合约束的文档版本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/arabold/docs-mcp-server --skill docs-search

安装后在 Claude Code 中输入/docs-search确认已加载。

详细介绍

文档搜索

搜索本地 Grounded Docs 索引中的库文档。这些命令默认输出 JSON,且不会更改索引。

适用场景

  • 需要回答有关某个库的 API 或行为的问题。
  • 想要查看已编入索引的库和版本。
  • 需要找到最符合版本约束的已索引版本。

如果不确定某个库是否已编入索引,请先运行 list。如果尚未编入索引,请使用 docs-manage 技能将其编入索引,然后再搜索。

命令

以下三个命令都接受这些标志:

标志说明
--output json|yaml|toon输出格式(默认:JSON)
--server-url <url>使用远程工作器(例如 http://localhost:8080/api)而非本地存储
--quiet仅记录错误
--verbose记录调试输出
list

列出所有已编入索引的库及其版本。

npx @arabold/docs-mcp-server@latest list --output yaml

输出示例:

- name: react
  versions:
    - id: 1
      version: 19.0.0
      documentCount: 412
      uniqueUrlCount: 198
      indexedAt: 2026-10-18T22:28:47.000Z
      status: completed
      sourceUrl: https://react.dev/reference/react
      preserveHashes: false

空的 version 表示该库的文档未指定版本。状态为 completed 的版本表示已完成全部索引。其他状态(queued、running、updating、failed、cancelled、not_indexed)表示内容可能缺失或不完整,此类版本可能包含 progress 字段。空索引会输出 []。

search

使用自然语言查询搜索已编入索引的库。

npx @arabold/docs-mcp-server@latest search <library> "<query>" [options]
标志别名默认值说明
--version <ver>-v最新版本精确版本或范围(例如 18.x、5.2.x)。指定精确版本时,也会匹配最接近的较旧版本。
--limit <n>-l5最大结果数(1 到 100)
--exact-match-efalse仅匹配精确的 --version,不回退到较旧版本。需要指定 --version。
--embedding-model <model>嵌入模型,例如 openai:text-embedding-3-small

示例:

npx @arabold/docs-mcp-server@latest search react "useEffect cleanup" --version 18.x --limit 3 --output yaml

输出为一组段落。页面中彼此接近的匹配内容会归入同一段落;同一页面中相距较远的匹配内容则会作为不同条目返回,因此同一个 url 可能出现多次。每个条目包含:

  • url:页面的 URL
  • content:包含周边上下文的匹配段落,格式为 Markdown 或文本
  • score:相关性分数
  • mimeType、sourceMimeType:存储内容类型和原始内容类型
  • contentUrl:当内容来自与 url 不同的 URL 时提供

没有匹配项时会输出 []。如果库尚未编入索引,命令会失败,并给出建议的相似库名称。

find-version

查找最符合模式的已索引版本。

npx @arabold/docs-mcp-server@latest find-version <library> [--version <pattern>]
标志别名说明
--version <pattern>-v精确版本或范围;省略时使用最新版本

示例:

npx @arabold/docs-mcp-server@latest find-version react --version "18.x" --output yaml
bestMatch: 18.3.1
hasUnversioned: false
message: "Best match: 18.3.1."

当没有版本匹配但存在未指定版本的文档(hasUnversioned: true)时,bestMatch 为 null。两者都不存在时,命令会失败。

解读输出

除非 --output 指定其他格式,否则结果会以 JSON 形式输出到 stdout。日志会输出到 stderr;在终端外只记录错误。设置 LOG_LEVEL=INFO 或传入 --verbose 可查看进度消息。命令失败时会以非零状态码退出。

典型工作流

# 1. Check what is indexed
npx @arabold/docs-mcp-server@latest list --output yaml

# 2. Search for relevant docs
npx @arabold/docs-mcp-server@latest search react "server components" --version 19.x --output yaml

# 3. If the library is missing, index it first (docs-manage skill), then search again

评论

支持 Markdown