使用说明
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对照匹配的工具链。 - 核心仓库被固定;图书馆没有。 这
noirrepo(文档、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)
