{"_id":"@cyanheads/gbif-biodiversity-mcp-server","_rev":"25-8349789b4868771a5be5ff0dd89f8045","name":"@cyanheads/gbif-biodiversity-mcp-server","dist-tags":{"latest":"0.7.4"},"versions":{"0.2.0":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"834bf066382caae2ff1c73f1def94b95bd6c483e","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.0.tgz","fileCount":82,"integrity":"sha512-09Yq5a++ZESBIwYLsYD0DutatYuu0SmPlPIFc4pKuUw99/ZYoeV94hUBlnguj5QU3QPHYiZucjSStfJK9RQ7OA==","signatures":[{"sig":"MEUCIQDSmSCwSm9vdkXk11odtXqoPN3C9ytZX3+in2qdqXjaXAIgTbNTEa74aqkpyR3KuEJO07EHxJ8BuZspRaGTkdIAG9A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301162},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"834bf066382caae2ff1c73f1def94b95bd6c483e","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-09Yq5a++ZESBIwYLsYD0DutatYuu0SmPlPIFc4pKuUw99/ZYoeV94hUBlnguj5QU3QPHYiZucjSStfJK9RQ7OA==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.0_1779682062658_0.32274831681994076","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"27185158aa20a34babadbde2dd1b85a4ccc9bc5b","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.1.tgz","fileCount":82,"integrity":"sha512-vuV4kERLqMowj0YOkOZf5j44xUghk7IlB4c+E/tMr0WRPcmKNJlkeSdpNrbvqJQHJxUQI5wHVM5hNviiuxR0kg==","signatures":[{"sig":"MEYCIQDO17XIjFWzc9qUCFNOT0fLm98597qG9B9z4S/ns7iDawIhAKfkP64uxqJ26EJEyQtlH1QH2PsLHlhrM4uIZ7xHVqmG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":302846},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"27185158aa20a34babadbde2dd1b85a4ccc9bc5b","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-vuV4kERLqMowj0YOkOZf5j44xUghk7IlB4c+E/tMr0WRPcmKNJlkeSdpNrbvqJQHJxUQI5wHVM5hNviiuxR0kg==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.1_1779689372059_0.9668214500069914","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"77861139c65ded3a326daca5d7d14770fd8b57b8","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.2.tgz","fileCount":82,"integrity":"sha512-ZaCCs2YCeLQTjY10IBlv3W58cT4Qij3TuP4ntONnJhoIYWkl8/+jq7iUZ7LJ+AqWbHap1A4QMr8G4EZltoH27A==","signatures":[{"sig":"MEQCICuqYcxkBmNhJDCQ/8qt9bwah381hTAQYdWp+HmR9F9NAiAVzh/pLU/b6f4sg+RPXYNIZ7+LHQNB7W0MSjoJgzOkvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":303302},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"77861139c65ded3a326daca5d7d14770fd8b57b8","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-ZaCCs2YCeLQTjY10IBlv3W58cT4Qij3TuP4ntONnJhoIYWkl8/+jq7iUZ7LJ+AqWbHap1A4QMr8G4EZltoH27A==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.2_1780031593495_0.6729470973619731","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"b93b13bd5daad0118c9c803b699a466f96232e7c","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.3.tgz","fileCount":82,"integrity":"sha512-NeqnHB+2XBycsAuTJyxIkQCMrB6mnCwpe4RcBBO6CkqBcvMjyJpupt1dkgqtonGB7k8KhEoag42u9Dq5/WCG/A==","signatures":[{"sig":"MEYCIQCcB3Xu19O3HRNV19sjR2lmDVZJiwDEY9bqZ/b0PT92TgIhAIYsoe5XhDh+4zyZ9SiI6bJXDBLuNlUHm83F3EfsXzl7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":301370},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"b93b13bd5daad0118c9c803b699a466f96232e7c","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-NeqnHB+2XBycsAuTJyxIkQCMrB6mnCwpe4RcBBO6CkqBcvMjyJpupt1dkgqtonGB7k8KhEoag42u9Dq5/WCG/A==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.3_1780036923777_0.9868611928457247","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"04533f0b038eaf3a470e759bb67a123e14ac765b","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.4.tgz","fileCount":82,"integrity":"sha512-0Qq+/Ja8UFDP3F3umcJZGgLC+VSryzKMshh/4YZ4RwDx0bep8KE/utq3cG6lv3bGnB96cRKdJgjqTWkR8UpYzw==","signatures":[{"sig":"MEQCIBWW91QTaZOLwjAlkj5l3KpqlJb9j8kLFrAfzYnsXGd9AiBEZGuVnujnhEtWs9SRjH4o39Ih0EuLqoMwgNYxsSsEjw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308861},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"04533f0b038eaf3a470e759bb67a123e14ac765b","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-0Qq+/Ja8UFDP3F3umcJZGgLC+VSryzKMshh/4YZ4RwDx0bep8KE/utq3cG6lv3bGnB96cRKdJgjqTWkR8UpYzw==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.4_1780134076869_0.08662941287483572","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.5","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"8e2d23790f219bab1e273dccebf53b04175b88e4","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.5.tgz","fileCount":82,"integrity":"sha512-A/FUSXqarcQalUp25lE604OJPd3UbEm6lk0t/sOAXarSdp5DS4amPmHolcwlEWGtYp7khhXcxSdBFPqWuqaHwA==","signatures":[{"sig":"MEUCIQC4NusU1ZYkJpCiJct5pT2VqPcl/aTPtByRuiTvELU4TQIgVJlVjZmKqmeDgprhgRAYLXqwTVTW/7fy8ULmaKe5fVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308992},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8e2d23790f219bab1e273dccebf53b04175b88e4","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-A/FUSXqarcQalUp25lE604OJPd3UbEm6lk0t/sOAXarSdp5DS4amPmHolcwlEWGtYp7khhXcxSdBFPqWuqaHwA==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.5_1780410316590_0.3428657665300514","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.6","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"d2f4d8027d83b2819b1b3e28d24118d41fc32ce3","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.6.tgz","fileCount":82,"integrity":"sha512-LWSD9Bv0/Ctn5POpqCHKSsN6XRjQQaPmsQdw++RWah+RhLBbE2pSVUbNdP0qtBBRFpXuWsS9m48x8fPxoRdMPQ==","signatures":[{"sig":"MEUCIHghIe6X5ghiuIZhkfOf4gaODUDoAC2bwDh4ql6klgDBAiEAv4r1/+9m9Q0ptKejL1O+PFoT+ErtPhoeacRM0mdRMk8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":311704},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d2f4d8027d83b2819b1b3e28d24118d41fc32ce3","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-LWSD9Bv0/Ctn5POpqCHKSsN6XRjQQaPmsQdw++RWah+RhLBbE2pSVUbNdP0qtBBRFpXuWsS9m48x8fPxoRdMPQ==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.6_1780562845482_0.6213166922685975","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.7","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"96da3c555b1e9c26c953e95a0154e024cc011799","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.7.tgz","fileCount":82,"integrity":"sha512-OURnm+C3LQ5swRtywDTX9BaacGVHYETnk8qPOXKT/IKC9T6nD6l/3vOXEXj1zryO/w5E755QimfJXgdXEF1+wQ==","signatures":[{"sig":"MEUCIQDCcSkR2EtHXco3QboCT56hFNrhYl744Z6h1G/FycbqZgIgEe14ztef1XcRVNZViWPvI6I71Kx2keELtdzrnM/QSJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":312843},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"96da3c555b1e9c26c953e95a0154e024cc011799","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-OURnm+C3LQ5swRtywDTX9BaacGVHYETnk8qPOXKT/IKC9T6nD6l/3vOXEXj1zryO/w5E755QimfJXgdXEF1+wQ==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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.4.16"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.2.7_1781250492328_0.777217190836984","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.8","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"1d10bb69f3daa6be050889989056585cf3f4d8bf","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.8.tgz","fileCount":82,"integrity":"sha512-+ZqOoQGye0G5v6pUDZ/vxO3VwIQyTnTeDxE4Un4XW5WnVXloQDAScBc9WizJ5jUl64RZ7qqnWiRWaPdocbuetg==","signatures":[{"sig":"MEUCIQCIOHnBzX7xg4d8q++bsqdpINhUOxMaDr82jzOWbNXN3gIgIYMCyrVsnG0WJLQtTQIhMBHgPiZ4+537pqvHJtjrLCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313444},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"1d10bb69f3daa6be050889989056585cf3f4d8bf","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-+ZqOoQGye0G5v6pUDZ/vxO3VwIQyTnTeDxE4Un4XW5WnVXloQDAScBc9WizJ5jUl64RZ7qqnWiRWaPdocbuetg==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.8_1781570374979_0.442655339469459","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.2.9","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.2.9","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"01904c004e9b4edaed1fe9b7c28e68c292c40e7a","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.2.9.tgz","fileCount":82,"integrity":"sha512-0+lsTtfJT25WCPcic5suTBmMgLTV7DFR8FSn9l41EpmV4wn7NaLSMN07TOhYgZch0Kr97/B0hqbPi8W3bwpvUw==","signatures":[{"sig":"MEUCIQC77N+qAmWyhai8h43xamdGJM/6/WnP2AgDw3qqBkxzYAIgUL5NOx6jmsp0YKAxHf94PD80M/nG8NANhpSDoYCZY0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":313444},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"01904c004e9b4edaed1fe9b7c28e68c292c40e7a","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-0+lsTtfJT25WCPcic5suTBmMgLTV7DFR8FSn9l41EpmV4wn7NaLSMN07TOhYgZch0Kr97/B0hqbPi8W3bwpvUw==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.2.9_1781956023697_0.01621638615106802","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.3.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.3.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"2c9aa18f549b0a367419b3ad00664fe531a4d5e1","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.3.0.tgz","fileCount":82,"integrity":"sha512-bvyRaDDM9RXfEwWMgKTeoG2jPxGvHODaFZkfgM8sfUHDF70sM8ZBAhIDy7gK5xYgz1EHxiEegr79yJx0Iey8ng==","signatures":[{"sig":"MEUCIFnpjg9spfgVXhyBu9tiERXKPkE7CXU+1L+F8Rpo/WP6AiEA5B3y/w1N8IuLs+jwx0qpUhod+Y6Qfj9djtfMov/PRzM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":320040},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"2c9aa18f549b0a367419b3ad00664fe531a4d5e1","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","publish:compat":"cd dist && jq '.name = \"@cyanheads/gbif-mcp-server\"' package.json > tmp.json && mv tmp.json package.json && npm publish --access public && jq '.name = \"@cyanheads/gbif-biodiversity-mcp-server\"' package.json > tmp.json && mv tmp.json package.json","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-bvyRaDDM9RXfEwWMgKTeoG2jPxGvHODaFZkfgM8sfUHDF70sM8ZBAhIDy7gK5xYgz1EHxiEegr79yJx0Iey8ng==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.2","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/gbif-biodiversity-mcp-server_0.3.0_1782849418916_0.9895763380437828","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.4.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.4.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"8d971b35185c3d4f309f6af100338bfec7ce2e9c","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.4.0.tgz","fileCount":82,"integrity":"sha512-fTgW6HA28+aw14J4+srqnSmeXTUzO9d7q3YMIU2MchHrFYc9z1OlhzEcy81kITDBZrhgFqnG4vY1lPnLmNBiEw==","signatures":[{"sig":"MEUCIQC3HbFr+KU1NFVqBTh8qCddDce9bOk0hquovlcR9aP5JAIgHvIqnMWgpaIJaIgrFw1d1djLbdv88mZBeD4Nl2pDD6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321308},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8d971b35185c3d4f309f6af100338bfec7ce2e9c","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-fTgW6HA28+aw14J4+srqnSmeXTUzO9d7q3YMIU2MchHrFYc9z1OlhzEcy81kITDBZrhgFqnG4vY1lPnLmNBiEw==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.2","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/gbif-biodiversity-mcp-server_0.4.0_1782852337877_0.11182808408480005","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.5.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.5.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"91d2483d6813bfd448ce4724093e48c35adab35f","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.5.0.tgz","fileCount":86,"integrity":"sha512-Rti40fuYyRrMCLQzjl/QEt8ORO8Mg9jWT/wSpnfZSsMxk+/9aGwkeAw0vukylOiUOD01l3yigypxZWeW0S7dRg==","signatures":[{"sig":"MEQCIA+mGRZdsnXjRLdohjeyAPadIp3Jqx6aqiD39BEVkugVAiAG5pgnUoUUZKEzDhroRNcxsAH8HBT68YtruT3JtLWdGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335147},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"91d2483d6813bfd448ce4724093e48c35adab35f","engines":{"bun":">=1.3.2","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-Rti40fuYyRrMCLQzjl/QEt8ORO8Mg9jWT/wSpnfZSsMxk+/9aGwkeAw0vukylOiUOD01l3yigypxZWeW0S7dRg==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.2","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/gbif-biodiversity-mcp-server_0.5.0_1782855051624_0.2222112383983117","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.5.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.5.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"9f61b0c59a4de0e2991a32d6369711687f715003","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.5.1.tgz","fileCount":86,"integrity":"sha512-BSZqB36mGpJEj/DEsyWOJ7zFvFk6UvgJuav6HdwTx3yRZKxDQBIuWf3N+TbhzZ/viwLAr0srmXgfblEvnMX0vA==","signatures":[{"sig":"MEYCIQD3/swBvLtv6P+6qmpNnSI1rOgigaSNmoSjlvNn8DKVVwIhANaDbMZ9tPwNkfXAD58JrYURfV6CeHtsP9QkcSajob+l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":359097},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9f61b0c59a4de0e2991a32d6369711687f715003","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-BSZqB36mGpJEj/DEsyWOJ7zFvFk6UvgJuav6HdwTx3yRZKxDQBIuWf3N+TbhzZ/viwLAr0srmXgfblEvnMX0vA==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.0","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.5.1_1783963512312_0.17652782268116973","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.5.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.5.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"a14dcdcaf3aa46e40e0a2bcc096875cd8fb1f119","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.5.2.tgz","fileCount":86,"integrity":"sha512-JxoSLKB+kyyV2LSgDEmhqSgtgMbQ78RruS2HVY8JRJcggO88qeLOpVK4mwIJoTv4X+HaSYIHH0VzTqMUcD1iSw==","signatures":[{"sig":"MEUCIQCGmTBXVC459AtZDIaS5IPFQfyxk5z9lpJyt6jfqX7jjgIgeU/v/BjtwwL3j7vgAXAt8YCJ8AZlB6Yf8GWiSTWtxxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":362632},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"a14dcdcaf3aa46e40e0a2bcc096875cd8fb1f119","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-JxoSLKB+kyyV2LSgDEmhqSgtgMbQ78RruS2HVY8JRJcggO88qeLOpVK4mwIJoTv4X+HaSYIHH0VzTqMUcD1iSw==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.0","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.5.2_1783991399357_0.4006176257974803","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.5.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.5.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"cb75bca3f57b168289dac08c382d5d50ef44cc0f","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.5.3.tgz","fileCount":86,"integrity":"sha512-wvhWmnlTyO0u7RylstDI6P5bCGajmNb3laSTNQAT7IvPpbVClGJOIemMShcx3UBLthIA9xuw4xK87S/20Fd7Iw==","signatures":[{"sig":"MEYCIQDXKjqit4zKDrlDMMUmm3UvBFH50p1Xjp1jV/3568yYSgIhAPsGSYx1hGTo7mj1Yfbw51YTs4i7agBcP73n4YIp0TlM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":369802},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"cb75bca3f57b168289dac08c382d5d50ef44cc0f","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-wvhWmnlTyO0u7RylstDI6P5bCGajmNb3laSTNQAT7IvPpbVClGJOIemMShcx3UBLthIA9xuw4xK87S/20Fd7Iw==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.5.3_1786033065328_0.4353305697464114","host":"s3://npm-registry-packages-npm-production"}},"0.5.4":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.5.4","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.5.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"f0f564bb1541ff7f0bb15512efc375aa5589b792","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.5.4.tgz","fileCount":86,"integrity":"sha512-ZkEgO9F05+SnmZ+WRsinJhaVzLtAq9Gr9X02SWyvhe+3h84nsrd0ESF/p5/y94atlyN5rzTji/u1WeZFHY38EA==","signatures":[{"sig":"MEUCIGKqQkqVKT2LyWijPC4E6eBRO77Xm5pzvIgU2tPhZws+AiEAobEmpK3nz5V8vJiqznnSO5lO7+YL4NBSTWTdcAfixGE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393749},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f0f564bb1541ff7f0bb15512efc375aa5589b792","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-ZkEgO9F05+SnmZ+WRsinJhaVzLtAq9Gr9X02SWyvhe+3h84nsrd0ESF/p5/y94atlyN5rzTji/u1WeZFHY38EA==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.5.4_1786036635541_0.2858220183082696","host":"s3://npm-registry-packages-npm-production"}},"0.5.5":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.5.5","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.5.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"fe0df99fd3bc8e4ac3103aa65ea320d48248b5c1","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.5.5.tgz","fileCount":86,"integrity":"sha512-eKeNkjEfwOKC93uAkta+oO3uc9Rvi4nJgLQt3Cwcc23/zP0fzwsk8B7i0Th2tHayN/2gq3NxlkqgClGZpwi3NA==","signatures":[{"sig":"MEUCIAeEhx+AAyyj1B3ycOHKSbEkB5X96x2IlDsE/iWl9jCwAiEA8UDi5JnCJCzkocg3EwyPUOwoCYvXIZoaP2ya+OJB+gY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":409607},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"fe0df99fd3bc8e4ac3103aa65ea320d48248b5c1","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-eKeNkjEfwOKC93uAkta+oO3uc9Rvi4nJgLQt3Cwcc23/zP0fzwsk8B7i0Th2tHayN/2gq3NxlkqgClGZpwi3NA==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.5.5_1786039997066_0.8789651036243125","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.6.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.6.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"f323c054e860ea994bd9afa5a1d49d401e7733c6","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.6.0.tgz","fileCount":86,"integrity":"sha512-18f7s2s1C662GdDO4qJIuSyXVCv7XdvqXL5TEkjk36Ck5XC+TcoY9k/pJirJkc0NZ5dnNp4wwC8PCn07t1kF2w==","signatures":[{"sig":"MEQCICwAMUVAZemIP+kk/frMSD0wVzFgS7Y6c/caF/bNdXXyAiA1YsQTl7wYnSHPw0E28keuapBh5nTyfSKhkMbVyncIYg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":443360},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f323c054e860ea994bd9afa5a1d49d401e7733c6","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-18f7s2s1C662GdDO4qJIuSyXVCv7XdvqXL5TEkjk36Ck5XC+TcoY9k/pJirJkc0NZ5dnNp4wwC8PCn07t1kF2w==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.6.0_1786044741050_0.1802299165765524","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.6.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.6.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"78fd5a7be1486495dda0cfe7d0246962647ad7fe","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.6.1.tgz","fileCount":86,"integrity":"sha512-5rnbn2jTDGvlq1g7XjiHEsy4hN3bsR8n8/QPonfiZVBUNEVJAmHnTWkJled7laIB4DHgqGCBPXf6zsSb9H8ltQ==","signatures":[{"sig":"MEYCIQCqzfl4YEhayn47MqF5r62UcLWLiySGgDyTh0MCzybuHAIhAKN0ibW4EK0xsGARWt/TT9upD1tHqzkZh/2OuuN14FME","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469835},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"78fd5a7be1486495dda0cfe7d0246962647ad7fe","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-5rnbn2jTDGvlq1g7XjiHEsy4hN3bsR8n8/QPonfiZVBUNEVJAmHnTWkJled7laIB4DHgqGCBPXf6zsSb9H8ltQ==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.6.1_1786050004474_0.18064716120065083","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.7.0","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.7.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"abf9c48095e4e9bca5ba059d1432ec1aa974f7f9","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.7.0.tgz","fileCount":86,"integrity":"sha512-KXYjqPw+hL3sqza3fxDOykVgEg7oI54G/oKS+wPHn5CqbxrVF7Zd0vv8nEboYvpAunJCqHX+2e0p36mOAVYCCg==","signatures":[{"sig":"MEUCIFiV53UPZ+FfzQh24a2U4WurIHJ0q9W5L66U2ShTCV5YAiEA2T4kseqcmv+v8U14AqsfaRYBm0xSY5j0QFKUtYtH9qM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477408},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"abf9c48095e4e9bca5ba059d1432ec1aa974f7f9","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-KXYjqPw+hL3sqza3fxDOykVgEg7oI54G/oKS+wPHn5CqbxrVF7Zd0vv8nEboYvpAunJCqHX+2e0p36mOAVYCCg==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.7.0_1786053655878_0.9456026776961743","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.7.1","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.7.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"cf723d4316a9665250c9073b76dab9a134db8355","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.7.1.tgz","fileCount":86,"integrity":"sha512-+OcvOdTn2sVj16YJYEae3P+KymnJpnlZVKrgRA8qcRy+o5hxRWPZnYykiwOidyLUuql0EdRAb6nUC2yJ2m5EyQ==","signatures":[{"sig":"MEUCIHXBzhUoJ8bHKXgWsCQfNsy3a1pH7b+uHQsDIvSgJ/NRAiEAvOvIMrCpV66WG7QQD6K5BCe8R8HjahoN7f6/Ijsphms=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512585},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"cf723d4316a9665250c9073b76dab9a134db8355","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-+OcvOdTn2sVj16YJYEae3P+KymnJpnlZVKrgRA8qcRy+o5hxRWPZnYykiwOidyLUuql0EdRAb6nUC2yJ2m5EyQ==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.7.1_1786059495358_0.35765808083059847","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.7.2","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.7.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"9641fcefb2c8ce8100495a9bb94f709eece9a14a","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.7.2.tgz","fileCount":86,"integrity":"sha512-7j2Tdl4sytv69OQ/c5CvzUbbBcFsYgC2LIr2D3qT5qbOnwUtkyVWFCJ+YhjnjFurUbzvr5M8BNYtyQ1xM6MEoQ==","signatures":[{"sig":"MEQCIEL4buKEugnK+Yc0GWf/W9+kCMcf7vWq0Q+hQupVgZ3DAiANULPbh/wj6BVBEQn9GtqNnKFh5a9nyTjgg96vxr0AWA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":532147},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9641fcefb2c8ce8100495a9bb94f709eece9a14a","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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","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-7j2Tdl4sytv69OQ/c5CvzUbbBcFsYgC2LIr2D3qT5qbOnwUtkyVWFCJ+YhjnjFurUbzvr5M8BNYtyQ1xM6MEoQ==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1"},"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.1.2","@biomejs/biome":"^2.5.6","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.7.2_1786062301756_0.1876275089138737","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@cyanheads/gbif-biodiversity-mcp-server","version":"0.7.3","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/gbif-biodiversity-mcp-server@0.7.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"dist":{"shasum":"3b1542de457dceba6bf7c4797962accd936b8a97","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.7.3.tgz","fileCount":86,"integrity":"sha512-ZSWn4/ysHufhBM05UxbgnlTN5peWCulF57Ib828qJOzgI2TiV4Ce4S8ux5ba4llQ05Pb0XzB3aH6mlskb0XJeA==","signatures":[{"sig":"MEYCIQCqMxdRDxcffEA9DaWFfFniigWo8lbVZb7eGUDL5skrNgIhAIazZJZb7r6QGRHn+AiOXX0dWTX6VraX467ad0Jt8LAw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538415},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"3b1542de457dceba6bf7c4797962accd936b8a97","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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-ZSWn4/ysHufhBM05UxbgnlTN5peWCulF57Ib828qJOzgI2TiV4Ce4S8ux5ba4llQ05Pb0XzB3aH6mlskb0XJeA==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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"},"_npmOperationalInternal":{"tmp":"tmp/gbif-biodiversity-mcp-server_0.7.3_1787645682873_0.6245867625147243","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"_id":"@cyanheads/gbif-biodiversity-mcp-server@0.7.4","bin":{"gbif-biodiversity-mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"dist":{"shasum":"0072fb6bb66a97e464de7910046118215ff35bd4","tarball":"https://registry.npmjs.org/@cyanheads/gbif-biodiversity-mcp-server/-/gbif-biodiversity-mcp-server-0.7.4.tgz","fileCount":121,"integrity":"sha512-Hf6gfPKQ7O70PhTze+v+nx2fpYBT5PT3fT7ZN3lItuYPR2NrIvca/IkBEBBmNnp6/8096gz7ayoffJfGL5+LFA==","signatures":[{"sig":"MEUCIFDHf7BuU8imZCsbqLj4tyzU/BkLCCcHjuspUtYyEeVFAiEAnJtC/MyCrFA5vkTaLfZ2Nmb4nWUacY7WbJhRjgzi52g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHDqaO2vohWb2oa8l6vzQOeAq77ssqyAdGXDMNsoyJDXAiAE05b3uvgxnNhAsiq5tNQ0mexKVrzHKv0iqQOo41wQXg=="}],"unpackedSize":649444},"main":"dist/index.js","name":"@cyanheads/gbif-biodiversity-mcp-server","type":"module","types":"dist/index.d.ts","author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","shasum":"0072fb6bb66a97e464de7910046118215ff35bd4","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/gbif-biodiversity-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/gbif-biodiversity-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/gbif-biodiversity-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.7.4","_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"_integrity":"sha512-Hf6gfPKQ7O70PhTze+v+nx2fpYBT5PT3fT7ZN3lItuYPR2NrIvca/IkBEBBmNnp6/8096gz7ayoffJfGL5+LFA==","repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers 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.1","@biomejs/biome":"^2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gbif-biodiversity-mcp-server_0.7.4_1789917812440_0.8396990469508148"}}},"time":{"created":"2026-05-25T04:07:42.487Z","modified":"2026-09-20T15:23:32.704Z","0.2.0":"2026-05-25T04:07:42.788Z","0.2.1":"2026-05-25T06:09:32.185Z","0.2.2":"2026-05-29T05:13:13.660Z","0.2.3":"2026-05-29T06:42:03.916Z","0.2.4":"2026-05-30T09:41:17.022Z","0.2.5":"2026-06-02T14:25:16.753Z","0.2.6":"2026-06-04T08:47:25.621Z","0.2.7":"2026-06-12T07:48:12.462Z","0.2.8":"2026-06-16T00:39:35.126Z","0.2.9":"2026-06-20T11:47:03.843Z","0.3.0":"2026-06-30T19:56:59.059Z","0.4.0":"2026-06-30T20:45:38.023Z","0.5.0":"2026-06-30T21:30:51.772Z","0.5.1":"2026-07-13T17:25:12.503Z","0.5.2":"2026-07-14T01:09:59.554Z","0.5.3":"2026-08-06T16:17:45.508Z","0.5.4":"2026-08-06T17:17:15.713Z","0.5.5":"2026-08-06T18:13:17.225Z","0.6.0":"2026-08-06T19:32:21.205Z","0.6.1":"2026-08-06T21:00:04.658Z","0.7.0":"2026-08-06T22:00:56.045Z","0.7.1":"2026-08-06T23:38:15.519Z","0.7.2":"2026-08-07T00:25:01.932Z","0.7.3":"2026-08-25T08:14:43.024Z","0.7.4":"2026-09-20T15:23:32.558Z"},"bugs":{"url":"https://github.com/cyanheads/gbif-biodiversity-mcp-server/issues"},"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","homepage":"https://github.com/cyanheads/gbif-biodiversity-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","gbif","biodiversity","species","taxonomy","occurrences","darwin-core","natural-history"],"repository":{"url":"git+https://github.com/cyanheads/gbif-biodiversity-mcp-server.git","type":"git"},"description":"Search GBIF species taxonomy, occurrence records, datasets, and publishers via MCP. STDIO or Streamable HTTP.","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"readme":"<div align=\"center\">\n  <h1>@cyanheads/gbif-biodiversity-mcp-server</h1>\n  <p><b>Search GBIF species taxonomy, occurrence records, datasets, and publishers via MCP. STDIO or Streamable HTTP.</b>\n  <div>13 Tools • 2 Resources</div>\n  </p>\n</div>\n\n<div align=\"center\">\n\n[![Version](https://img.shields.io/badge/Version-0.7.4-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/gbif-biodiversity-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/gbif-biodiversity-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/gbif-biodiversity-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/gbif-biodiversity-mcp-server/releases/latest/download/gbif-biodiversity-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=gbif-biodiversity-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvZ2JpZi1iaW9kaXZlcnNpdHktbWNwLXNlcnZlciJdfQ==) [![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%22gbif-biodiversity-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fgbif-biodiversity-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://gbif-biodiversity.caseyjhand.com/mcp](https://gbif-biodiversity.caseyjhand.com/mcp)\n\n</div>\n\n---\n\n## Overview\n\nGBIF species taxonomy, occurrence records, datasets, and publishers. Match names to the backbone taxonomy, search 3.9B+ occurrence records with Darwin Core filters, and browse dataset and publisher metadata from any MCP client. 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| `gbif_match_species` | Match a species name against the GBIF backbone taxonomy — returns taxonKey, confidence score, and full classification |\n| `gbif_bulk_match_species` | Match up to 50 scientific names to backbone taxon keys in one call — results in input order, per-name NONE/ERROR isolation |\n| `gbif_get_species` | Fetch a single backbone taxon by key — full classification, authorship, synonymy, vernacular name, descendant count |\n| `gbif_search_species` | Search or browse the GBIF backbone taxonomy by name fragment, rank, or a kingdom, family, or genus name resolved to its backbone key |\n| `gbif_get_species_classification` | Return the root-to-parent classification chain for a taxon — root-first ordered array from kingdom to the queried taxon's immediate parent (the taxon itself is not included) |\n| `gbif_get_species_children` | List direct children of a backbone taxon — genera within a family, species within a genus |\n| `gbif_search_occurrences` | Search 3.9B+ GBIF occurrence records with Darwin Core filters — country, publishing country, state/province, bounding box, WKT geometry, year, month, basis of record, presence/absence, IUCN Red List category |\n| `gbif_count_occurrences` | Count occurrences matching a filter without fetching records — fast single-number response, filtered to sightings by default |\n| `gbif_get_occurrence` | Fetch a single occurrence record by key — full Darwin Core record with GADM geography, presence/absence status, conservation status, media, and quality flags |\n| `gbif_occurrence_facets` | Aggregate occurrence counts by a dimension — country, year, basis of record, dataset, kingdom, presence/absence, IUCN Red List category |\n| `gbif_search_datasets` | Search GBIF datasets by keyword, type, country, publishing organization, or hosting organization |\n| `gbif_get_dataset` | Fetch full dataset metadata by UUID — title, description, citation, contacts, license, DOI, coverage |\n| `gbif_search_publishers` | Search GBIF-registered publishing organizations by name fragment or country |\n\n### Resources\n\n| Resource | Description |\n|:---|:---|\n| `gbif://species/{taxonKey}` | Taxon record from the GBIF backbone — classification, authorship, synonymy status, vernacular name |\n| `gbif://dataset/{datasetKey}` | Dataset metadata — title, description, citation, license, contacts, coverage |\n\nBoth resources are also reachable via `gbif_get_species` and `gbif_get_dataset`; many MCP clients are tool-only and never surface resources.\n\n## Capability reference\n\n### `gbif_match_species` <sub>tool</sub>\n\n- Fuzzy matching handles minor typos and vernacular names; set `strict: true` for exact-only matching\n- Returns `taxonKey` — the backbone key required by `gbif_search_occurrences`, `gbif_count_occurrences`, and `gbif_occurrence_facets`\n- Confidence score 0–100; below 80 warrants review\n- Full classification hierarchy with keys at each rank: kingdom, phylum, class, order, family, genus, species\n- `matchType NONE` indicates no usable match — try removing strict mode or broadening the name\n- Resolves synonyms: always returns the accepted backbone key regardless of which name form was queried; `matchedTaxonKey` carries the synonym's own key when the two differ\n- `kingdom` disambiguates a name that appears in more than one kingdom, and is rejected when supplied blank: GBIF drops a blank one and matches against the whole backbone — `Parus major` resolves to taxon 9705453 with `kingdom=` exactly as it does with no `kingdom` at all, where `Plantae` resolves to 9711704 — so the undisambiguated answer would come back looking like a disambiguated one. Omit the field to match against the whole backbone\n\n---\n\n### `gbif_bulk_match_species` <sub>tool</sub>\n\n- The batch counterpart to `gbif_match_species` — built for checklist, inventory, and species-list workflows that would otherwise need one round trip per name\n- Returns one result per input name, in input order; each carries `taxonKey`, `matchType`, and confidence\n- Per-name isolation: an unmatched name yields `matchType NONE` and a per-name lookup failure yields `matchType ERROR` with the message and, when the failure was classified, a `reason` — neither sinks the rest of the batch\n- Same synonym resolution as `gbif_match_species`: `taxonKey` is the accepted taxon, `matchedTaxonKey` the synonym it was queried under\n- `strict: true` requires an exact match for every name; common names are not supported (use `gbif_search_species`)\n\n---\n\n### `gbif_get_species` <sub>tool</sub>\n\n- Full classification, authorship string, and vernacular (English) name when available\n- `taxonomicStatus`: ACCEPTED, SYNONYM, DOUBTFUL — when SYNONYM, `acceptedKey` and `accepted` identify the current name\n- `numDescendants` and `numOccurrences` for scope at a glance\n- `extinct` field present only when explicitly flagged — not false on unlabeled taxa\n- `publishedIn` carries the original description citation when available\n\n---\n\n### `gbif_search_species` <sub>tool</sub>\n\n- Accepts name fragments matching scientific and vernacular names\n- Filter by rank, kingdom, family, or genus to scope browsing\n- `kingdom`, `family`, and `genus` are given as names and resolved to a backbone key before the search runs, since `/species/search` scopes by key alone. The narrowest one supplied is what scopes — the three nest, and GBIF combines two keys with OR rather than AND. `kingdom` supplied beside `family` or `genus` disambiguates that name instead of scoping on its own: `Prunella` names both a bird genus and a plant genus and resolves to neither without it\n- Names are matched exactly and capitalized as GBIF writes them, so `paridae` and `Paridaee` fail as `unresolved_taxon_scope` rather than being ignored. An alternative family name lands on the taxon it is a synonym of — `Compositae` scopes to Asteraceae. A `family` and `genus` in different lineages fail as `conflicting_taxon_scope`. The scope actually applied comes back in the enrichment\n- `isExtinct` filter for extinct vs. extant taxa\n- Scope to a specific checklist dataset with `datasetKey` — omit the field for the GBIF backbone. GBIF reads a higher-taxon key inside the checklist that key belongs to, so pairing `datasetKey` with a kingdom, family, or genus matches nothing unless the checklist is the backbone; the empty-result notice says so\n- `q`, `kingdom`, `family`, `genus`, and `datasetKey` are rejected when supplied blank rather than dropped: a blank `datasetKey` returns the unfiltered backbone result, and `q=` returns the whole 46,623,754-name index where `q=` with a space returns nothing. Omit a filter to leave it off\n- Paginated — limit up to 1000, use offset to walk through large groups\n\n---\n\n### `gbif_get_species_classification` <sub>tool</sub>\n\n- Root-first from kingdom down to the immediate parent of the queried taxon (kingdom → phylum → class → … → parent)\n- The queried taxon itself is not included — use `gbif_get_species` for its own record\n- Each entry: rank, canonical name, scientific name, taxon key\n- Useful for building taxonomic trees or placing an unfamiliar taxon in context without manual backbone navigation\n\n---\n\n### `gbif_get_species_children` <sub>tool</sub>\n\n- Genera within a family, species within a genus, subspecies within a species\n- Each child: key, name, rank, taxonomic status, common name, occurrence count, descendant count\n- Paginated — limit up to 1000, iterate with offset for large groups like Coleoptera\n\n---\n\n### `gbif_search_occurrences` <sub>tool</sub>\n\n- Use `taxonKey` from `gbif_match_species` for reliable results — resolves synonyms automatically; `scientificName` filter does not\n- Geographic filters: `country` (ISO 3166-1 alpha-2, uppercase), `stateProvince`, bounding box (`decimalLatitude`/`decimalLongitude` ranges as \"min,max\"), or WKT polygon (`geometry`)\n- `publishingCountry` (ISO 3166-1 alpha-2, uppercase) is the country of the *publishing organization*, not of the observation — a different question from `country`, and the two disagree on most records: of 60,290,950 records observed in GB, 1,548,928 were published by US organizations\n- Both country filters take the uppercase two-letter form only. GBIF parses a lowercase or alpha-3 code and then matches the verbatim string, so `gb` and `USA` return zero records instead of an error; the schema pattern turns that silent wrong answer into a validation error naming the accepted form. A two-letter code GBIF does not assign (`XX`) is rejected upstream by name and surfaces as `invalid_filter`\n- `stateProvince` is matched verbatim — exact and case-sensitive, with no controlled vocabulary behind it. Take a value from a `STATE_PROVINCE` facet rather than guessing; an unmatched value returns zero records instead of an error, and the enrichment notice says so when it happens\n- Every filter is checked whenever it is supplied, not only when it holds a value. GBIF ignores a parameter it is given with no value and answers 200 with the unfiltered scope, so a blank filter used to widen the query silently: `stateProvince: \"\"` returns all 60,290,950 records of a `taxonKey=212` + `country=GB` scope where `England` returns 47,672,439 — the same total, and the same first record, as a call that sends no `stateProvince` at all. A blank or whitespace-only value now fails as `invalid_filter` instead. Omit a field to leave that filter off\n- Temporal filters: `year` as single year or range, `month` (1–12) for seasonal queries\n- `basisOfRecord` enum: `HUMAN_OBSERVATION`, `PRESERVED_SPECIMEN`, `MACHINE_OBSERVATION`, and more\n- `hasCoordinate` to require or exclude georeferenced records\n- `occurrenceStatus` — `PRESENT` (default), `ABSENT`, or `ANY`. GBIF indexes absence records (a survey that looked for the taxon and did not find it) alongside sightings; the default excludes them and the enrichment says so on every call\n- `iucnRedListCategory` — `CR`, `EN`, `VU`, `NT`, `LC`, `DD`, `EX`, `EW`, `CD`\n- Output per record adds `taxonomicStatus`, `eventTime` (with UTC offset), `occurrenceStatus`, and `iucnRedListCategory`\n- Pagination capped at offset+limit = 100,001, the deepest page GBIF serves. The API has no cursor or scroll, so a larger result set is covered by partitioning it — facet by `DATASET_KEY` with `gbif_occurrence_facets`, then search each `datasetKey` on its own. Retrieving a set in one piece is not something this server can do: that needs GBIF's Download API with a GBIF.org account, or GBIF's monthly snapshot on AWS Open Data\n\n---\n\n### `gbif_count_occurrences` <sub>tool</sub>\n\n- Backed by `/occurrence/search` at `limit=0` — no record payload, and the same endpoint `gbif_search_occurrences` queries, so the two agree on the same question. GBIF's dedicated `/occurrence/count` endpoint takes a closed parameter set that rejects `occurrenceStatus` and `iucnRedListCategory` outright\n- Supported filters: `taxonKey`, `country`, `publishingCountry`, `stateProvince`, `isGeoreferenced`, `datasetKey`, `year`, `occurrenceStatus`, `iucnRedListCategory`. `country` and `publishingCountry` take the uppercase alpha-2 form only, and a blank filter is rejected rather than dropped, both for the reasons given under `gbif_search_occurrences`\n- Counts sightings only by default, matching `gbif_search_occurrences`. For absence-heavy taxa the unfiltered figure is a different question entirely — *Radicipes gracilis* has 2,351,582 indexed records of which 79 are presences\n- Use to assess result set size before deciding whether to paginate a full search. A count above 100,001 means paging cannot reach the end of it, and the enrichment notice says so and names the partition route\n\n---\n\n### `gbif_get_occurrence` <sub>tool</sub>\n\n- Complete Darwin Core record — all coordinate fields, administrative geography (continent, country, state/province, locality), dates\n- `occurrenceID`, full classification (`class`/`classKey`), GADM administrative units (levels 0–3, each with a stable GID and name), and source `identifiers`\n- `occurrenceStatus` — check it before reading the record as a sighting; `ABSENT` means a survey looked and found nothing, and the record still carries coordinates, a date, and a recorder\n- `taxonomicStatus`, `eventTime` (with UTC offset), and `iucnRedListCategory`\n- Collections metadata: institution code, collection code, catalog number\n- Collector and identifier names, individual count, sex, life stage\n- Associated media (images, audio, video) with URLs and license\n- GBIF data quality issue flags for provenance assessment\n\n---\n\n### `gbif_occurrence_facets` <sub>tool</sub>\n\n- Facets: `COUNTRY`, `STATE_PROVINCE`, `YEAR`, `BASIS_OF_RECORD`, `DATASET_KEY`, `KINGDOM_KEY`, `PHYLUM_KEY`, `CLASS_KEY`, `ORDER_KEY`, `FAMILY_KEY`, `GENUS_KEY`, `SPECIES_KEY`, `PUBLISHING_COUNTRY`, `MONTH`, `OCCURRENCE_STATUS`, `IUCN_RED_LIST_CATEGORY`\n- Scope with `taxonKey`, `country`, `publishingCountry`, `stateProvince`, `year`, `geometry`, `basisOfRecord`, `datasetKey`, `occurrenceStatus`, or `iucnRedListCategory` filters — so a `COUNTRY`, `PUBLISHING_COUNTRY`, or `STATE_PROVINCE` bucket can be passed straight back to drill into it. `country` and `publishingCountry` take the uppercase alpha-2 form only, and a blank filter is rejected rather than dropped, both for the reasons given under `gbif_search_occurrences`\n- Aggregates sightings only by default, matching the search and count tools. To measure the presence/absence split itself, pass `facet: OCCURRENCE_STATUS` with `occurrenceStatus: ANY`\n- Returns one page of values ranked by count descending — up to `facetLimit` (max 100), the top ones only while `facetOffset` is 0 — with no record payloads\n- `DATASET_KEY` is the basis for splitting a result set too large for `gbif_search_occurrences` to page: every occurrence carries exactly one `datasetKey`, so its buckets sum to the scope's full total, and it has the cardinality to cut a large scope into pageable pieces. `BASIS_OF_RECORD` and `PUBLISHING_COUNTRY` are gap-free too and both have a matching filter on the occurrence tools, so either can drive a further split of a bucket still over the cap — but on that scope they return 9 and 41 buckets against `DATASET_KEY`'s 550, too coarse for the first cut. A dimension a record can lack drops that record: a 60,290,950-record scope faceted by `YEAR` sums to 59,407,400, leaving 883,550 undated records out, and `MONTH`, `STATE_PROVINCE`, and `SPECIES_KEY` behave the same way — `STATE_PROVINCE` included, even though the occurrence tools can filter on it\n- The scope filters here are narrower than `gbif_search_occurrences` accepts — no `scientificName`, `month`, bounding box, `hasCoordinate`, `isInCluster`, or `coordinateUncertaintyInMeters`. Buckets sum to a search's total only when both calls carry the same filters; re-apply the rest on each per-`datasetKey` search\n- Page past the first `facetLimit` with `facetOffset` (advance by `facetLimit` per page) to walk high-cardinality facets like `DATASET_KEY`; enrichment echoes the applied `facetOffset` and sets `moreValuesLikely` when a full page suggests more values remain\n- Core tool for distribution analysis (\"which countries have the most records?\") and trend queries (\"how has observation volume changed since 2010?\")\n\n---\n\n### `gbif_search_datasets` <sub>tool</sub>\n\n- Filters: free-text query, dataset type (`OCCURRENCE`, `CHECKLIST`, `METADATA`, `SAMPLING_EVENT`), `publishingCountry` (ISO 3166-1 alpha-2, uppercase), publishing and hosting organization UUIDs (lowercase)\n- `publishingCountry` takes the uppercase two-letter form only, for the same reason the occurrence filters do: `/dataset/search` matches the verbatim stored code, so `gb` and `GBR` return zero datasets where `GB` returns 2,416. A two-letter code GBIF does not assign (`XX`) is rejected upstream by name and surfaces as `invalid_filter`\n- Returns title, type, description, license, DOI, and record count. `recordCount` spans every `occurrenceStatus`, absences included — `gbif_count_occurrences` with the same key counts sightings only by default, so the two figures differ by design\n- The `description` is a 300-character preview — `descriptionTruncated` flags when it was shortened, and `gbif_get_dataset` returns the full text\n- An organization key from `gbif_search_publishers` chains in two ways, and they answer different questions. `publishingOrg` matches the organization whose data it is; `hostingOrg` matches the organization whose installation serves it. `publishingOrg` is almost always the one meant — Butterfly Conservation (`0d72dd7f-6f05-46af-85c2-8b6e77ce5534`) publishes 3 datasets and hosts none, while the National Biodiversity Network (`07f617d0-c688-11d8-bf62-b8a03c50a862`) hosts 984, those 3 among them, and publishes 1\n- Supplying both organization filters intersects them rather than combining them, so the same key in both fields returns only what that organization published *and* serves. An empty result under both is called out by name in the response notice\n- Both take the lowercase 8-4-4-4-12 hex UUID form and are checked before the request goes out, because GBIF answers the two silent ways of getting them wrong with a wrong result rather than an error: an empty organization value returns the whole 123,527-dataset index, and these two filters are matched case-sensitively, so an upper-cased key returns 0 where the same key lowercased matches. Both fail locally as `invalid_filter`, as a malformed value does\n- The free-text `q` is rejected blank on the same ground, and the route makes the case plainly: `q=` returns all 123,527 datasets while `q=` with a single space returns none. One character between the whole index and an empty page is not a distinction to leave to chance — omit the field to browse without a term\n- Paginated — limit up to 1000\n\n---\n\n### `gbif_get_dataset` <sub>tool</sub>\n\n- Full description, citation text (for academic reference), license, DOI\n- Contacts with role, name, organization, and email — capped by `contactLimit` (default 10, max 100); `contactsTotal`/`contactsReturned` report the full count\n- Temporal and geographic coverage ranges when the publisher declares them\n- `recordCount` — the indexed occurrence total, matching what `gbif_search_datasets` reports, for every dataset type (a `CHECKLIST` reports 0). It spans every `occurrenceStatus`, absences included; `gbif_count_occurrences` with the same key counts sightings only by default, so the two figures differ by design\n- `numConstituents` for aggregate datasets (e.g. iNaturalist, eBird)\n- Use after `gbif_search_datasets` or when an occurrence record's `datasetKey` needs provenance detail\n\n---\n\n### `gbif_search_publishers` <sub>tool</sub>\n\n- Filter by name fragment or country\n- `country` here is unconstrained on purpose: the registry endpoint matches the *parsed* country rather than the verbatim string, so `gb`, `GBR`, and `GB` all return the same 223 organizations. The uppercase-only rule the occurrence tools and `gbif_search_datasets` carry exists to close a silent zero that does not occur on this route. One value is rejected — an empty `country`, which the registry answers with all 3,561 registered organizations rather than an error; omit the field to search every country. Whitespace alone is left to the registry, which answers it with `400 Cannot parse … into a known Country`, an error naming the value\n- `q` is rejected blank in both forms, because the registry drops either one and answers with all 3,561 organizations against 460 for `museum`; omit the field to browse without a name term\n- Returns organization key, title, and country. The key chains into `gbif_search_datasets` as `publishingOrg` for the datasets the organization published, or as `hostingOrg` for the ones its own installation serves. `publishingOrg` is the usual chain: of the first 25 GB organizations the registry lists, all 25 host no datasets while 13 publish one or two\n- Paginated — limit up to 1000\n\n---\n\n### `gbif://species/{taxonKey}` <sub>resource</sub>\n\n- Taxon record as `application/json` — classification, authorship, synonymy status, vernacular name, descendant count\n- `taxonKey` comes from `gbif_match_species` or `gbif_search_species`\n- `extinct` present only when explicitly flagged, absent otherwise, matching `gbif_get_species`\n- A key that resolves to no backbone taxon fails as `not_found`; a non-numeric key segment is rejected locally as a validation error, and a numeric one GBIF cannot parse comes back as `invalid_filter`\n\n---\n\n### `gbif://dataset/{datasetKey}` <sub>resource</sub>\n\n- Dataset record as `application/json` — title, description, citation, license, DOI, temporal and geographic coverage\n- Contacts fixed at 10 (no configurable limit, unlike `gbif_get_dataset`'s `contactLimit`); `contactsTotal`/`contactsReturned` report the full count\n- `recordCount` spans every `occurrenceStatus`, absences included\n- `datasetKey` comes from `gbif_search_datasets` or an occurrence record's `datasetKey` field; a key that resolves to no dataset fails as `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\nGBIF-specific:\n\n- Full GBIF REST API v1 coverage: species taxonomy, occurrences, datasets, and publishers\n- `gbif_match_species` as the entry point — resolves synonyms to backbone taxon keys used throughout\n- Occurrence pagination guarded at GBIF's own offset+limit = 100,001 boundary — an over-cap request fails locally with a recovery hint naming the `DATASET_KEY` partition technique, instead of spending the retry budget on a deterministic upstream rejection, and a match larger than the cap says so on the first page rather than after hundreds of them\n- WKT polygon geometry support for geographic occurrence queries\n- Darwin Core field mapping with explicit provenance on sparse upstream fields\n\nAgent-friendly output:\n\n- `gbif_match_species` is the mandatory first step — all downstream tools document which key they expect\n- Graceful sparse-field handling — optional fields absent from the API response are omitted rather than null-filled\n- Discriminated error contracts with typed reasons, structured recovery hints, and `when` documentation per tool\n\n## Getting started\n\n### Public Hosted Instance\n\nA public instance is available at `https://gbif-biodiversity.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:\n\n```json\n{\n  \"mcpServers\": {\n    \"gbif-biodiversity-mcp-server\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://gbif-biodiversity.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    \"gbif-biodiversity-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"bunx\",\n      \"args\": [\"@cyanheads/gbif-biodiversity-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    \"gbif-biodiversity-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cyanheads/gbif-biodiversity-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    \"gbif-biodiversity-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"MCP_TRANSPORT_TYPE=stdio\", \"ghcr.io/cyanheads/gbif-biodiversity-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.\n- No credentials — the GBIF endpoints this server calls are public.\n\n### Installation\n\n1. **Clone the repository:**\n\n```sh\ngit clone https://github.com/cyanheads/gbif-biodiversity-mcp-server.git\n```\n\n2. **Navigate into the directory:**\n\n```sh\ncd gbif-biodiversity-mcp-server\n```\n\n3. **Install dependencies:**\n\n```sh\nbun install\n```\n\n## Configuration\n\nAll configuration is validated at startup via Zod schemas in `src/config/server-config.ts`. Key environment variables:\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_PUBLIC_URL` | Public origin override for TLS-terminating reverse-proxy deployments | none |\n| `MCP_SESSION_MODE` | HTTP session mode: `stateful`, `stateless`, or `auto` (the schema default, which resolves to `stateful`). `src/index.ts` declares `stateless`, so set this only to override that. | `stateless` |\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). Try `60000` if RSS grows under sustained HTTP load. | `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| `GBIF_BASE_URL` | GBIF API base URL override | `https://api.gbif.org/v1` |\n| `GBIF_REQUEST_TIMEOUT_MS` | HTTP request timeout in milliseconds | `10000` |\n| `GBIF_USER_AGENT` | `User-Agent` sent on every GBIF request. GBIF asks integrators to identify themselves with a contact URL or email. | server name, version, and repository URL |\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  ```sh\n  bun run devcheck  # Lints, formats, type-checks, and more\n  bun run test      # Runs the test suite\n  ```\n\n### Docker\n\n```sh\ndocker build -t gbif-biodiversity-mcp-server .\ndocker run --rm -p 3010:3010 gbif-biodiversity-mcp-server\n```\n\nThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/gbif-biodiversity-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/mcp-server/tools` | Tool definitions (`*.tool.ts`). Thirteen tools across species taxonomy, occurrences, datasets, and publishers. |\n| `src/mcp-server/resources` | Resource definitions. Species and dataset stable-URI resources. |\n| `src/services/gbif` | GBIF REST API service layer — client, request handling, type definitions. |\n| `src/config` | Server-specific environment variable parsing and validation with Zod. |\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\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"}