使用说明

项目简介

Meru Alfred 是一个基于 Model Context Protocol (MCP) 构建的服务器,专注于简化 Nix 配置管理。它允许用户通过 Claude Desktop 等支持 MCP 协议的 LLM 客户端,以自然语言的方式查看和修改 Nix Darwin 或 Home Manager 的配置文件。Alfred 充当 LLM 和本地 Nix 配置之间的桥梁,将用户的自然语言指令转化为对 Nix 配置文件的操作。

主要功能点

  • Nix 配置管理: 支持 Nix Darwin 和 Home Manager 的配置管理,允许用户通过 LLM 客户端查看和修改 Nix 配置文件。
  • 资源管理: 将 Nix 配置文件作为资源暴露给 LLM 客户端,客户端可以读取这些文件的内容。
  • 工具集成: 提供 'update_nix_config' 和 'get_nix_config' 工具,允许 LLM 客户端调用以更新或读取 Nix 配置文件。
  • Prompt 模板: 内置 'nix_config_manager' Prompt 模板,引导 LLM 以 Plan+Apply 循环的方式与用户交互,确保配置变更的可控性和可审查性。
  • 本地文件系统访问: 通过 'file://' URI 访问本地 Nix 配置文件,实现对本地配置文件的读取和修改。

安装步骤

  1. 安装 uv: 按照 uv 官方文档 指示安装 uv 包管理器。uv 被用于运行 Alfred 服务器。

  2. 克隆仓库: 将 'meru' 仓库克隆到本地。

    git clone https://github.com/valkyrie-sh/meru.git
    cd meru
  3. 配置 Claude Desktop: 打开 Claude Desktop 的配置文件 'claude_desktop_config.json' (通常位于 '/Users/<username>/Library/Application Support/Claude/claude_desktop_config.json'),添加以下 MCP 服务器配置。如果文件不存在,则创建它。

    {
      "mcpServers": {
        "alfred": {
          "command": "uv",
          "args": [
            "--directory",
            "<path_to_repo>/meru/alfred",  // 将 <path_to_repo> 替换为 meru 仓库在您本地的路径,例如 "/Users/yourusername/meru"
            "run",
            "alfred"
          ]
        }
      }
    }

    配置参数说明:

    • 'server name': 'alfred' - MCP 服务器的名称,在 Claude Desktop 中用于标识和选择该服务器。
    • 'command': 'uv' - 启动 MCP 服务器的命令,这里使用 uv 包管理器。
    • 'args': 启动命令的参数列表,包括:
      • '--directory': '<path_to_repo>/meru/alfred' - 指定 Alfred 服务器代码所在的目录。请务必替换为您的实际仓库路径。
      • 'run': uv 命令的子命令,用于运行 Python 脚本。
      • 'alfred': 要运行的 Python 脚本名称,对应 'alfred/src/alfred/init.py' 中的 'main' 函数。

基本使用方法

  1. 启动 Claude Desktop: 确保 Claude Desktop 应用程序已启动。

  2. 在 Claude Desktop 中包含 Nix 配置文件: 在 Claude Desktop 的对话上下文中,包含您想要管理的 Nix 配置文件。例如,您可以复制粘贴 'flake.nix' 文件的内容到对话框中,或者使用 Claude Desktop 的文件上传功能。

  3. 在 Claude Desktop 中包含 Nix 配置管理 Prompt: 在 Claude Desktop 的 Prompt 设置中,选择或添加名为 'nix_config_manager' 的 Prompt。这将指示 Claude 使用 Alfred 服务器提供的 Nix 配置管理 Prompt 模板。

  4. 与 Claude 对话: 现在您可以开始与 Claude 进行对话,使用自然语言指令来查看和修改 Nix 配置。例如:

    • "我想添加一个名为 'tmux' 的包到我的 Nix 配置中。"
    • "请查看我的 'flake.nix' 文件,确认 'nixpkgs.url' 的版本。"
    • "将 'home-manager' 的输入源更新到最新的 release-24.11 分支。"

    Alfred 服务器会接收来自 Claude 的请求,并根据您的指令,通过提供的工具和 Prompt 模板,与 Nix 配置文件进行交互,并将结果返回给 Claude。Claude 会根据 Alfred 的响应,以 Plan+Apply 的方式与您进行交互,确保配置变更符合您的预期。

注意:

  • 目前 Alfred 服务器仅支持 MacOS 系统。
  • Alfred 服务器默认配置为管理 '~/.config/nix-darwin' 或 '~/.config/home-manager' 目录下的 Nix 配置文件。

信息

分类

开发者工具