MCP server for reading, rendering, and searching PDF files using PyMuPDF.
Exposes get_page_text, get_page_image (render page as PNG), search_text.
Python, so it spawns reliably under the mcp-gateway stdio backend.
Building yarr from source (Rust) takes ~5+ min and times out the
config-nixos CI runner (3h limit) when combined with the full
perlis+wilkes+relay flake check. Use the pre-built x86_64-linux binary
from GitHub releases instead — fast fetch, no Rust toolchain needed.
Removes the rust-nixpkgs flake input (no longer needed).
yarr needs rustc 1.97.1 but the main nixpkgs input (pinned by flake.lock)
has rustc 1.95.0. Bumping the main input breaks aioimaplib (email server
dep), so add a separate rust-nixpkgs input pinned to a newer rev.
yarr is excluded from the overlay (which uses the main nixpkgs) — build
it via 'nix build .#yarr' on the flake directly.
Replaces the Node.js-based mcp-arr-server and jellyfin-mcp backends
in the gateway with a single Rust binary that covers both *arr and
Jellyfin. Rust binaries work through the gateway's stdio spawn
(where Node.js ones fail with 401).
The upstream package.json has no 'bin' field, so buildNpmPackage produced
no executable and the gateway could not spawn it ('No such file or
directory'). Add a makeWrapper that runs node dist/index.js.
Packages MCP servers currently used by Hermes that were not yet in this
repo. Real hashes computed via nix build on wilkes; nix flake check passes.
- annas-mcp: Go, buildGoModule (re-added, previously dropped as broken)
- bitwarden-mcp: npm @bitwarden/mcp-server
- mcp-email-server: Python, buildPythonApplication
- namecheap-mcp: npm namecheap-api-mcp
- navidrome-mcp: npm navidrome-mcp
- ovhcloud-mcp: npm from GitHub, tsc build step
- slskd-mcp: Python, fastmcp wrapper
- sabnzbd-mcp: original upstream (jmagar/sabnzbd-mcp) was deleted from
GitHub (404). Repoint to jasonpaulso/sabnzbd-mcp fork, which preserves
the same file layout and the /sabnzbd/api string postPatch rewrites.
- annas-mcp: remove package that was never completed (lib.fakeHash
placeholders) and is not referenced anywhere in config-nixos. It was
breaking 'nix flake check'.
- list_media: add offset and downloaded params for API pagination
- delete_media: new tool to delete downloaded files (with prevent_download option)
- Bump timeout on delete to 120s
Go binary from michaeldvinci/audiobookshelf-mcp (v0.0.5).
Covers libraries, audiobooks, podcasts, authors, collections,
playlists, and users. Uses buildGoModule with fakeHash placeholders
to be filled on first nix build.
Python MCP server (fastmcp + httpx) that exposes the Pinchflat REST API
as MCP tools. Covers sources, media items, media profiles, tasks, and
settings endpoints.
Tested against live Pinchflat instance — 28 sources, search, app info
all working via stdio transport.
fetchPypi with pyproject format was causing "Unsupported format pyproject"
error. Switched to fetchFromGitHub to match the pattern used by other
packages in this repo (e.g. zotero-mcp).
Note: the SRI hash is a placeholder — run `nix build .#applemusic-mcp`
and replace with the correct hash from the error output on first build.
Cross-platform Apple Music MCP server supporting playlist management,
library search, and catalog access via media-user-token (no Apple
Developer account required).
https://github.com/epheterson/applemusic-mcp
Prevents Python 3.12 site-packages (from host env like mautrix bridge) from contaminating the Python 3.13 wrapper, causing C extension ABI mismatches (e.g. PIL._imaging).