From 703723b368f94da17b09f5348a9df854305a9030 Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Sat, 31 Jan 2026 17:39:52 -0600 Subject: [PATCH] mcp dev environment --- modules/dev/mcp.nix | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 modules/dev/mcp.nix diff --git a/modules/dev/mcp.nix b/modules/dev/mcp.nix new file mode 100644 index 0000000..3606da4 --- /dev/null +++ b/modules/dev/mcp.nix @@ -0,0 +1,53 @@ +{ + config, + inputs, + lib, + pkgs, + ... +}: +let + python = pkgs.python3.withPackages ( + ps: + builtins.attrValues { + inherit (ps) + click + pytest + black + ruff + ; + } + ); + packages = builtins.attrValues { + inherit python; + inherit (pkgs) codex; # codex-cli from openai + }; +in +{ + options = { + my.dev.mcp = { + enable = lib.mkEnableOption "Install MCP tooling globally"; + users = lib.mkOption { + type = inputs.self.lib.usersOptionType lib; + default = config.my.toggleUsers.dev; + description = "Users to install MCP packages for"; + }; + }; + devShells.mcp = lib.mkOption { + type = lib.types.package; + default = pkgs.mkShell { + inherit packages; + name = "mcp-dev-shell"; + shellHook = '' + export CODEX_HOME=$PWD/.codex + export PYTHONPATH=$PWD/scripts/mcp-server/src + alias mcp-run="python -m mcp_server.server" + echo "MCP shell ready: codex + python + PYTHONPATH set" + ''; + }; + description = "MCP + Codex shell for this repo"; + }; + }; + config = lib.mkIf config.my.dev.mcp.enable { + users.users = inputs.self.lib.mkUserAttrs lib config.my.dev.mcp.users { inherit packages; }; + }; +}