Date: Tue, 07 Apr 2026 23:39:04 +0000 From: Yuri Victorovich <yuri@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: c9ecc8e87b3d - main - textproc/pymupdf4llm-mcp: New port: MCP server for pymupdf4llm: convert PDF to Markdown for LLMs Message-ID: <69d59598.25831.2612bb25@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by yuri: URL: https://cgit.FreeBSD.org/ports/commit/?id=c9ecc8e87b3d1f21806d58e5e09465bdb3c3e589 commit c9ecc8e87b3d1f21806d58e5e09465bdb3c3e589 Author: Yuri Victorovich <yuri@FreeBSD.org> AuthorDate: 2026-04-07 23:38:38 +0000 Commit: Yuri Victorovich <yuri@FreeBSD.org> CommitDate: 2026-04-07 23:39:01 +0000 textproc/pymupdf4llm-mcp: New port: MCP server for pymupdf4llm: convert PDF to Markdown for LLMs --- textproc/Makefile | 1 + textproc/pymupdf4llm-mcp/Makefile | 31 ++++++++++++++++++++++ textproc/pymupdf4llm-mcp/distinfo | 3 +++ .../files/patch-tests_test__tool.py | 26 ++++++++++++++++++ textproc/pymupdf4llm-mcp/pkg-descr | 10 +++++++ 5 files changed, 71 insertions(+) diff --git a/textproc/Makefile b/textproc/Makefile index aaf32ffe1d46..92d2035da077 100644 --- a/textproc/Makefile +++ b/textproc/Makefile @@ -1775,6 +1775,7 @@ SUBDIR += py-zensical SUBDIR += py-zope.i18nmessageid SUBDIR += py-zpt + SUBDIR += pymupdf4llm-mcp SUBDIR += qo SUBDIR += qprint SUBDIR += qr diff --git a/textproc/pymupdf4llm-mcp/Makefile b/textproc/pymupdf4llm-mcp/Makefile new file mode 100644 index 000000000000..aef95203bba3 --- /dev/null +++ b/textproc/pymupdf4llm-mcp/Makefile @@ -0,0 +1,31 @@ +PORTNAME= pymupdf4llm-mcp +DISTVERSION= 0.0.4 +CATEGORIES= textproc python +MASTER_SITES= PYPI +DISTNAME= ${PORTNAME:S/-/_/}-${DISTVERSION} + +MAINTAINER= yuri@FreeBSD.org +COMMENT= MCP server for pymupdf4llm: convert PDF to Markdown for LLMs +WWW= https://github.com/pymupdf/pymupdf4llm-mcp + +LICENSE= AGPLv3 +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR} +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}mcp>=1.6.0:misc/py-mcp@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.11.3:devel/py-pydantic2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pymupdf4llm>=0.0.21:textproc/py-pymupdf4llm@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}typer>=0.15.2:devel/py-typer@${PY_FLAVOR} +TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}inline-snapshot>0:devel/py-inline-snapshot@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>0.25.3:devel/py-pytest-asyncio@${PY_FLAVOR} + +USES= python +USE_PYTHON= autoplist pep517 pytest + +TEST_ENV= ${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} + +NO_ARCH= yes + +# tests as of 0.0.4: 1 passed in 0.22s + +.include <bsd.port.mk> diff --git a/textproc/pymupdf4llm-mcp/distinfo b/textproc/pymupdf4llm-mcp/distinfo new file mode 100644 index 000000000000..05b719312e6f --- /dev/null +++ b/textproc/pymupdf4llm-mcp/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1775602664 +SHA256 (pymupdf4llm_mcp-0.0.4.tar.gz) = 90bdf45b6cc1f867a84048d4804fc781aeacab90d3af79e94795c91448f65348 +SIZE (pymupdf4llm_mcp-0.0.4.tar.gz) = 71180 diff --git a/textproc/pymupdf4llm-mcp/files/patch-tests_test__tool.py b/textproc/pymupdf4llm-mcp/files/patch-tests_test__tool.py new file mode 100644 index 000000000000..e3afb4a6aaa1 --- /dev/null +++ b/textproc/pymupdf4llm-mcp/files/patch-tests_test__tool.py @@ -0,0 +1,26 @@ +--- tests/test_tool.py.orig 2026-04-07 22:59:54 UTC ++++ tests/test_tool.py +@@ -14,11 +14,9 @@ def test_convert_pdf_to_markdown(): + assert result["success"] is True + assert "markdown_content" in result + assert result["markdown_content"] == snapshot("""\ +-# **Dummy PDF file** ++**Dummy PDF file** + + +------ +- + """) + + # temporary file to write the markdown content +@@ -31,9 +29,7 @@ ----- + with open(temp_file_path, encoding="utf-8") as f: + content = f.read() + assert content == snapshot("""\ +-# **Dummy PDF file** ++**Dummy PDF file** + +- +------ + + """) diff --git a/textproc/pymupdf4llm-mcp/pkg-descr b/textproc/pymupdf4llm-mcp/pkg-descr new file mode 100644 index 000000000000..7b57cf16ef1f --- /dev/null +++ b/textproc/pymupdf4llm-mcp/pkg-descr @@ -0,0 +1,10 @@ +pymupdf4llm-mcp is an MCP (Model Context Protocol) server that exposes +pymupdf4llm functionality as tools for LLM agents. It allows AI assistants +to convert PDF documents to Markdown format, making them suitable for +processing by Large Language Models (LLMs) and Retrieval-Augmented Generation +(RAG) systems. + +The server provides tools for: +- Converting PDF files to Markdown with preserved structure +- Handling tables, images, and text formatting +- Saving converted Markdown to fileshome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69d59598.25831.2612bb25>
