update
NixOS Configuration CI / Nix Flake Check (push) Successful in 8s

This commit is contained in:
luis committed 2026-09-23 12:04:12 +02:00
1 parent eab27798b2
commit 471a7b4fbf
20 files changed
+33235 -1661

No files matched your search

+1
View File
@@ -22,6 +22,7 @@ This repository provides Nix derivations for MCP (Model Context Protocol) server
| pdf-reader-mcp | Production‑ready PDF processing with parallel processing | TypeScript | | pdf-reader-mcp | Production‑ready PDF processing with parallel processing | TypeScript |
| rust-research-mcp | Accumulate and organize academic knowledge | Rust | | rust-research-mcp | Accumulate and organize academic knowledge | Rust |
| simple-web-search-mcp | Zero-config web search and page reading for LLMs | TypeScript | | simple-web-search-mcp | Zero-config web search and page reading for LLMs | TypeScript |
| mcp-searxng | Privacy-respecting web search and URL reading via SearXNG | TypeScript |
| transmission-mcp | MCP server for the Transmission BitTorrent client | Python | | transmission-mcp | MCP server for the Transmission BitTorrent client | Python |
| sabnzbd-mcp | MCP server for SABnzbd download management | Python | | sabnzbd-mcp | MCP server for SABnzbd download management | Python |
| jellyfin-mcp | MCP server for Jellyfin — search, playback, metadata, admin | Go | | jellyfin-mcp | MCP server for Jellyfin — search, playback, metadata, admin | Go |
Generated
+1 -18
View File
@@ -18,24 +18,7 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs"
"rust-nixpkgs": "rust-nixpkgs"
}
},
"rust-nixpkgs": {
"locked": {
"lastModified": 1786599213,
"narHash": "sha256-yNJd40f11EzXBjSByCB7IPpeFFAdeoSKKM67dGkfFoU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0e251e24a4f24e036a084b6b4b2d2491af4167f4",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0e251e24a4f24e036a084b6b4b2d2491af4167f4",
"type": "github"
} }
} }
}, },
+1
View File
@@ -60,6 +60,7 @@
packages = builtins.attrValues mcpPackages ++ [ pkgs.mcp-nixos pkgs.git ]; packages = builtins.attrValues mcpPackages ++ [ pkgs.mcp-nixos pkgs.git ];
shellHook = '' shellHook = ''
export SEARXNG_BASE_URL="https://search.bueso.eu" export SEARXNG_BASE_URL="https://search.bueso.eu"
export SEARXNG_URL="https://search.bueso.eu"
''; '';
}; };
} }
+13
View File
@@ -39,6 +39,14 @@
"command": ["simple-web-search-mcp"], "command": ["simple-web-search-mcp"],
"enabled": true "enabled": true
}, },
"mcp-searxng": {
"type": "local",
"command": ["mcp-searxng"],
"enabled": true,
"environment": {
"SEARXNG_URL": "https://search.bueso.eu"
}
},
"rust-research": { "rust-research": {
"type": "local", "type": "local",
"command": ["rust-research-mcp"], "command": ["rust-research-mcp"],
@@ -96,6 +104,11 @@
"type": "local", "type": "local",
"command": ["mcp-score", "serve"], "command": ["mcp-score", "serve"],
"enabled": true "enabled": true
},
"docx": {
"type": "local",
"command": ["docx-mcp"],
"enabled": true
} }
} }
} }
+2 -2
View File
@@ -6,14 +6,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "applemusic-mcp"; pname = "applemusic-mcp";
version = "0.18.3"; version = "0.20.1";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "epheterson"; owner = "epheterson";
repo = "applemusic-mcp"; repo = "applemusic-mcp";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-VHW7ct824hW+Gv3x6tMDGnvx3Hj/0ZDqGjc7yQOaf7U="; hash = "sha256-T956sblq/4TrAXkY4cwIFDPW6a2bjzyeyRyejYB4ARc=";
}; };
build-system = with python3Packages; [ build-system = with python3Packages; [
+1
View File
@@ -30,5 +30,6 @@
slskd-mcp = pkgs.callPackage ./slskd-mcp/package.nix { }; slskd-mcp = pkgs.callPackage ./slskd-mcp/package.nix { };
yarr = pkgs.callPackage ./yarr/package.nix { }; yarr = pkgs.callPackage ./yarr/package.nix { };
pdf-mcp = pkgs.callPackage ./pdf-mcp/package.nix { }; pdf-mcp = pkgs.callPackage ./pdf-mcp/package.nix { };
mcp-searxng = pkgs.callPackage ./mcp-searxng/package.nix { };
# example-mcp-server = pkgs.callPackage ./example-mcp-server/package.nix { }; # example-mcp-server = pkgs.callPackage ./example-mcp-server/package.nix { };
} }
+3 -2
View File
@@ -6,14 +6,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "duckduckgo-mcp-server"; pname = "duckduckgo-mcp-server";
version = "0.4.0"; version = "0.6.1";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nickclyde"; owner = "nickclyde";
repo = "duckduckgo-mcp-server"; repo = "duckduckgo-mcp-server";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-g1mpBrhuCt3g/XnUfHoY8lJDMizINypikj8Lqk2LVuE="; hash = "sha256-X99edQE4317/WEadi/QQnLZHpWCMBW2ipa8am4lfO2Q=";
}; };
build-system = [ python3Packages.hatchling ]; build-system = [ python3Packages.hatchling ];
@@ -21,6 +21,7 @@ python3Packages.buildPythonApplication rec {
dependencies = with python3Packages; [ dependencies = with python3Packages; [
beautifulsoup4 beautifulsoup4
httpx httpx
httpcore
mcp mcp
]; ];
@@ -71,14 +71,14 @@ let
in in
python313Packages.buildPythonApplication rec { python313Packages.buildPythonApplication rec {
pname = "kindly-web-search-mcp-server"; pname = "kindly-web-search-mcp-server";
version = "0.1.8-unstable"; version = "0.1.9-unstable";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Shelpuk-AI-Technology-Consulting"; owner = "Shelpuk-AI-Technology-Consulting";
repo = "kindly-web-search-mcp-server"; repo = "kindly-web-search-mcp-server";
rev = "2b76afb37bf311facbde6750d0a0c0cbdfb8fec2"; rev = "52a4e480d8041f8d4f388cee1ddecbd8e1ab01c7";
hash = "sha256-90QHr2FPiMSwKXmjlZ2W9NIQvj3LDXzYIq6m/Z+sJMw="; hash = "sha256-Mf3PMUic3XiNkiABRy6DrEhoGwcqq/xThU4ROO4S8dY=";
}; };
build-system = with python313Packages; [ build-system = with python313Packages; [
@@ -95,10 +95,18 @@ python313Packages.buildPythonApplication rec {
pymupdf pymupdf
fastmcp fastmcp
trafilatura trafilatura
starlette
uvicorn
]; ];
nativeBuildInputs = [ makeWrapper ]; nativeBuildInputs = [ makeWrapper ];
# Upstream pins floors newer than nixpkgs currently ships (starlette 1.6,
# pydantic 2.13, beautifulsoup4 4.15, trafilatura 2.2, ...). The APIs this
# server actually uses are present in the nixpkgs versions, so the strict
# runtime-deps floor check is skipped here.
dontCheckRuntimeDeps = true;
# Wrap with Chromium path for headless browser content extraction # Wrap with Chromium path for headless browser content extraction
postInstall = '' postInstall = ''
wrapProgram $out/bin/kindly-web-search-mcp-server \ wrapProgram $out/bin/kindly-web-search-mcp-server \
+3 -3
View File
@@ -6,14 +6,14 @@
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "mcp-email-server"; pname = "mcp-email-server";
version = "1.4.1"; version = "1.9.1";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "Wh1isper"; owner = "Wh1isper";
repo = "mcp-email-server"; repo = "mcp-email-server";
rev = "a1668a912db08373cc109b7482363129c75fd646"; rev = "1.9.1";
hash = "sha256-Zt+198bQMthp6Mxmmsd7eTh9iybqOXWuVqLylzfUiIg="; hash = "sha256-FGjpRkVOFLkqY45Wl1lBuSWZvUnkyESZPeAB+d+1KYw=";
}; };
build-system = with python3Packages; [ build-system = with python3Packages; [
+5 -5
View File
@@ -6,10 +6,10 @@
}: }:
let let
# music21 is not in nixpkgs; vendor it (upstream mcp-score pins >=9.0,<10) # music21 is not in nixpkgs; vendor it (upstream mcp-score pins >=10.5,<11)
music21 = python313Packages.buildPythonPackage rec { music21 = python313Packages.buildPythonPackage rec {
pname = "music21"; pname = "music21";
version = "9.9.2"; version = "10.5.0";
format = "wheel"; format = "wheel";
src = fetchPypi { src = fetchPypi {
@@ -17,7 +17,7 @@ let
format = "wheel"; format = "wheel";
dist = "py3"; dist = "py3";
python = "py3"; python = "py3";
hash = "sha256-ZIAQq40TKNCxB0bO8UV+hLEidM0xYkgifpbSHielGMo="; hash = "sha256-mSTv9fv1hJDmfL87eKWLpTBA53woGTDTVK8yp0fpRgY=";
}; };
propagatedBuildInputs = with python313Packages; [ propagatedBuildInputs = with python313Packages; [
@@ -50,8 +50,8 @@ python313Packages.buildPythonApplication rec {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tskovlund"; owner = "tskovlund";
repo = "mcp-score"; repo = "mcp-score";
rev = "3ff9d4b6504fcee5032c44fdcf7dc1d7a21a4b5d"; rev = "b2155a59119103c39a37f14166d0d6920e564c76";
hash = "sha256-zrpvzxi8AbF5/etuvMZLni4HSFBYGRe55rpKJJEAg60="; hash = "sha256-XYZjGa7pWaVmZ4dF/vOLkrYjSjNXP/148DQjujMdvIU=";
}; };
build-system = with python313Packages; [ build-system = with python313Packages; [
File diff suppressed because it is too large. Load diff
+32
View File
@@ -0,0 +1,32 @@
{
lib,
buildNpmPackage,
fetchzip,
}:
buildNpmPackage rec {
pname = "mcp-searxng";
version = "2.4.0";
src = fetchzip {
url = "https://registry.npmjs.org/mcp-searxng/-/mcp-searxng-${version}.tgz";
hash = "sha256-WB1p3+IDPpRzXh1WSFbWA3ezX8Ih2FsZlV3D3od/v1A=";
};
npmDepsHash = "sha256-srchzmiehwh4wOzhXfDbHiT7t4i8FPRSlakdUGIF/Ks=";
postPatch = ''
cp ${./package-lock.json} package-lock.json
'';
# dist/ is already built in the npm tarball
dontNpmBuild = true;
meta = with lib; {
description = "MCP server integrating SearXNG for privacy-respecting web search and URL reading";
homepage = "https://github.com/ihor-sokoliuk/mcp-searxng";
license = licenses.mit;
mainProgram = pname;
platforms = platforms.all;
};
}
+24788 -230
View File
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -8,14 +8,14 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "n8n-mcp"; pname = "n8n-mcp";
version = "2.35.1"; version = "2.87.0";
src = fetchzip { src = fetchzip {
url = "https://registry.npmjs.org/${pname}/-/${pname}-${version}.tgz"; url = "https://registry.npmjs.org/${pname}/-/${pname}-${version}.tgz";
hash = "sha256-CWHH1ACcMCWkLahV5fTO0/k5OtfVUKNldHseDP8EfEk="; hash = "sha256-YEINthnVgy5nc0KPPHWhXBiiA5vR/ThKqie9lJ6d3co=";
}; };
npmDepsHash = "sha256-x9ziuYxZPQMqkB2HA4HmGkpge7NGp9t4t4aNTi0XXn4="; npmDepsHash = "sha256-oy3aR16bTuyztbY3rgTo2z66/4kCk2BNE4BLZjhtki8=";
postPatch = '' postPatch = ''
cp ${./package-lock.json} package-lock.json cp ${./package-lock.json} package-lock.json
+2 -2
View File
@@ -6,11 +6,11 @@
buildNpmPackage rec { buildNpmPackage rec {
pname = "navidrome-mcp"; pname = "navidrome-mcp";
version = "2.2.0"; version = "2.3.0";
src = fetchzip { src = fetchzip {
url = "https://registry.npmjs.org/${pname}/-/${pname}-${version}.tgz"; url = "https://registry.npmjs.org/${pname}/-/${pname}-${version}.tgz";
hash = "sha256-1wZyM0GJUrQfzBK1tWqqIcVk90KUv/9wt2ZpRobQp/A="; hash = "sha256-npUgzJpB0DaFuzU/1SuOIOVvd2gqZtb1Kos7NC8/Pd4=";
}; };
npmDepsHash = "sha256-58OZ4qVfeN+0LVzcSJQHQqiY66gPSGWI6ht/4fMp0oQ="; npmDepsHash = "sha256-58OZ4qVfeN+0LVzcSJQHQqiY66gPSGWI6ht/4fMp0oQ=";
+2 -2
View File
@@ -132,14 +132,14 @@ let
in in
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "nextcloud-mcp-server"; pname = "nextcloud-mcp-server";
version = "0.173.0"; version = "0.184.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "cbcoutinho"; owner = "cbcoutinho";
repo = "nextcloud-mcp-server"; repo = "nextcloud-mcp-server";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-wN0LUoKD4qR00H1eTeIHEoAmSEC7YY+sQ2HtY6oerjE="; hash = "sha256-IfICpyuSZRZBwAmZ6onWTT39Gc6oFYzTdtEZqawGZC4=";
}; };
build-system = [ python3Packages.uv-build ]; build-system = [ python3Packages.uv-build ];
+3740 -1379
View File
File diff suppressed because it is too large. Load diff
+13 -4
View File
@@ -2,24 +2,33 @@
lib, lib,
buildNpmPackage, buildNpmPackage,
fetchzip, fetchzip,
autoPatchelfHook,
stdenv,
}: }:
buildNpmPackage rec { buildNpmPackage rec {
pname = "pdf-reader-mcp"; pname = "pdf-reader-mcp";
version = "2.3.0"; version = "4.1.3";
src = fetchzip { src = fetchzip {
url = "https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-${version}.tgz"; url = "https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-${version}.tgz";
hash = "sha256-nLtTYE5pSLigAQqsWx3TvntOign30vUJ4jaCDScm9oY="; hash = "sha256-oxEL7lwEJdhPoA4p/HiQeMp9TP7al1z2KpiPTUPqn6c=";
}; };
npmDepsHash = "sha256-Z+C1pGJb1gCUR4qlM9ZSjhevqWPdCOVhL631GFaehbc="; npmDepsHash = "sha256-3XohzskNUMGkIgZvQie9DA8DfHxJZGD86n+uVZPxMdg=";
# The runtime launcher spawns a prebuilt Rust binary shipped in the matching
# optional platform package. On Linux it is dynamically linked against glibc,
# so its interpreter and RPATH must be patched for NixOS.
nativeBuildInputs = lib.optional stdenv.isLinux autoPatchelfHook;
buildInputs = lib.optional stdenv.isLinux stdenv.cc.cc.lib;
postPatch = '' postPatch = ''
cp ${./package-lock.json} package-lock.json cp ${./package-lock.json} package-lock.json
''; '';
# dist/ is already built in the npm tarball # dist/ and the native Rust binary ship prebuilt; there is no build step.
dontNpmBuild = true; dontNpmBuild = true;
meta = with lib; { meta = with lib; {
+3 -3
View File
@@ -6,13 +6,13 @@
let let
wheel = fetchurl { wheel = fetchurl {
url = "https://files.pythonhosted.org/packages/6b/9c/dc73804f0f62208d59794080d009fb86b7ac6e9d4b5ad452791355dcfb51/transmission_mcp-1.0.1-py3-none-any.whl"; url = "https://files.pythonhosted.org/packages/7e/81/fb2a2f2073d22b0a18c4c96b9c9ff386c3d0b49b6263097bf646d8b72800/transmission_mcp-1.1.0-py3-none-any.whl";
hash = "sha256-1TKb75iNKgMqw0YVZ+rDEac4IyCuj94y1OMzqQROCrI="; hash = "sha256-J22L3lY+XVdLdZeu8KuFdly0BkFUoAbX4GE/9a5kKSU=";
}; };
in in
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "transmission-mcp"; pname = "transmission-mcp";
version = "1.0.1"; version = "1.1.0";
format = "wheel"; format = "wheel";
src = wheel; src = wheel;
+5 -5
View File
@@ -10,7 +10,7 @@ let
# Internal dependency: pyzotero (not in nixpkgs) # Internal dependency: pyzotero (not in nixpkgs)
pyzotero = python3Packages.buildPythonPackage rec { pyzotero = python3Packages.buildPythonPackage rec {
pname = "pyzotero"; pname = "pyzotero";
version = "1.13.5"; version = "1.14.0";
format = "wheel"; format = "wheel";
src = fetchPypi { src = fetchPypi {
@@ -18,7 +18,7 @@ let
format = "wheel"; format = "wheel";
dist = "py3"; dist = "py3";
python = "py3"; python = "py3";
hash = "sha256-KoHXv+ix6kRzvLUPOPBeAeAJaO/3bBxHi1PwUa5rDcg="; hash = "sha256-OUoU8HTEFwVfzqopcLWUzpJaYJTJ09zIpzTgdCbs9BU=";
}; };
propagatedBuildInputs = with python3Packages; [ propagatedBuildInputs = with python3Packages; [
@@ -62,21 +62,21 @@ let
in in
python3Packages.buildPythonApplication rec { python3Packages.buildPythonApplication rec {
pname = "zotero-mcp"; pname = "zotero-mcp";
version = "0.9.1"; version = "0.13.0";
pyproject = true; pyproject = true;
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "54yyyu"; owner = "54yyyu";
repo = "zotero-mcp"; repo = "zotero-mcp";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-1A4aKGLFUmY+abLKhxmnSd3KaJtC8onda4/MkjrybIg="; hash = "sha256-xL54SbaAczkwk4tkan+wVVTv9ACKIC6hcAADI2GTnxk=";
}; };
build-system = with python3Packages; [ build-system = with python3Packages; [
hatchling hatchling
]; ];
# Core dependencies (from pyproject.toml v0.9.1) # Core dependencies (from pyproject.toml v0.13.0)
dependencies = with python3Packages; [ dependencies = with python3Packages; [
pyzotero pyzotero
python-dotenv python-dotenv