Noogle服务器
该项目提供了一个工具,用于从以下位置查询Nix内置和Nixpkgs函数文档 noogle.dev。它利用 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项目保持了灵活的开发体验。
