From 03d3ff5712034b18dbd467da1af25c598e9c5821 Mon Sep 17 00:00:00 2001 From: Dominik Polakovics Date: Fri, 20 Jun 2025 14:37:53 +0200 Subject: [PATCH] feat: refactor mcp configuration to separate programs and custom servers --- shell.nix | 71 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 25 deletions(-) diff --git a/shell.nix b/shell.nix index c9745c9..8278206 100644 --- a/shell.nix +++ b/shell.nix @@ -10,31 +10,42 @@ let # 3. Build the JSON configuration string with exactly fetch, memory, and brave-search. # We assume you store your Brave Search API key in "~/.config/mcp-servers/brave.env" - mcpConfig = mcpServers.lib.mkConfig pkgs { - programs = { - # fetch.enable = true; - filesystem = { - enable = true; - args = [ "/home/${builtins.getEnv "USER"}/projects/cloonar/cloonar-nixos/" ]; - }; - git = { - enable = true; - args = [ "/home/${builtins.getEnv "USER"}/projects/cloonar/cloonar-nixos/" ]; - }; - sequential-thinking.enable = true; - # memory.enable = true; - "brave-search" = { - enable = true; - envFile = "/home/${builtins.getEnv "USER"}/.config/mcp-servers/brave.env"; - }; + mcpPrograms = { + # fetch.enable = true; + filesystem = { + enable = true; + args = [ "/home/${builtins.getEnv "USER"}/projects/cloonar/cloonar-nixos/" ]; }; + git = { + enable = true; + args = [ "/home/${builtins.getEnv "USER"}/projects/cloonar/cloonar-nixos/" ]; + }; + sequential-thinking.enable = true; + # memory.enable = true; + "brave-search" = { + enable = true; + envFile = "/home/${builtins.getEnv "USER"}/.config/mcp-servers/brave.env"; + }; + }; + customServers = { + nixos = { + command = "nix"; + args = ["run" "github:utensils/mcp-nixos" "--"]; + }; + }; + + rooCodeMcp = mcpServers.lib.mkConfig pkgs { + programs = mcpPrograms; settings = { - mcpServers = { - nixos = { - command = "nix"; - args = ["run" "github:utensils/mcp-nixos" "--"]; - }; - }; + mcpServers = customServers; + }; + }; + + vscodeMcp = mcpServers.lib.mkConfig pkgs { + flavor = "vscode-workspace"; + programs = mcpPrograms; + settings = { + servers = customServers; }; }; @@ -50,8 +61,18 @@ pkgs.mkShell { echo "Removing old mcp.json…" rm ./.roo/mcp.json fi - echo "Generating mcp.json…" - ln -s ${builtins.toString mcpConfig} ./.roo/mcp.json + mkdir -p ./.roo + echo "Generating roo code mcp.json…" + ln -s ${builtins.toString rooCodeMcp} ./.roo/mcp.json + echo "✅ mcp.json has been created." + + if [ -f ./.vscode/mcp.json ]; then + echo "Removing old mcp.json…" + rm ./.vscode/mcp.json + fi + mkdir -p ./.vscode + echo "Generating vscode mcp.json…" + ln -s ${builtins.toString vscodeMcp} ./.vscode/mcp.json echo "✅ mcp.json has been created." ''; }