{ lib, stdenv, fetchFromGitHub, makeWrapper, python3, }: let python = python3.withPackages ( ps: with ps; [ fastmcp httpx ] ); in stdenv.mkDerivation rec { pname = "slskd-mcp"; version = "0.1.0-unstable-2026-07-28"; src = fetchFromGitHub { owner = "abl030"; repo = "slskd-mcp"; rev = "08e4373f41fddcceff8ea3240323e0c6258a373e"; hash = "sha256-ELUoAOOWmNoxoTjPxxAY00exN56lngSPs4wtn/GadQU="; }; nativeBuildInputs = [ makeWrapper ]; # generated/server.py is tracked in git; no build step needed. dontBuild = true; installPhase = '' runHook preInstall mkdir -p $out/lib/slskd-mcp $out/bin cp -r $src/generated $out/lib/slskd-mcp/ makeWrapper ${python}/bin/fastmcp $out/bin/slskd-mcp \ --add-flags "run $out/lib/slskd-mcp/generated/server.py" runHook postInstall ''; meta = with lib; { description = "MCP server for slskd (Soulseek daemon) - search, download, browse peers, private messages"; homepage = "https://github.com/abl030/slskd-mcp"; license = licenses.mit; mainProgram = "slskd-mcp"; platforms = platforms.all; }; }