{"_id":"@cyanheads/protein-mcp-server","_rev":"26-604ef7397ba272c9edaf35c4988abc17","name":"@cyanheads/protein-mcp-server","dist-tags":{"latest":"0.8.5"},"versions":{"0.1.0":{"name":"@cyanheads/protein-mcp-server","version":"0.1.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.1.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"d4e5dcf44b42164fa6dd2a747cd13b82e7354927","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.1.0.tgz","fileCount":109,"integrity":"sha512-Ef70d2V19JZpo86fR70Y9yA/ULwNoWss27kPVBn1ZCHCVgMMltZvoZr3zgHxM/YeVg2i/FDVc54CDXIZBPeoiQ==","signatures":[{"sig":"MEQCIHxMYIHvI+0hVCXmkIiQI0iOoBC4PUOTtD6anOQkAEKtAiAC9+tXU0/jyXQM9J0ajaZZKI6kKgt0wLZqOHramj0hCA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":443590},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d4e5dcf44b42164fa6dd2a747cd13b82e7354927","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node dist/index.js","list-skills":"bun run scripts/list-skills.ts","start:stdio":"MCP_TRANSPORT_TYPE=stdio node 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-Ef70d2V19JZpo86fR70Y9yA/ULwNoWss27kPVBn1ZCHCVgMMltZvoZr3zgHxM/YeVg2i/FDVc54CDXIZBPeoiQ==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & function across experimental (PDB) and predicted (AlphaFold) models.","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/protein-mcp-server_0.1.0_1781551413456_0.2954036175911541","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@cyanheads/protein-mcp-server","version":"0.1.1","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.1.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"8271d4f30ead898ba4879f006cff333ca9930533","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.1.1.tgz","fileCount":110,"integrity":"sha512-uG0vWYVSfZAs1GDQADtGdTezf/ANXcINUwfR9XS/pJZFXeDeJuTVyVJYsEp5CDAG0p1T1j4fTlswrvqiiKXgAQ==","signatures":[{"sig":"MEUCIQCuy58ctKZyH3GxudqCY/Ba7Nzfcy0SfLmfEyu4FW3uaQIgJQlI1Ktw1TdR4/312UIvfFkjYNb1qX/xK6YKJ2g+mww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":450275},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8271d4f30ead898ba4879f006cff333ca9930533","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-uG0vWYVSfZAs1GDQADtGdTezf/ANXcINUwfR9XS/pJZFXeDeJuTVyVJYsEp5CDAG0p1T1j4fTlswrvqiiKXgAQ==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & function across experimental (PDB) and predicted (AlphaFold) models 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/protein-mcp-server_0.1.1_1781785848784_0.1265091203699944","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@cyanheads/protein-mcp-server","version":"0.1.2","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.1.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"869357ebcf36e0b4c868d319d0b6efb9c691fc24","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.1.2.tgz","fileCount":111,"integrity":"sha512-3SBxeqm5sHOxFRhiEzyCCC9hYmhzAKQyS48M8K4jWiDZUJTo3nmL47Z4gXkU7trhX+k7X5Cwdic2Sp+zt1y05g==","signatures":[{"sig":"MEQCIFLtpMoXN4NtH+8yE5YEGCXzKeIsRprDXwS2uRKhEfBXAiA7LzvXfrJtTJyaKjtastLLwvZWTiJOO5G5181JEeA2+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":451386},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"869357ebcf36e0b4c868d319d0b6efb9c691fc24","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-3SBxeqm5sHOxFRhiEzyCCC9hYmhzAKQyS48M8K4jWiDZUJTo3nmL47Z4gXkU7trhX+k7X5Cwdic2Sp+zt1y05g==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & function across experimental (PDB) and predicted (AlphaFold) models 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/protein-mcp-server_0.1.2_1781789954562_0.45990831793949116","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@cyanheads/protein-mcp-server","version":"0.1.3","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.1.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"7cf6cfe9e175883d15f8b922b4584e7efbb12454","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.1.3.tgz","fileCount":112,"integrity":"sha512-CbagPRFXqbvEVHrN6YMFlioOTET5a6hOAA96bv8j3IxtgsjOakbrp08+z5HJckipneRbqwqHoDMpcGRJ7GSHdQ==","signatures":[{"sig":"MEUCIQCFZX/ySUYwynB94mbZqVLx4/67Z/rgkkpNoVKSXOj3PQIgJprpEIXh0yCmGf7F1jkus/lrAWSWKQs9TuB4U4bgdFY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":452226},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"7cf6cfe9e175883d15f8b922b4584e7efbb12454","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-CbagPRFXqbvEVHrN6YMFlioOTET5a6hOAA96bv8j3IxtgsjOakbrp08+z5HJckipneRbqwqHoDMpcGRJ7GSHdQ==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & function across experimental (PDB) and predicted (AlphaFold) models 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/protein-mcp-server_0.1.3_1781982099279_0.0354250535522449","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@cyanheads/protein-mcp-server","version":"0.1.4","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.1.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"2eca92dc68c033acf209c4a0c8cc1d18619f9020","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.1.4.tgz","fileCount":113,"integrity":"sha512-jllaCcySXvQlj1HAwWNxYax1tWsUZ/wbqB937t8mmvFAVTZZ6UoZ6cEwLtiH7rN0LZmYnTffH2oo2T9Z+4xvog==","signatures":[{"sig":"MEUCIQCgqSV50rc1yaZEV7hfiwsnAt2zrDyAqhMMH0uTWtOp/wIgc1lAJns2C4a/tIeoazTjkQ7hRdOtw+RG0cNW6REmobs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":452770},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"2eca92dc68c033acf209c4a0c8cc1d18619f9020","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-jllaCcySXvQlj1HAwWNxYax1tWsUZ/wbqB937t8mmvFAVTZZ6UoZ6cEwLtiH7rN0LZmYnTffH2oo2T9Z+4xvog==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.1.4_1782255983528_0.34122399637124445","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cyanheads/protein-mcp-server","version":"0.2.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.2.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"74b19c1fb6144e47c6804518c604325a9b1e81de","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.2.0.tgz","fileCount":114,"integrity":"sha512-giQwTKWvr80PrXpXnXFw0lvkx73XrfTckkwGb0QUFRapTGX2oc4SWtokys36Qoyz1K6zCF6rMGn0zGuyeS+uhA==","signatures":[{"sig":"MEQCIExjzyOM2zNDukAzwmsbTh2CnndX0eFXjgBU+ymQmdDtAiB/nMHoMlyB6daCcKWK7tDq8YTZxE+uzWMRX37uuKN5QA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469794},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"74b19c1fb6144e47c6804518c604325a9b1e81de","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-giQwTKWvr80PrXpXnXFw0lvkx73XrfTckkwGb0QUFRapTGX2oc4SWtokys36Qoyz1K6zCF6rMGn0zGuyeS+uhA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1.0","@biomejs/biome":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.2.0_1783071155967_0.9886224879950738","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@cyanheads/protein-mcp-server","version":"0.2.1","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.2.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"9df8704ca465b34e38abb8fa4c7cbf8217b19115","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.2.1.tgz","fileCount":115,"integrity":"sha512-FWLhatHoJsWvjJf2KJv3Prn2e09wQyPGCHQWkySJ0+pMn/ii+LeU2HEihtQQyX+Vj72Ojo3a/7eitVZmJguolw==","signatures":[{"sig":"MEUCIQDFP0+eH/bb5Wvyc92RM4Eizm+1oF2voVkDXBFa+rAcRAIgAdNmJPg+HN4qNq5ttyIZombbzgUeXdeDkyej1C4vY7I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474116},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9df8704ca465b34e38abb8fa4c7cbf8217b19115","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-FWLhatHoJsWvjJf2KJv3Prn2e09wQyPGCHQWkySJ0+pMn/ii+LeU2HEihtQQyX+Vj72Ojo3a/7eitVZmJguolw==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1.0","@biomejs/biome":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.2.1_1783074618110_0.43140529691035767","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cyanheads/protein-mcp-server","version":"0.3.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.3.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"045b599810d9dd816421afbfd4d58c05b1f6be4b","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.3.0.tgz","fileCount":120,"integrity":"sha512-eoTAO2TSzDy2cTPxzMniEqIiuhB+/Y8Q5PtRjFN1BwLuKGwzlIps2jUgXvPrBINrGYS6Mn52wH4/NkavIFBZDw==","signatures":[{"sig":"MEUCIQDcX95V3aAY9M7yOTw0prNWPbgLVOlUTsLk/e339+445AIgCaC+9E0f2BGZheY+RekAjHJbHsQyp44DjeuCRCjiyh4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":507936},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"045b599810d9dd816421afbfd4d58c05b1f6be4b","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-eoTAO2TSzDy2cTPxzMniEqIiuhB+/Y8Q5PtRjFN1BwLuKGwzlIps2jUgXvPrBINrGYS6Mn52wH4/NkavIFBZDw==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1.0","@biomejs/biome":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.3.0_1783080230177_0.37361541543902077","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@cyanheads/protein-mcp-server","version":"0.3.1","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.3.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"b2ff8dbd8b8e22307758a7223877eb5fa588de45","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.3.1.tgz","fileCount":121,"integrity":"sha512-2ICdgM3OXw7u/BFGk92OQ2TtXcO49QpctP+PwBIfT0O0RPauroV1ONsZ0ykb/7zfNz588sQDXR5Ovros31mK0Q==","signatures":[{"sig":"MEYCIQDi4gUTAjG9dlRuDrB5VQp3YdWbSdUr2idC4viXlJIb+wIhANEY7/JUc1GWG23GeEgfF7YMfuwkq0KaXip5O5FDZm6d","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":512282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"b2ff8dbd8b8e22307758a7223877eb5fa588de45","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-2ICdgM3OXw7u/BFGk92OQ2TtXcO49QpctP+PwBIfT0O0RPauroV1ONsZ0ykb/7zfNz588sQDXR5Ovros31mK0Q==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1.0","@biomejs/biome":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.3.1_1783086651783_0.864286582884993","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@cyanheads/protein-mcp-server","version":"0.3.2","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.3.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"387f79c35fdc8b4f694d6ff4dda30784ff1987b8","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.3.2.tgz","fileCount":122,"integrity":"sha512-42y9um+04deCiNFEC/DZjCFPQHEhkFsfFlYO7ckRd7PKHwGQ/cAWUIH1mrY47mT5QIMLAUqWhmIsudjavge6CA==","signatures":[{"sig":"MEUCIAeVRNkIY4cnYxRsSsIEEeiaYrD+ZRi2Zrl9XKeS13eBAiEAycP49SKjDom0RSao4xsbtFDRftiDDWwdNHP4iPS7SKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":521243},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"387f79c35fdc8b4f694d6ff4dda30784ff1987b8","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-42y9um+04deCiNFEC/DZjCFPQHEhkFsfFlYO7ckRd7PKHwGQ/cAWUIH1mrY47mT5QIMLAUqWhmIsudjavge6CA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1.0","@biomejs/biome":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.3.2_1783089144028_0.5197766727792559","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@cyanheads/protein-mcp-server","version":"0.3.3","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.3.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"5e60d0c8a9d90130a2bd367b9dbea47b281fcec3","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.3.3.tgz","fileCount":123,"integrity":"sha512-fvBL1fxYkSAd9RIhLx3I4VSS7V3gz5YN/xOARUZas/n4izFYY0sVLAkqOlHyUXjrHIgla6lEZ57JI69KFQqdsQ==","signatures":[{"sig":"MEUCIFjTKVcidgtLfAQI6NJzsLiP0mlsg7zDJ0LXpy2Cp8ZaAiEApPA/VY454UjVck+I61BDRxSvyUWj5z+kr97aoPuCRDY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529365},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"5e60d0c8a9d90130a2bd367b9dbea47b281fcec3","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-fvBL1fxYkSAd9RIhLx3I4VSS7V3gz5YN/xOARUZas/n4izFYY0sVLAkqOlHyUXjrHIgla6lEZ57JI69KFQqdsQ==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1.0","@biomejs/biome":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.3.3_1783092339752_0.4987957455792653","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cyanheads/protein-mcp-server","version":"0.4.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/protein-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.4.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"7ac808eed7fd288a46ee44150a2aa39899299b06","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.4.0.tgz","fileCount":124,"integrity":"sha512-NBR58pKjSqeWmSeiDaNbI7cTZFdsdXUJvV3vmJc66GCJB1pibb8kZp4NcXJMZVCZMVtOlVbZaj4jBNErqEKKzA==","signatures":[{"sig":"MEQCIC7uG83kHTo7vi7auq9YZetq5U4Ykk3d0OpcYy63pQSMAiBbweKOj4poVlJWreNVc1T3FNhAhde2HUEkS3tfT+W6Xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":535241},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"7ac808eed7fd288a46ee44150a2aa39899299b06","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-NBR58pKjSqeWmSeiDaNbI7cTZFdsdXUJvV3vmJc66GCJB1pibb8kZp4NcXJMZVCZMVtOlVbZaj4jBNErqEKKzA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.1.0","@biomejs/biome":"2.5.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.4.0_1783094366830_0.9830919984331123","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@cyanheads/protein-mcp-server","version":"0.4.1","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.4.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"d59c3bf93d9c0a8c34adc718d21c787c9fba529e","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.4.1.tgz","fileCount":125,"integrity":"sha512-58EznJcJzbsoTplRpOYr1757gX4ADi/ubqiFw+EFSXgc449F6/htQiUKSty0t7YT2sne99/gcnDQ138ThbOkDA==","signatures":[{"sig":"MEUCIG0cVuQbMDHy78OOm3ruSEz7GXdv7ROZab7opLnMoPPbAiEA3KyLvBylVGcN91oCDJOe14d/moHB6Den5DXAWXeQHkY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":565608},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d59c3bf93d9c0a8c34adc718d21c787c9fba529e","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-58EznJcJzbsoTplRpOYr1757gX4ADi/ubqiFw+EFSXgc449F6/htQiUKSty0t7YT2sne99/gcnDQ138ThbOkDA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.5"},"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.2.0","@biomejs/biome":"2.5.8","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.4.1_1786927306961_0.9412113403027025","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@cyanheads/protein-mcp-server","version":"0.4.2","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.4.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"e6da17e5847dbcf8683fe091d3c093760f047026","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.4.2.tgz","fileCount":126,"integrity":"sha512-UdLWu86OPIYiud/keSWq05vKjtzrPxGsx26G6Cic9sppP1beRYG8STZydH9eS2Q1NrkPWHRQpsikk5Gp9uPMPA==","signatures":[{"sig":"MEUCIFa8hExfXN927nQtxM8lNmD7WciiTrHjlL/VL4qSZUQoAiEA/DgNLcRUFTCrz8MF8YlryBPQOOm6WsG8yXjnoBcRVIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":575282},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"e6da17e5847dbcf8683fe091d3c093760f047026","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-UdLWu86OPIYiud/keSWq05vKjtzrPxGsx26G6Cic9sppP1beRYG8STZydH9eS2Q1NrkPWHRQpsikk5Gp9uPMPA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.5"},"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.2.0","@biomejs/biome":"2.5.8","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.4.2_1786929704996_0.142888885222185","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cyanheads/protein-mcp-server","version":"0.5.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.5.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"13e87a065953e459844e9c8c5a986f1bdf4a69bf","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.5.0.tgz","fileCount":127,"integrity":"sha512-naibLPOwkEvJ1yOjJMfgroRs71vEF4FK5/ahguWdyGV6KWqL205prqPqcGFpYSl5vG37zPXRR7R4Vh8pdwfFYQ==","signatures":[{"sig":"MEUCIH9VoLcoqk3UU3PLLePOb3wpkIEATwNVdZbQBGji6lg1AiEAqPShCKgGS/aGbfwIS82fmJcm8pP9o+zOCqy6jvL2ax0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":586525},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"13e87a065953e459844e9c8c5a986f1bdf4a69bf","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-naibLPOwkEvJ1yOjJMfgroRs71vEF4FK5/ahguWdyGV6KWqL205prqPqcGFpYSl5vG37zPXRR7R4Vh8pdwfFYQ==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.5"},"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.2.0","@biomejs/biome":"2.5.8","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.5.0_1786932524313_0.49119235814029083","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@cyanheads/protein-mcp-server","version":"0.5.1","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.5.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"5f618375241289f39bb0169d1e815b1b9131226e","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.5.1.tgz","fileCount":128,"integrity":"sha512-os5F0lx7OPVftgeQVNxKEmoRcZQf3FqENrsaFRhKyxUApkJ/ulkXkskWLde+wYLP0PBtejNmtfKiV4G+hvWR4Q==","signatures":[{"sig":"MEUCICqnjyMo7ArBgVDMWHzFCM35f/Z9NznucQSk0UDlOLssAiEAxyffHEzZimVEJj11hrHWRbkkx7cDgGyXJwK3DaAgxKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":591123},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"5f618375241289f39bb0169d1e815b1b9131226e","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-os5F0lx7OPVftgeQVNxKEmoRcZQf3FqENrsaFRhKyxUApkJ/ulkXkskWLde+wYLP0PBtejNmtfKiV4G+hvWR4Q==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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.5"},"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.2.0","@biomejs/biome":"2.5.8","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.5.1_1786933416091_0.40133921343465406","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"@cyanheads/protein-mcp-server","version":"0.5.2","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.5.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"f39e4629f8819025f52c415a120ac44cc2961262","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.5.2.tgz","fileCount":129,"integrity":"sha512-U8Z9a/M8h18E5jDqZielFEne0ClWhPEl6se7sfN0X+6Tz2E6nLa2NJTOFT6sA5mDMUu0BSHtXgMWqivBQErKOg==","signatures":[{"sig":"MEQCICTatQv3kq/RoMGjP6AiRsFiG6aRIGcwHi6l2XkxRcenAiA9bFOtu48iEuzaNfVXZIN3e9MuCEYoWIgSnMET7fsYRw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":595114},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f39e4629f8819025f52c415a120ac44cc2961262","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-U8Z9a/M8h18E5jDqZielFEne0ClWhPEl6se7sfN0X+6Tz2E6nLa2NJTOFT6sA5mDMUu0BSHtXgMWqivBQErKOg==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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/protein-mcp-server_0.5.2_1787642240643_0.18050394356924238","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"@cyanheads/protein-mcp-server","version":"0.5.3","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.5.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"dfbfbc8e5227085210564be6c4d4e19d54abca4a","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.5.3.tgz","fileCount":130,"integrity":"sha512-IuB5NnobSxjfZd5LF4Rm2FA4/Khy/2dt7KncyXnjcaA5lp6o3I/0XuGVKuFE6LaLcnjcoxdsHZziHgGd0rFF9w==","signatures":[{"sig":"MEUCIDfvXsKIC19g0N0cEP5Wgfrm6M2xq5dne76TMlQajaqPAiEAgFo21KPCpUHoSyZl/OWWUqOiVPQ4rBbX1JcYK1CwIwU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":602149},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"dfbfbc8e5227085210564be6c4d4e19d54abca4a","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-IuB5NnobSxjfZd5LF4Rm2FA4/Khy/2dt7KncyXnjcaA5lp6o3I/0XuGVKuFE6LaLcnjcoxdsHZziHgGd0rFF9w==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models 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/protein-mcp-server_0.5.3_1788127656577_0.9686017319314992","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@cyanheads/protein-mcp-server","version":"0.6.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.6.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"5e29e30e0b0a815e89889caeef958ce6fd30871f","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.6.0.tgz","fileCount":131,"integrity":"sha512-G9s2Khj89vzmwyx/gunImQyj2XPpokzVZw0DvcwkWE4NdRuDZs5GnZUmfsotMlIUtCtlql/jLKk1x12QXLLqhw==","signatures":[{"sig":"MEUCIBwQ7nKFU4VP3I8imEmTIDuqDyLEaEDcgYBDwSh7i4zOAiEA9Q1lcWsh1AWiTulVbe+B3UhD3Qnv/ad2NA50vHhkS/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":623086},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"5e29e30e0b0a815e89889caeef958ce6fd30871f","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-G9s2Khj89vzmwyx/gunImQyj2XPpokzVZw0DvcwkWE4NdRuDZs5GnZUmfsotMlIUtCtlql/jLKk1x12QXLLqhw==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.5.4","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.12.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.8","vitest":"^5.0.0","depcheck":"^1.4.7","tsc-alias":"^1.9.4","typescript":"^7.0.2","@types/node":"26.4.1","@biomejs/biome":"2.5.12","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.6.0_1788931747676_0.1003831667670414","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@cyanheads/protein-mcp-server","version":"0.7.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.7.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"e1bb41ab5862da09252c29c0261c908796ce7404","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.7.0.tgz","fileCount":132,"integrity":"sha512-nK458Hefgpvtxt/1MVqgdQp65AyidSopGSH5rPfSgMpm7EFR1YoUIFdJjW0wj5iXyxHw8T/MzNjVVowLbsFuCA==","signatures":[{"sig":"MEUCIQC1BfG/BRga7/w3P1QfldZz28hxWfa99At8NI4igjtigQIgMn4CbGhdZcGzmeqqH+Cc6lr5ikcBTmlXW2t9PnPm2sU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":642002},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"e1bb41ab5862da09252c29c0261c908796ce7404","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-nK458Hefgpvtxt/1MVqgdQp65AyidSopGSH5rPfSgMpm7EFR1YoUIFdJjW0wj5iXyxHw8T/MzNjVVowLbsFuCA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.5.4","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.12.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.8","vitest":"^5.0.0","depcheck":"^1.4.7","tsc-alias":"^1.9.4","typescript":"^7.0.2","@types/node":"26.4.1","@biomejs/biome":"2.5.12","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.7.0_1788934468107_0.24567171523215392","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@cyanheads/protein-mcp-server","version":"0.8.0","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.8.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"090a6b4e9d5b7d76785d69d4da00022d4dafa0e1","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.8.0.tgz","fileCount":133,"integrity":"sha512-oFsXxkIy0uavLGqLFyjwwihiy5eutKMsWN3CEpwCQNX2dGl/+alzTS8JXBlXnPWCDTIi7HEtf/kuEtKAQFqohA==","signatures":[{"sig":"MEYCIQD0TUOwxMkyOJYxbx37Cxt8CsG5HLU3x40abTLJrW9y5gIhAK9KND3kcl96PYyJhL5v4EvOoM8iQ2JwKZg+9bFwrDoc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":665942},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"090a6b4e9d5b7d76785d69d4da00022d4dafa0e1","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http node 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 node 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-oFsXxkIy0uavLGqLFyjwwihiy5eutKMsWN3CEpwCQNX2dGl/+alzTS8JXBlXnPWCDTIi7HEtf/kuEtKAQFqohA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.5.4","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.12.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.8","vitest":"^5.0.0","depcheck":"^1.4.7","tsc-alias":"^1.9.4","typescript":"^7.0.2","@types/node":"26.4.1","@biomejs/biome":"2.5.12","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.8.0_1788939726975_0.43079735235129313","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@cyanheads/protein-mcp-server","version":"0.8.1","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.8.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"05f8756f3706da86d2e6ff3bee6e54be8d73f914","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.8.1.tgz","fileCount":134,"integrity":"sha512-2vJ8q2ssc5tQjWSyztZyXteU3V68SMBBl6ONK6k+OnVzIGoarpzuuVQTBYuwsOQdkyvqJpnEg0iJTx3XladV2g==","signatures":[{"sig":"MEUCIQDFFOQ8aKa4wvitzzc4TjhqStM0tFJwNobKJMor6nG5EgIgSso+xLCBYGUlKowPUoJGsCDDoAg3Mm57nVAF7fONdlM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCdwtcu5D7ZZozdFZSRs2Mgeww2o+3u4roDtgYeAmsZHwIgT0rrA7iZqUy6ork3Xwcc/AecGYm0FAhXqwekwHFPQiI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":673508},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"05f8756f3706da86d2e6ff3bee6e54be8d73f914","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"}],"mcpName":"io.github.cyanheads/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","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 node 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 node 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-2vJ8q2ssc5tQjWSyztZyXteU3V68SMBBl6ONK6k+OnVzIGoarpzuuVQTBYuwsOQdkyvqJpnEg0iJTx3XladV2g==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.4","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.0","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.5.1","@biomejs/biome":"2.5.13","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.8.1_1789567024662_0.04826943744487866","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@cyanheads/protein-mcp-server","version":"0.8.2","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.8.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"4e5531eaac89a71e09b38505ba4db559d9188fa5","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.8.2.tgz","fileCount":135,"integrity":"sha512-4LcMmOUJ7D1lcMvh5sXkKLnexHZnoYB8G1gWD9a8flFyuAf8lVEe+9MqhWfa9uR42VZz20mVkdjij3hxZ1cieA==","signatures":[{"sig":"MEYCIQCjCJkUmy2aBce6JIvrW8+EwUQeMTYqPWCjoM8Bqm48qQIhAOXf2S3PY1QHRhz9z33Mvxp4xrmntnQ/KCfU+Ll4/FLn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCto3k3ltlS0bMMj00+RxnhkinYL/8NbE2sGXptLBobuAIgKoLOqZL0pnFPVMYsQd35z3dqs8fjHUw1f9aRxX4czxA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":677831},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"4e5531eaac89a71e09b38505ba4db559d9188fa5","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"}],"mcpName":"io.github.cyanheads/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","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 node 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 node 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-4LcMmOUJ7D1lcMvh5sXkKLnexHZnoYB8G1gWD9a8flFyuAf8lVEe+9MqhWfa9uR42VZz20mVkdjij3hxZ1cieA==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.8.2_1790054491975_0.14037109098838685","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@cyanheads/protein-mcp-server","version":"0.8.3","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.8.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"f1337647ae2576246568d367c729411d51ef74c6","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.8.3.tgz","fileCount":136,"integrity":"sha512-4mT3EtK6XM548p5Waf8YcP/CB4DJwCZ0u/IEQ2QQvUQ9kv3fJ0k09FB16ulQg+XecPR2+kBlk/R99C2Bx+aALg==","signatures":[{"sig":"MEYCIQDZUXliRrci4RQpDmrzva7F68OOAuP4asaICBg2iNe+hgIhAPYIbTQ1w+0jbCavdoSk7nfBkm6kh8xpgzLsJNTxoNuI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDwf+3FlUGmJOl/wQ0/qBProeA2o59LTC4yGSKwNRy+6AiEA+WTzVGJ+bmVBIYWj2ctKUoQSc7sVYXFh6HrCkpNeUfA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":702199},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"f1337647ae2576246568d367c729411d51ef74c6","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"}],"mcpName":"io.github.cyanheads/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","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 node 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 node 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-4mT3EtK6XM548p5Waf8YcP/CB4DJwCZ0u/IEQ2QQvUQ9kv3fJ0k09FB16ulQg+XecPR2+kBlk/R99C2Bx+aALg==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.8.3_1790106757554_0.17774149476489276","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@cyanheads/protein-mcp-server","version":"0.8.4","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/protein-mcp-server@0.8.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"bin":{"protein-mcp-server":"dist/index.js"},"dist":{"shasum":"b64f9436bb3059df04535c020eced66df221f772","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.8.4.tgz","fileCount":137,"integrity":"sha512-hVqLN9u33wONl4MjiYIzy6F2Z9mABk6ciqYIytsbvWGbxmVesq6ovWTKzdUlYsuHdI0HD0ta88w3QJBcshqMDQ==","signatures":[{"sig":"MEUCIDM5pSC9J1+86nh555boURi4Y7fcUpLc2IPXGEs7WZoBAiEA2NEOPp8fVgC6Yd5tj//E6iqfgsF3X3Bs87OQxJEER3g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHxsQsG2bQ1N7LpPU0ACovpHMDVuSjiwytto4wqYJWXSAiEA2gF73DevbhNs/13tWsetbq4hkQutXZhsxGAldGBio7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":714311},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"b64f9436bb3059df04535c020eced66df221f772","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"}],"mcpName":"io.github.cyanheads/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","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 node 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 node 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-hVqLN9u33wONl4MjiYIzy6F2Z9mABk6ciqYIytsbvWGbxmVesq6ovWTKzdUlYsuHdI0HD0ta88w3QJBcshqMDQ==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/protein-mcp-server_0.8.4_1790109392321_0.12150116995195037","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"_id":"@cyanheads/protein-mcp-server@0.8.5","bin":{"protein-mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"dist":{"shasum":"17c9d30d4a7d3bfedfee30ed2a551bc3a314c971","tarball":"https://registry.npmjs.org/@cyanheads/protein-mcp-server/-/protein-mcp-server-0.8.5.tgz","fileCount":138,"integrity":"sha512-5uGVA6UZgaw5/LOMlt81xsJRbcyIE2ltlOu3xNoxKuhO1wM50r1yueQylTraEE4+/pjqmHYel5L8l16Jl7+Atw==","signatures":[{"sig":"MEUCIQDEzSrpV4SUVipjfUXDkJbV2DqOwO4/D5OARqigjGhaSQIgEvq7Ja55O/ltFnRVO+OaDGqZLYohcZDqiPWbG9Pf0qg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDVWsxRA31KY5qM5Mi00QcCEUh7mKbqjSi5u56oevpULwIhAO/bevYEnJU7qfLrr9vWEoFW4HYeB7Mhe5aQw06Uz5S3"}],"unpackedSize":727316},"main":"dist/index.js","name":"@cyanheads/protein-mcp-server","type":"module","types":"dist/index.d.ts","author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","shasum":"17c9d30d4a7d3bfedfee30ed2a551bc3a314c971","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/protein-mcp-server","scripts":{"test":"vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","start":"node dist/index.js","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/protein-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/protein-mcp-server.mcpb","format":"biome check --write .","rebuild":"bun run scripts/clean.ts && bun run scripts/build.ts","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 node 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 node 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.8.5","_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"homepage":"https://github.com/cyanheads/protein-mcp-server#readme","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"_integrity":"sha512-5uGVA6UZgaw5/LOMlt81xsJRbcyIE2ltlOu3xNoxKuhO1wM50r1yueQylTraEE4+/pjqmHYel5L8l16Jl7+Atw==","repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","directories":{},"maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.13.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^5.0.1","depcheck":"^1.4.7","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"26.6.2","@biomejs/biome":"2.5.14","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/protein-mcp-server_0.8.5_1790110920452_0.242441730333264"}}},"time":{"created":"2026-06-15T19:23:33.250Z","modified":"2026-09-22T21:02:00.749Z","0.1.0":"2026-06-15T19:23:33.619Z","0.1.1":"2026-06-18T12:30:48.933Z","0.1.2":"2026-06-18T13:39:14.740Z","0.1.3":"2026-06-20T19:01:39.441Z","0.1.4":"2026-06-23T23:06:23.688Z","0.2.0":"2026-07-03T09:32:36.132Z","0.2.1":"2026-07-03T10:30:18.295Z","0.3.0":"2026-07-03T12:03:50.347Z","0.3.1":"2026-07-03T13:50:51.931Z","0.3.2":"2026-07-03T14:32:24.210Z","0.3.3":"2026-07-03T15:25:39.921Z","0.4.0":"2026-07-03T15:59:26.982Z","0.4.1":"2026-08-17T00:41:47.121Z","0.4.2":"2026-08-17T01:21:45.189Z","0.5.0":"2026-08-17T02:08:44.448Z","0.5.1":"2026-08-17T02:23:36.261Z","0.5.2":"2026-08-25T07:17:20.765Z","0.5.3":"2026-08-30T22:07:36.748Z","0.6.0":"2026-09-09T05:29:07.916Z","0.7.0":"2026-09-09T06:14:28.283Z","0.8.0":"2026-09-09T07:42:07.127Z","0.8.1":"2026-09-16T13:57:04.788Z","0.8.2":"2026-09-22T05:21:32.077Z","0.8.3":"2026-09-22T19:52:37.649Z","0.8.4":"2026-09-22T20:36:32.425Z","0.8.5":"2026-09-22T21:02:00.584Z"},"bugs":{"url":"https://github.com/cyanheads/protein-mcp-server/issues"},"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","homepage":"https://github.com/cyanheads/protein-mcp-server#readme","keywords":["protein","protein-structure","structural-biology","pdb","alphafold","uniprot","interpro","foldseek","rcsb","bioinformatics","drug-discovery","mcp","mcp-server","model-context-protocol","typescript","bun","stdio","streamable-http","ai-agent"],"repository":{"url":"git+https://github.com/cyanheads/protein-mcp-server.git","type":"git"},"description":"Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"readme":"<div align=\"center\">\n  <h1>@cyanheads/protein-mcp-server</h1>\n  <p><b>Federated protein structure & annotation across experimental (PDB) and predicted (AlphaFold) models via MCP. STDIO or Streamable HTTP.</b>\n  <div>7 Tools • 2 Resources</div>\n  </p>\n</div>\n\n<div align=\"center\">\n\n[![Version](https://img.shields.io/badge/Version-0.8.5-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/protein-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/protein-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/protein-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%2B-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/protein-mcp-server/releases/latest/download/protein-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=protein-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvcHJvdGVpbi1tY3Atc2VydmVyIl19) [![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%22protein-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads%2Fprotein-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</div>\n\n<div align=\"center\">\n\n**Public Hosted Server:** [https://protein.caseyjhand.com/mcp](https://protein.caseyjhand.com/mcp)\n\n</div>\n\n---\n\n## Overview\n\nExperimental (PDB) and predicted (AlphaFold) protein structures, federated behind one surface. Search, fetch, align, compare, and annotate structures and their ligands across RCSB, AlphaFold DB, 3D-Beacons, UniProt, InterPro, and Foldseek — all keyless. 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| `protein_search_structures` | Search experimental and predicted structures by free text, sequence, or organism/method/resolution filters, with optional facet breakdowns. |\n| `protein_get_structure` | Fetch metadata and coordinate-file URLs by ID — experimental (PDB), predicted (AlphaFold), or best-available — with batch partial success and optional coordinate inlining. |\n| `protein_find_similar` | Find sequence homologs (RCSB mmseqs2) or fold homologs (Foldseek) from a sequence, PDB ID, or UniProt accession. |\n| `protein_track_ligands` | Resolve ligand names/formulas to component IDs, find structures containing a ligand, or map binding-site residues. |\n| `protein_compare_structures` | Structurally align multiple structures (TM-align / jFATCAT) to a reference or as a full pairwise matrix. |\n| `protein_analyze_collection` | Profile the PDB into distributions and trends with server-side facets — counts, histograms, timelines, and cross-tabs. |\n| `protein_get_annotations` | Fetch UniProt features and natural variants plus InterPro domain/family memberships with GO terms. |\n\n### Resources\n\n| Resource | Description |\n|:---|:---|\n| `pdb://{entry_id}` | Experimental structure summary for a PDB entry — title, method, resolution, organism, bound ligands, and per-entity chain IDs in both the author (`authAsymIds`) and mmCIF label (`labelAsymIds`) namespaces. |\n| `af://{uniprot}` | Predicted-structure summary for a UniProt accession from AlphaFold DB — mean pLDDT, confidence-band fractions, model URLs, and version. |\n\nAll resource data is also reachable via tools — `pdb://{entry_id}` mirrors `protein_get_structure` for `source: experimental`, and `af://{uniprot}` mirrors it for `source: predicted`. Many MCP clients are tool-only and don't surface resources; the summaries remain reachable through the tools.\n\n## Capability reference\n\n### `protein_search_structures` <sub>tool</sub>\n\n- Free-text, protein-sequence (triggers an mmseqs2 similarity search), and organism / method / resolution filters\n- `content_type` scopes the search to `experimental`, `predicted`, or `all` (default) — `all` is a genuine union, so computed models appear alongside PDB entries\n- Every hit names its `source`; sequence hits in either universe expose a chainable entry `id` plus the matched polymer `entityId`; experimental hits carry title, method, resolution, and organism enrichment, and AlphaFold models their parsed UniProt accession\n- `start` and `limit` page through ranked results; `nextStart` is returned while another page remains, and an empty page past the end names the offset in `notice` rather than reporting no matches\n- Optional `facets` return a method / organism / release-year breakdown alongside the hits — each dimension may be listed once and reports how many matches carry no value for it; a capped dimension is named in `notice`, with `protein_analyze_collection` (larger `bucket_limit`) as the route to the long tail\n- Chain hit IDs straight into `protein_get_structure`\n\n---\n\n### `protein_get_structure` <sub>tool</sub>\n\n- `source: experimental` batches PDB entry IDs (also resolving computed-model IDs like `AF_*`/`MA_*` from search, tagged `source: predicted` with their provider); `source: predicted` takes UniProt accessions for AlphaFold models with pLDDT/PAE; `source: best_available` takes UniProt accessions and returns the top federated model (highest-resolution experimental if one exists, else the best prediction)\n- Per-ID partial success — unresolved IDs land in `failed[]`; `requested`/`processed` disclose IDs dropped beyond the batch cap, and every advisory (cap, failure, overflow) joins into one `notice`\n- Records fetched with `source: experimental`, computed models included, also carry `polymerEntities` (both `authAsymIds` and `labelAsymIds`), `ligands`, `molecularWeight`, and `releaseDate`\n- `coordinateUrls` lists only files that exist: BinaryCIF comes from RCSB's ModelServer, the PDB format is omitted for large mmCIF-only entries, and a computed model's files come from its provider (all three formats from AlphaFold DB, mmCIF from ModelArchive) — an AlphaFold model whose provider lookup fails keeps only its RCSB BinaryCIF, named in `notice`\n- `include_coords` inlines coordinate content, subject to a response budget — an over-budget batch returns a per-structure size outline (re-call with `sections: [ids]`), and a single oversized file is withheld with a pointer to its `coordinateUrls`\n- Every response carries an `attribution` block naming upstream data licenses and citations\n\n---\n\n### `protein_find_similar` <sub>tool</sub>\n\n- `by: sequence` runs a synchronous RCSB mmseqs2 search; `by: structure` runs an asynchronous Foldseek search against experimental and predicted databases — query from a raw sequence, a PDB ID, or a UniProt accession\n- Both modes accept `start`/`limit` and report `totalCount`, echoing `start` and returning `nextStart` while another page remains; an empty page past the end names the offset in `notice`, distinct from a search with no matches\n- Foldseek targets default to `pdb100` + `afdb50`; override via `databases` (e.g. `afdb-swissprot`, `BFVD`)\n- An async job that exceeds the poll budget returns `status: computing` with a `ticketId` — re-call with `ticket_id` to resume; a completed structure search returns the same ticket so a new `start` pages the finished job\n- Foldseek searches each chain of a multichain structure as its own query: a structure response covers one query (`query`, 0-based, default `0`) and reports `queryCount`, with a `notice` naming the other queries; pass `query` with `ticket_id` to read another chain's hits from the same job. An out-of-range `query` is rejected (`query_out_of_range`), not answered with an empty list\n- Structure hits are ranked best first by `score` across every searched database (hits without a score last, ties by database then target) before `start`/`limit` paging\n- Each mode reads only its own controls (`sequence`, `max_evalue`, `min_identity` under `by: sequence`; `ticket_id`, `databases`, `query` under `by: structure`) — a field the selected mode can't consume is rejected, not ignored\n- Each hit names the engine and source database it came from\n\n---\n\n### `protein_track_ligands` <sub>tool</sub>\n\n- `mode: find_ligand` resolves a name or formula to chemical component IDs with formula, weight, SMILES, and InChIKey — ranked by deposition frequency, most-common match first\n- `totalCount` and `candidatesConsidered` report how many components matched and how many were ranked; a broad name whose matches exceed the candidate pool gets a `notice` to narrow the query\n- A formula-shaped `query` matches on exact composition, spaced (`C29 H31 N7 O`) or unspaced; anything else (a component ID included) matches on name and synonyms\n- `mode: structures_with_ligand` returns PDB entries containing a ligand by exact component ID, with `start`/`limit` paging and `nextStart` while another page remains; a page past the end names the offset in `notice` instead of reporting no entries\n- `mode: binding_site` returns the protein residues lining a ligand's pocket in a structure, with contact distances; ligand instances page with `start`/`limit` like `structures_with_ligand`\n- Pocket residues carry both mmCIF label numbering (`asymId`, `seqId`) and author numbering (`authAsymId`, `authSeqId`) — 1IEP's imatinib pocket lists label THR93 as author THR315; the ligand instance reports its own author chain and residue number\n- Binding sites are experimental-only — computed from deposited coordinates; predicted models carry no bound ligands\n\n---\n\n### `protein_compare_structures` <sub>tool</sub>\n\n- Aligns 2 to the configured cap (default 10, max 25) structures per call, via `tm-align`, `fatcat-rigid`, or `fatcat-flexible`; optional per-structure `chain` restricts the alignment to a single mmCIF label chain\n- `reference: first` aligns every structure to the first; `reference: all_pairs` computes the full pairwise matrix; a structure repeated in `structures[]` is compared once\n- Each pair is an independent async job with per-pair partial success — a pair still computing when the poll budget elapses returns `status: computing` with a job `uuid`; a failed pair degrades only its own row\n- Re-call with a matching `{ a, b, uuid }` entry in `resume[]` to poll a computing pair instead of resubmitting; a resumed pair reports `a`/`b` in the order its job was submitted, whatever the current `structures[]` order, and a resume under a different `method` is rejected\n- Returns TM-score, RMSD, and aligned-residue count per pair, plus each structure's `modeledResidues` and 0–100 `coverage`, ordered `[a, b]`; TM-score is normalized by `a`'s length, so the same pair scores differently when reversed\n\n---\n\n### `protein_analyze_collection` <sub>tool</sub>\n\n- Group by `method`, `organism`, `polymer_type`, `resolution`, `release_year`, or `molecular_weight`\n- One `group_by` dimension for a breakdown, or two distinct dimensions for a cross-tab (the first nests the second); a repeated dimension is rejected\n- `interval` sets a histogram bin width (a number, for `resolution` or `molecular_weight`) or date-histogram period (`year`, the only one RCSB accepts) — applies to whichever requested dimension can consume that type; rejected when neither can\n- Scope with a free-text `query`, `organism`, `method`, or `max_resolution`; `content_type` selects the structure universe\n- `bucket_limit` caps buckets per dimension level, not per response — a cross-tab applies it separately to the parent and each nested child, up to `bucket_limit × (1 + bucket_limit)` buckets; `notice` names every capped position and `bucketsReturned` gives the realized total\n- Every dimension reports `missingValueCount` — matches carrying no value for that attribute (e.g. a `resolution` breakdown excludes NMR entries; computed models have neither `method` nor `resolution`)\n\n---\n\n### `protein_get_annotations` <sub>tool</sub>\n\n- UniProt features (domains, binding sites, PTMs) and natural variants, plus InterPro domain/family memberships (Pfam, PROSITE, …) with associated GO terms\n- Provide a UniProt accession directly, or a PDB ID — resolved via the structure's sequence cross-reference\n- A multi-chain PDB entry can map to several accessions; the default is the deterministic lowest-author-chain pick, with alternatives listed under `ambiguity` — pass `chain` (an author chain ID) to select a specific one\n- `include` scopes which classes are fetched (`features`, `domains`, `variants`, `all`); `limit` caps each class independently (1–200, default 50), with a truncated class disclosed in `notice`\n- Every response carries an `attribution` block naming the upstream data licenses and citations (see [Upstream data licensing](#upstream-data-licensing))\n\n---\n\n### `pdb://{entry_id}` <sub>resource</sub>\n\n- Experimental structure summary as `application/json` — title, method, resolution, organism, bound ligands, and per-entity chain IDs in both the author (`authAsymIds`) and mmCIF label (`labelAsymIds`) namespaces\n- Mirrors `protein_get_structure` for `source: experimental`; `entry_id` is a PDB entry ID (e.g. `4HHB`)\n\n---\n\n### `af://{uniprot}` <sub>resource</sub>\n\n- Predicted-structure summary as `application/json` — mean pLDDT, confidence-band fractions, model URLs (`cif`/`pdb`/`bcif`), and AlphaFold model version\n- `uniprot` accepts a UniProt accession or an AlphaFold DB entry ID (e.g. `AF-P69905-F1`); mirrors `protein_get_structure` for `source: predicted`\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\nPDB / AlphaFold-specific:\n\n- One federated surface over experimental (PDB) and predicted (AlphaFold / 3D-Beacons) structures — search, fetch, and compare treat both universes the same\n- Keyless across every upstream — RCSB, AlphaFold DB, 3D-Beacons, UniProt, InterPro, and Foldseek, no API keys to provision\n- Corpus analytics run on RCSB's facet engine — distributions, histograms, and cross-tabs come back as compact bucket counts, not the matching entries\n- Async alignment and Foldseek jobs poll within a bounded budget and hand back a job ticket (`ticketId` / per-pair `uuid`) instead of blocking — re-call with `ticket_id` or a `resume[]` entry to poll the same job instead of resubmitting\n\nAgent-friendly output:\n\n- Provenance on every response — each hit carries a `source` (`experimental` / `predicted`), the engine and database that produced it, and effective-query / total-count echoes so agents can reason about coverage\n- Graceful partial failure — batch fetches and pairwise comparisons return per-item rows (`failed[]`, per-pair `status`) instead of failing the whole request, each with actionable recovery text\n- Discriminated output contracts — typed `source` and `status` unions, `computing` results with resume tickets, and budget-overflow outlines let callers branch on data, not string parsing\n\n## Getting started\n\n### Public Hosted Instance\n\nA public instance is available at `https://protein.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:\n\n```json\n{\n  \"mcpServers\": {\n    \"protein\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://protein.caseyjhand.com/mcp\"\n    }\n  }\n}\n```\n\n### Self-Hosted / Local\n\nAdd the following to your MCP client configuration file. No API key is required — every upstream provider is keyless.\n\n```json\n{\n  \"mcpServers\": {\n    \"protein-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"bunx\",\n      \"args\": [\"@cyanheads/protein-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    \"protein-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cyanheads/protein-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    \"protein-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"MCP_TRANSPORT_TYPE=stdio\", \"ghcr.io/cyanheads/protein-mcp-server:latest\"]\n    }\n  }\n}\n```\n\nFor Streamable HTTP, set the transport and start the server:\n\n```sh\nMCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http\n# Server listens at http://localhost:3010/mcp\n```\n\n### Prerequisites\n\n- [Bun v1.4.0](https://bun.sh/) or higher (or Node.js v24+).\n- No accounts or API keys — RCSB, AlphaFold DB, 3D-Beacons, UniProt, InterPro, and Foldseek are all public and keyless.\n\n### Installation\n\n1. **Clone the repository:**\n\n```sh\ngit clone https://github.com/cyanheads/protein-mcp-server.git\n```\n\n2. **Navigate into the directory:**\n\n```sh\ncd protein-mcp-server\n```\n\n3. **Install dependencies:**\n\n```sh\nbun install\n```\n\n## Configuration\n\nAll upstream providers are keyless, so the server runs out of the box with no configuration. Every variable below is optional.\n\n| Variable | Description | Default |\n|:---|:---|:---|\n| `PROTEIN_ASYNC_POLL_TIMEOUT_MS` | Max wall-clock to poll an async job (alignment / Foldseek) before returning a `computing` result. | `30000` |\n| `PROTEIN_MAX_BATCH_IDS` | Cap on IDs accepted by `protein_get_structure` in one batch (1–100). | `25` |\n| `PROTEIN_MAX_COMPARE_STRUCTURES` | Cap on structures per `protein_compare_structures` call (2–25). | `10` |\n| `PROTEIN_FACET_BUCKET_CAP` | Default cap on buckets per `protein_analyze_collection` dimension (1–500). | `50` |\n| `PROTEIN_FANOUT_CONCURRENCY` | Max concurrent upstream requests for per-ID / per-pair fan-out (1–16). | `5` |\n| `RCSB_SEARCH_BASE_URL` | Base URL for the RCSB Search API v2. | `https://search.rcsb.org` |\n| `ALPHAFOLD_BASE_URL` | Base URL for the AlphaFold Protein Structure Database API. | `https://alphafold.ebi.ac.uk` |\n| `FOLDSEEK_BASE_URL` | Base URL for the Foldseek structural-similarity search service. | `https://search.foldseek.com` |\n| `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http`. | `stdio` |\n| `MCP_HTTP_PORT` | Port for the HTTP server. | `3010` |\n| `MCP_SESSION_MODE` | HTTP session mode: `stateless`, `stateful`, or `auto`. The server declares `stateless` in code; set this to override it. | `stateless` |\n| `MCP_AUTH_MODE` | Auth mode: `none`, `jwt`, or `oauth`. | `none` |\n| `MCP_LOG_LEVEL` | Log level (RFC 5424). | `info` |\n| `OTEL_ENABLED` | Enable [OpenTelemetry instrumentation](https://github.com/cyanheads/mcp-ts-core/tree/main/docs/telemetry). | `false` |\n\nSee [`.env.example`](./.env.example) for the full list of provider base-URL overrides and tuning limits.\n\n## Running the server\n\n### Local development\n\n- **Build and run:**\n\n  ```sh\n  # One-time build\n  bun run rebuild\n\n  # Run the built server\n  bun run start:stdio\n  # or\n  bun run start:http\n  ```\n\n- **Run checks and tests:**\n\n  ```sh\n  bun run devcheck   # Lint, format, typecheck, security\n  bun run test       # Vitest test suite\n  bun run lint:mcp   # Validate MCP definitions against spec\n  ```\n\n### Docker\n\n```sh\ndocker build -t protein-mcp-server .\ndocker run --rm -e MCP_TRANSPORT_TYPE=http -p 3010:3010 protein-mcp-server\n```\n\nThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/protein-mcp-server`. OpenTelemetry peer dependencies are installed by default — build with `--build-arg OTEL_ENABLED=false` to omit them.\n\n## Project structure\n\n| Directory | Purpose |\n|:---|:---|\n| `src/index.ts` | `createApp()` entry point — registers tools/resources and inits the provider services. |\n| `src/config` | Server-specific environment variable parsing and validation with Zod. |\n| `src/mcp-server/tools` | Tool definitions (`*.tool.ts`). |\n| `src/mcp-server/resources` | Resource definitions (`*.resource.ts`). |\n| `src/services` | Provider service layer — RCSB (search, data, facets), AlphaFold, 3D-Beacons (best-available), UniProt (incl. InterPro/GO), Structural Comparison alignment, Foldseek, and shared HTTP/identifier/concurrency helpers. |\n| `tests/` | Unit and integration tests mirroring `src/`. |\n\n## Development guide\n\nSee [`CLAUDE.md`/`AGENTS.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 request-scoped logging, `ctx.state` for tenant-scoped storage\n- Register new tools and resources via the barrels in `src/mcp-server/*/definitions/index.ts`\n- Wrap external API calls: validate raw → normalize to domain type → return output schema; never fabricate missing fields\n\n## Upstream data licensing\n\nStructure and annotation data comes from public upstream databases, each under its own license. `protein_get_structure` and `protein_get_annotations` carry an `attribution` block on every response — the license, citation, and homepage for each source that contributed to that specific response — so the attribution obligation travels with the data to downstream consumers rather than living only here. CC BY / CC BY-SA sources require attribution on redistribution; CC0 sources are citation-only (attribution encouraged, not required).\n\n| Source | Contributes to | License |\n|:---|:---|:---|\n| [RCSB PDB](https://www.rcsb.org/) | `protein_get_structure` — experimental records | CC0 1.0 Universal |\n| [AlphaFold DB](https://alphafold.ebi.ac.uk/) | `protein_get_structure` — predicted models | CC BY 4.0 |\n| [ModelArchive](https://www.modelarchive.org/) | `protein_get_structure` — `MA_*` computed models | CC BY 4.0 |\n| [SWISS-MODEL](https://swissmodel.expasy.org/) | `protein_get_structure` — `best_available` models | CC BY-SA 4.0 |\n| [BFVD](https://bfvd.steineggerlab.workers.dev/) | `protein_get_structure` — `best_available` models | CC BY 4.0 |\n| [UniProt](https://www.uniprot.org/) | `protein_get_annotations` | CC BY 4.0 |\n| [InterPro](https://www.ebi.ac.uk/interpro/) | `protein_get_annotations` — domain/family data | CC0 1.0 Universal |\n| [GO](https://geneontology.org/) | `protein_get_annotations` — GO terms | CC BY 4.0 |\n\n`best_available` federates predicted models through [3D-Beacons](https://3d-beacons.org/), so the `attribution` block credits the actual contributing provider (AlphaFold DB, SWISS-MODEL, BFVD, …); a provider without a curated license entry carries a `See provider terms` fallback pointing back to 3D-Beacons rather than a fabricated license. InterPro's own domain/family classifications are CC0; the GO terms carried alongside them are separately CC BY 4.0, so each is credited independently only when it actually contributes. Full citations for each source travel in the `attribution` block of the relevant tool responses. This covers upstream *data* licensing — the server's own code is licensed separately (see [License](#license)).\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\nApache-2.0 — see [LICENSE](LICENSE) for details.\n","readmeFilename":"README.md"}