使用说明
Noogle服务器
该项目提供了一个工具,用于从以下位置查询Nix内置和Nixpkgs函数文档 noogle.dev。它利用 uv2nix 用于强大的封装和可重复的开发环境。
为什么要写这个?
写这篇文章的主要原因是为了测试我自己能在多大程度上推动人工智能辅助的工作流程 编解码器 内部 我的自定义neovim配置.我不是一个网络开发人员,作为我日常工作的一部分,我也不必编写任何REST API。所以我想挑战自己去测试 uv2nix (我总是发现,而且仍然觉得很难使用),并弄清楚在进行人工智能辅助开发时,什么样的东西有效,什么不有效。
特性
- Nix文档查询:使用
query_nix_docs从中获取和解析文档的工具noogle.dev. - 结构化输出:以清晰的Markdown格式呈现文档,包括输入、类型、示例和别名。
- 纯镍开发:使用提供纯开发shell
uv2nix用于具有可编辑安装的一致、可复制的环境。 - 不纯开发:为那些喜欢用Python管理虚拟环境的人提供不纯的开发工作流程
uv直接。
用法
独立使用Nix
输出的 flake.nix 包含启动服务器的脚本。克隆存储库后,您可以执行以下操作
nix run .
nix run github:AlejandroGomezFrieiro/noogle_mcp_server
独立Python
这 nix-docs-server 是一个公开 query_nix_docs 功能即服务(通过FastMCP)。首先安装服务器
pip install noogle_mcp_server
然后启动服务器
python -m noogle_mcp_server
编辑器集成工具。
该工具可以很容易地设置为mcp工具, 麦哲伦.
使用nix(推荐)
{
"mcp_servers": {
"noogle_mcp_server": {
"args": [
"run",
"github:AlejandroGomezFrieiro/noogle_mcp_server"
],
"command": "nix"
},
}
}
使用Python
按照说明安装后,您可以使用
{
"mcp_servers": {
"noogle_mcp_server": {
"args": [
"-m",
"noogle_mcp_server"
],
"command": "python"
},
}
}
发展
该项目提供了两种使用Nix设置开发环境的模式:一种纯Nix管理环境,利用 uv2nix 以及使用 uv 直接。
先决条件
- 无
- 还必须有
flakes实验特征设置。
- 还必须有
不纯开发(nix develop .#impure)
此开发shell设置 python312 和 uv 来自Nixpkgs。它配置 uv 使用Nix提供的Python解释器并阻止其下载自己的解释器,同时允许您管理Python虚拟环境(例如,使用 uv venv)在Nix之外。如果你喜欢传统的 uv-基于工作流。
nix develop .#impure
# Inside the shell, you can use uv:
# uv venv
# source .venv/bin/activate
纯粹发展(nix develop .#uv2nix 或 nix develop)
此shell提供了一个纯Nix构建的虚拟环境,其中包含项目的依赖项。使用 uv2nix 创建一个隔离的、可复制的环境,并为本地项目文件启用“可编辑”安装。这意味着对源代码的更改会立即反映在虚拟环境中,而不需要重新构建Nix。
nix develop .#uv2nix
# Or simply use the default shell:
nix develop
一旦进入此shell,您的本地项目文件(例如。, noogle_mcp_server/)以“可编辑”模式安装,允许立即反映代码更改。
此环境提供了Nix可重复性的好处,同时为Python项目保持了灵活的开发体验。