Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 01 Apr 2026 02:38:02 +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: 891b742640e4 - main - textproc/pdf-reader-mcp: New port: MCP server providing tools to read PDF files
Message-ID:  <69cc850a.37982.23a0bcd3@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=891b742640e47205895ba96f3a2f0209d85a7877

commit 891b742640e47205895ba96f3a2f0209d85a7877
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-03-31 23:13:24 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-04-01 02:37:51 +0000

    textproc/pdf-reader-mcp: New port: MCP server providing tools to read PDF files
---
 textproc/Makefile                               |   1 +
 textproc/pdf-reader-mcp/Makefile                |  57 ++
 textproc/pdf-reader-mcp/distinfo                |   3 +
 textproc/pdf-reader-mcp/files/package-lock.json | 503 ++++++++++++++++
 textproc/pdf-reader-mcp/pkg-descr               |   4 +
 textproc/pdf-reader-mcp/pkg-plist               | 771 ++++++++++++++++++++++++
 6 files changed, 1339 insertions(+)

diff --git a/textproc/Makefile b/textproc/Makefile
index 0a1ae5fb5901..c76ec512c433 100644
--- a/textproc/Makefile
+++ b/textproc/Makefile
@@ -1234,6 +1234,7 @@
     SUBDIR += pa-aspell
     SUBDIR += pageedit
     SUBDIR += par
+    SUBDIR += pdf-reader-mcp
     SUBDIR += pdfgrep
     SUBDIR += pdfoutline
     SUBDIR += pdfresurrect
diff --git a/textproc/pdf-reader-mcp/Makefile b/textproc/pdf-reader-mcp/Makefile
new file mode 100644
index 000000000000..17f43b5794d7
--- /dev/null
+++ b/textproc/pdf-reader-mcp/Makefile
@@ -0,0 +1,57 @@
+PORTNAME=	pdf-reader-mcp
+DISTVERSION=	2.3.0
+CATEGORIES=	textproc # machine-learning
+DIST_SUBDIR=	${PORTNAME}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	MCP server providing tools to read PDF files
+WWW=		https://github.com/SylphxAI/pdf-reader-mcp
+
+LICENSE=	MIT
+
+FETCH_DEPENDS=	npm:www/npm \
+		jq:textproc/jq \
+		${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss
+
+USES=		nodejs:run
+
+PACKAGE_NAME=	@sylphx/pdf-reader-mcp
+
+DD=		${DISTDIR}/${DIST_SUBDIR}
+
+FETCH_SCRIPT=	${PORTSDIR}/Tools/scripts/npmjs-fetch-with-dependencies.sh
+
+NO_ARCH=	yes
+NO_BUILD=	yes
+
+do-fetch:
+	@${MKDIR} ${DD}
+	@if ! [ -f ${DD}/${DISTNAME}${EXTRACT_SUFX} ]; then \
+		${ECHO} "====> Fetching ${DISTNAME}${EXTRACT_SUFX}" && \
+		${SETENV} TMPDIR=${WRKDIR} LOCALBASE=${LOCALBASE} ${FETCH_SCRIPT} \
+			${PACKAGE_NAME} ${DISTVERSION} \
+			${FILESDIR}/package-lock.json \
+			${DD}/${DISTNAME}${EXTRACT_SUFX}; \
+	fi
+
+do-install:
+	@${MKDIR} ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}
+	cd ${WRKSRC} && \
+		${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}
+	${RLN} ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
+	# Update shebang
+	${REINPLACE_CMD} -i '' -e '1s|#!/usr/bin/env node|#!${LOCALBASE}/bin/node|' \
+		${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js
+	${CHMOD} +x ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js
+	# Add polyfills
+	@${ECHO} "import 'data:text/javascript,globalThis.DOMMatrix=class{constructor(){this.a=1;this.b=0;this.c=0;this.d=1;this.e=0;this.f=0}};globalThis.ImageData=class{constructor(w,h){this.width=w;this.height=h;this.data=new Uint8ClampedArray(w*h*4)}};globalThis.Path2D=class{constructor(){}addPath(){}};';" > ${WRKDIR}/polyfills.js
+	@${SED} -i '' '1r ${WRKDIR}/polyfills.js' ${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/${PACKAGE_NAME}/dist/index.js
+	# Suppress warnings in pdfjs-dist
+	${REINPLACE_CMD} -i '' \
+		-e '/warn(`Cannot load "@napi-rs\/canvas" package/d' \
+		-e '/warn("Cannot polyfill `DOMMatrix`/d' \
+		-e '/warn("Cannot polyfill `ImageData`/d' \
+		-e '/warn("Cannot polyfill `Path2D`/d' \
+		${STAGEDIR}${PREFIX}/lib/node_modules/${PORTNAME}/node_modules/pdfjs-dist/legacy/build/pdf.mjs
+
+.include <bsd.port.mk>
diff --git a/textproc/pdf-reader-mcp/distinfo b/textproc/pdf-reader-mcp/distinfo
new file mode 100644
index 000000000000..761b8cb67e71
--- /dev/null
+++ b/textproc/pdf-reader-mcp/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1774995590
+SHA256 (pdf-reader-mcp/pdf-reader-mcp-2.3.0.tar.gz) = 0b44ff1d5c43de1ce63dcd193ce581be658787689a10e472a0e24ab6944ddeae
+SIZE (pdf-reader-mcp/pdf-reader-mcp-2.3.0.tar.gz) = 11898216
diff --git a/textproc/pdf-reader-mcp/files/package-lock.json b/textproc/pdf-reader-mcp/files/package-lock.json
new file mode 100644
index 000000000000..67b64e69f40b
--- /dev/null
+++ b/textproc/pdf-reader-mcp/files/package-lock.json
@@ -0,0 +1,503 @@
+{
+  "name": "pdf-reader-mcp",
+  "lockfileVersion": 3,
+  "requires": true,
+  "packages": {
+    "": {
+      "dependencies": {
+        "@sylphx/pdf-reader-mcp": "^2.3.0"
+      }
+    },
+    "node_modules/@napi-rs/canvas": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas/-/canvas-0.1.97.tgz",
+      "integrity": "sha512-8cFniXvrIEnVwuNSRCW9wirRZbHvrD3JVujdS2P5n5xiJZNZMOZcfOvJ1pb66c7jXMKHHglJEDVJGbm8XWFcXQ==",
+      "license": "MIT",
+      "optional": true,
+      "workspaces": [
+        "e2e/*"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      },
+      "optionalDependencies": {
+        "@napi-rs/canvas-android-arm64": "0.1.97",
+        "@napi-rs/canvas-darwin-arm64": "0.1.97",
+        "@napi-rs/canvas-darwin-x64": "0.1.97",
+        "@napi-rs/canvas-linux-arm-gnueabihf": "0.1.97",
+        "@napi-rs/canvas-linux-arm64-gnu": "0.1.97",
+        "@napi-rs/canvas-linux-arm64-musl": "0.1.97",
+        "@napi-rs/canvas-linux-riscv64-gnu": "0.1.97",
+        "@napi-rs/canvas-linux-x64-gnu": "0.1.97",
+        "@napi-rs/canvas-linux-x64-musl": "0.1.97",
+        "@napi-rs/canvas-win32-arm64-msvc": "0.1.97",
+        "@napi-rs/canvas-win32-x64-msvc": "0.1.97"
+      }
+    },
+    "node_modules/@napi-rs/canvas-android-arm64": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-android-arm64/-/canvas-android-arm64-0.1.97.tgz",
+      "integrity": "sha512-V1c/WVw+NzH8vk7ZK/O8/nyBSCQimU8sfMsB/9qeSvdkGKNU7+mxy/bIF0gTgeBFmHpj30S4E9WHMSrxXGQuVQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "android"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-darwin-arm64": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-arm64/-/canvas-darwin-arm64-0.1.97.tgz",
+      "integrity": "sha512-ok+SCEF4YejcxuJ9Rm+WWunHHpf2HmiPxfz6z1a/NFQECGXtsY7A4B8XocK1LmT1D7P174MzwPF9Wy3AUAwEPw==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-darwin-x64": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-darwin-x64/-/canvas-darwin-x64-0.1.97.tgz",
+      "integrity": "sha512-PUP6e6/UGlclUvAQNnuXCcnkpdUou6VYZfQOQxExLp86epOylmiwLkqXIvpFmjoTEDmPmXrI+coL/9EFU1gKPA==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "darwin"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-arm-gnueabihf": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm-gnueabihf/-/canvas-linux-arm-gnueabihf-0.1.97.tgz",
+      "integrity": "sha512-XyXH2L/cic8eTNtbrXCcvqHtMX/nEOxN18+7rMrAM2XtLYC/EB5s0wnO1FsLMWmK+04ZSLN9FBGipo7kpIkcOw==",
+      "cpu": [
+        "arm"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-arm64-gnu": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-gnu/-/canvas-linux-arm64-gnu-0.1.97.tgz",
+      "integrity": "sha512-Kuq/M3djq0K8ktgz6nPlK7Ne5d4uWeDxPpyKWOjWDK2RIOhHVtLtyLiJw2fuldw7Vn4mhw05EZXCEr4Q76rs9w==",
+      "cpu": [
+        "arm64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-arm64-musl": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-arm64-musl/-/canvas-linux-arm64-musl-0.1.97.tgz",
+      "integrity": "sha512-kKmSkQVnWeqg7qdsiXvYxKhAFuHz3tkBjW/zyQv5YKUPhotpaVhpBGv5LqCngzyuRV85SXoe+OFj+Tv0a0QXkQ==",
+      "cpu": [
+        "arm64"
+      ],
+      "libc": [
+        "musl"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-riscv64-gnu": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-riscv64-gnu/-/canvas-linux-riscv64-gnu-0.1.97.tgz",
+      "integrity": "sha512-Jc7I3A51jnEOIAXeLsN/M/+Z28LUeakcsXs07FLq9prXc0eYOtVwsDEv913Gr+06IRo34gJJVgT0TXvmz+N2VA==",
+      "cpu": [
+        "riscv64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-x64-gnu": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-gnu/-/canvas-linux-x64-gnu-0.1.97.tgz",
+      "integrity": "sha512-iDUBe7AilfuBSRbSa8/IGX38Mf+iCSBqoVKLSQ5XaY2JLOaqz1TVyPFEyIck7wT6mRQhQt5sN6ogfjIDfi74tg==",
+      "cpu": [
+        "x64"
+      ],
+      "libc": [
+        "glibc"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-linux-x64-musl": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-linux-x64-musl/-/canvas-linux-x64-musl-0.1.97.tgz",
+      "integrity": "sha512-AKLFd/v0Z5fvgqBDqhvqtAdx+fHMJ5t9JcUNKq4FIZ5WH+iegGm8HPdj00NFlCSnm83Fp3Ln8I2f7uq1aIiWaA==",
+      "cpu": [
+        "x64"
+      ],
+      "libc": [
+        "musl"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "linux"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-win32-arm64-msvc": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-arm64-msvc/-/canvas-win32-arm64-msvc-0.1.97.tgz",
+      "integrity": "sha512-u883Yr6A6fO7Vpsy9YE4FVCIxzzo5sO+7pIUjjoDLjS3vQaNMkVzx5bdIpEL+ob+gU88WDK4VcxYMZ6nmnoX9A==",
+      "cpu": [
+        "arm64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@napi-rs/canvas-win32-x64-msvc": {
+      "version": "0.1.97",
+      "resolved": "https://registry.npmjs.org/@napi-rs/canvas-win32-x64-msvc/-/canvas-win32-x64-msvc-0.1.97.tgz",
+      "integrity": "sha512-sWtD2EE3fV0IzN+iiQUqr/Q1SwqWhs2O1FKItFlxtdDkikpEj5g7DKQpY3x55H/MAOnL8iomnlk3mcEeGiUMoQ==",
+      "cpu": [
+        "x64"
+      ],
+      "license": "MIT",
+      "optional": true,
+      "os": [
+        "win32"
+      ],
+      "engines": {
+        "node": ">= 10"
+      },
+      "funding": {
+        "type": "github",
+        "url": "https://github.com/sponsors/Brooooooklyn"
+      }
+    },
+    "node_modules/@sylphx/gust": {
+      "version": "0.1.13",
+      "resolved": "https://registry.npmjs.org/@sylphx/gust/-/gust-0.1.13.tgz",
+      "integrity": "sha512-py9JdQ7kn6yrXoMGtM7aRigZFjuDXw+cG9kYu5HLGLoKtaAjXWZp3eZnJt9x35uqRKVHR/Z1YhRw+QbCf3Sccw==",
+      "license": "MIT",
+      "dependencies": {
+        "@sylphx/gust-app": "^0.1.9",
+        "@sylphx/gust-server": "^0.1.9"
+      }
+    },
+    "node_modules/@sylphx/gust-app": {
+      "version": "0.1.9",
+      "resolved": "https://registry.npmjs.org/@sylphx/gust-app/-/gust-app-0.1.9.tgz",
+      "integrity": "sha512-RcGisMhqY60GctZZNlHR3zlhY0Pvgz9Gv5AWrfNsL+VwIMLFGsmZCGcrEHIXg9KkluQfPb4QbZqFV7kLN897ZQ==",
+      "license": "MIT",
+      "dependencies": {
+        "@sylphx/gust-core": "^0.1.9"
+      }
+    },
+    "node_modules/@sylphx/gust-core": {
+      "version": "0.1.9",
+      "resolved": "https://registry.npmjs.org/@sylphx/gust-core/-/gust-core-0.1.9.tgz",
+      "integrity": "sha512-hhv41JOFEbE3NwUL5+YCTn/OaQlWzLv+U7XESfC0dUSrXxiSYYgrW5NG+YAhcKzdDcE5FmxHqBgxAPMqIatBKA==",
+      "license": "MIT"
+    },
+    "node_modules/@sylphx/gust-server": {
+      "version": "0.1.9",
+      "resolved": "https://registry.npmjs.org/@sylphx/gust-server/-/gust-server-0.1.9.tgz",
+      "integrity": "sha512-TgdOuLmt9EEb3hOJrOpidf5tPt2yLbed3j0l/KMAM/MAIxsmhSZnAYr0ifnMJVaD81QBoyVrSxm/2G7EFb7JAw==",
+      "license": "MIT",
+      "dependencies": {
+        "@sylphx/gust-app": "^0.1.9",
+        "@sylphx/gust-core": "^0.1.9"
+      },
+      "optionalDependencies": {
+        "@sylphx/gust-napi": "0.1.7"
+      }
+    },
+    "node_modules/@sylphx/gust-server/node_modules/@sylphx/gust-napi": {
+      "optional": true
+    },
+    "node_modules/@sylphx/mcp-server-sdk": {
+      "version": "2.1.1",
+      "resolved": "https://registry.npmjs.org/@sylphx/mcp-server-sdk/-/mcp-server-sdk-2.1.1.tgz",
+      "integrity": "sha512-7Cd3YXTw+tvGqmLAuRcg7Nr51sU14M7QK9xwtyX7gIMfsF/dCUJP0gnNHJriSh+0tFo4RBO3EqgUMwDfUaj4hg==",
+      "license": "MIT",
+      "dependencies": {
+        "@sylphx/gust": "0.1.13",
+        "@sylphx/gust-core": "^0.1.9",
+        "@sylphx/vex": "^0.1.11",
+        "@sylphx/vex-json-schema": "^0.0.1"
+      },
+      "peerDependencies": {
+        "typescript": "^5.0.0"
+      }
+    },
+    "node_modules/@sylphx/pdf-reader-mcp": {
+      "version": "2.3.0",
+      "resolved": "https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.3.0.tgz",
+      "integrity": "sha512-P+10lVw/7I1uq+FkIOfLtz+9WerlsIpJ3FpdjmeuTpSxvXlNjO31UePhc0PBgQCt81joY/NQYHc49uxhCvm2Ow==",
+      "license": "MIT",
+      "dependencies": {
+        "@sylphx/mcp-server-sdk": "^2.1.0",
+        "@sylphx/vex": "^0.1.11",
+        "glob": "^13.0.0",
+        "pdfjs-dist": "^5.4.449",
+        "pngjs": "^7.0.0"
+      },
+      "bin": {
+        "pdf-reader-mcp": "dist/index.js"
+      },
+      "engines": {
+        "node": ">=22.0.0"
+      }
+    },
+    "node_modules/@sylphx/vex": {
+      "version": "0.1.11",
+      "resolved": "https://registry.npmjs.org/@sylphx/vex/-/vex-0.1.11.tgz",
+      "integrity": "sha512-agm+PhHINL04DdmaSGGZ9BVeTfPyOtlPNnHD0m9+/hY8A8HzabtIZUN7RzqrE/AniY38OE9LNiSxINaD7Epw+g==",
+      "license": "MIT",
+      "peerDependencies": {
+        "typescript": ">=5.0.0"
+      }
+    },
+    "node_modules/@sylphx/vex-json-schema": {
+      "version": "0.0.1",
+      "resolved": "https://registry.npmjs.org/@sylphx/vex-json-schema/-/vex-json-schema-0.0.1.tgz",
+      "integrity": "sha512-Ge5xxiLMNP1s1DyGyoRVPxq72+xCe1TC/2mSYZ4fUwoCkwgRL9OnM+GDKsSQv2X2u8zdQUA3wcWzrn8QladNYA==",
+      "license": "MIT",
+      "dependencies": {
+        "@sylphx/vex": "^0.1.11"
+      },
+      "peerDependencies": {
+        "typescript": ">=5.0.0"
+      }
+    },
+    "node_modules/balanced-match": {
+      "version": "4.0.4",
+      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
+      "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
+      "license": "MIT",
+      "engines": {
+        "node": "18 || 20 || >=22"
+      }
+    },
+    "node_modules/brace-expansion": {
+      "version": "5.0.5",
+      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
+      "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
+      "license": "MIT",
+      "dependencies": {
+        "balanced-match": "^4.0.2"
+      },
+      "engines": {
+        "node": "18 || 20 || >=22"
+      }
+    },
+    "node_modules/glob": {
+      "version": "13.0.6",
+      "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz",
+      "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==",
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "minimatch": "^10.2.2",
+        "minipass": "^7.1.3",
+        "path-scurry": "^2.0.2"
+      },
+      "engines": {
+        "node": "18 || 20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/lru-cache": {
+      "version": "11.2.7",
+      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.7.tgz",
+      "integrity": "sha512-aY/R+aEsRelme17KGQa/1ZSIpLpNYYrhcrepKTZgE+W3WM16YMCaPwOHLHsmopZHELU0Ojin1lPVxKR0MihncA==",
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": "20 || >=22"
+      }
+    },
+    "node_modules/minimatch": {
+      "version": "10.2.5",
+      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
+      "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "brace-expansion": "^5.0.5"
+      },
+      "engines": {
+        "node": "18 || 20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/minipass": {
+      "version": "7.1.3",
+      "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz",
+      "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==",
+      "license": "BlueOak-1.0.0",
+      "engines": {
+        "node": ">=16 || 14 >=14.17"
+      }
+    },
+    "node_modules/node-readable-to-web-readable-stream": {
+      "version": "0.4.2",
+      "resolved": "https://registry.npmjs.org/node-readable-to-web-readable-stream/-/node-readable-to-web-readable-stream-0.4.2.tgz",
+      "integrity": "sha512-/cMZNI34v//jUTrI+UIo4ieHAB5EZRY/+7OmXZgBxaWBMcW2tGdceIw06RFxWxrKZ5Jp3sI2i5TsRo+CBhtVLQ==",
+      "license": "MIT",
+      "optional": true
+    },
+    "node_modules/path-scurry": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz",
+      "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==",
+      "license": "BlueOak-1.0.0",
+      "dependencies": {
+        "lru-cache": "^11.0.0",
+        "minipass": "^7.1.2"
+      },
+      "engines": {
+        "node": "18 || 20 || >=22"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/isaacs"
+      }
+    },
+    "node_modules/pdfjs-dist": {
+      "version": "5.6.205",
+      "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-5.6.205.tgz",
+      "integrity": "sha512-tlUj+2IDa7G1SbvBNN74UHRLJybZDWYom+k6p5KIZl7huBvsA4APi6mKL+zCxd3tLjN5hOOEE9Tv7VdzO88pfg==",
+      "license": "Apache-2.0",
+      "engines": {
+        "node": ">=20.19.0 || >=22.13.0 || >=24"
+      },
+      "optionalDependencies": {
+        "@napi-rs/canvas": "^0.1.96",
+        "node-readable-to-web-readable-stream": "^0.4.2"
+      }
+    },
+    "node_modules/pngjs": {
+      "version": "7.0.0",
+      "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-7.0.0.tgz",
+      "integrity": "sha512-LKWqWJRhstyYo9pGvgor/ivk2w94eSjE3RGVuzLGlr3NmD8bf7RcYGze1mNdEHRP6TRP6rMuDHk5t44hnTRyow==",
+      "license": "MIT",
+      "engines": {
+        "node": ">=14.19.0"
+      }
+    },
+    "node_modules/typescript": {
+      "version": "5.9.3",
+      "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+      "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+      "license": "Apache-2.0",
+      "peer": true,
+      "bin": {
+        "tsc": "bin/tsc",
+        "tsserver": "bin/tsserver"
+      },
+      "engines": {
+        "node": ">=14.17"
+      }
+    }
+  }
+}
diff --git a/textproc/pdf-reader-mcp/pkg-descr b/textproc/pdf-reader-mcp/pkg-descr
new file mode 100644
index 000000000000..218b4d570afc
--- /dev/null
+++ b/textproc/pdf-reader-mcp/pkg-descr
@@ -0,0 +1,4 @@
+pdf-reader-mcp is an MCP server providing tools to read PDF files.
+
+This server allows MCP clients to parse and extract text and images from PDF
+documents, enabling AI models to interact with PDF content efficiently.
diff --git a/textproc/pdf-reader-mcp/pkg-plist b/textproc/pdf-reader-mcp/pkg-plist
new file mode 100644
index 000000000000..d7a01f7b9dfd
--- /dev/null
+++ b/textproc/pdf-reader-mcp/pkg-plist
@@ -0,0 +1,771 @@
+bin/pdf-reader-mcp
+lib/node_modules/pdf-reader-mcp/node_modules/.bin/pdf-reader-mcp
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/LICENSE
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/geometry.js
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/js-binding.js
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/load-image.js
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/node-canvas.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/node-canvas.js
+lib/node_modules/pdf-reader-mcp/node_modules/@napi-rs/canvas/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/shared/chunk-shfjbt91.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/wasm/gust_wasm.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/wasm/gust_wasm.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/wasm/gust_wasm_bg.wasm
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/wasm/gust_wasm_bg.wasm.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/dist/wasm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-app/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/shared/chunk-1dqs11h6.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/shared/chunk-9x668qbv.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/wasm/gust_wasm.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/wasm/gust_wasm.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/wasm/gust_wasm_bg.wasm
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/dist/wasm/gust_wasm_bg.wasm.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-core/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-server/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-server/dist/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-server/dist/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust-server/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust/LICENSE
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust/dist/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust/dist/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/gust/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/mcp-server-sdk/LICENSE
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/mcp-server-sdk/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/mcp-server-sdk/dist/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/mcp-server-sdk/dist/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/mcp-server-sdk/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/pdf-reader-mcp/LICENSE
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/pdf-reader-mcp/README.md
+@mode 755
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/pdf-reader-mcp/dist/index.js
+@mode
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/pdf-reader-mcp/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex-json-schema/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex-json-schema/dist/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex-json-schema/dist/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex-json-schema/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex/LICENSE
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex/dist/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex/dist/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/@sylphx/vex/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/LICENSE.md
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/commonjs/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/commonjs/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/commonjs/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/commonjs/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/commonjs/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/esm/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/esm/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/esm/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/esm/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/dist/esm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/balanced-match/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/LICENSE
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/commonjs/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/commonjs/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/commonjs/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/commonjs/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/commonjs/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/esm/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/esm/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/esm/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/esm/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/dist/esm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/brace-expansion/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/glob/LICENSE.md
+lib/node_modules/pdf-reader-mcp/node_modules/glob/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/glob.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/glob.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/glob.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/glob.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/has-magic.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/has-magic.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/has-magic.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/has-magic.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/ignore.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/ignore.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/ignore.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/ignore.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/index.min.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/index.min.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/pattern.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/pattern.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/pattern.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/pattern.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/processor.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/processor.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/processor.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/processor.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/walker.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/walker.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/walker.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/commonjs/walker.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/glob.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/glob.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/glob.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/glob.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/has-magic.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/has-magic.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/has-magic.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/has-magic.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/ignore.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/ignore.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/ignore.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/ignore.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/index.min.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/index.min.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/pattern.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/pattern.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/pattern.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/pattern.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/processor.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/processor.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/processor.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/processor.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/walker.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/walker.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/walker.js
+lib/node_modules/pdf-reader-mcp/node_modules/glob/dist/esm/walker.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/glob/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/LICENSE.md
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/commonjs/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/commonjs/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/commonjs/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/commonjs/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/commonjs/index.min.js
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/commonjs/index.min.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/commonjs/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/esm/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/esm/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/esm/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/esm/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/esm/index.min.js
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/esm/index.min.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/dist/esm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/lru-cache/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/LICENSE.md
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/assert-valid-pattern.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/ast.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/ast.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/ast.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/ast.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/brace-expressions.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/brace-expressions.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/brace-expressions.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/escape.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/escape.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/escape.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/escape.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/unescape.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/unescape.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/unescape.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/commonjs/unescape.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/assert-valid-pattern.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/assert-valid-pattern.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/assert-valid-pattern.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/ast.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/ast.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/ast.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/ast.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/brace-expressions.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/brace-expressions.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/brace-expressions.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/brace-expressions.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/escape.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/escape.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/escape.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/escape.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/unescape.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/unescape.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/unescape.js
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/dist/esm/unescape.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minimatch/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/LICENSE.md
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/commonjs/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/commonjs/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/commonjs/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/commonjs/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/commonjs/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/esm/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/esm/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/esm/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/esm/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/dist/esm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/minipass/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/node-readable-to-web-readable-stream/LICENSE.txt
+lib/node_modules/pdf-reader-mcp/node_modules/node-readable-to-web-readable-stream/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/node-readable-to-web-readable-stream/lib/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/node-readable-to-web-readable-stream/lib/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/node-readable-to-web-readable-stream/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/LICENSE.md
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/commonjs/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/commonjs/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/commonjs/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/commonjs/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/commonjs/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/esm/index.d.ts
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/esm/index.d.ts.map
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/esm/index.js
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/esm/index.js.map
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/dist/esm/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/path-scurry/package.json
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/CODE_OF_CONDUCT.md
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/LICENSE
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/README.md
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.min.mjs
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.mjs
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.mjs.map
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.sandbox.min.mjs
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.sandbox.mjs
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.sandbox.mjs.map
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.worker.min.mjs
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.worker.mjs
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/build/pdf.worker.mjs.map
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78-RKSJ-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/78ms-RKSJ-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/83pv-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/90ms-RKSJ-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/90msp-RKSJ-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/90pv-RKSJ-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Add-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Add-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Add-RKSJ-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Add-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-0.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-1.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-3.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-4.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-5.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-6.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-CNS1-UCS2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-GB1-0.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-GB1-1.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-GB1-2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-GB1-3.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-GB1-4.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-GB1-5.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-GB1-UCS2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-0.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-1.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-3.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-4.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-5.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-6.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Japan1-UCS2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-0.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-1.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Adobe-Korea1-UCS2.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/B5-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/B5-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/B5pc-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/B5pc-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/CNS-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/CNS-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/CNS1-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/CNS1-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/CNS2-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/CNS2-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/ETHK-B5-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/ETHK-B5-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/ETen-B5-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/ETen-B5-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/ETenms-B5-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/ETenms-B5-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Ext-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Ext-RKSJ-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/Ext-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GB-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GB-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GB-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GB-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBK-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBK-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBK2K-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBK2K-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBKp-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBKp-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBT-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBT-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBT-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBT-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBTpc-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBpc-EUC-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/GBpc-EUC-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/HKdla-B5-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/HKdla-B5-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/HKdlb-B5-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/HKdlb-B5-V.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/HKgccs-B5-H.bcmap
+lib/node_modules/pdf-reader-mcp/node_modules/pdfjs-dist/cmaps/HKgccs-B5-V.bcmap
*** 413 LINES SKIPPED ***


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69cc850a.37982.23a0bcd3>