{"_id":"@cyanheads/openlibrary-mcp-server","_rev":"26-a1a33453ad6bf222cda88b1eac643557","name":"@cyanheads/openlibrary-mcp-server","dist-tags":{"latest":"0.3.0"},"versions":{"0.1.1":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.1","keywords":["mcp","mcp-server","model-context-protocol","open-library","books","library","isbn","authors","editions","internet-archive"],"license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"24e72f43f2217e0cbeeeb3967336bfc8070e7849","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.1.tgz","fileCount":69,"integrity":"sha512-qYgjUpnQjBV7o8IKBattoViyfZEPvEpsKsBPjxQUw+beiV/veBxhNC3Vhms4z8rreMnmribTfaHvHdBtafBcZA==","signatures":[{"sig":"MEQCIF0HM5fatADWgImy7NuxmyLhiDdNk7zK04fSeNRbrr/MAiAP+CppUJc2F5lO050ASNrSFN9hxYnUqY/ajVlikt9/1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224116},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"24e72f43f2217e0cbeeeb3967336bfc8070e7849","engines":{"bun":">=1.3.0","node":">=24.0.0"},"scripts":{"test":"vitest run","tree":"tsx scripts/tree.ts","build":"tsx scripts/build.ts","clean":"tsx scripts/clean.ts","start":"node dist/index.js","bundle":"npm run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe .","rebuild":"tsx scripts/clean.ts && tsx scripts/build.ts","devcheck":"tsx scripts/devcheck.ts","lint:mcp":"tsx scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"tsx scripts/list-skills.ts","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"tsx scripts/lint-packaging.ts","changelog:build":"tsx scripts/build-changelog.ts","changelog:check":"tsx scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-qYgjUpnQjBV7o8IKBattoViyfZEPvEpsKsBPjxQUw+beiV/veBxhNC3Vhms4z8rreMnmribTfaHvHdBtafBcZA==","repository":{"url":"https://github.com/cyanheads/openlibrary-mcp-server","type":"git"},"_npmVersion":"10.8.3","description":"MCP server for Open Library — search 20M+ books, fetch editions, authors, subjects, and cover images.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.1_1779559914493_0.8671225034240606","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"fd05b5853687c1a74971ac71132bd80b478201bb","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.2.tgz","fileCount":70,"integrity":"sha512-A3GMQSxdKxtHjbjN9ZRfA4+dTvpDRthaN5dHg1AuQ0g1JPDO7qD3dCE2icuSgsh9Fo6yxhyY64U1EWTLZfqf0A==","signatures":[{"sig":"MEUCIA/DejWni0Utb/P37h9317b+qUpzBcJI9rbJ1GTtSh9hAiEAtqZXQfqUHwFYemqQqRSk9ifMUxhTkA3WLMnXN2uc18s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":225705},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"fd05b5853687c1a74971ac71132bd80b478201bb","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"vitest run","tree":"tsx scripts/tree.ts","build":"tsx scripts/build.ts","clean":"tsx scripts/clean.ts","start":"node dist/index.js","bundle":"npm run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe .","rebuild":"tsx scripts/clean.ts && tsx scripts/build.ts","devcheck":"tsx scripts/devcheck.ts","lint:mcp":"tsx scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"tsx scripts/list-skills.ts","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"tsx scripts/lint-packaging.ts","changelog:build":"tsx scripts/build-changelog.ts","changelog:check":"tsx scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-A3GMQSxdKxtHjbjN9ZRfA4+dTvpDRthaN5dHg1AuQ0g1JPDO7qD3dCE2icuSgsh9Fo6yxhyY64U1EWTLZfqf0A==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"MCP server for Open Library — search 20M+ books, fetch editions, authors, subjects, and cover images.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"tsx":"^4.22.3","ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.2_1779590200565_0.8210519159863361","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"2943a03d9f43dcf29ce168656903522976792b7a","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.3.tgz","fileCount":71,"integrity":"sha512-xDAP8Onw2dvRhqsS6gF3oB+8BQGAVjYye0zFfHAbQLlu6rujfRlWXIDbQVL6du3CVMDJQS+PoaNDisZfHyWeFA==","signatures":[{"sig":"MEQCIGqS6BZyZSqvvpJEPzQWcJnjB+Cqq8ztECFjOOVFcoKbAiBZOI6nN0NnjxSA7TApTjOwMCYKSmEd5AfzD0zZZGYY6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":226245},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"2943a03d9f43dcf29ce168656903522976792b7a","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"vitest run","tree":"bun scripts/tree.ts","build":"bun scripts/build.ts","clean":"bun scripts/clean.ts","start":"node dist/index.js","bundle":"npm run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe .","rebuild":"bun scripts/clean.ts && bun scripts/build.ts","devcheck":"bun scripts/devcheck.ts","lint:mcp":"bun scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio node dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun scripts/lint-packaging.ts","changelog:build":"bun scripts/build-changelog.ts","changelog:check":"bun scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-xDAP8Onw2dvRhqsS6gF3oB+8BQGAVjYye0zFfHAbQLlu6rujfRlWXIDbQVL6du3CVMDJQS+PoaNDisZfHyWeFA==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.3_1779591796282_0.1850985823747069","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"39ec5326826e2001ebd334c6bb1a8924cbf828ef","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.4.tgz","fileCount":66,"integrity":"sha512-VrvIvneGnPPfvllxqq+yBtS452xaTyq72xlVrasgjCBCLrLF0tRCAPog7BpqwtC49JksCu6ElfC4nvfVJG4gvw==","signatures":[{"sig":"MEUCIQCtZqoVImqKnA8fQDV55QZo2O0KB+3S9cCRfgjxU2YMNgIgNantH4De0a/d353jCewswCnYLqw8H1VBSprrKkiKlVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216928},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"39ec5326826e2001ebd334c6bb1a8924cbf828ef","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-VrvIvneGnPPfvllxqq+yBtS452xaTyq72xlVrasgjCBCLrLF0tRCAPog7BpqwtC49JksCu6ElfC4nvfVJG4gvw==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.4_1779593499360_0.9754201909307636","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.5","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"bcc826e88d9e79faa1a5bd6f8e66e14c19d3db8b","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.5.tgz","fileCount":66,"integrity":"sha512-lU53Ex1ye0GbA5HfqLFNDwsmbx+kJhXOU5tzYebZQzJ0tc60fRNjOi32vdQbqI6ffQzB1mmSlwIOid38KrWwHQ==","signatures":[{"sig":"MEUCIHW3RB5o9ZRMtpr43Z5Fz2GYNxAe+b6PfHJ+PlXtp+ZmAiEA/pvL7mTd8I0NZvEtq4kTtaevXIoVLMkQ1DHSMv3DV9M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217155},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"bcc826e88d9e79faa1a5bd6f8e66e14c19d3db8b","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-lU53Ex1ye0GbA5HfqLFNDwsmbx+kJhXOU5tzYebZQzJ0tc60fRNjOi32vdQbqI6ffQzB1mmSlwIOid38KrWwHQ==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.5_1779598661438_0.4497913346162925","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.6","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"f7623d224ac9d5de4ed260609f8f84b01df2b9b8","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.6.tgz","fileCount":66,"integrity":"sha512-4+X7y09QnCT5dq4JSnWZWRnjkXsNSNiSbThMkGqKnfEhuiDW5gYBjZyU1/hHInZgG5G1XGnd6h+LHKvzfOlyiA==","signatures":[{"sig":"MEUCIQC+sALmoDMtJaQGDxMC7boT//mR4CqtiksXJgea0m9zkgIgLAeF1NUg1EuIp/91dOWgPSVhK1rB1Cw7bXr2kKEpIjA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":217705},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f7623d224ac9d5de4ed260609f8f84b01df2b9b8","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-4+X7y09QnCT5dq4JSnWZWRnjkXsNSNiSbThMkGqKnfEhuiDW5gYBjZyU1/hHInZgG5G1XGnd6h+LHKvzfOlyiA==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.6_1779624949307_0.9828395840946673","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.7","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"1fe9a286793e24864a2319cd6b2e29b9cccb8bb7","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.7.tgz","fileCount":66,"integrity":"sha512-BnJVqiANkWw8GSr5LpNmHC3TmuCTtoqqvzRFkEXlq1kAk3TBwr4CyCdgQdYEBR/JBoJajhBF3+C2jT6RD8WQAA==","signatures":[{"sig":"MEUCIEwaQu81DsCl30thDofgZEm51GI7XjDgWUkvYuU1ABwSAiEA0riSAMBgA3+2uPTkIYW6MlhkEz7whVjXDGE4d18Ej7E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216884},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1fe9a286793e24864a2319cd6b2e29b9cccb8bb7","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-BnJVqiANkWw8GSr5LpNmHC3TmuCTtoqqvzRFkEXlq1kAk3TBwr4CyCdgQdYEBR/JBoJajhBF3+C2jT6RD8WQAA==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.7_1779660489398_0.16771519715919725","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.8","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":{"url":"https://github.com/cyanheads/openlibrary-mcp-server#readme","name":"cyanheads","email":"casey@caseyjhand.com"},"license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"f8687319b527dd94f119e1e8439089871b400e39","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.8.tgz","fileCount":66,"integrity":"sha512-oylZcW+pIPyn9r+SsQeYfR+ON6/s7et694LtSrUsEMPYzQPwbdZgO14TG8+FfccO7DA/IQCLXo5EE28FwsIusg==","signatures":[{"sig":"MEYCIQCiBvDy++tpJXxcoIOOCYXT0oof7Wt6VSapb83hjIOxjgIhALHu5Q4NgwZuubvYqjCK2ITDjHTowDGzciI+5uSq6z7p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216914},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"gitHead":"0e0aa69453e525288c0e40bb0a7180969b31cb4d","mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"11.12.1","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.8_1779811286302_0.2175606604157858","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.9","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.9","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"f11a0820e6a01150b9513436156b8c48ef983957","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.9.tgz","fileCount":66,"integrity":"sha512-Z+2Hpo6Yuvg0tdKpIHAQZYqlwyd1Apt/Ip1gBvtWhQ1imD4gYw91zq+/6moZPktnbf46rvqTKEQI7CS9Fv7BcA==","signatures":[{"sig":"MEUCIQC6ioUAnHEHX+Arj2Xv8r3t+MTiLSPSzgLBh6P6lwsZfgIgDZ9gl7fp2syzBuUIULpluN9DkcrXFIXIsYN356VMs4Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216375},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f11a0820e6a01150b9513436156b8c48ef983957","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-Z+2Hpo6Yuvg0tdKpIHAQZYqlwyd1Apt/Ip1gBvtWhQ1imD4gYw91zq+/6moZPktnbf46rvqTKEQI7CS9Fv7BcA==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.9_1780032276320_0.38851095063738095","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.10","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.10","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"aee9c6b3e4e492bec3e97680e7c30d240c967ac6","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.10.tgz","fileCount":66,"integrity":"sha512-PmVu5JfWLKx4FP8r9U8HEOdVpwV9u9qKZ94wlH27u5HHjJq8SzVEYoCCcCvjIa9e8YSbADK1fNyz3RKvVCEgVQ==","signatures":[{"sig":"MEUCIEfGy1DvbtI7fWt+SrJHxdkWVx6xunY2f/HCzq6fi9d1AiEAy5qt589hb5xYnguTl7cJL/wG7BQagVpmaLdoZUxJJPU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216179},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"aee9c6b3e4e492bec3e97680e7c30d240c967ac6","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-PmVu5JfWLKx4FP8r9U8HEOdVpwV9u9qKZ94wlH27u5HHjJq8SzVEYoCCcCvjIa9e8YSbADK1fNyz3RKvVCEgVQ==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.10_1780132360910_0.2981289168534125","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.11","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.11","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"a0bab1b8ce98640aa0130b3094d08b2327f6ffdc","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.11.tgz","fileCount":66,"integrity":"sha512-dMAk6muhcagMF5lVj8uKKEGekDBQEyKrVz17b+UrnqgSqI4qF3QZsSBhf7JFkMbV2C6YSfLww/TOzmaY2kd/rA==","signatures":[{"sig":"MEUCIGNzDWwZpVKCUkJPlM8YDo4c3SQFG4ijuJYYGbmJm1seAiEAmr3AT064MJjgi+F02c4y4MlLZsmZPB6jL6asZ5HUIh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216619},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"a0bab1b8ce98640aa0130b3094d08b2327f6ffdc","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"tsx scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-dMAk6muhcagMF5lVj8uKKEGekDBQEyKrVz17b+UrnqgSqI4qF3QZsSBhf7JFkMbV2C6YSfLww/TOzmaY2kd/rA==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.11_1780411640245_0.7332243007692076","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.12","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.12","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"a1f35ad6e3c87dd3c4411fd9e60b279ff0ffd276","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.12.tgz","fileCount":66,"integrity":"sha512-vp7LTvb7fzvnwIB8BSw/RHD87vU1OCvXlSPHyMiSfWTU3BntvPPyffkuvo/T9XsRMouC4jsmi7dVjZdiw9PZlA==","signatures":[{"sig":"MEUCIQDSr1s5rLbtPLK68cAB5xfRoZrF2woZDWm+yHmMjCKL/QIgeQcYfdzcg1K582eHgXBASoX+C6LsM8KCxvRYjnrXduk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218685},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"a1f35ad6e3c87dd3c4411fd9e60b279ff0ffd276","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"tsx scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-vp7LTvb7fzvnwIB8BSw/RHD87vU1OCvXlSPHyMiSfWTU3BntvPPyffkuvo/T9XsRMouC4jsmi7dVjZdiw9PZlA==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.0","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.12_1780560956333_0.8057762471687908","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.13","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.13","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"6e53712768c73a2a19eb28a8a3930b334ba86edd","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.13.tgz","fileCount":66,"integrity":"sha512-dCDVTMjKvmkvfa+GNn4f3A1KuWLKmu5wYjUxYxFsM5/QnmWV/lzEHuEtoTyuw4Wmk6nIGm/cP+HyVx+TIAdJkg==","signatures":[{"sig":"MEYCIQCgIbVJFnVpSpLN5su+P1Fhi958oBhUY7ks1BJTG7hxIgIhAMYcdfYWJqYlZ0s8P1lsUqjKSkj/THNlrahi6cA2KJ2P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222021},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"6e53712768c73a2a19eb28a8a3930b334ba86edd","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"tsx scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-dCDVTMjKvmkvfa+GNn4f3A1KuWLKmu5wYjUxYxFsM5/QnmWV/lzEHuEtoTyuw4Wmk6nIGm/cP+HyVx+TIAdJkg==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.3","@biomejs/biome":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.13_1781322422468_0.4533717862811113","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.14","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.14","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"ab5cb3847f64b90f816d8537c8c2d78c4218e6b9","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.14.tgz","fileCount":66,"integrity":"sha512-Cls6V5utdp4dGdBsjwJBU5iiv9l6EczPYGHmTy+Tur2rSZnnN3Hs3BAsVd6UnykOgOTdwFktNW4a3CKvol654Q==","signatures":[{"sig":"MEUCIHdt+COEddYGp0SqIxqsPKAGFtsfD0w6BqjPtgoXR4V/AiEArssRxOyNwgi34nIIeV3YS8uiseZ/ZhQAJyH1JUIi0jU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222631},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"ab5cb3847f64b90f816d8537c8c2d78c4218e6b9","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"tsx scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-Cls6V5utdp4dGdBsjwJBU5iiv9l6EczPYGHmTy+Tur2rSZnnN3Hs3BAsVd6UnykOgOTdwFktNW4a3CKvol654Q==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.3","@biomejs/biome":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.14_1781571260655_0.1960655473757016","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.15","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.15","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"8c209e5a967eeb6f076906c22e16cf08e8225863","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.15.tgz","fileCount":66,"integrity":"sha512-20eI87n4JwqmsIUHT9Z6r3lFhHuRGBBl7UUTj9bCd8AoAE0nyz0Tv3qw4f/U+Z5oD5+FKnfD8KUF0v+NzF892Q==","signatures":[{"sig":"MEQCIFvvwLseo7eh6hU6gmYkmO8nFH2WCqb7/au4Cul6+obpAiAD86WrL78ijm9+4w2lR3HFOd4SeUhhhWpfKTNU7pPmAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222635},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8c209e5a967eeb6f076906c22e16cf08e8225863","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-20eI87n4JwqmsIUHT9Z6r3lFhHuRGBBl7UUTj9bCd8AoAE0nyz0Tv3qw4f/U+Z5oD5+FKnfD8KUF0v+NzF892Q==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.3","@biomejs/biome":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.15_1781575144252_0.5764291301933377","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.16","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openlibrary-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.16","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"473bcf82a216b7bb31b912cfbe48922dd00a98d7","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.16.tgz","fileCount":66,"integrity":"sha512-M/gwjIr8ZzLoWzvdsV0BtX+l1ez66RzMDM8KFA8zqPCq+4PnYznQb89GaVX4Qz9Y1LzlKaBwJfBPXTTyYnsUMA==","signatures":[{"sig":"MEUCIQDsHpmBH8Qak1+FF0XxyWuKpS0tjV/mlZ6M1NgBaxkJUwIgDOke74jpQ+YSdE5Ub9O1sbtKVr+hOnFLvJpL2rhhdpA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222635},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"473bcf82a216b7bb31b912cfbe48922dd00a98d7","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-M/gwjIr8ZzLoWzvdsV0BtX+l1ez66RzMDM8KFA8zqPCq+4PnYznQb89GaVX4Qz9Y1LzlKaBwJfBPXTTyYnsUMA==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"^2.5.0"},"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.16_1781977090569_0.7401180905802995","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.17","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.17","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"fe31248ea05c83bd820ab0be5ef7e9cefe3eeb68","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.17.tgz","fileCount":66,"integrity":"sha512-NoinIGROglEZBLlrMQParJ43us0LlPIUK24RqsFwjiRhNzIG/e3ZBZ3NH7+kM2iWIQ+ttpAKB5kli7uljnOhSg==","signatures":[{"sig":"MEQCIF6vhQc0Hal2lzTJGk/L3bEXCgQsMnvTby9XwrSTP8pdAiArF3katqsH9bl4zF0UUqdOiX4qzepZAlQ0fsG+YRIEJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":232749},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"fe31248ea05c83bd820ab0be5ef7e9cefe3eeb68","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-NoinIGROglEZBLlrMQParJ43us0LlPIUK24RqsFwjiRhNzIG/e3ZBZ3NH7+kM2iWIQ+ttpAKB5kli7uljnOhSg==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.2","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.17_1783962879683_0.6842374769598956","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.18","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.18","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"221a4d9ea0211ab9496b5f9aad2e1b7c5997ec0e","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.18.tgz","fileCount":66,"integrity":"sha512-rOeddSNOm9aI+YAAhRrMk10CHKzgm8x3e/iJ6NLOxhwcHhbZcksspmbcTQOeYWmXNKqFv1dyvRAB3hkQI0AZug==","signatures":[{"sig":"MEUCIQDe8nTuScG0XpL0RUhjc5mAxOEf9xaXuzZKQQBbdh75uQIgSdsEhQVD7cx+ohQGgSMv+LANUDTMlhC9sXsixLUAiZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237542},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"221a4d9ea0211ab9496b5f9aad2e1b7c5997ec0e","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-rOeddSNOm9aI+YAAhRrMk10CHKzgm8x3e/iJ6NLOxhwcHhbZcksspmbcTQOeYWmXNKqFv1dyvRAB3hkQI0AZug==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.2","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.18_1783967650086_0.57685570275098","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.19","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.19","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"536d67907925de94dda3b573f1e9bd1faa02cf65","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.19.tgz","fileCount":70,"integrity":"sha512-NmE9ZwR7lVmmmONTrDl9dSWLegrE6aMXLDxJLv/bXyCzmPnrkuJVSQ/En/PuAzJlEsZV7OgSDN9LxL2GBdS0Ag==","signatures":[{"sig":"MEYCIQC6pSDw7YXHwH7c2KaAXixemSjrlh0YUgJpzO4TxTZNmAIhAOb2MCpfj37LY998hjJQqqYONifGZByutkXrjgVnMoID","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":260253},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"536d67907925de94dda3b573f1e9bd1faa02cf65","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-NmE9ZwR7lVmmmONTrDl9dSWLegrE6aMXLDxJLv/bXyCzmPnrkuJVSQ/En/PuAzJlEsZV7OgSDN9LxL2GBdS0Ag==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.15"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.4","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.19_1785006623156_0.14459005605131114","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.1.20","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.1.20","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"55bc771e7a2e5df919a50c21bdf15acd0e911e8e","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.1.20.tgz","fileCount":74,"integrity":"sha512-ENV5MdL2au+43fKbLK17pNyRprGCFJCGUjNU+jVaoW428mWeKn0WQZJafwZv4pBqSfkNIpmJQ3EBwVh392CGyw==","signatures":[{"sig":"MEYCIQDzsnYW+TJLoCtL68lL1co0jqNirW+2ksUd+j1DaoKkAAIhAKdB6JDo2tWdoflQhnfxvVEMottlZe2K8+ivns2VS+VF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267440},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"55bc771e7a2e5df919a50c21bdf15acd0e911e8e","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-ENV5MdL2au+43fKbLK17pNyRprGCFJCGUjNU+jVaoW428mWeKn0WQZJafwZv4pBqSfkNIpmJQ3EBwVh392CGyw==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.4","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.1.20_1785061761843_0.6901588411913253","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.2.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.2.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"441dba432cfb5c3cd1bf48105b0548b692fdb54f","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.2.0.tgz","fileCount":78,"integrity":"sha512-aJCAMrTBfGjd+tg6xpMtgMvUn6fXWeM5jj3/x3xXSj5qeTNN5vHyfIhIyACEFMZnMNSioelH3XPhb2ZaE8S8Bw==","signatures":[{"sig":"MEUCIC4sc+7abkHi0nyInEUn3RtmvYEHJnZ64dT5PJnRdL/NAiEAlg+4FBeT3Ytts1jLGt06SoNYdODAyIulJt6jNtmD/gU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301566},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"441dba432cfb5c3cd1bf48105b0548b692fdb54f","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-aJCAMrTBfGjd+tg6xpMtgMvUn6fXWeM5jj3/x3xXSj5qeTNN5vHyfIhIyACEFMZnMNSioelH3XPhb2ZaE8S8Bw==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.10.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"2.5.4","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.2.0_1785064611538_0.5191484333585652","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.2.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.2.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"1c092082f96434ae4ba1643912331adb63aff0b0","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.2.1.tgz","fileCount":78,"integrity":"sha512-aIYm0wF9BUcwcjB6kXngu1wF5fLGPCSnlueyXC1Cn5EH6pF7fUYGT9GeB+Oc1P7uMilOJmaTBa/aevxETrEG3w==","signatures":[{"sig":"MEUCIQC0XNmd8rk7EGlqyYKMQqaWAoLfswgbaHKkGRbjduWuRAIgWhx4bOnTTmSgOO1/MxpFqAbOhvNmLCEH/wPEh5U1tLo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301749},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1c092082f96434ae4ba1643912331adb63aff0b0","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-aIYm0wF9BUcwcjB6kXngu1wF5fLGPCSnlueyXC1Cn5EH6pF7fUYGT9GeB+Oc1P7uMilOJmaTBa/aevxETrEG3w==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.2.1_1785066657031_0.21634448352821778","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.2.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.2.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"4081a2075ca639e03d96f31c5e4eeda991d339ae","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.2.2.tgz","fileCount":78,"integrity":"sha512-VS4QrZdOehJLwtOxKlaAWXa5N0CMV8YvwPL3nVG6l3X7oNOpDM1mtXHWL+6KzuWzh2rVsUi6jQ82UB4sJ6AYNQ==","signatures":[{"sig":"MEYCIQDX0crax9zB7NHY19g0R+dwvqjHJtASEppIvn5oYiPgQAIhAJKzY41zpEfr4v2GX2cV/zO90msbc2hTYQL/E/ZaAjZO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315953},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"4081a2075ca639e03d96f31c5e4eeda991d339ae","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-VS4QrZdOehJLwtOxKlaAWXa5N0CMV8YvwPL3nVG6l3X7oNOpDM1mtXHWL+6KzuWzh2rVsUi6jQ82UB4sJ6AYNQ==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.2.2_1785104390823_0.8598545792201973","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.2.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.2.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"3a7a6797ea483bf4e5cc152ed47facc40b918017","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.2.3.tgz","fileCount":82,"integrity":"sha512-dIoUYbvjwn685j9Anr5FFE1kuIS0qN54eVX6ClFlobd8VRQBwwiaxwSkgbMBrb447bZPUcIra5WH3dd7BNSsBQ==","signatures":[{"sig":"MEUCIQCnkbwQTUCvBKyWVK8a2YPe8Pb5uvt5lyMyeFtXTaxcsAIgWOdLg91nWK5PFRW7zbJ4AR++poleD02sp4ey9ODhhlI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":319819},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"3a7a6797ea483bf4e5cc152ed47facc40b918017","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-dIoUYbvjwn685j9Anr5FFE1kuIS0qN54eVX6ClFlobd8VRQBwwiaxwSkgbMBrb447bZPUcIra5WH3dd7BNSsBQ==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"2.5.5","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.2.3_1785105507696_0.7830596082072283","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@cyanheads/openlibrary-mcp-server","version":"0.2.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openlibrary-mcp-server@0.2.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"bin":{"openlibrary-mcp-server":"dist/index.js"},"dist":{"shasum":"727c0b6d8d85959b431003188e0fc1060e8ccc1a","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.2.4.tgz","fileCount":82,"integrity":"sha512-KvArUW4xnqGAFZtqD6lrHiD5h0e1cR8+YdaN7tXn+RKP6cUL+IO7IjIfvjzXt4SJUTIlzAgMN1BxDNwE+tT4Ww==","signatures":[{"sig":"MEQCIClxtqyzJsgQQlfF4ssLygqXTgzyzCKl/1V9dQ7Ua5LqAiBmap+bcXTb2UNl5jjk4en0wp/n3+rV5AFRUyJAaKu4/A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320945},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"727c0b6d8d85959b431003188e0fc1060e8ccc1a","engines":{"bun":">=1.3.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-KvArUW4xnqGAFZtqD6lrHiD5h0e1cR8+YdaN7tXn+RKP6cUL+IO7IjIfvjzXt4SJUTIlzAgMN1BxDNwE+tT4Ww==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.12.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.11","depcheck":"^1.4.7","tsc-alias":"^1.9.2","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"2.5.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"tmp":"tmp/openlibrary-mcp-server_0.2.4_1787625095141_0.4520505595145643","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"_id":"@cyanheads/openlibrary-mcp-server@0.3.0","bin":{"openlibrary-mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"dist":{"shasum":"d651239d2b5035b5e46e766cea0c50b2425c70f8","tarball":"https://registry.npmjs.org/@cyanheads/openlibrary-mcp-server/-/openlibrary-mcp-server-0.3.0.tgz","fileCount":116,"integrity":"sha512-8YayTNDeCl8l7aVnSERnUObS7syKP/xKJQ2Guh233RaewZu2Vdr6GKYfiYHTKe31gTv3j28JEF1bQzKxSvcpwQ==","signatures":[{"sig":"MEYCIQCMa8YEca3jG9fTFy212i0bQWWEhfMmW+1OQonj0hxhTAIhAICj3jj+OVC0q9aGMofaBf0LvkEy+drlzLYd0z0SJ+L2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICrjBF0BqEJ3ltV0KiAXk3KH2o4Ww4xBjh+mwPSg6ia7AiEA+lja15E/57eqXFrTFXf5cfGslPnTRQ8JjCyQFE43mrM="}],"unpackedSize":468204},"main":"dist/index.js","name":"@cyanheads/openlibrary-mcp-server","type":"module","types":"dist/index.d.ts","author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","shasum":"d651239d2b5035b5e46e766cea0c50b2425c70f8","engines":{"bun":">=1.4.0","node":">=24.0.0"},"funding":[{"url":"https://github.com/sponsors/cyanheads","type":"github"},{"url":"https://www.buymeacoffee.com/cyanheads","type":"buy_me_a_coffee"}],"license":"Apache-2.0","mcpName":"io.github.cyanheads/openlibrary-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openlibrary-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openlibrary-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe .","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"version":"0.3.0","_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"_integrity":"sha512-8YayTNDeCl8l7aVnSERnUObS7syKP/xKJQ2Guh233RaewZu2Vdr6GKYfiYHTKe31gTv3j28JEF1bQzKxSvcpwQ==","repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","directories":{},"maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"trustedDependencies":["@socketsecurity/bun-security-scanner"],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openlibrary-mcp-server_0.3.0_1790287776164_0.9239548925368173"}}},"time":{"created":"2026-05-23T18:11:54.360Z","modified":"2026-09-24T22:09:36.472Z","0.1.1":"2026-05-23T18:11:54.651Z","0.1.2":"2026-05-24T02:36:40.705Z","0.1.3":"2026-05-24T03:03:16.425Z","0.1.4":"2026-05-24T03:31:39.512Z","0.1.5":"2026-05-24T04:57:41.579Z","0.1.6":"2026-05-24T12:15:49.478Z","0.1.7":"2026-05-24T22:08:09.552Z","0.1.8":"2026-05-26T16:01:26.467Z","0.1.9":"2026-05-29T05:24:36.460Z","0.1.10":"2026-05-30T09:12:41.039Z","0.1.11":"2026-06-02T14:47:20.450Z","0.1.12":"2026-06-04T08:15:56.497Z","0.1.13":"2026-06-13T03:47:02.634Z","0.1.14":"2026-06-16T00:54:20.800Z","0.1.15":"2026-06-16T01:59:04.420Z","0.1.16":"2026-06-20T17:38:10.696Z","0.1.17":"2026-07-13T17:14:39.832Z","0.1.18":"2026-07-13T18:34:10.223Z","0.1.19":"2026-07-25T19:10:23.318Z","0.1.20":"2026-07-26T10:29:21.982Z","0.2.0":"2026-07-26T11:16:51.671Z","0.2.1":"2026-07-26T11:50:57.173Z","0.2.2":"2026-07-26T22:19:51.011Z","0.2.3":"2026-07-26T22:38:27.843Z","0.2.4":"2026-08-25T02:31:35.286Z","0.3.0":"2026-09-24T22:09:36.263Z"},"bugs":{"url":"https://github.com/cyanheads/openlibrary-mcp-server/issues"},"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","homepage":"https://github.com/cyanheads/openlibrary-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent","open-library","books","library","isbn","authors","editions","internet-archive"],"repository":{"url":"git+https://github.com/cyanheads/openlibrary-mcp-server.git","type":"git"},"description":"Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"readme":"<div align=\"center\">\n  <h1>@cyanheads/openlibrary-mcp-server</h1>\n  <p><b>Search books and authors, fetch editions, browse subjects, and resolve cover images from Open Library via MCP. STDIO or Streamable HTTP.</b>\n  <div>10 Tools • 2 Resources</div>\n  </p>\n</div>\n\n<div align=\"center\">\n\n[![Version](https://img.shields.io/badge/Version-0.3.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/openlibrary-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/openlibrary-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/openlibrary-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)\n\n</div>\n\n<div align=\"center\">\n\n[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/openlibrary-mcp-server/releases/latest/download/openlibrary-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=openlibrary-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvb3BlbmxpYnJhcnktbWNwLXNlcnZlciJdfQ==) [![Install in VS Code](https://img.shields.io/badge/VS_Code-Install_Server-0098FF?style=for-the-badge&logo=visualstudiocode&logoColor=white)](https://vscode.dev/redirect?url=vscode:mcp/install?%7B%22name%22%3A%22openlibrary-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fopenlibrary-mcp-server%22%5D%7D)\n\n[![Framework](https://img.shields.io/badge/Built%20on-@cyanheads/mcp--ts--core-67E8F9?style=flat-square)](https://www.npmjs.com/package/@cyanheads/mcp-ts-core)\n\n**Public Hosted Server:** [https://openlibrary.caseyjhand.com/mcp](https://openlibrary.caseyjhand.com/mcp)\n\n</div>\n\n---\n\n## Overview\n\nOpen Library's catalog of 20M+ books, editions, authors, and subjects, plus full-text search across Internet Archive's scanned books. Search and browse from any MCP client, drill from a work into its editions or an author into their works, and resolve cover and author-photo URLs. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.\n\n### Tools\n\n| Tool | Description |\n|:---|:---|\n| `openlibrary_search_books` | Full-text book search with field filters (title, author, subject, publisher, ISBN, language), sort options, pagination, and optional live reading availability |\n| `openlibrary_get_work` | Fetch a work by Open Library Work ID (OL…W) — title, description, subjects, cover IDs, and author IDs |\n| `openlibrary_get_editions` | List editions of a work — publishers, languages, formats, ISBNs, and print run details |\n| `openlibrary_get_edition` | Resolve up to 50 editions in one call by ISBN-10, ISBN-13, OCLC, LCCN, or Open Library Edition ID (OL…M), reporting per-identifier misses |\n| `openlibrary_search_authors` | Search authors by name — returns Author IDs, birth/death dates, top works, and subject associations |\n| `openlibrary_get_author` | Fetch author detail by Open Library Author ID (OL…A) — bio, dates, photo IDs, and linked identifiers from Wikidata, VIAF, ISNI, Goodreads, and LibraryThing |\n| `openlibrary_get_author_works` | List works by an author — titles, cover IDs, and Work OLIDs for drilling into editions or details |\n| `openlibrary_get_subject` | Browse works by subject tag — returns matching works with edition counts and cover IDs plus the total work count |\n| `openlibrary_search_inside` | Full-text search inside the scanned text of Internet Archive books — returns matching items with snippets |\n| `openlibrary_get_cover_url` | Resolve a cover image URL for a book or author photo in S/M/L size — returns a direct HTTPS URL embeddable in markdown |\n\n### Resources\n\n| Resource | Description |\n|:---|:---|\n| `openlibrary://works/{work_id}` | Work detail by Open Library Work ID — title, description, subjects, cover IDs, and author IDs as injectable context |\n| `openlibrary://authors/{author_id}` | Author detail by Open Library Author ID — name, bio, dates, photo IDs, and linked external identifiers as injectable context |\n\nBoth resources mirror data also available via `openlibrary_get_work` and `openlibrary_get_author` — useful for clients that don't surface MCP resources.\n\n## Capability reference\n\n### `openlibrary_search_books` <sub>tool</sub>\n\n- Free-text query with Solr field prefixes (`title:`, `author:`, `subject:`, `publisher:`, `isbn:`, `language:`) or dedicated filter parameters; 1–100 results per page (default 10), offset pagination\n- `sort`: `relevance` (default), `new`, `old`, `rating`, `editions`\n- `language` accepts a 3-letter MARC code or a translatable 2-letter ISO code; an untranslatable 2-letter code fails as `unknown_language_code` rather than being silently dropped\n- `include_availability` adds live Internet Archive borrow/read status (~200ms latency), off by default; flags Open Library leaves out are omitted rather than reported as `false`, and `availability: null` means none was returned for the work\n- Returns work-level records with edition counts, cover IDs, subjects, and Internet Archive identifiers; `content[]` text caps Internet Archive IDs and subjects at 5 each per work, `structuredContent` carries every one\n\n---\n\n### `openlibrary_get_work` <sub>tool</sub>\n\n- Fetch by Open Library Work ID (OL…W), optionally `/works/`-prefixed; anything else — an ISBN, an edition or author OLID — fails input validation before any request, naming `openlibrary_get_edition` (`id_type: \"isbn\"`) as the route from an ISBN to its work\n- Returns title, description, subjects (plus place/time/people breakdowns), cover IDs, and author IDs — no author names (use `openlibrary_get_author` or `openlibrary_search_books`)\n- A merged work ID stays reachable — the redirect chain is followed to the canonical record, `work_id` reports the canonical ID, and an enrichment notice names both IDs when they differ\n- `content[]` text caps subjects at 10; `structuredContent` carries the complete list\n- `not_found` when the Work ID doesn't exist or its redirect chain reaches no work\n\n---\n\n### `openlibrary_get_editions` <sub>tool</sub>\n\n- List editions of a work by Work ID (OL…W), optionally `/works/`-prefixed; 1–100 per page (default 10), offset pagination, with the requested `offset` echoed in the output\n- Same `work_id` validation as `openlibrary_get_work` — an ISBN resolves to its work through `openlibrary_get_edition` (`id_type: \"isbn\"`)\n- Returns ISBN-10/13, publisher, language, page count, cover IDs, and edition OLIDs (OL…M) per edition\n- A merged work ID stays reachable — the editions of the canonical work come back under its ID in `work_id`, with an enrichment notice naming both IDs; a live work still costs one request\n- `not_found` when the Work ID doesn't exist or its redirect chain reaches no work\n\n---\n\n### `openlibrary_get_edition` <sub>tool</sub>\n\n- Resolves 1–50 identifiers per call in a single upstream request — every identifier shares one `id_type`: `isbn` (10 or 13 digits, an ISBN-10 may end in an `X` check digit), `oclc` (numeric), `lccn` (unchecked), or `olid` (OL…M)\n- Partial success: identifiers that resolve return in `editions` (request order); the rest land in `unresolved` with `invalid_identifier` (malformed, never sent upstream) or `not_found` (well-formed, no record) — the call fails only when nothing resolves\n- `upstream_unavailable` (retryable) when Open Library's batch lookup itself fails — an HTTP error status other than a rate limit, or an HTML page — so an upstream outage never reads as a missing edition\n- Authors come inline — the edition's own credits, or ones marked `source: \"work\"` recovered from the parent work when the edition itself lists none; if those lookups fail, the batch still returns, and an enrichment notice names the editions whose authors are missing or shown by ID\n- Returns ISBN-10/13, OCLC, LCCN, LC call numbers, publisher, language, page count, cover IDs, parent work ID, and an Internet Archive `ebook_url` when one exists\n\n---\n\n### `openlibrary_search_authors` <sub>tool</sub>\n\n- Search by name — partial and alternate names match; 1–100 per page (default 10), offset pagination\n- Returns Author ID (OL…A), alternate names, birth/death dates, top work, work count, top subjects, and average rating\n- `content[]` text caps top subjects at 5 per author; `structuredContent` carries the complete list\n\n---\n\n### `openlibrary_get_author` <sub>tool</sub>\n\n- Fetch by Author ID (OL…A); a leading `/authors/` prefix is stripped\n- Returns bio, birth/death dates, photo IDs, and linked identifiers (Wikidata, VIAF, ISNI, Goodreads, LibraryThing)\n- A merged author ID stays reachable — the response is the canonical record, and an enrichment notice names the canonical ID when it differs from the one requested\n- `not_found` when the Author ID doesn't exist, names a record that is not an author (a work or edition OLID), or its redirect chain reaches no author\n\n---\n\n### `openlibrary_get_author_works` <sub>tool</sub>\n\n- List works by Author ID (OL…A); 1–100 per page (default 20), offset pagination, with the requested `offset` echoed in the output\n- Returns title, first-publish date, cover IDs, and Work ID (OL…W) per work\n- A merged author ID stays reachable — an enrichment notice names the canonical ID when it differs from the one requested\n- `not_found` when the Author ID doesn't exist, names a record that is not an author (a work or edition OLID), or its redirect chain reaches no author\n\n---\n\n### `openlibrary_get_subject` <sub>tool</sub>\n\n- Subject name is normalized before lookup (lowercased, spaces → underscores), so case and spacing never change the result; 1–100 per page (default 12), offset pagination, with the requested `offset` echoed in the output\n- Returns canonical subject name, normalized subject key, total work count, and per-work author names, edition count, and cover ID\n- Empty results carry a recovery notice suggesting a different word form, synonym, or broader term — subject tags are user-contributed and inconsistent\n\n---\n\n### `openlibrary_search_inside` <sub>tool</sub>\n\n- Full-text search across Internet Archive's scanned book text — the only tool that answers \"which book contains this passage?\"; quote a phrase for an exact match, unquoted terms match independently\n- Usually takes 10–30 s against the live index, far above the metadata tools — reach for it deliberately, not as a general book search\n- 1–100 results per page (default 10), offset pagination; each result carries a relevance score comparable only within its own result set\n- Results key on Internet Archive `ia_identifier`, not Open Library work IDs — match it against `ia_identifiers` from `openlibrary_search_books` to reach the catalogue record\n- `content[]` text caps snippets at 3 per item; `structuredContent` carries every snippet\n- `upstream_unavailable` (retryable) when the index answers without a result set, so a failed search never reads as \"no book contains this\"\n\n---\n\n### `openlibrary_get_cover_url` <sub>tool</sub>\n\n- Resolves a cover or author-photo URL from `id` (numeric), `isbn` (10 or 13 digits, an ISBN-10 may end in an `X` check digit), or `olid` (OL…M for `target: \"book\"`, OL…A for `target: \"author\"`); `size` is `S`/`M`/`L` (default `M`)\n- Identifiers are validated locally before any request — path separators, `..`, and control characters fail as `invalid_identifier`, and an author lookup by `isbn` fails as `invalid_target`\n- The Covers API always returns HTTP 200 — a missing cover is a 1×1 placeholder GIF, not an error, which is why local validation exists\n- Output URL is ready to embed directly as `![cover](url)`\n\n---\n\n### `openlibrary://works/{work_id}` <sub>resource</sub>\n\n- Same fields as `openlibrary_get_work`, as injectable `application/json` context for a conversation about a specific book\n- `work_id` comes from `openlibrary_search_books` or `openlibrary_get_author_works`; a merged ID resolves to the canonical work, whose ID the returned `work_id` carries, and an ID that is not a work (an edition or author OLID) is not found\n\n---\n\n### `openlibrary://authors/{author_id}` <sub>resource</sub>\n\n- Same fields as `openlibrary_get_author`, as injectable `application/json` context for a conversation about a specific author\n- `author_id` comes from `openlibrary_search_authors`; a merged ID resolves to the canonical author, whose ID the returned `author_id` carries, and an ID that is not an author (a work or edition OLID) is not found\n\n## Features\n\nBuilt on [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core): stdio and Streamable HTTP transports, pluggable auth (`none` / `jwt` / `oauth`), swappable storage (`in-memory`, `filesystem`, `Supabase`, `Cloudflare KV/R2/D1`), structured logging with optional OpenTelemetry tracing.\n\nOpen Library-specific:\n\n- Complete Open Library REST API coverage — Search, Search Inside (full-text), Books, Authors, Subjects, and Covers APIs, plus Internet Archive availability lookups\n- Work → editions and author → works drill-down, with explicit OLID cross-links between tool outputs\n- Configurable `User-Agent` header (`OPENLIBRARY_USER_AGENT`) identifying the server per Open Library's bot-blocking convention\n- Batch edition resolution — up to 50 ISBN/OCLC/LCCN/OLID identifiers in one upstream call, with per-identifier partial-failure reporting\n- Timeouts sized per endpoint class (10 s record lookups, 30 s searches, 45 s full-text) inside a 50 s retry budget, so a slow upstream is waited on and a failing one returns a classified error before a typical 60 s client timeout; gateway errors are not retried in a loop\n\nAgent-friendly output:\n\n- Recovery guidance on every empty result — echoes the search criteria and suggests how to broaden a query or which offset to retry\n- Merged-record disclosure — `openlibrary_get_author`, `openlibrary_get_author_works`, `openlibrary_get_work`, and `openlibrary_get_editions` follow merge redirects and surface the canonical ID via an enrichment notice when a requested ID was merged\n- Per-item partial failure — `openlibrary_get_edition` returns resolved editions alongside typed `unresolved` reasons instead of failing the whole batch\n- Text-output caps disclosed via enrichment notices (Internet Archive IDs, subjects, snippets) while `structuredContent` always carries the complete list\n\n## Getting started\n\n### Public Hosted Instance\n\nA public instance is available at `https://openlibrary.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:\n\n```json\n{\n  \"mcpServers\": {\n    \"openlibrary-mcp-server\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://openlibrary.caseyjhand.com/mcp\"\n    }\n  }\n}\n```\n\n### Self-Hosted / Local\n\nAdd the following to your MCP client configuration file.\n\n```json\n{\n  \"mcpServers\": {\n    \"openlibrary-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"bunx\",\n      \"args\": [\"@cyanheads/openlibrary-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\"\n      }\n    }\n  }\n}\n```\n\nOr with npx (no Bun required):\n\n```json\n{\n  \"mcpServers\": {\n    \"openlibrary-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cyanheads/openlibrary-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\"\n      }\n    }\n  }\n}\n```\n\nOr with Docker:\n\n```json\n{\n  \"mcpServers\": {\n    \"openlibrary-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"MCP_TRANSPORT_TYPE=stdio\", \"ghcr.io/cyanheads/openlibrary-mcp-server:latest\"]\n    }\n  }\n}\n```\n\nFor Streamable HTTP, set the transport and start the server:\n\n```sh\nMCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http\n# Server listens at http://localhost:3010/mcp\n```\n\n### Prerequisites\n\n- [Bun v1.4.0](https://bun.sh/) or higher (or Node.js ≥ 24.0.0).\n- No API key required — Open Library is a free, public API.\n\n### Installation\n\n1. **Clone the repository:**\n\n```sh\ngit clone https://github.com/cyanheads/openlibrary-mcp-server.git\n```\n\n2. **Navigate into the directory:**\n\n```sh\ncd openlibrary-mcp-server\n```\n\n3. **Install dependencies:**\n\n```sh\nbun install\n```\n\n4. **Configure environment (optional):**\n\n```sh\ncp .env.example .env\n# edit .env to override defaults — no required vars\n```\n\n## Configuration\n\n| Variable | Description | Default |\n|:---|:---|:---|\n| `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http` | `stdio` |\n| `MCP_HTTP_PORT` | HTTP server port | `3010` |\n| `MCP_HTTP_ENDPOINT_PATH` | HTTP endpoint path where the MCP server is mounted | `/mcp` |\n| `MCP_SESSION_MODE` | HTTP session posture: `stateless`, `stateful`, or `auto`. Overrides the `stateless` declared in `src/index.ts`. | `stateless` |\n| `MCP_PUBLIC_URL` | Public origin override for TLS-terminating reverse-proxy deployments | none |\n| `MCP_AUTH_MODE` | Authentication: `none`, `jwt`, or `oauth` | `none` |\n| `MCP_LOG_LEVEL` | Log level (`debug`, `info`, `warning`, `error`, etc.) | `info` |\n| `MCP_GC_PRESSURE_INTERVAL_MS` | Opt-in Bun-only forced-GC pressure loop (ms). Recommended starting point if heap growth is observed: `60000`. | `0` (disabled) |\n| `LOGS_DIR` | Directory for log files (Node.js only) | `<project-root>/logs` |\n| `STORAGE_PROVIDER_TYPE` | Storage backend: `in-memory`, `filesystem`, `supabase`, `cloudflare-kv/r2/d1` | `in-memory` |\n| `OPENLIBRARY_USER_AGENT` | User-Agent sent with all Open Library API requests. Include a contact email per community convention. | `openlibrary-mcp-server casey@caseyjhand.com` |\n| `OTEL_ENABLED` | Enable OpenTelemetry | `false` |\n\nSee [`.env.example`](./.env.example) for the full list of optional overrides.\n\n## Running the server\n\n### Local development\n\n- **Build and run the production version:**\n\n  ```sh\n  # One-time build\n  bun run rebuild\n\n  # Run the built server\n  bun run start:http\n  # or\n  bun run start:stdio\n  ```\n\n- **Run checks and tests:**\n\n  ```sh\n  bun run devcheck  # Lint, format, typecheck, security\n  bun run test      # Vitest test suite\n  bun run lint:mcp  # Validate MCP definitions against spec\n  ```\n\n### Docker\n\n```sh\ndocker build -t openlibrary-mcp-server .\ndocker run --rm -p 3010:3010 openlibrary-mcp-server\n```\n\nThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/openlibrary-mcp-server`. OpenTelemetry peer dependencies are installed by default — build with `--build-arg OTEL_ENABLED=false` to omit them.\n\n## Project structure\n\n| Directory | Purpose |\n|:---|:---|\n| `src/index.ts` | `createApp()` entry point — registers tools and resources. |\n| `src/config` | Server-specific environment variable parsing and validation with Zod. |\n| `src/mcp-server/tools` | Tool definitions (`*.tool.ts`) — ten tools across Search, Books, Authors, Subjects, and Covers. |\n| `src/mcp-server/resources` | Resource definitions (`*.resource.ts`) — Work and Author. |\n| `src/services/open-library` | Open Library service layer — API client and domain types. |\n| `tests/` | Unit and integration tests mirroring the `src/` structure. |\n\n## Development guide\n\nSee [`CLAUDE.md`](./CLAUDE.md) for development guidelines and architectural rules. The short version:\n\n- Handlers throw, framework catches — no `try/catch` in tool logic\n- Use `ctx.log` for logging, `ctx.state` for storage\n- Register new tools and resources in the `createApp()` arrays\n- Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields\n\n## Contributing\n\nIssues are welcome. Run checks and tests before submitting:\n\n```sh\nbun run devcheck\nbun run test\n```\n\n## License\n\nThis project is licensed under the Apache 2.0 License. See the [LICENSE](./LICENSE) file for details.\n","readmeFilename":"README.md"}