{"_id":"@sylphx/pdf-reader-mcp","_rev":"21-3a37111719e7e02914430d6049d016d3","name":"@sylphx/pdf-reader-mcp","dist-tags":{"latest":"2.4.3"},"versions":{"1.0.0":{"name":"@sylphx/pdf-reader-mcp","version":"1.0.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@1.0.0","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/sylphlab/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/sylphlab/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"c26fd55d739c86a6efcc0a8656d5459af916cbbd","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-1.0.0.tgz","fileCount":7,"integrity":"sha512-NyXrW9Z6phVHSmAXkvzfYZa7Cm8BIznHkwrgNmEeqFALa+WG738UGWjkMqaOCeGPNbiVJHfbUV0MN1G7fgA6ow==","signatures":[{"sig":"MEYCIQD5NTfxljTGu5wVOif48QLyfwa5JsVpTIQtOtW8yvTF1AIhAIUkks/XJrdkjqAbUijdi3EpgJD7zHETbWOgPE4N277a","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34422},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"a0ba28b44cf3cec3cb320c02e9fac837e383d761","scripts":{"lint":"biome lint .","test":"vitest run","build":"tsc","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"husky","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"vitest run --coverage --reporter=junit --outputFile=test-report.junit.xml","validate":"npm run check && npm run test","benchmark":"vitest bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"pnpm run clean && pnpm run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/sylphlab/pdf-reader-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"An MCP server providing tools to read PDF files.","directories":{},"lint-staged":{"*.{ts,tsx,js,cjs,json}":["biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"]},"_nodeVersion":"25.0.0","dependencies":{"zod":"^3.24.2","glob":"^11.0.1","pdfjs-dist":"^5.4.296","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"1.20.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","husky":"^9.1.7","vitest":"^3.1.1","typedoc":"^0.28.2","vitepress":"^1.6.3","typescript":"^5.8.3","@types/glob":"^8.1.0","@types/node":"^24.0.7","lint-staged":"^16.2.6","@biomejs/biome":"^2.3.2","@commitlint/cli":"^19.8.0","standard-version":"^9.5.0","@vitest/coverage-v8":"^3.1.1","typedoc-plugin-markdown":"^4.9.0","@commitlint/config-conventional":"^19.8.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_1.0.0_1761919409156_0.8828856796557931","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@sylphx/pdf-reader-mcp","version":"1.1.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@1.1.0","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/sylphlab/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/sylphlab/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"e46a5b4d6d2ecdfed0a96a4bccc3c8b731e1de9d","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-1.1.0.tgz","fileCount":12,"integrity":"sha512-bqlefoGniWbSNroAIVFa1bBStzPTaL/r8riJmJCuUO1VfR0VjoxEhkli8lx7CakeP6Su03+Snvuvka67FDIMAQ==","signatures":[{"sig":"MEYCIQCvfNbzchYGs5Yt34/RHDJxrXoNRtgEArrDkMjLf8zH0QIhALCBIJ9Dbs4tdCw/S3ssJuwFL2kEJ67L4S9QsUEiWEnQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41599},"type":"module","_from":"file:sylphx-pdf-reader-mcp-1.1.0.tgz","engines":{"node":">=22.0.0"},"scripts":{"lint":"biome lint .","test":"vitest run","build":"tsc","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"vitest run --coverage --reporter=junit --outputFile=test-report.junit.xml","validate":"npm run check && npm run test","benchmark":"vitest bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest watch","check-format":"biome format .","docs:preview":"vitepress preview docs"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"_resolved":"/tmp/bfe14cfbbd00985ec6f4f41077fa77db/sylphx-pdf-reader-mcp-1.1.0.tgz","_integrity":"sha512-bqlefoGniWbSNroAIVFa1bBStzPTaL/r8riJmJCuUO1VfR0VjoxEhkli8lx7CakeP6Su03+Snvuvka67FDIMAQ==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/sylphlab/pdf-reader-mcp.git","type":"git"},"_npmVersion":"11.6.1","description":"An MCP server providing tools to read PDF files.","directories":{},"lint-staged":{"*.{ts,tsx,js,cjs,json}":["biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"]},"_nodeVersion":"24.11.0","dependencies":{"zod":"^3.24.2","glob":"^11.0.1","pdfjs-dist":"^5.4.296","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"1.20.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","husky":"^9.1.7","vitest":"^3.1.1","typedoc":"^0.28.2","vitepress":"^1.6.3","typescript":"^5.8.3","@types/glob":"^8.1.0","@types/node":"^24.0.7","lint-staged":"^16.2.6","@biomejs/biome":"^2.3.2","@commitlint/cli":"^19.8.0","standard-version":"^9.5.0","@vitest/coverage-v8":"^3.1.1","typedoc-plugin-markdown":"^4.9.0","@commitlint/config-conventional":"^19.8.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_1.1.0_1761926913107_0.1202395681487276","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@sylphx/pdf-reader-mcp","version":"1.2.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@1.2.0","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/sylphlab/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/sylphlab/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"558c4a82868e5674112756a7a1fe46b67fb84e39","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-1.2.0.tgz","fileCount":12,"integrity":"sha512-gixEJWenaZwA2JnbHfnOM1KLw4dHzH06XLn4F4H6n9mZnR9E8rBkKdVyd3nCT/vucvrqDOOGBQfhXn/0wmHfSA==","signatures":[{"sig":"MEQCIHuR+tR/RmIIz7XQzBptjQ4zW4BPuwIiY347htlsQHkBAiARE2zJoelI8/f38K+aKFWXojYX+R9FA1cisUufgR73/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46758},"type":"module","_from":"file:sylphx-pdf-reader-mcp-1.2.0.tgz","engines":{"node":">=22.0.0"},"scripts":{"lint":"biome lint .","test":"vitest run","build":"tsc","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"vitest run --coverage --reporter=junit --outputFile=test-report.junit.xml","validate":"npm run check && npm run test","benchmark":"vitest bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest watch","check-format":"biome format .","docs:preview":"vitepress preview docs"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"_resolved":"/private/var/folders/jn/4bb83bbn4vd_q16rlxm2gf7c0000gn/T/8ecd39ad22d3565ca29feffa3f6c0645/sylphx-pdf-reader-mcp-1.2.0.tgz","_integrity":"sha512-gixEJWenaZwA2JnbHfnOM1KLw4dHzH06XLn4F4H6n9mZnR9E8rBkKdVyd3nCT/vucvrqDOOGBQfhXn/0wmHfSA==","commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/sylphlab/pdf-reader-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"An MCP server providing tools to read PDF files.","directories":{},"lint-staged":{"*.{ts,tsx,js,cjs,json}":["biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"]},"_nodeVersion":"25.0.0","dependencies":{"zod":"^3.24.2","glob":"^11.0.1","pdfjs-dist":"^5.4.296","zod-to-json-schema":"^3.24.5","@modelcontextprotocol/sdk":"1.20.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","husky":"^9.1.7","vitest":"^3.1.1","typedoc":"^0.28.2","vitepress":"^1.6.3","typescript":"^5.8.3","@types/glob":"^8.1.0","@types/node":"^24.0.7","lint-staged":"^16.2.6","@biomejs/biome":"^2.3.2","@commitlint/cli":"^19.8.0","standard-version":"^9.5.0","@vitest/coverage-v8":"^3.1.1","typedoc-plugin-markdown":"^4.9.0","@commitlint/config-conventional":"^19.8.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_1.2.0_1761934247098_0.8282852274506729","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@sylphx/pdf-reader-mcp","version":"1.3.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@1.3.0","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/sylphlab/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/sylphlab/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"7882201cff0ada59c3c99c351c19ecb676a7d235","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-1.3.0.tgz","fileCount":12,"integrity":"sha512-0jNdEdnXIo3ze74MwYTB5GOsMyxgY3A4AskLuVpoQKYT5VudxGdk7o45Unp8p/lxiqHpMejA1KpMFdqBf9kLsw==","signatures":[{"sig":"MEQCIGVx4xREvqCT9eujwyHv7sirU5FJzmqNH9ZL9fiUZjPUAiBngNqIA7PNpzTA8kx4wzlOF0eVz50quIbPcAHSjrrAKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57033},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"828d8a31ef2de97ea9ccae091d5c496e6af9c2f3","scripts":{"lint":"biome lint .","test":"vitest run","build":"tsc","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"husky","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"vitest run --coverage --reporter=junit --outputFile=test-report.junit.xml","validate":"npm run check && npm run test","benchmark":"vitest bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"pnpm run clean && pnpm run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/sylphlab/pdf-reader-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"An MCP server providing tools to read PDF files.","directories":{},"lint-staged":{"*.{ts,tsx,js,cjs,json}":["biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"]},"_nodeVersion":"25.0.0","dependencies":{"zod":"^3.25.76","glob":"^11.0.1","pngjs":"^7.0.0","pdfjs-dist":"^5.4.296","zod-to-json-schema":"^3.24.6","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.13","husky":"^9.1.7","vitest":"^4.0.7","typedoc":"^0.28.2","vitepress":"^1.6.3","typescript":"^5.8.3","@types/glob":"^8.1.0","@types/node":"^24.0.7","lint-staged":"^16.2.6","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.2","@commitlint/cli":"^20.1.0","standard-version":"^9.5.0","@vitest/coverage-v8":"^4.0.7","typedoc-plugin-markdown":"^4.9.0","@commitlint/config-conventional":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_1.3.0_1762440500411_0.49871013632667105","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@sylphx/pdf-reader-mcp","version":"1.3.2","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@1.3.2","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"c0141bc5f86ec2495d81cc65de2419d54152ecfb","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-1.3.2.tgz","fileCount":4,"integrity":"sha512-AyvCxicllhfJgXB8IilzRoQ6Yc9L+nMhLRHjLlzwK+5xTFZtJJho9qRMj+wMtDJxBbScm906lWPnxfRfAHSsDg==","signatures":[{"sig":"MEQCICqF7n2HRWQEPFlaShgcAaryetf4cT/M1z/YJWi0JqMJAiAbJpx51l0aeKPed3tH5doFtMxfdIKJCJuMilMhaE40ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42131},"type":"module","engines":{"node":">=22.0.0"},"gitHead":"bc3d90fcc456ea283ca7e259e08179dc81047af5","scripts":{"lint":"biome lint .","test":"vitest run","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"husky","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"vitest run --coverage","validate":"bun run check && bun run test","benchmark":"vitest bench","changeset":"changeset","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"vitest watch","release:new":"bun run build && changeset publish","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"bun run clean && bun run build","version-packages":"changeset version"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"commitlint":{"extends":["@commitlint/config-conventional"]},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"lint-staged":{"*.{ts,tsx,js,cjs,json}":["biome check --write --no-errors-on-unmatched --files-ignore-unknown=true"]},"_nodeVersion":"20.19.5","dependencies":{"zod":"^3.25.76","glob":"^11.0.1","pngjs":"^7.0.0","pdfjs-dist":"^5.4.296","zod-to-json-schema":"^3.24.6","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vue":"^3.5.13","bunup":"^0.16.10","husky":"^9.1.7","vitest":"^4.0.7","typedoc":"^0.28.2","vitepress":"^1.6.3","typescript":"^5.8.3","@types/glob":"^8.1.0","@types/node":"^24.0.7","lint-staged":"^16.2.6","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.2","@changesets/cli":"^2.29.7","@commitlint/cli":"^20.1.0","standard-version":"^9.5.0","@vitest/coverage-v8":"^4.0.8","typedoc-plugin-markdown":"^4.9.0","@commitlint/config-conventional":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_1.3.2_1763907066559_0.4012573657918741","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@sylphx/pdf-reader-mcp","version":"1.4.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":"Sylphx <contact@sylphx.com> (https://sylphx.com)","license":"MIT","_id":"@sylphx/pdf-reader-mcp@1.4.0","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"7f5d61885860322572c1235428427d4700c0efff","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-1.4.0.tgz","fileCount":4,"integrity":"sha512-y0n87El9flZXA8YnMA4gmEX/9qtWyvGgajyjJvosMrAsB1uzN+XpOfTYK7xBc3TNaEUEODK2N2U3RSjVBRfGVA==","signatures":[{"sig":"MEYCIQCqglWE3TEpPVeGEVOsndWHaJ7Oi+lbBCD6WSXfDW72mgIhAKxxpu4QrCvD4aF720yaLGV8libk+BIDTGosr98ccFzE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46311},"type":"module","shasum":"7f5d61885860322572c1235428427d4700c0efff","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"node_modules/.bin/lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"_integrity":"sha512-y0n87El9flZXA8YnMA4gmEX/9qtWyvGgajyjJvosMrAsB1uzN+XpOfTYK7xBc3TNaEUEODK2N2U3RSjVBRfGVA==","repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.3","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.2.0-canary.20251124T022609","glob":"^11.1.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.394","zod-to-json-schema":"^3.25.0","@sylphx/mcp-server-sdk":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.4","bunup":"^0.16.10","typedoc":"^0.28.14","lefthook":"^2.0.4","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^0.12.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.23.3","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.0","@sylphx/biome-config":"^0.4.0","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_1.4.0_1764255587511_0.20266258962942363","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@sylphx/pdf-reader-mcp","version":"2.0.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":"Sylphx <contact@sylphx.com> (https://sylphx.com)","license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.0.0","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"1613ba437d6ba363ce0d33a0045c540fffb117cf","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.0.0.tgz","fileCount":4,"integrity":"sha512-mY++1usz8S+U0cqhoj6521GTsL6CdpItIqRm798AUYO6kY3WX7doQu3UKENCm/VCIWHX1zuUWDn8PREbpOAltw==","signatures":[{"sig":"MEUCIEKmIkTQ0/V07wk416vsEirWyjCkzuRP7QXvYf4cEDl8AiEAiqMvZRQwvZdQkJRiwnV8BxFJ1TyhV4aeqLGhqxrKU1Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45514},"type":"module","shasum":"1613ba437d6ba363ce0d33a0045c540fffb117cf","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"node_modules/.bin/lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"_integrity":"sha512-mY++1usz8S+U0cqhoj6521GTsL6CdpItIqRm798AUYO6kY3WX7doQu3UKENCm/VCIWHX1zuUWDn8PREbpOAltw==","repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.3","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"4.2.0-canary.20251124T022609","glob":"^11.1.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.394","zod-to-json-schema":"^3.25.0","@sylphx/mcp-server-sdk":"1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.4","bunup":"^0.16.10","typedoc":"^0.28.14","lefthook":"^2.0.4","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^0.12.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.23.3","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.0","@sylphx/biome-config":"^0.4.0","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.0.0_1764260652842_0.005117593011095156","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@sylphx/pdf-reader-mcp","version":"2.0.1","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.0.1","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"8eff8d40f08728e636ffc633344f2113af1bef4d","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.0.1.tgz","fileCount":4,"integrity":"sha512-5K9FX2JlNCBeAyZotAFhIlLRz6Jr2amaPcmO782QVgu/iqfn+65UryMgvB9krLfbXCLm9teuv4YiNi34G+uXuA==","signatures":[{"sig":"MEUCIB83+zhwtawDvkBD5NFeG8FlQX8PgZj/IOAoaJKG4OmjAiEAzNbiI53aTZXJAufvWCplqlSDeD2dNe8kGEfY27eC254=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45514},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"5e89bf242b46810e7e11d6dcfdbf192a75543e0b","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"4.2.0-canary.20251124T022609","glob":"^11.1.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.394","zod-to-json-schema":"^3.25.0","@sylphx/mcp-server-sdk":"1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.4","bunup":"^0.16.10","typedoc":"^0.28.14","lefthook":"^2.0.4","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^0.12.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.23.3","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.0","@sylphx/biome-config":"^0.4.0","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.0.1_1764279536679_0.5934861315870212","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@sylphx/pdf-reader-mcp","version":"2.0.2","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.0.2","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"46ad8cc4cfa0e5b3b58495c7dde9d0ae796baa8f","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.0.2.tgz","fileCount":4,"integrity":"sha512-OQCmbFW9G4C/zymAeXKE8ilDspr0mEBWxqRabgHfTNeIwcRztyvR83lHjY/BtYZ/PnSC1NvcyrG/16PJOFJrJw==","signatures":[{"sig":"MEUCIQD521RnJyrB4jajoEwSO0r+V1A3/Z5XzGV23W5KOHNanAIgc+2t3yWHU+UeM7lXIkm0399GqgJR5i9PEUPxb0mG1mQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45514},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"e832e8612b06a94aae22ceaa115b51aaae85a14c","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"4.2.0-canary.20251124T022609","glob":"^11.1.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.394","zod-to-json-schema":"^3.25.0","@sylphx/mcp-server-sdk":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.4","bunup":"^0.16.10","typedoc":"^0.28.14","lefthook":"^2.0.4","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^0.12.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.23.3","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.0","@sylphx/biome-config":"^0.4.0","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.0.2_1764283230004_0.6997373850821926","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@sylphx/pdf-reader-mcp","version":"2.0.3","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.0.3","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"9ba0a3bac00929999fbf27b6827a58204793cd2c","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.0.3.tgz","fileCount":4,"integrity":"sha512-WMQf0D9P023TJ/FCO+TZ3Bw9RCvmymBmq07QqSTS0OlqTFp5HT2MI+8TuhmBJ9zDEFP1J22cd6ZHyF+S8wBQ2Q==","signatures":[{"sig":"MEUCIQDPTDZRM4wKkvfnyhi3XfErjms5lkp2LFc01Z6fQ3NqLgIgBK9wzWJ4aa2yiIw7hV9DMF1P+RVkUlIAvzVjLRXDPrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45514},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"777fc0df52ac94b6351fa850626614c5c2efcd30","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.19.5","dependencies":{"zod":"4.2.0-canary.20251124T022609","glob":"^13.0.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.394","zod-to-json-schema":"^3.25.0","@sylphx/mcp-server-sdk":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.4","bunup":"^0.16.10","typedoc":"^0.28.14","lefthook":"^2.0.4","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^0.12.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.23.3","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.0","@sylphx/biome-config":"^0.4.0","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.0.3_1764502530105_0.8681533232253948","host":"s3://npm-registry-packages-npm-production"}},"2.0.7":{"name":"@sylphx/pdf-reader-mcp","version":"2.0.7","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.0.7","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"860dd95a2bab6e7118c0c7b901dfc7cdac5f7703","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.0.7.tgz","fileCount":4,"integrity":"sha512-WbUZLg+Bq6+sWrtJ2seLeoexfQ+SU17oFx9sH+Bg8ReiAAWmZoobGbWcNrhmsDSX46V96IqmEqd9XxeIWGa0Jw==","signatures":[{"sig":"MEQCIGU13CbkHyUeN5TXTtO+LTkFZBTkaE0F3+cW0sZpnuOXAiAlfJsSaiPVOXlpWmb6iPd87j9YZpe7kEtWX8o4D5JpYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45288},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"import":"./dist/index.js"}},"gitHead":"711d59b744fd1cda6a93fd99ac3135cb25a45238","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"bunx @sylphx/leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"bunx @sylphx/leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"bunx @sylphx/leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"zod":"4.2.0-canary.20251124T022609","glob":"^13.0.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.449","zod-to-json-schema":"^3.25.0","@sylphx/mcp-server-sdk":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.6","bunup":"^0.16.10","typedoc":"^0.28.15","lefthook":"^2.0.7","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^0.12.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.32.1","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.0.7_1764781012767_0.10750949212269711","host":"s3://npm-registry-packages-npm-production"}},"2.0.8":{"name":"@sylphx/pdf-reader-mcp","version":"2.0.8","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.0.8","maintainers":[{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"d3c499a6f2c8079cc58f2ee1b391994a70a505fa","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.0.8.tgz","fileCount":4,"integrity":"sha512-MiLc9HHVk1seiJ1DZmCKmOoe5cF81gspqhUrKAbXRsiow9qunZWfwpag40YsR9lEjteHPoGVkJluiHH/g0huTw==","signatures":[{"sig":"MEUCIQCSQzIz6s5E82zwfEd34iXLbsGHKkMKugQ+2DFWDhnk/AIgUQcVXi+yXk9tYQ8/zhSOsgIW1fxOjXbcAeesgnZPnyk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44576},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"import":"./dist/index.js"}},"gitHead":"40181e2585fa8b2fcbdc8cf4745e04bcae6f33b8","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"bunx @sylphx/leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"bunx @sylphx/leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"bunx @sylphx/leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"glob":"^13.0.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.449","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.6","bunup":"^0.16.10","typedoc":"^0.28.15","lefthook":"^2.0.7","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^1.6.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.32.1","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.0.8_1764973335755_0.24938385127665885","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@sylphx/pdf-reader-mcp","version":"2.1.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.1.0","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"7fd38314a3d1a736ef65f775fbd4d0f5906a4a99","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.1.0.tgz","fileCount":4,"integrity":"sha512-iKtTmHWOVWO10ioVLGPhkeCmkfLA99CiTqrzRvBI6n80xZig3O5rr5whjn4EkvBjkZwrGmaVSHht+ZbMM+AExQ==","signatures":[{"sig":"MEYCIQCAD0PUtgTr7nLT30nR3303nNtkqg6mXbEolLpKu1/mPAIhAP11D4EimGWUtp2p7M048DWIYnipAtkt5GlVSSEU8T0W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44925},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":{"import":"./dist/index.js"}},"gitHead":"a17192ceae195d252986e72f8fde62e334edc8a6","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"bunx @sylphx/leaf dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"bunx @sylphx/leaf build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"bunx @sylphx/leaf preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"js-yaml":"^4.1.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.19.6","dependencies":{"glob":"^13.0.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.449","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"vite":"^7.2.6","bunup":"^0.16.10","typedoc":"^0.28.15","lefthook":"^2.0.7","solid-js":"^1.9.10","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^24.10.1","@sylphx/bump":"^1.6.1","@sylphx/leaf":"^1.0.0","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.32.1","@solidjs/router":"^0.15.4","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.9.0","@sylphx/leaf-theme-default":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.1.0_1765992378464_0.42302462205258684","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@sylphx/pdf-reader-mcp","version":"2.2.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.2.0","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"efa8c7ff382caba93300e2f7065a569c97d9efea","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.2.0.tgz","fileCount":4,"integrity":"sha512-n0+yjzBSkFSTTYxkDCiwoRM25YRA+BBfr7Xl9/m12CGOOdDdS3Rqn8eLCHKBTiS3GjZ/TU1Q7ws27/Jqq9WDWQ==","signatures":[{"sig":"MEUCIQCs43tjhh2i154fJ16a3NbtUgSVG6nWSn6BWOs4XU+ZEgIgE+EZOXeneuFqqy+NZ4CeA2tROnctjBscdnLOdi55src=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47427},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"bccf19f52bc094853def1677181f5e8547763cdd","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup --no-dts","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"preact":"^10.28.2","esbuild":"^0.25.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"glob":"^13.0.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.449","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"bunup":"0.16.10","typedoc":"^0.28.15","lefthook":"^2.0.7","vitepress":"^1.6.4","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^25.0.3","@sylphx/bump":"^1.6.1","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.32.1","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.2.0_1769601001234_0.2938141249025872","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@sylphx/pdf-reader-mcp","version":"2.3.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.3.0","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"e11f98887abb746487052b4e3fe56f35f10e274b","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.3.0.tgz","fileCount":4,"integrity":"sha512-P+10lVw/7I1uq+FkIOfLtz+9WerlsIpJ3FpdjmeuTpSxvXlNjO31UePhc0PBgQCt81joY/NQYHc49uxhCvm2Ow==","signatures":[{"sig":"MEUCIQCAwUFnoXePVzR99muJIPN00IZbb+Lmg8ibYqNEwPAhtQIgU1mlpd7rdnYiBw9ntlWSCW3MHJSLSkFPus+kH1ZXwzs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":56975},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"6d735957120a28bb59193c58e0dc351489a2d7da","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup --no-dts","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"preact":"^10.28.2","esbuild":"^0.25.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.20.0","dependencies":{"glob":"^13.0.0","pngjs":"^7.0.0","pdfjs-dist":"^5.4.449","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"bunup":"0.16.10","typedoc":"^0.28.15","lefthook":"^2.0.7","vitepress":"^1.6.4","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^25.0.3","@sylphx/bump":"^1.6.1","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.3.8","@sylphx/doctor":"^1.32.1","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.9.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.3.0_1770245940867_0.042804032215750354","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@sylphx/pdf-reader-mcp","version":"2.3.1","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.3.1","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"991c95ca533768ab40f7f8560bcead58bdb91e2a","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.3.1.tgz","fileCount":4,"integrity":"sha512-LzMtKnQLLpCM3lBfLyKFNJfLUjIUrXVgyn0TQp1VmuDlMF0Sum3TlYFfzl1h4gM6mnoEWOV2mt8QgGePne6bNw==","signatures":[{"sig":"MEQCICtir1ZZK8NUGNW8L0DFF8BnYs96o/2UaLvu94Qsn1x8AiAZ/kJnpV2B+9wC+whOSAINQ1blHoY4ctPvSUENiGtung==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":57307},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"c12b2f4e2d051ef98287a545029e38c7c7ec587b","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup --no-dts","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"defu":"^6.1.7","vite":"^6.4.2","preact":"^10.28.2","rollup":"^4.60.2","esbuild":"^0.25.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"glob":"^13.0.6","pngjs":"^7.0.0","pdfjs-dist":"^5.6.205","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"bunup":"0.16.10","typedoc":"^0.28.19","lefthook":"^2.1.6","vitepress":"^1.6.4","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^25.6.0","@sylphx/bump":"^1.6.1","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.4.12","@sylphx/doctor":"^1.34.0","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.3.1_1776562345363_0.6555311823827275","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@sylphx/pdf-reader-mcp","version":"2.4.0","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.4.0","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"2a599651cd315a055abf619eb07b2a01dd5b02bc","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.4.0.tgz","fileCount":4,"integrity":"sha512-Hseg7X0TyVCPlrgmuqc/BHxXpA2wTXBhQ+n+7rb4qxEeJXvhtnDO8I3sP1g7yjjrBMK5wN3UTVd/EEaWyq4DiQ==","signatures":[{"sig":"MEYCIQCsyR7lxg8nojkSqrL6nYFP6chapf64ytC44IHHe2eWWQIhALF4hCL4TLobgeOXch6QaeDyOLw4M6RKtp3UxwOUocZA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62561},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"6f5cbd373de470e8903477002762f47a2840f62e","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup --no-dts","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"defu":"^6.1.7","vite":"^6.4.2","preact":"^10.28.2","rollup":"^4.60.2","esbuild":"^0.25.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"glob":"^13.0.6","pngjs":"^7.0.0","pdfjs-dist":"^5.6.205","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"bunup":"0.16.10","typedoc":"^0.28.19","lefthook":"^2.1.6","vitepress":"^1.6.4","typescript":"^5.9.3","@types/glob":"^8.1.0","@types/node":"^25.6.0","@sylphx/bump":"^1.6.1","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.4.12","@sylphx/doctor":"^1.34.0","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.4.0_1777847350085_0.17831781774693845","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@sylphx/pdf-reader-mcp","version":"2.4.1","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.4.1","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"4613fb93154f15df2d56f8a11292e9d2c709254d","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.4.1.tgz","fileCount":4,"integrity":"sha512-2JwMaPwAs1RYAtzKNOj3BUnQN2PJbcnjV+Ijfky/VF71ggI8hk/DWse2MI5xmKldRrVVdzV+miPMHnB+tx/Ehg==","signatures":[{"sig":"MEQCIHR8GLowQohK9i7O9L54oAAXTNGr/nOTogbqzBgexkWaAiBqsDJlHiS/ndFDzvaak7YJZ98X2X4ceYCS+WDufi3VCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70261},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"b41408312a020cdcc965c463d3eb7c4599e3ae86","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup --no-dts","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"defu":"^6.1.7","vite":"^6.4.2","preact":"^10.28.2","rollup":"^4.60.2","esbuild":"^0.25.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"glob":"^13.0.6","pngjs":"^7.0.0","pdfjs-dist":"^5.6.205","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"bunup":"0.16.31","typedoc":"^0.28.19","lefthook":"^2.1.6","vitepress":"^1.6.4","typescript":"^6.0.3","@types/glob":"^8.1.0","@types/node":"^25.6.0","@sylphx/bump":"^1.6.1","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.4.12","@sylphx/doctor":"^1.34.0","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.4.1_1779302702635_0.5888586673867735","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@sylphx/pdf-reader-mcp","version":"2.4.2","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"author":{"url":"https://sylphx.com","name":"Sylphx","email":"contact@sylphx.com"},"license":"MIT","_id":"@sylphx/pdf-reader-mcp@2.4.2","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"bin":{"pdf-reader-mcp":"dist/index.js"},"dist":{"shasum":"83503352bbfca0cb12c75fbb25df64a46f66c36b","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.4.2.tgz","fileCount":4,"integrity":"sha512-lYYa8+1C/tkxvyzeyYVzcDHKbdG47owsDQ6C5Ggq0TAw+UpbdK9Oly70tccn0D4OnrVNhpyr6ABJbLKyibkC/Q==","signatures":[{"sig":"MEYCIQDucaer6h+q3n2qk5PGpqKOcLtBO7j4bz3a2AslbZjd8gIhAItindvuYcRyAqZx0NR1dmZ7j2ILfOeUWIGA+PtKfgbe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70121},"type":"module","engines":{"node":">=22.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"8e4bb6d980e4c4516212995875078a6005d5bd39","scripts":{"lint":"biome lint .","test":"bun test","build":"bunup --no-dts","check":"biome check .","clean":"rm -rf dist coverage","start":"node dist/index.js","watch":"tsc --watch","format":"biome format --write .","prepare":"lefthook install || true","release":"standard-version","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","docs:dev":"vitepress dev docs","lint:fix":"biome lint --write .","test:cov":"bun test --coverage","validate":"bun run check && bun run test","benchmark":"bun bench","check:fix":"biome check --write .","inspector":"npx @modelcontextprotocol/inspector dist/index.js","typecheck":"tsc --noEmit","docs:build":"vitepress build docs","test:watch":"bun test --watch","check-format":"biome format .","docs:preview":"vitepress preview docs","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build"},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"overrides":{"defu":"^6.1.7","vite":"^6.4.2","preact":"^10.28.2","rollup":"^4.60.2","esbuild":"^0.25.0"},"repository":{"url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"An MCP server providing tools to read PDF files.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"glob":"^13.0.6","pngjs":"^7.0.0","pdfjs-dist":"^5.6.205","@sylphx/vex":"^0.1.11","@sylphx/mcp-server-sdk":"^2.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.1","devDependencies":{"bunup":"0.16.31","typedoc":"^0.28.19","lefthook":"^2.1.6","vitepress":"^1.6.4","typescript":"^6.0.3","@types/glob":"^8.1.0","@types/node":"^25.6.0","@sylphx/bump":"^1.6.1","@types/pngjs":"^6.0.5","@biomejs/biome":"^2.4.12","@sylphx/doctor":"^1.34.0","@sylphx/tsconfig":"^0.3.1","@sylphx/biome-config":"^0.4.1","typedoc-plugin-markdown":"^4.11.0"},"_npmOperationalInternal":{"tmp":"tmp/pdf-reader-mcp_2.4.2_1779422637374_0.02960010565460891","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@sylphx/pdf-reader-mcp","version":"2.4.3","description":"An MCP server providing tools to read PDF files.","type":"module","bin":{"pdf-reader-mcp":"dist/index.js"},"exports":{".":"./dist/index.js"},"publishConfig":{"access":"public"},"engines":{"node":">=22.13.0"},"repository":{"type":"git","url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git"},"bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","author":{"name":"Sylphx","email":"contact@sylphx.com","url":"https://sylphx.com"},"license":"MIT","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"scripts":{"build":"bunup --no-dts","watch":"tsc --watch","inspector":"npx @modelcontextprotocol/inspector dist/index.js","test":"bun test","test:watch":"bun test --watch","test:cov":"bun test --coverage","lint":"biome lint .","lint:fix":"biome lint --write .","format":"biome format --write .","check-format":"biome format .","check":"biome check .","check:fix":"biome check --write .","validate":"bun run check && bun run test","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:preview":"vitepress preview docs","start":"node dist/index.js","typecheck":"tsc --noEmit","benchmark":"bun bench","clean":"rm -rf dist coverage","docs:api":"typedoc --entryPoints src/index.ts --tsconfig tsconfig.json --plugin typedoc-plugin-markdown --out docs/api --readme none","prepublishOnly":"bunx @sylphx/doctor prepublish && bun run clean && bun run build","release":"standard-version","prepare":"lefthook install || true"},"dependencies":{"@sylphx/mcp-server-sdk":"^2.1.1","@sylphx/vex":"^0.1.11","pdfjs-dist":"^6.0.227","pngjs":"^7.0.0"},"overrides":{"esbuild":"^0.25.0","preact":"^10.28.2","defu":"^6.1.7","rollup":"^4.60.2","vite":"^6.4.2"},"devDependencies":{"@biomejs/biome":"^2.4.16","@sylphx/biome-config":"^0.4.1","@sylphx/bump":"^1.6.1","@sylphx/doctor":"^1.34.0","@sylphx/tsconfig":"^0.3.1","@types/node":"^25.9.1","@types/pngjs":"^6.0.5","bunup":"0.16.31","lefthook":"^2.1.9","typedoc":"^0.28.19","typedoc-plugin-markdown":"^4.11.0","typescript":"^6.0.3","vitepress":"^1.6.4"},"packageManager":"bun@1.3.1","_id":"@sylphx/pdf-reader-mcp@2.4.3","gitHead":"dd6eb4f0dd4bee1d5897e7bb1224d8f865ab97a0","_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-Z+xOXsqSQkPVyBLYUh+k/2lpjB/AQDrWj/wtZc/BEhMaNWTvKP+PzkuzJyo5OBVbu3ow4VDP8B6el6NKLPc72A==","shasum":"58d5719e168d545de51c0b9cff08832b6b16a33a","tarball":"https://registry.npmjs.org/@sylphx/pdf-reader-mcp/-/pdf-reader-mcp-2.4.3.tgz","fileCount":4,"unpackedSize":70158,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID7aRgCL7PRt0x3d/XIhA925jgS3CaLdiZ3daDyeIqByAiEA4cIoN65UvCr3mGP3wpE2+rSS8UxSnfINreB1GwM+fqc="}]},"_npmUser":{"name":"shtse8","email":"shtse8@gmail.com"},"directories":{},"maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pdf-reader-mcp_2.4.3_1780156929367_0.6054399725682629"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-31T14:03:29.047Z","modified":"2026-05-30T16:02:09.666Z","1.0.0":"2025-10-31T14:03:29.345Z","1.1.0":"2025-10-31T16:08:33.295Z","1.2.0":"2025-10-31T18:10:47.306Z","1.3.0":"2025-11-06T14:48:20.600Z","1.3.2":"2025-11-23T14:11:06.779Z","1.4.0":"2025-11-27T14:59:47.667Z","2.0.0":"2025-11-27T16:24:13.029Z","2.0.1":"2025-11-27T21:38:56.866Z","2.0.2":"2025-11-27T22:40:30.192Z","2.0.3":"2025-11-30T11:35:30.288Z","2.0.7":"2025-12-03T16:56:52.947Z","2.0.8":"2025-12-05T22:22:15.906Z","2.1.0":"2025-12-17T17:26:18.641Z","2.2.0":"2026-01-28T11:50:01.388Z","2.3.0":"2026-02-04T22:59:01.004Z","2.3.1":"2026-04-19T01:32:25.502Z","2.4.0":"2026-05-03T22:29:10.234Z","2.4.1":"2026-05-20T18:45:02.764Z","2.4.2":"2026-05-22T04:03:57.520Z","2.4.3":"2026-05-30T16:02:09.498Z"},"bugs":{"url":"https://github.com/SylphxAI/pdf-reader-mcp/issues"},"author":{"name":"Sylphx","email":"contact@sylphx.com","url":"https://sylphx.com"},"license":"MIT","homepage":"https://github.com/SylphxAI/pdf-reader-mcp#readme","keywords":["mcp","model-context-protocol","pdf","reader","parser","typescript","node","ai","agent","tool"],"repository":{"type":"git","url":"git+https://github.com/SylphxAI/pdf-reader-mcp.git"},"description":"An MCP server providing tools to read PDF files.","maintainers":[{"name":"ansonsylphx","email":"anson@sylphx.com"},{"name":"shtse8","email":"shtse8@gmail.com"}],"readme":"<div align=\"center\">\n\n# 📄 @sylphx/pdf-reader-mcp\n\n> Production-ready PDF processing server for AI agents\n\n[![npm version](https://img.shields.io/npm/v/@sylphx/pdf-reader-mcp?style=flat-square)](https://www.npmjs.com/package/@sylphx/pdf-reader-mcp)\n[![License](https://img.shields.io/badge/License-MIT-blue?style=flat-square)](https://opensource.org/licenses/MIT)\n[![CI/CD](https://img.shields.io/github/actions/workflow/status/SylphxAI/pdf-reader-mcp/ci.yml?style=flat-square&label=CI/CD)](https://github.com/SylphxAI/pdf-reader-mcp/actions/workflows/ci.yml)\n[![codecov](https://img.shields.io/codecov/c/github/SylphxAI/pdf-reader-mcp?style=flat-square)](https://codecov.io/gh/SylphxAI/pdf-reader-mcp)\n[![TypeScript](https://img.shields.io/badge/TypeScript-6.0-blue.svg?style=flat-square)](https://www.typescriptlang.org/)\n[![Downloads](https://img.shields.io/npm/dm/@sylphx/pdf-reader-mcp?style=flat-square)](https://www.npmjs.com/package/@sylphx/pdf-reader-mcp)\n\n**5-10x faster parallel processing** • **Y-coordinate content ordering** • **94%+ test coverage** • **173 tests passing**\n\n<a href=\"https://mseep.ai/app/SylphxAI-pdf-reader-mcp\">\n<img src=\"https://mseep.net/pr/SylphxAI-pdf-reader-mcp-badge.png\" alt=\"Security Validated\" width=\"200\"/>\n</a>\n\n</div>\n\n---\n\n## 🚀 Overview\n\nPDF Reader MCP is a **production-ready** Model Context Protocol server that empowers AI agents with **enterprise-grade PDF processing capabilities**. Extract text, images, and metadata with unmatched performance and reliability.\n\n**The Problem:**\n```typescript\n// Traditional PDF processing\n- Sequential page processing (slow)\n- No natural content ordering\n- Complex path handling\n- Poor error isolation\n```\n\n**The Solution:**\n```typescript\n// PDF Reader MCP\n- 5-10x faster parallel processing ⚡\n- Y-coordinate based ordering 📐\n- Flexible path support (absolute/relative) 🎯\n- Per-page error resilience 🛡️\n- 94%+ test coverage ✅\n```\n\n**Result: Production-ready PDF processing that scales.**\n\n---\n\n## ⚡ Key Features\n\n### Performance\n\n- 🚀 **5-10x faster** than sequential with automatic parallelization\n- ⚡ **12,933 ops/sec** error handling, 5,575 ops/sec text extraction\n- 💨 **Process 50-page PDFs** in seconds with multi-core utilization\n- 📦 **Lightweight** with minimal dependencies\n\n### Developer Experience\n\n- 🎯 **Path Flexibility** - Absolute & relative paths, Windows/Unix support (v1.3.0)\n- 🖼️ **Smart Ordering** - Y-coordinate based content preserves document layout\n- 🛡️ **Type Safe** - Full TypeScript with strict mode enabled\n- 📚 **Battle-tested** - 173 tests, 94%+ coverage, 98%+ function coverage\n- 🎨 **Simple API** - Single tool handles all operations elegantly\n\n---\n\n## 📊 Performance Benchmarks\n\nReal-world performance from production testing:\n\n| Operation | Ops/sec | Performance | Use Case |\n|-----------|---------|-------------|----------|\n| **Error handling** | 12,933 | ⚡⚡⚡⚡⚡ | Validation & safety |\n| **Extract full text** | 5,575 | ⚡⚡⚡⚡ | Document analysis |\n| **Extract page** | 5,329 | ⚡⚡⚡⚡ | Single page ops |\n| **Multiple pages** | 5,242 | ⚡⚡⚡⚡ | Batch processing |\n| **Metadata only** | 4,912 | ⚡⚡⚡ | Quick inspection |\n\n### Parallel Processing Speedup\n\n| Document | Sequential | Parallel | Speedup |\n|----------|-----------|----------|---------|\n| **10-page PDF** | ~2s | ~0.3s | **5-8x faster** |\n| **50-page PDF** | ~10s | ~1s | **10x faster** |\n| **100+ pages** | ~20s | ~2s | **Linear scaling** with CPU cores |\n\n*Benchmarks vary based on PDF complexity and system resources.*\n\n---\n\n## 📦 Installation\n\n### Claude Code\n\n```bash\nclaude mcp add pdf-reader -- npx @sylphx/pdf-reader-mcp\n```\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"pdf-reader\": {\n      \"command\": \"npx\",\n      \"args\": [\"@sylphx/pdf-reader-mcp\"]\n    }\n  }\n}\n```\n\n<details>\n<summary><strong>📍 Config file locations</strong></summary>\n\n- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows**: `%APPDATA%\\Claude\\claude_desktop_config.json`\n- **Linux**: `~/.config/Claude/claude_desktop_config.json`\n\n</details>\n\n### VS Code\n\n```bash\ncode --add-mcp '{\"name\":\"pdf-reader\",\"command\":\"npx\",\"args\":[\"@sylphx/pdf-reader-mcp\"]}'\n```\n\n### Cursor\n\n1. Open **Settings** → **MCP** → **Add new MCP Server**\n2. Select **Command** type\n3. Enter: `npx @sylphx/pdf-reader-mcp`\n\n### Windsurf\n\nAdd to your Windsurf MCP config:\n\n```json\n{\n  \"mcpServers\": {\n    \"pdf-reader\": {\n      \"command\": \"npx\",\n      \"args\": [\"@sylphx/pdf-reader-mcp\"]\n    }\n  }\n}\n```\n\n### Cline\n\nAdd to Cline's MCP settings:\n\n```json\n{\n  \"mcpServers\": {\n    \"pdf-reader\": {\n      \"command\": \"npx\",\n      \"args\": [\"@sylphx/pdf-reader-mcp\"]\n    }\n  }\n}\n```\n\n### Warp\n\n1. Go to **Settings** → **AI** → **Manage MCP Servers** → **Add**\n2. Command: `npx`, Args: `@sylphx/pdf-reader-mcp`\n\n### Ontheia\n\nAdd the server in **Settings** → **MCP Servers** → **Add Server** with command `npx` and args `@sylphx/pdf-reader-mcp`. See [Ontheia's compatible MCP servers](https://docs.ontheia.ai/getting-started/03_compatible-mcp-servers/) for the full list.\n\n### Smithery (One-click)\n\n```bash\nnpx -y @smithery/cli install @sylphx/pdf-reader-mcp --client claude\n```\n\n### Manual Installation\n\n```bash\n# Quick start - zero installation\nnpx @sylphx/pdf-reader-mcp\n\n# Or install globally\nnpm install -g @sylphx/pdf-reader-mcp\n```\n\n---\n\n## 🎯 Quick Start\n\n### Basic Usage\n\n```json\n{\n  \"sources\": [{\n    \"path\": \"documents/report.pdf\"\n  }],\n  \"include_full_text\": true,\n  \"include_metadata\": true,\n  \"include_page_count\": true\n}\n```\n\n**Result:**\n- ✅ Full text content extracted\n- ✅ PDF metadata (author, title, dates)\n- ✅ Total page count\n- ✅ Structural sharing - unchanged parts preserved\n\n### Extract Specific Pages\n\n```json\n{\n  \"sources\": [{\n    \"path\": \"documents/manual.pdf\",\n    \"pages\": \"1-5,10,15-20\"\n  }],\n  \"include_full_text\": true\n}\n```\n\n### Absolute Paths (v1.3.0+)\n\n```json\n// Windows - Both formats work!\n{\n  \"sources\": [{\n    \"path\": \"C:\\\\Users\\\\John\\\\Documents\\\\report.pdf\"\n  }],\n  \"include_full_text\": true\n}\n\n// Unix/Mac\n{\n  \"sources\": [{\n    \"path\": \"/home/user/documents/contract.pdf\"\n  }],\n  \"include_full_text\": true\n}\n```\n\n**No more** `\"Absolute paths are not allowed\"` **errors!**\n\n### Extract Images with Natural Ordering\n\n```json\n{\n  \"sources\": [{\n    \"path\": \"presentation.pdf\",\n    \"pages\": [1, 2, 3]\n  }],\n  \"include_images\": true,\n  \"include_full_text\": true\n}\n```\n\n**Response includes:**\n- Text and images in **exact document order** (Y-coordinate sorted)\n- Base64-encoded images with metadata (width, height, format)\n- Natural reading flow preserved for AI comprehension\n\n### Batch Processing\n\n```json\n{\n  \"sources\": [\n    { \"path\": \"C:\\\\Reports\\\\Q1.pdf\", \"pages\": \"1-10\" },\n    { \"path\": \"/home/user/Q2.pdf\", \"pages\": \"1-10\" },\n    { \"url\": \"https://example.com/Q3.pdf\" }\n  ],\n  \"include_full_text\": true\n}\n```\n\n⚡ **All PDFs processed in parallel automatically!**\n\n---\n\n## ✨ Features\n\n### Core Capabilities\n- ✅ **Text Extraction** - Full document or specific pages with intelligent parsing\n- ✅ **Image Extraction** - Base64-encoded with complete metadata (width, height, format)\n- ✅ **Content Ordering** - Y-coordinate based layout preservation for natural reading flow\n- ✅ **Metadata Extraction** - Author, title, creation date, and custom properties\n- ✅ **Page Counting** - Fast enumeration without loading full content\n- ✅ **Dual Sources** - Local files (absolute or relative paths) and HTTP/HTTPS URLs\n- ✅ **Batch Processing** - Multiple PDFs processed concurrently\n\n### Advanced Features\n- ⚡ **5-10x Performance** - Parallel page processing with Promise.all\n- 🎯 **Smart Pagination** - Extract ranges like \"1-5,10-15,20\"\n- 🖼️ **Multi-Format Images** - RGB, RGBA, Grayscale with automatic detection\n- 🛡️ **Path Flexibility** - Windows, Unix, and relative paths all supported (v1.3.0)\n- 🔍 **Error Resilience** - Per-page error isolation with detailed messages\n- 📏 **Large File Support** - Efficient streaming and memory management\n- 📝 **Type Safe** - Full TypeScript with strict mode enabled\n\n---\n\n## 🆕 What's New in v1.3.0\n\n### 🎉 Absolute Paths Now Supported!\n\n```json\n// ✅ Windows\n{ \"path\": \"C:\\\\Users\\\\John\\\\Documents\\\\report.pdf\" }\n{ \"path\": \"C:/Users/John/Documents/report.pdf\" }\n\n// ✅ Unix/Mac\n{ \"path\": \"/home/john/documents/report.pdf\" }\n{ \"path\": \"/Users/john/Documents/report.pdf\" }\n\n// ✅ Relative (still works)\n{ \"path\": \"documents/report.pdf\" }\n```\n\n**Other Improvements:**\n- 🐛 Fixed Zod validation error handling\n- 📦 Updated all dependencies to latest versions\n- ✅ 173 tests passing, 94%+ coverage maintained\n\n<details>\n<summary><strong>📋 View Full Changelog</strong></summary>\n\n<br/>\n\n**v1.2.0 - Content Ordering**\n- Y-coordinate based text and image ordering\n- Natural reading flow for AI models\n- Intelligent line grouping\n\n**v1.1.0 - Image Extraction & Performance**\n- Base64-encoded image extraction\n- 10x speedup with parallel processing\n- Comprehensive test coverage (94%+)\n\n[View Full Changelog →](./CHANGELOG.md)\n\n</details>\n\n---\n\n## 📖 API Reference\n\n### `read_pdf` Tool\n\nThe single tool that handles all PDF operations.\n\n#### Parameters\n\n| Parameter | Type | Description | Default |\n|-----------|------|-------------|---------|\n| `sources` | Array | List of PDF sources to process | Required |\n| `include_full_text` | boolean | Extract full text content | `false` |\n| `include_metadata` | boolean | Extract PDF metadata | `true` |\n| `include_page_count` | boolean | Include total page count | `true` |\n| `include_images` | boolean | Extract embedded images | `false` |\n\n#### Source Object\n\n```typescript\n{\n  path?: string;        // Local file path (absolute or relative)\n  url?: string;         // HTTP/HTTPS URL to PDF\n  pages?: string | number[];  // Pages to extract: \"1-5,10\" or [1,2,3]\n}\n```\n\n#### Examples\n\n**Metadata only (fast):**\n```json\n{\n  \"sources\": [{ \"path\": \"large.pdf\" }],\n  \"include_metadata\": true,\n  \"include_page_count\": true,\n  \"include_full_text\": false\n}\n```\n\n**From URL:**\n```json\n{\n  \"sources\": [{\n    \"url\": \"https://arxiv.org/pdf/2301.00001.pdf\"\n  }],\n  \"include_full_text\": true\n}\n```\n\n**Page ranges:**\n```json\n{\n  \"sources\": [{\n    \"path\": \"manual.pdf\",\n    \"pages\": \"1-5,10-15,20\"  // Pages 1,2,3,4,5,10,11,12,13,14,15,20\n  }]\n}\n```\n\n---\n\n## 🔧 Advanced Usage\n\n<details>\n<summary><strong>📐 Y-Coordinate Content Ordering</strong></summary>\n\n<br/>\n\nContent is returned in natural reading order based on Y-coordinates:\n\n```\nDocument Layout:\n┌─────────────────────┐\n│ [Title]       Y:100 │\n│ [Image]       Y:150 │\n│ [Text]        Y:400 │\n│ [Photo A]     Y:500 │\n│ [Photo B]     Y:550 │\n└─────────────────────┘\n\nResponse Order:\n[\n  { type: \"text\", text: \"Title...\" },\n  { type: \"image\", data: \"...\" },\n  { type: \"text\", text: \"...\" },\n  { type: \"image\", data: \"...\" },\n  { type: \"image\", data: \"...\" }\n]\n```\n\n**Benefits:**\n- AI understands spatial relationships\n- Natural document comprehension\n- Perfect for vision-enabled models\n- Automatic multi-line text grouping\n\n</details>\n\n<details>\n<summary><strong>🖼️ Image Extraction</strong></summary>\n\n<br/>\n\n**Enable extraction:**\n```json\n{\n  \"sources\": [{ \"path\": \"manual.pdf\" }],\n  \"include_images\": true\n}\n```\n\n**Response format:**\n```json\n{\n  \"images\": [{\n    \"page\": 1,\n    \"index\": 0,\n    \"width\": 1920,\n    \"height\": 1080,\n    \"format\": \"rgb\",\n    \"data\": \"base64-encoded-png...\"\n  }]\n}\n```\n\n**Supported formats:** RGB, RGBA, Grayscale\n**Auto-detected:** JPEG, PNG, and other embedded formats\n\n</details>\n\n<details>\n<summary><strong>📂 Path Configuration</strong></summary>\n\n<br/>\n\n**Absolute paths** (v1.3.0+) - Direct file access:\n```json\n{ \"path\": \"C:\\\\Users\\\\John\\\\file.pdf\" }\n{ \"path\": \"/home/user/file.pdf\" }\n```\n\n**Relative paths** - Workspace files:\n```json\n{ \"path\": \"docs/report.pdf\" }\n{ \"path\": \"./2024/Q1.pdf\" }\n```\n\n**Configure working directory:**\n```json\n{\n  \"mcpServers\": {\n    \"pdf-reader-mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\"@sylphx/pdf-reader-mcp\"],\n      \"cwd\": \"/path/to/documents\"\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><strong>📊 Large PDF Strategies</strong></summary>\n\n<br/>\n\n**Strategy 1: Page ranges**\n```json\n{ \"sources\": [{ \"path\": \"big.pdf\", \"pages\": \"1-20\" }] }\n```\n\n**Strategy 2: Progressive loading**\n```json\n// Step 1: Get page count\n{ \"sources\": [{ \"path\": \"big.pdf\" }], \"include_full_text\": false }\n\n// Step 2: Extract sections\n{ \"sources\": [{ \"path\": \"big.pdf\", \"pages\": \"50-75\" }] }\n```\n\n**Strategy 3: Parallel batching**\n```json\n{\n  \"sources\": [\n    { \"path\": \"big.pdf\", \"pages\": \"1-50\" },\n    { \"path\": \"big.pdf\", \"pages\": \"51-100\" }\n  ]\n}\n```\n\n</details>\n\n---\n\n## 🔒 Security & Sandboxing\n\nBy default the server can read any local file the host process can access and fetch any HTTP(S) URL. When running outside a sandbox you should restrict it to a specific working set.\n\n### Restricting filesystem access\n\nUse `--allow-dir` (repeatable) or the `MCP_PDF_ALLOWED_DIRS` env var (`:` or `,` separated). Once set, all `path` sources must resolve inside one of the allowed directories — relative paths, absolute paths, and `..` traversal are all checked after resolution.\n\n```bash\n# CLI flags\nnpx @sylphx/pdf-reader-mcp --allow-dir=/srv/pdfs --allow-dir=/data/reports\n\n# Environment\nMCP_PDF_ALLOWED_DIRS=\"/srv/pdfs:/data/reports\" npx @sylphx/pdf-reader-mcp\n```\n\n```json\n{\n  \"mcpServers\": {\n    \"pdf-reader\": {\n      \"command\": \"npx\",\n      \"args\": [\"@sylphx/pdf-reader-mcp\", \"--allow-dir=/srv/pdfs\"]\n    }\n  }\n}\n```\n\n### Disabling or restricting HTTP\n\n```bash\n# Block all URL sources\nnpx @sylphx/pdf-reader-mcp --no-http\nMCP_PDF_ALLOW_HTTP=false npx @sylphx/pdf-reader-mcp\n\n# Allowlist hosts (everything else rejected)\nnpx @sylphx/pdf-reader-mcp --allow-host=cdn.example.com --allow-host=files.internal\nMCP_PDF_ALLOWED_HOSTS=\"cdn.example.com,files.internal\" npx @sylphx/pdf-reader-mcp\n```\n\n| Setting | CLI flag | Environment variable | Default |\n|---------|----------|----------------------|---------|\n| Filesystem allowlist | `--allow-dir=<path>` (repeatable) | `MCP_PDF_ALLOWED_DIRS` (`:` or `,` separated) | unrestricted |\n| Disable HTTP | `--no-http` | `MCP_PDF_ALLOW_HTTP=false` | enabled |\n| HTTP host allowlist | `--allow-host=<host>` (repeatable) | `MCP_PDF_ALLOWED_HOSTS` (`,` separated) | any host |\n\nDenied requests fail fast with an `Access denied` error before any disk read or network call.\n\n---\n\n## 🔧 Troubleshooting\n\n### \"Absolute paths are not allowed\"\n\n**Solution:** Upgrade to v1.3.0+\n\n```bash\nnpm update @sylphx/pdf-reader-mcp\n```\n\nRestart your MCP client completely.\n\n---\n\n### \"File not found\"\n\n**Causes:**\n- File doesn't exist at path\n- Wrong working directory\n- Permission issues\n\n**Solutions:**\n\nUse absolute path:\n```json\n{ \"path\": \"C:\\\\Full\\\\Path\\\\file.pdf\" }\n```\n\nOr configure `cwd`:\n```json\n{\n  \"pdf-reader-mcp\": {\n    \"command\": \"npx\",\n    \"args\": [\"@sylphx/pdf-reader-mcp\"],\n    \"cwd\": \"/path/to/docs\"\n  }\n}\n```\n\n---\n\n### \"No tools showing up\"\n\n**Solution:**\n\n```bash\nnpm cache clean --force\nrm -rf node_modules package-lock.json\nnpm install @sylphx/pdf-reader-mcp@latest\n```\n\nRestart MCP client completely.\n\n---\n\n## 🌐 HTTP Transport (Remote Access)\n\nBy default, PDF Reader MCP uses stdio transport for local use. You can also run it as an HTTP server for remote access from multiple machines.\n\n### Quick Start\n\n```bash\n# Run as HTTP server on port 8080\nMCP_TRANSPORT=http npx @sylphx/pdf-reader-mcp\n```\n\n### Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `MCP_TRANSPORT` | `stdio` | Transport type: `stdio` or `http` |\n| `MCP_HTTP_PORT` | `8080` | HTTP server port |\n| `MCP_HTTP_HOST` | `0.0.0.0` | HTTP server hostname |\n| `MCP_API_KEY` | - | Optional API key for authentication |\n\n### Docker Deployment\n\n```dockerfile\nFROM oven/bun:1\nWORKDIR /app\nRUN bun add @sylphx/pdf-reader-mcp\nENV MCP_TRANSPORT=http\nENV MCP_HTTP_PORT=8080\nEXPOSE 8080\nCMD [\"bun\", \"node_modules/@sylphx/pdf-reader-mcp/dist/index.js\"]\n```\n\n### MCP Client Configuration (HTTP)\n\n```json\n{\n  \"servers\": {\n    \"pdf-reader\": {\n      \"type\": \"http\",\n      \"url\": \"https://your-server.com/mcp\",\n      \"headers\": {\n        \"X-API-Key\": \"your-api-key\"\n      }\n    }\n  }\n}\n```\n\n### Endpoints\n\n| Endpoint | Method | Description |\n|----------|--------|-------------|\n| `/mcp` | POST | JSON-RPC endpoint |\n| `/mcp/health` | GET | Health check |\n\n---\n\n## 🏗️ Architecture\n\n### Tech Stack\n\n| Component | Technology |\n|:----------|:-----------|\n| **Runtime** | Node.js 22+ ESM |\n| **PDF Engine** | PDF.js (Mozilla) |\n| **Validation** | Vex + JSON Schema |\n| **Protocol** | MCP SDK |\n| **Language** | TypeScript (strict) |\n| **Testing** | Bun test (173 tests) |\n| **Quality** | Biome (50x faster) |\n| **CI/CD** | GitHub Actions |\n\n### Design Principles\n\n- 🔒 **Security First** - Flexible paths with secure defaults\n- 🎯 **Simple Interface** - One tool, all operations\n- ⚡ **Performance** - Parallel processing, efficient memory\n- 🛡️ **Reliability** - Per-page isolation, detailed errors\n- 🧪 **Quality** - 94%+ coverage, strict TypeScript\n- 📝 **Type Safety** - No `any` types, strict mode\n- 🔄 **Backward Compatible** - Smooth upgrades always\n\n---\n\n## 🧪 Development\n\n<details>\n<summary><strong>Setup & Scripts</strong></summary>\n\n<br/>\n\n**Prerequisites:**\n- Node.js >= 22.13.0 (required by pdfjs-dist v6)\n- Bun (this repo uses `bun@1.3.1`)\n\n**Setup:**\n```bash\ngit clone https://github.com/SylphxAI/pdf-reader-mcp.git\ncd pdf-reader-mcp\nbun install && bun run build\n```\n\n**Scripts:**\n```bash\nbun run build        # Build with bunup\nbun test             # Run 173 tests\nbun run test:cov     # Coverage (94%+)\nbun run check        # Lint + format\nbun run check:fix    # Auto-fix\nbun run benchmark    # Performance tests\n```\n\n**Quality:**\n- ✅ 173 tests\n- ✅ 94%+ coverage\n- ✅ 98%+ function coverage\n- ✅ Zero lint errors\n- ✅ Strict TypeScript\n\n</details>\n\n<details>\n<summary><strong>Contributing</strong></summary>\n\n<br/>\n\n**Quick Start:**\n1. Fork repository\n2. Create branch: `git checkout -b feature/awesome`\n3. Make changes: `bun test`\n4. Format: `bun run check:fix`\n5. Commit: Use [Conventional Commits](https://www.conventionalcommits.org/)\n6. Open PR\n\n**Commit Format:**\n```\nfeat(images): add WebP support\nfix(paths): handle UNC paths\ndocs(readme): update examples\n```\n\nSee [CONTRIBUTING.md](./CONTRIBUTING.md)\n\n</details>\n\n---\n\n## 📚 Documentation\n\n- 📖 [Full Docs](https://SylphxAI.github.io/pdf-reader-mcp/) - Complete guides\n- 🚀 [Getting Started](./docs/guide/getting-started.md) - Quick start\n- 📘 [API Reference](./docs/api/README.md) - Detailed API\n- 🏗️ [Design](./docs/design/index.md) - Architecture\n- ⚡ [Performance](./docs/performance/index.md) - Benchmarks\n- 🔍 [Comparison](./docs/comparison/index.md) - vs. alternatives\n\n---\n\n## 🗺️ Roadmap\n\n**✅ Completed**\n- [x] Image extraction (v1.1.0)\n- [x] 5-10x parallel speedup (v1.1.0)\n- [x] Y-coordinate ordering (v1.2.0)\n- [x] Absolute paths (v1.3.0)\n- [x] 94%+ test coverage (v1.3.0)\n\n**🚀 Next**\n- [ ] OCR for scanned PDFs\n- [ ] Annotation extraction\n- [ ] Form field extraction\n- [ ] Table detection\n- [ ] 100+ MB streaming\n- [ ] Advanced caching\n- [ ] PDF generation\n\nVote at [Discussions](https://github.com/SylphxAI/pdf-reader-mcp/discussions)\n\n---\n\n## 🏆 Recognition\n\n**Featured on:**\n- [Smithery](https://smithery.ai/server/@sylphx/pdf-reader-mcp) - MCP directory\n- [Glama](https://glama.ai/mcp/servers/@sylphx/pdf-reader-mcp) - AI marketplace\n- [MseeP.ai](https://mseep.ai/app/SylphxAI-pdf-reader-mcp) - Security validated\n\n**Trusted worldwide** • **Enterprise adoption** • **Battle-tested**\n\n---\n\n## 🤝 Support\n\n[![GitHub Issues](https://img.shields.io/github/issues/SylphxAI/pdf-reader-mcp?style=flat-square)](https://github.com/SylphxAI/pdf-reader-mcp/issues)\n[![Discord](https://img.shields.io/discord/YOUR_DISCORD_ID?style=flat-square&logo=discord)](https://discord.gg/sylphx)\n\n- 🐛 [Bug Reports](https://github.com/SylphxAI/pdf-reader-mcp/issues)\n- 💬 [Discussions](https://github.com/SylphxAI/pdf-reader-mcp/discussions)\n- 📖 [Documentation](https://SylphxAI.github.io/pdf-reader-mcp/)\n- 📧 [Email](mailto:hi@sylphx.com)\n\n**Show Your Support:**\n⭐ Star • 👀 Watch • 🐛 Report bugs • 💡 Suggest features • 🔀 Contribute\n\n---\n\n## 📊 Stats\n\n![Stars](https://img.shields.io/github/stars/SylphxAI/pdf-reader-mcp?style=social)\n![Forks](https://img.shields.io/github/forks/SylphxAI/pdf-reader-mcp?style=social)\n![Downloads](https://img.shields.io/npm/dm/@sylphx/pdf-reader-mcp)\n![Contributors](https://img.shields.io/github/contributors/SylphxAI/pdf-reader-mcp)\n\n**103 Tests** • **94%+ Coverage** • **Production Ready**\n\n---\n\n## 📄 License\n\nMIT © [Sylphx](https://sylphx.com)\n\n---\n\n## 🙏 Credits\n\nBuilt with:\n- [PDF.js](https://mozilla.github.io/pdf.js/) - Mozilla PDF engine\n- [Bun](https://bun.sh) - Fast JavaScript runtime\n\nSpecial thanks to the open source community ❤️\n\n## Powered by Sylphx\n\nThis project uses the following [@sylphx](https://github.com/SylphxAI) packages:\n\n- [@sylphx/mcp-server-sdk](https://github.com/SylphxAI/mcp-server-sdk) - MCP server framework\n- [@sylphx/vex](https://github.com/SylphxAI/vex) - Schema validation\n- [@sylphx/biome-config](https://github.com/SylphxAI/biome-config) - Biome configuration\n- [@sylphx/tsconfig](https://github.com/SylphxAI/tsconfig) - TypeScript configuration\n- [@sylphx/bump](https://github.com/SylphxAI/bump) - Version management\n- [@sylphx/doctor](https://github.com/SylphxAI/doctor) - Project health checker\n\n---\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=SylphxAI/pdf-reader-mcp&type=Date)](https://star-history.com/#SylphxAI/pdf-reader-mcp&Date)\n\n---\n\n<div align=\"center\">\n<sub>Built with ❤️ by <a href=\"https://github.com/SylphxAI\">Sylphx</a></sub>\n</div>\n","readmeFilename":"README.md"}