79 lines
2.2 KiB
Nix
79 lines
2.2 KiB
Nix
with import <nixpkgs> { };
|
|
|
|
let
|
|
# 1. Import mcp-servers-nix (classic default.nix) from GitHub.
|
|
# This provides `mcpServers.lib.mkConfig` and the individual server packages.
|
|
mcpServers = import (builtins.fetchTarball {
|
|
url = "https://github.com/natsukium/mcp-servers-nix/archive/refs/heads/main.tar.gz";
|
|
# Optionally pin with sha256 once known.
|
|
}) { inherit pkgs; };
|
|
|
|
# 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"
|
|
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 = customServers;
|
|
};
|
|
};
|
|
|
|
vscodeMcp = mcpServers.lib.mkConfig pkgs {
|
|
flavor = "vscode-workspace";
|
|
programs = mcpPrograms;
|
|
settings = {
|
|
servers = customServers;
|
|
};
|
|
};
|
|
|
|
in
|
|
|
|
pkgs.mkShell {
|
|
# 4. Bring in 'jq' so you can inspect the JSON if needed.
|
|
buildInputs = [ pkgs.jq ];
|
|
|
|
# 5. On shell entry, write out 'claude_desktop_config.json' in the project root.
|
|
shellHook = ''
|
|
if [ -f ./.roo/mcp.json ]; then
|
|
echo "Removing old mcp.json…"
|
|
rm ./.roo/mcp.json
|
|
fi
|
|
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."
|
|
'';
|
|
}
|