使用说明
MoonShine本地MCP
本地MCP服务器 私酿酒 文档。
该项目保留了MoonShine文档的本地副本,构建了一个可搜索的索引,并公开了针对AI代理检索工作流程优化的MCP工具。
默认情况下,服务器:
- 存储两者
en和ru本地文档, - 用途
en作为主动语言, - 允许您通过环境变量切换活动语言。
特性
answer_docs_question对于紧凑的面向问题的上下文包,search_docs对于搜索和导航,read_search_hit为了从搜索结果中读取最佳匹配部分,read_doc对于低级页面/锚点读取,list_docs对于部分浏览,sync_docs用于更新本地文档缓存。
存储布局
data/upstream/en和data/upstream/ru存储本地Markdown副本。data/upstream/navigation.md存储共享导航文件。data/cache/*.json存储每种语言的索引和同步元数据。src/server.js通过stdio运行MCP服务器。src/cli.js sync更新本地文档并重建索引。
默认情况下,不会复制屏幕截图以保持本地缓存较小。使用 --include-assets 如果你想 resources/screenshots.
安装
npm install
npm run sync
同步文档
来自GitHub官方仓库:
npm run sync
从已克隆的本地存储库中:
node src/cli.js sync --source /path/to/moonshine-doc-clone
仅同步一种语言:
node src/cli.js sync --language en
显式同步多种语言:
node src/cli.js sync --languages en,ru
包括截图:
node src/cli.js sync --include-assets
运行MCP
npm start
AI代理的推荐工具订单
代理的最佳默认工作流是:
answer_docs_questionread_search_hitread_doc
answer_docs_question 作为主要入口点
使用 answer_docs_question 当代理需要一个紧凑的文档上下文包来处理真实问题时,例如:
- “如何配置自定义图标”,
- “表单生成器如何工作”,
- “授权如何在资源中工作”。
此工具:
- 搜索文档,
- 对相关文件进行排名,
- 通过以下方式选择最佳匹配部分
matchedAnchor在可能的情况下, - 返回紧凑的摘录而不是完整的页面。
read_search_hit 用于精确的后续阅读
使用 read_search_hit 之后 answer_docs_question 或 search_docs 当代理想要直接读取最佳匹配部分时。
它接受:
slug,matchedAnchor,- 可选的
format,headingsOnly,maxLength.
这避免了在搜索结果和部分阅读之间手动粘合逻辑。
read_doc 用于低级控制
使用 read_doc 当代理需要精确的手动控制时:
- 阅读整页,
- 阅读特定
anchor, - 返回
plain_text, - 仅返回标题,
- 控制
maxLength.
read_doc 是低级原语,不是大多数问题的最佳第一步。
何时使用 search_docs
使用 search_docs 当代理需要候选发现而不是现成的上下文包时。
它适用于:
- 导航,
- 探索性搜索,
- 在阅读一个文档之前,先比较几个可能的文档。
Codex MCP配置
例子:
[mcp_servers.moonshine_doc]
command = "node"
args = ["/path/to/moonshine-mcp/src/server.js"]
[mcp_servers.moonshine_doc.env]
MOONSHINE_DOC_LANG = "en"
MOONSHINE_DOC_LANGUAGES = "en,ru"
现成的复制示例存在于 config.example.toml.
打印配置块:
npm run install:codex
写下来 ~/.codex/config.toml 自动:
npm run install:codex -- --apply
环境变量
MOONSHINE_DOC_LANG-活动语言,默认en.MOONSHINE_DOC_LANGUAGES-本地存储的语言,默认en,ru.MOONSHINE_DOC_BRANCH-上游分支,默认4.x.MOONSHINE_DOC_REPO-上游存储库URL。MOONSHINE_DOC_DATA_DIR-替代数据目录。MOONSHINE_DOC_INCLUDE_ASSETS=1-复制resources/screenshots.
为什么这个设计
- 本地缓存无需网络访问即可提供快速、可预测的答案。
git sparse-checkout只提取你想要的语言。- 同步是显式的,与检索是分开的。
- 高级工具,如
answer_docs_question和read_search_hit减少AI代理的检索步骤。