{ nixConfig = { extra-substituters = [ "https://nix-community.cachix.org" ]; extra-trusted-public-keys = [ "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; description = "MCP Server Packages for Nix"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; flake-utils.url = "github:numtide/flake-utils"; jailed-agents.url = "git+ssh://gitea@gitea.bueso.eu/luis/jailed-agents"; }; outputs = { self, nixpkgs, flake-utils, jailed-agents, ... }: { # Overlay that adds all MCP packages to nixpkgs overlays.default = import ./overlays/default.nix; } // flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; overlays = [ self.overlays.default ]; }; # Import all MCP packages mcpPackages = import ./packages { inherit pkgs; }; # List of all MCP server packages (for devShell) allMcpServers = builtins.attrValues mcpPackages ++ [ pkgs.mcp-nixos ]; in { # Export all packages packages = mcpPackages // { default = pkgs.symlinkJoin { name = "mcp-servers"; paths = builtins.attrValues mcpPackages; }; }; devShells.default = pkgs.mkShell { packages = allMcpServers ++ [ pkgs.git (jailed-agents.lib.${system}.makeJailed system { agentTool = "opencode"; extraPkgs = allMcpServers; }) ]; }; } ); }