From 5f258de0c5ebc44b7742f8f0918bf52581249fa1 Mon Sep 17 00:00:00 2001 From: Dennis Wuitz Date: Fri, 17 Jul 2026 15:42:21 +0200 Subject: [PATCH] pdf-mcp: init at 1.21.0 --- pkgs/by-name/pd/pdf-mcp/package.nix | 91 +++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 pkgs/by-name/pd/pdf-mcp/package.nix diff --git a/pkgs/by-name/pd/pdf-mcp/package.nix b/pkgs/by-name/pd/pdf-mcp/package.nix new file mode 100644 index 000000000000..676db4120888 --- /dev/null +++ b/pkgs/by-name/pd/pdf-mcp/package.nix @@ -0,0 +1,91 @@ +{ + lib, + fetchFromGitHub, + python3Packages, + tesseract, +}: + +python3Packages.buildPythonApplication rec { + pname = "pdf-mcp"; + version = "1.21.0"; + pyproject = true; + __structuredAttrs = true; + + src = fetchFromGitHub { + owner = "jztan"; + repo = "pdf-mcp"; + tag = "v${version}"; + hash = "sha256-/CuVdfkJkc95JkZZZMA5euvdysdPObRcww+zImhCY5M="; + }; + + build-system = [ python3Packages.hatchling ]; + + pythonRelaxDeps = [ + "click" + "joserfc" + "mcp" + "pydantic-settings" + ]; + + dependencies = with python3Packages; [ + click + fastmcp + httpx + joserfc + numpy + pydantic + pydantic-settings + pymupdf + ]; + + makeWrapperArgs = [ + "--prefix" + "PATH" + ":" + (lib.makeBinPath [ tesseract ]) + "--set-default" + "TESSDATA_PREFIX" + "${tesseract}/share/tessdata" + ]; + + pythonImportsCheck = [ "pdf_mcp" ]; + + nativeCheckInputs = [ + tesseract + ] + ++ (with python3Packages; [ + pytestCheckHook + pytest-asyncio + pillow + ]); + + preCheck = '' + export HOME=$(mktemp -d) + ''; + + # needs LLM API + disabledTestPaths = [ + "tests/test_eval_coherence.py" + "tests/test_release.py" + "tests/test_demo_sample_pdf.py" + ]; + + # needs networking + disabledTests = [ "test_rejects_text_html_content_type" ]; + + pytestFlags = [ + "-m" + "not slow" + "--ignore-glob=*/test_benchmark_*.py" + ]; + + meta = { + description = "MCP server that lets AI agents work through large PDFs without overflowing their context"; + homepage = "https://github.com/jztan/pdf-mcp"; + changelog = "https://github.com/jztan/pdf-mcp/releases/tag/v${version}"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ derdennisop ]; + mainProgram = "pdf-mcp"; + platforms = lib.platforms.unix; + }; +}