nix-dotfiles/hm/mcp.nix

74 lines
2.1 KiB
Nix

{ unstable, ... }: {
programs = {
mcp = {
enable = true;
servers = {
mcp-nixos = {
command = "${unstable.mcp-nixos}/bin/mcp-nixos";
args = [ "--" ];
};
mcp-ctrl = {
command = "nix";
args = [ "run" "gitlab:fberto/mcp-ctrl?host=gitlab.cern.ch" ];
};
};
};
opencode = {
enable = true;
package = unstable.opencode;
enableMcpIntegration = true;
settings = {
provider.ollama = {
npm = "@ai-sdk/openai-compatible";
name = "Ollama (local)";
options.baseURL = "http://localhost:11434/v1";
models = {
"mashriram/gemma3nTools:e4b".name = "gemma3nTools:e4b";
"mashriram/gemma3nTools:e2b".name = "gemma3nTools:e2b";
"devstral-small-2:24b".name = "devstral-small-2:24b";
"devstral-small-2:24b-instruct-2512-q8_0".name = "devstral-small-2:24b-instruct-2512-q8_0";
"deepseek-r1:14b".name = "deepseek-r1:14b";
"deepseek-r1:8b".name = "deepseek-r1:8b";
"gemma3n:e2b".name = "gemma3n:e2b";
"gemma3:latest".name = "gemma3:latest";
"qwen3:4b".name = "qwen3:4b";
"qwen3-vl:4b".name = "qwen3-vl:4b";
"qwen3-vl:8b".name = "qwen3-vl:8b";
"qwen3:14b".name = "qwen3:14b";
"qwen3:8b".name = "qwen3:8b";
"gemma3:12b".name = "gemma3:12b";
"gemma3n:e4b".name = "gemma3n:e4b";
"granite3.3:8b".name = "granite3.3:8b";
"glm-4.6:cloud".name = "glm-4.6:cloud";
};
};
tools = {
bash = true;
edit = true;
write = true;
read = true;
grep = true;
glob = true;
list = true;
patch = true;
todowrite = true;
todoread = true;
webfetch = true;
lsp = true;
skill = true;
question = true;
};
lsp = {
python = {
command = [ "ruff" "server" ];
extensions = [ ".py" ];
};
};
};
};
};
}