Noir文档搜索服务器

Noir开发文档、标准库、示例和社区库的克隆与搜索服务

  • by noir-lang
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 critesjosh/noir-mcp-server

使用说明

noir mcp服务器

用于Noir开发的MCP服务器——克隆和搜索Noir文档、标准库、示例和社区库。

安装

克劳德代码

claude mcp add noir-mcp -- npx noir-mcp-server@latest

法典

codex mcp add noir-mcp -- npx noir-mcp-server@latest

克劳德桌面/光标/风帆

添加到MCP配置文件中(例如。 ~/.claude/mcp.json, claude_desktop_config.json):

{
  "mcpServers": {
    "noir": {
      "command": "npx",
      "args": ["noir-mcp-server@latest"]
    }
  }
}

开源代码

添加到配置文件中(例如。 ~/.config/opencode/opencode.json):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "noir": {
      "type": "local",
      "command": ["npx", "-y", "noir-mcp-server@latest"],
      "enabled": true,
    },
  },
}

来源

git clone https://github.com/critesjosh/noir-mcp-server.git
cd noir-mcp-server
npm install && npm run build

然后将MCP配置指向构建文件:

{
  "mcpServers": {
    "noir": {
      "command": "node",
      "args": ["/path/to/noir-mcp-server/dist/index.js"]
    }
  }
}

工具

工具 说明
noir_sync_repos 克隆/更新存储库。默认值:仅限核心。添加 categories: ["libraries"] 对于包裹。
noir_status 检查仓库克隆状态
noir_search_code 搜索 .nr 跨存储库的文件
noir_search_docs 搜索Noir文档
noir_search_stdlib 搜索标准库
noir_list_examples 列出可用示例
noir_read_example 阅读示例源代码
noir_read_file 从存储库读取任何文件
noir_list_libraries 列出带有描述和克隆状态的库

存储库类别

核心 (默认同步):

  • noir --编译器、stdlib、工具、文档
  • noir-examples --官方示例电路

图书馆 (与同步 categories: ["libraries"]):

  • noir-bignum --大整数运算
  • noir_bigcurve --椭圆曲线运算
  • noir_json_parser --JSON解析(RFC 8259)
  • noir_string_search --子字符串搜索/证明
  • noir_sort --数组排序
  • sparse_array --稀疏阵列实现
  • zk-kit.noir --Merkle树、ECDH等

参考 (与同步 categories: ["reference"]):

  • awesome-noir --精心策划的生态系统指数

当此服务器提供帮助时(以及当它不提供帮助时)

合身:

  • 使用AI代理编写或编辑Noir电路,否则将依赖内存中过时的1.0之前的语法。Noir文档和标准库被固定到特定的版本,因此代理从版本正确的语言源工作,而不是猜测。
  • 查找stdlib函数、trait或类型的实际定义或使用方式(例如。 hash, Field, assert, pedersen).
  • 找到真实的工作示例电路进行调整(noir-examples, noir/examples).
  • 发现生态系统库并阅读其来源。
  • 使代理停止使用过时的语法。搭配 nargo check 以确认结果符合要求。

不合身:

  • 您想要保证正确、可编译的输出,而无需自己验证。此服务器不编译或运行任何内容;始终确认 nargo check.
  • 您需要社区库来完全匹配您的固定编译器。库是在其最新分支克隆的,而不是与编译器匹配的版本(请参阅限制)。
  • 概念或设计问题(“构建Merkle成员电路的最佳方法是什么?”)。搜索是关键字/正则表达式,不是语义;模型加上文档网站可能会更好地为您服务。
  • 证明后端工作流程超出阅读范围 bb.js 来源。
  • 离线使用,或没有 git (理想情况下 ripgrep)安装。

局限性

  • 只读,无需验证。 它显示源代码和文档,但不编译、类型检查或运行电路。无法确认代码是否正确;跑 nargo check 对照匹配的工具链。
  • 核心仓库被固定;图书馆没有。 这 noir repo(文档、stdlib,在repo示例中)和 bb.js 在固定标签处检查;社区图书馆在他们的 main/master 分支提示,它可能比固定编译器更新或更旧。黑色 compiler_version 字段仅表示完全释放楼层(例如。 >=1.0.0)并且无法区分测试版,因此它不会标记测试版级别不匹配。将库代码视为参考,并对照您的工具链进行验证。
  • 关键字搜索,不是语义搜索。 搜索是对文件的快速搜索。它擅长找到一个已知的符号或字符串,在开放式的“我如何做X”问题上表现不佳。
  • 单线比赛。 结果是没有周围上下文的匹配线;阅读完整的函数或文档注释通常需要后续跟进 noir_read_file.
  • 需要同步,第一次同步很慢。 在搜索工作之前,通过网络在本地克隆repo。核心是两个repos;添加库或参考类别克隆更多。
  • 一次一个版本。 服务器提供一条固定的Noir线(请参阅环境变量)。切换版本意味着与重新同步 version,并且库兼容性仍然无法保证。
  • 快照,不是实时的。 内容反映了固定标签(docs/stdlib)和上次同步(库)。重新同步以获取更新。
  • 主机依赖关系。 需要 git;使用 ripgrep 如果存在,则返回较慢的内置搜索。

环境变量

变量 默认值 描述
NOIR_DEFAULT_VERSION v1.0.0-beta.21 主仓库的Noir版本标签
NOIR_MCP_REPOS_DIR ~/.noir-mcp 克隆存储库的基本目录

发展

npm run dev    # Watch mode
npm run build  # Build
npm start      # Run server
npm test       # Run the Vitest unit suite
node test.mjs  # Optional live integration smoke test (clones repos)