From 44c02347399410415b8c152f2e17284bb9b0bf15 Mon Sep 17 00:00:00 2001 From: m3tm3re
Date: Tue, 31 Mar 2026 13:30:47 +0200 Subject: [PATCH] chore: update mcp config --- flake.lock | 61 +++++++----- flake.nix | 4 + home/features/coding/default.nix | 19 +--- home/features/coding/opencode.nix | 155 +++++++++++++----------------- 4 files changed, 112 insertions(+), 127 deletions(-) diff --git a/flake.lock b/flake.lock index ceae709..6abe372 100644 --- a/flake.lock +++ b/flake.lock @@ -60,11 +60,11 @@ ] }, "locked": { - "lastModified": 1774509076, - "narHash": "sha256-3Z/1xfP4jJsSONprD5rMLpag+YFVDCkfGg1rY5+w20s=", + "lastModified": 1774647994, + "narHash": "sha256-rlag0DprIbYK12lsHyYtLcKwTKi1K0YHIy6v01+r9p8=", "owner": "basecamp", "repo": "basecamp-cli", - "rev": "3d601714b184004af17e169d227f15afd14bc5f9", + "rev": "c42190e9aaa135cc99e8ae0af388ed5b88c10c37", "type": "github" }, "original": { @@ -363,11 +363,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1774682581, - "narHash": "sha256-LLeo1dqUipMDjaIcZ9XCXU7gjL5S1Zi9ZfyATJEx/DM=", + "lastModified": 1774928491, + "narHash": "sha256-blqxzOmDdR35BjHeA8V6NeoQot4mysWy8N8ZMiHyEsk=", "owner": "numtide", "repo": "llm-agents.nix", - "rev": "827aba851e05853a583ec618d96ff0d7c07c5038", + "rev": "fb1dfb5960aa4b8a91995f8f99ec2452e5052dbe", "type": "github" }, "original": { @@ -385,8 +385,8 @@ "openspec": "openspec" }, "locked": { - "lastModified": 1774687878, - "narHash": "sha256-xkw2bR2IEwlwaurw15riy5VvooGnUbvg80ElCnzp5uw=", + "lastModified": 1774929434, + "narHash": "sha256-EoPvygxt6RmX501/51vp7UOMicyklgcRVtq5gsSlDYE=", "path": "/home/m3tam3re/p/NIX/nixpkgs", "type": "path" }, @@ -529,11 +529,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1774532607, - "narHash": "sha256-koMw5uDa2TwQ3/lZ49Jiy4Qj1lNjv80YnCen11P+uKY=", + "lastModified": 1774835230, + "narHash": "sha256-TQg2v9bufA/37dxtBzP9/gZeyxLDr5MIrvgV1Kv6FjU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5f84fa27a537e6899c9f636f8810df05fc625cb", + "rev": "8155abb4814accbfe9a36b7e67d622777a9acde2", "type": "github" }, "original": { @@ -609,11 +609,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1774273680, - "narHash": "sha256-a++tZ1RQsDb1I0NHrFwdGuRlR5TORvCEUksM459wKUA=", + "lastModified": 1774610258, + "narHash": "sha256-HaThtroVD9wRdx7KQk0B75JmFcXlMUoEdDFNOMOlsOs=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fdc7b8f7b30fdbedec91b71ed82f36e1637483ed", + "rev": "832efc09b4caf6b4569fbf9dc01bec3082a00611", "type": "github" }, "original": { @@ -625,11 +625,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1774386573, - "narHash": "sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc=", + "lastModified": 1774709303, + "narHash": "sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9", + "rev": "8110df5ad7abf5d4c0f6fb0f8f978390e77f9685", "type": "github" }, "original": { @@ -716,16 +716,16 @@ ] }, "locked": { - "lastModified": 1774392635, - "narHash": "sha256-04eOIBHX9e8Brwn+uL/7q8szvRUilr4G0B8eB76dhKU=", + "lastModified": 1774807340, + "narHash": "sha256-OV76SWqiBguUupfbkJMBVrslJoTqSh4epNjEp/HE/cY=", "owner": "anomalyco", "repo": "opencode", - "rev": "0dcdf5f529dced23d8452c9aa5f166abb24d8f7c", + "rev": "e7f94f9b9a3bd8742330e4a7ba8573ac21042c01", "type": "github" }, "original": { "owner": "anomalyco", - "ref": "v1.3.2", + "ref": "v1.3.6", "repo": "opencode", "type": "github" } @@ -772,7 +772,8 @@ "rose-pine-hyprcursor": "rose-pine-hyprcursor", "skills-anthropic": "skills-anthropic", "skills-basecamp": "skills-basecamp", - "skills-kestra": "skills-kestra" + "skills-kestra": "skills-kestra", + "skills-vercel": "skills-vercel" } }, "rose-pine-hyprcursor": { @@ -843,6 +844,22 @@ "type": "github" } }, + "skills-vercel": { + "flake": false, + "locked": { + "lastModified": 1774562450, + "narHash": "sha256-w4vw0I3q+3AtfcQSRBwOvNKFIz2FEOgqsdcCcZ7UllY=", + "owner": "vercel-labs", + "repo": "skills", + "rev": "d95d0cacfd0ebe9677cb96d51c66a8e9d5630f2c", + "type": "github" + }, + "original": { + "owner": "vercel-labs", + "repo": "skills", + "type": "github" + } + }, "systems": { "locked": { "lastModified": 1681028828, diff --git a/flake.nix b/flake.nix index e9c95aa..1727c02 100644 --- a/flake.nix +++ b/flake.nix @@ -61,6 +61,10 @@ url = "github:kestra-io/agent-skills"; flake = false; }; + skills-vercel = { + url = "github:vercel-labs/skills"; + flake = false; + }; }; outputs = { diff --git a/home/features/coding/default.nix b/home/features/coding/default.nix index 3c177d2..79eade7 100644 --- a/home/features/coding/default.nix +++ b/home/features/coding/default.nix @@ -13,29 +13,12 @@ command = "sh"; args = ["-c" "REF_API_KEY=$(cat /run/agenix/ref-key) exec bunx ref-tools-mcp@latest"]; }; - Anytype = { - command = "sh"; - args = ["-c" "OPENAPI_MCP_HEADERS=$(cat /run/agenix/anytype-key) exec bunx @anyproto/anytype-mcp"]; - disabled = true; - }; - Basecamp = { - command = "/home/m3tam3re/p/AI/Basecamp-MCP-Server/venv/bin/python"; - args = ["/home/m3tam3re/p/AI/Basecamp-MCP-Server/basecamp_fastmcp.py"]; - env = { - PYTHONPATH = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server"; - VIRTUAL_ENV = "/home/m3tam3re/p/PYTHON/Basecamp-MCP-Server/venv"; - BASECAMP_ACCOUNT_ID = "5996442"; - }; - disabled = true; - }; Exa = { command = "sh"; args = ["-c" "EXA_API_KEY=$(cat /run/agenix/exa-key) exec bunx exa-mcp-server@latest tools=web_search_exa"]; }; Outline = { - command = "sh"; - args = ["-c" "OUTLINE_API_KEY=$(cat /run/agenix/outline-key) OUTLINE_API_URL=https://wiki.az-gruppe.com/api OUTLINE_DISABLE_DELETE=true exec uv tool run mcp-outline"]; - disabled = true; + url = "https://wiki.az-gruppe.com/mcp"; }; ContextMode = { command = "sh"; diff --git a/home/features/coding/opencode.nix b/home/features/coding/opencode.nix index 6a0b9a3..60e23eb 100644 --- a/home/features/coding/opencode.nix +++ b/home/features/coding/opencode.nix @@ -1,48 +1,20 @@ -{ - inputs, - system, - ... -}: let - pkgs = inputs.nixpkgs.legacyPackages.${system}; -in { - # Skills — composed from custom + external sources - xdg.configFile."opencode/skills".source = inputs.agents.lib.mkOpencodeSkills { - inherit pkgs; - customSkills = "${inputs.agents}/skills"; +{inputs, ...}: { + coding.opencode = { + enable = true; + agentsInput = inputs.agents; + externalSkills = [ { src = inputs.skills-anthropic; - selectSkills = ["docx" "frontend-design" "mcp-builder" "pdf" "mcp-builder"]; - } - { - src = inputs.skills-basecamp; - } - { - src = inputs.skills-kestra; + selectSkills = ["pdf" "docx" "frontend-design"]; } + {src = inputs.skills-vercel;} + {src = inputs.skills-basecamp;} + {src = inputs.skills-kestra;} ]; - }; - # Other config — symlinked directly - xdg.configFile."opencode/context".source = "${inputs.agents}/context"; - xdg.configFile."opencode/commands".source = "${inputs.agents}/commands"; - xdg.configFile."opencode/prompts".source = "${inputs.agents}/prompts"; - - programs.opencode = { - enable = true; - enableMcpIntegration = true; - settings = { - theme = "opencode"; - plugin = ["oh-my-opencode" "opencode-antigravity-auth@beta"]; - agent = - builtins.fromJSON - (builtins.readFile "${inputs.agents}/agents/agents.json"); - formatter = { - alejandra = { - command = ["alejandra" "-q" "-"]; - extensions = [".nix"]; - }; - }; + # AZ-Gruppe LiteLLM endpoint + available models + extraSettings = { provider = { litellm = { npm = "@ai-sdk/openai-compatible"; @@ -52,74 +24,83 @@ in { "gpt-5.2" = { name = "GPT-5.2"; limit = { - context = 200000; - output = 16384; + context = 400000; + output = 128000; }; - modalities = { - input = ["text" "image"]; - output = ["text"]; + }; + "gpt-5.3-codex" = { + name = "GPT-5.3 Codex"; + limit = { + context = 400000; + output = 128000; + }; + }; + "claude-haiku-4-5" = { + name = "Claude Haiku 4.5"; + options = { + thinking = { + type = "enabled"; + budget_tokens = 16000; + }; + }; + limit = { + context = 200000; + output = 64000; }; }; "claude-sonnet-4-6" = { name = "Claude Sonnet 4.6"; + options = { + thinking = { + type = "enabled"; + budget_tokens = 16000; + }; + }; limit = { context = 200000; - output = 16000; - }; - modalities = { - input = ["text" "image"]; - output = ["text"]; + output = 64000; }; }; "claude-opus-4-6" = { name = "Claude Opus 4.6"; + options = { + thinking = { + type = "enabled"; + budget_tokens = 16000; + }; + }; limit = { context = 200000; - output = 32000; - }; - modalities = { - input = ["text" "image"]; - output = ["text"]; + output = 128000; }; }; }; }; }; }; - }; - home.file.".config/opencode/oh-my-opencode.json".text = builtins.toJSON { - "$schema" = "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"; - # google_auth removed - use opencode-antigravity-auth plugin instead (already in plugin array) - agents = { - sisyphus = {model = "zai-coding-plan/glm-5";}; - oracle = {model = "zai-coding-plan/glm-5";}; - librarian = {model = "zai-coding-plan/glm-5";}; - explore = {model = "zai-coding-plan/glm-4.5-air";}; - multimodal-looker = {model = "zai-coding-plan/glm-4.6v";}; - prometheus = {model = "zai-coding-plan/glm-5";}; - metis = {model = "zai-coding-plan/glm-5";}; - momus = {model = "zai-coding-plan/glm-5";}; - atlas = {model = "zai-coding-plan/glm-5";}; - }; - categories = { - visual-engineering = {model = "zai-coding-plan/glm-5";}; - ultrabrain = {model = "zai-coding-plan/glm-5";}; - artistry = {model = "zai-coding-plan/glm-5";}; - quick = {model = "zai-coding-plan/glm-5";}; - unspecified-low = {model = "zai-coding-plan/glm-5";}; - unspecified-high = {model = "zai-coding-plan/glm-5";}; - writing = {model = "zai-coding-plan/glm-5";}; - }; - disabled_mcps = ["context7" "websearch"]; - disabled_hooks = ["comment-checker"]; - git_master = { - commit_footer = false; - include_co_authored_by = false; - }; - experimental = { - truncate_all_tool_outputs = true; - aggressive_truncation = false; + ohMyOpencodeSettings = { + agents = { + sisyphus.model = "litellm/claude-opus-4-6"; + oracle.model = "litellm/claude-sonnet-4-6"; + librarian.model = "litellm/claude-sonnet-4-6"; + explore.model = "litellm/claude-haiku-4-5"; + multimodal-looker.model = "litellm/gpt-5.3-codex"; + prometheus.model = "litellm/claude-opus-4-6"; + metis.model = "litellm/claude-opus-4-6"; + momus.model = "litellm/claude-opus-4-6"; + atlas.model = "litellm/claude-sonnet-4-6"; + }; + categories = { + visual-engineering.model = "zai-coding-plan/glm-5.1"; + ultrabrain.model = "litellm/claude-opus-4-6"; + deep.model = "litellm/claude-sonnet-4-6"; + artistry.model = "zai-coding-plan/glm-5.1"; + quick.model = "litellm/claude-haiku-4-5"; + unspecified-low.model = "litellm/claude-sonnet-4-6"; + unspecified-high.model = "litellm/claude-opus-4-6"; + writing.model = "zai-coding-plan/glm-5.1"; + }; }; }; }