{"_id":"@cyanheads/openfda-mcp-server","_rev":"36-31e5d07ac20e7054e06895ca42aff12b","name":"@cyanheads/openfda-mcp-server","dist-tags":{"latest":"0.7.9"},"versions":{"0.1.6":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.6","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"e47fc6f51e0e0c199df024ff01a0833eb9924462","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.6.tgz","fileCount":54,"integrity":"sha512-cGRin9KA3gU2YZGN+qKBZVpxvauPYM02VHvhgCnzj6ozMOh236HV0uzMNN+YRtEeASEv3ltY6eN5hOOMrOr8MA==","signatures":[{"sig":"MEYCIQDgeDHki/ovqzJEHwSc67ebn4+q1AJP9EJIecPnlw+CQQIhAM6+Y5ZXE2qVTGY9PdLTDIv8DNMNjJ5QbGE683fLSML6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":139936},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"e47fc6f51e0e0c199df024ff01a0833eb9924462","engines":{"bun":">=1.2.0","node":">=22.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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-cGRin9KA3gU2YZGN+qKBZVpxvauPYM02VHvhgCnzj6ozMOh236HV0uzMNN+YRtEeASEv3ltY6eN5hOOMrOr8MA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.2","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^5.9.3","@types/node":"^25.5.2","@biomejs/biome":"^2.4.10","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.6_1775251108525_0.09410159575919907","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.7","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"9632f0088875e5e4a59d9551e10c29cdd2820e0d","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.7.tgz","fileCount":54,"integrity":"sha512-o+kNKru9jhbUAcJOH+f+BAqdYxy+PubJNN5JrcgkfBy5CMp0R9t+JJnKsnmS/+JS4lE/+dFdT54owa/gIqcn0g==","signatures":[{"sig":"MEUCIQDmqj9mU9o2MvNiBmqnuUCRor6GpbHeImtZVKOqrV2MhwIgblfQXzpHxkhzaZ1fuJmnTAoFM9lp9vp4YMECVCGFO/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":140504},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9632f0088875e5e4a59d9551e10c29cdd2820e0d","engines":{"bun":">=1.2.0","node":">=22.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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-o+kNKru9jhbUAcJOH+f+BAqdYxy+PubJNN5JrcgkfBy5CMp0R9t+JJnKsnmS/+JS4lE/+dFdT54owa/gIqcn0g==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.2","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.2","@types/node":"^25.5.2","@biomejs/biome":"^2.4.10","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.7_1775312884621_0.5308157588702489","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.8","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"67899a6b87f5cc1dfb11eb12885b693360760638","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.8.tgz","fileCount":58,"integrity":"sha512-IxhLtUoNR5g9okg3EAHJ8P3yQEXTix3HjgliuQDcD+bz/Np14XJeSzJ66NjW02EJ3ubp+uRpQnAzv/6xLKpEdQ==","signatures":[{"sig":"MEYCIQC2sLk0dsMG5HMyWiOSsqVoCzeJQSzbbrScjrE5Kz1wqgIhAJC3X2s+BLIXQugq+2YQCe9wGECREjShlYr+h1vx4BSV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153766},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"67899a6b87f5cc1dfb11eb12885b693360760638","engines":{"bun":">=1.2.0","node":">=22.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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"overrides":{"hono":">=4.12.7","yaml":">=2.8.3","picomatch":">=4.0.4","path-to-regexp":">=8.4.0","brace-expansion":">=2.0.3","express-rate-limit":">=8.2.2"},"_integrity":"sha512-IxhLtUoNR5g9okg3EAHJ8P3yQEXTix3HjgliuQDcD+bz/Np14XJeSzJ66NjW02EJ3ubp+uRpQnAzv/6xLKpEdQ==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.2.12"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.2","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.2","@types/node":"^25.5.2","@biomejs/biome":"^2.4.10","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.8_1775318152748_0.3106255758576977","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.9","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.9","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"99538d7bee805f15d7f99af5e723600d9582a3f7","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.9.tgz","fileCount":58,"integrity":"sha512-hAEiazTB//4ir5i+pQxxLo7GGT2GTQqRiQhgo0NnEpGZ88+T83UlDHHimsw6/NTIt7KNydT4xF6vJXkTuc26NQ==","signatures":[{"sig":"MEUCIQDAvZquR7SOYCdWarQ7349/PJuPnwzKARn/roaVFMJ/lgIgQ1lpRfHfGUT3P+fPYg9dLl9+72eWEypsaBcWHTHE5zI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154811},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"99538d7bee805f15d7f99af5e723600d9582a3f7","engines":{"bun":">=1.2.0","node":">=22.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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-hAEiazTB//4ir5i+pQxxLo7GGT2GTQqRiQhgo0NnEpGZ88+T83UlDHHimsw6/NTIt7KNydT4xF6vJXkTuc26NQ==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.5.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.4","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.12","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.4"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.9_1776746105239_0.5326916319105772","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.10","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.10","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"d457848f66498dafe997735a7123e75aa74a4f0e","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.10.tgz","fileCount":58,"integrity":"sha512-qW/ZAlu8QV03Zavfu4Oz5ZO3Drr0uIlBeOSSVwnWAKwv1n/OxHuOTQnxWOThpq10DtxQVFFOypaRt2jDsK47RA==","signatures":[{"sig":"MEUCIQCUKNraoHE8Gq6VbVBAozgDcnER2fZ38I5/GRZmvhg6uwIgT5kCgl7tlMP2Eg1pZZXXNGabsoXQ0oulA0XnuTtHVYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":155335},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d457848f66498dafe997735a7123e75aa74a4f0e","engines":{"bun":">=1.2.0","node":">=22.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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","dev:http":"MCP_TRANSPORT_TYPE=http bun --watch src/index.ts","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","dev:stdio":"MCP_TRANSPORT_TYPE=stdio bun --watch src/index.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-qW/ZAlu8QV03Zavfu4Oz5ZO3Drr0uIlBeOSSVwnWAKwv1n/OxHuOTQnxWOThpq10DtxQVFFOypaRt2jDsK47RA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.5","depcheck":"^1.4.7","tsc-alias":"^1.8.16","typescript":"^6.0.3","@types/node":"^25.6.0","@biomejs/biome":"^2.4.13","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.10_1777053775330_0.17106493631827346","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.11","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.11","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"983bc0cbb925e14c643f082c16605f6890aaaadf","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.11.tgz","fileCount":58,"integrity":"sha512-Z0e5S4+RtSoOUil6S9qgX2w76o8SHuyoitTSuPD96ZXffYzkzMijV1Z3KFBwSm0YXx3MYxa8ALI/KbXiOwY8Gw==","signatures":[{"sig":"MEUCICn5ZLK2RM8ybbBD6GB2V9RlcrV2ZC1G0kVcuYW8/5/FAiEAzgrOuSM154LNH+DSUDyMjCl62ZdmYrb8YCAF8cSxkWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":161074},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"983bc0cbb925e14c643f082c16605f6890aaaadf","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-Z0e5S4+RtSoOUil6S9qgX2w76o8SHuyoitTSuPD96ZXffYzkzMijV1Z3KFBwSm0YXx3MYxa8ALI/KbXiOwY8Gw==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.8.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.5","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.6.2","@biomejs/biome":"^2.4.14","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.11_1778238245333_0.41544677727946544","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.12","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.12","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"48013291f0fa17d4167cad659c9f56552cddfa90","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.12.tgz","fileCount":58,"integrity":"sha512-vnBBy5nUv9Z81URs0z0yRirHiv08KisUKWNn8ENlDOwF/VbP+aGx8EXTbLWbP1Kp3+YVQVdF2IZkwCkkazrswg==","signatures":[{"sig":"MEQCIFu60By1AM8gZ1Za1FSoR2ZDvldLzIBgvtsEYnPzEBZJAiAoZbK72aIxPJghOO5gFvPxM5Df96s+g8RNmZ73Y4rRrw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":169400},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"48013291f0fa17d4167cad659c9f56552cddfa90","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-vnBBy5nUv9Z81URs0z0yRirHiv08KisUKWNn8ENlDOwF/VbP+aGx8EXTbLWbP1Kp3+YVQVdF2IZkwCkkazrswg==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.8.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.5","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.6.2","@biomejs/biome":"^2.4.14","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.5"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.12_1778242452099_0.8364911582788506","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.13","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.13","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"c2db520d86a70c7193415fe9c35726593a9ad48f","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.13.tgz","fileCount":58,"integrity":"sha512-C6VvGPZjyuP7S0czr+bo0P2k9oNRhwz0EL85r4CTIGUQEUpGVXhHHuHi0ITnZFUS6PGHCDWqso4f9nPIKCHs+g==","signatures":[{"sig":"MEYCIQCBwuARIMJTz7mCdPnu1rcfhQew8xbUdUzkx6WCsEKxWwIhAKP+UWnyglzWrgfXgujcEHDQjrRnJXGpKIkUCwlkQ6kO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":170009},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"c2db520d86a70c7193415fe9c35726593a9ad48f","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-C6VvGPZjyuP7S0czr+bo0P2k9oNRhwz0EL85r4CTIGUQEUpGVXhHHuHi0ITnZFUS6PGHCDWqso4f9nPIKCHs+g==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.6","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.8.0","@biomejs/biome":"^2.4.15","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.6"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.13_1778958327828_0.7526469714662098","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.14","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.14","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"082d105da3aad22c97191e7e9cb58eb9e74f1772","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.14.tgz","fileCount":59,"integrity":"sha512-LJHTlhPXzPN3U97pQQ7ISiPMleUs9c08uJSPb7VlHg26lvp8eXv9KgURwO90W0wwdmIMBNZePA8PQDDIGWU1CA==","signatures":[{"sig":"MEUCIA+TbkMfcEJsO6P13BuYKtG3AlUVLWlrHsaRhMcZfJL8AiEA1ax+j617YNPhfZmKjhNSFc7U4MLKkDXg5gfbYh/ug34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176513},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"082d105da3aad22c97191e7e9cb58eb9e74f1772","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-LJHTlhPXzPN3U97pQQ7ISiPMleUs9c08uJSPb7VlHg26lvp8eXv9KgURwO90W0wwdmIMBNZePA8PQDDIGWU1CA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.15","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.14_1779539236630_0.9342969719496181","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.15","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.15","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"b44abc4bc6b180d7696f4a58843b3e51b942b64d","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.15.tgz","fileCount":59,"integrity":"sha512-/2j8CMbWQuOZgZ80plMi58n735qee12cOwZ+EQxKNhasrTDFpS8tgZRphdH3lqJ0tVHcAZBi2jIotN7H+krmeA==","signatures":[{"sig":"MEYCIQCl96bJ33Moi2z9BMIq3OLD7jygTpRYzEfWhjjlwUt6owIhAIhW8lnopVD2NqxEJ4jQSMgckSc8V01UzRdYFTsiyK7i","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178967},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"b44abc4bc6b180d7696f4a58843b3e51b942b64d","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write --unsafe","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-/2j8CMbWQuOZgZ80plMi58n735qee12cOwZ+EQxKNhasrTDFpS8tgZRphdH3lqJ0tVHcAZBi2jIotN7H+krmeA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.13"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.15_1780032329720_0.14378981333632468","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.16","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.16","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"5ba7450098a6239e0f8c119d7f9a601981764436","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.16.tgz","fileCount":59,"integrity":"sha512-TMPqrAs3KTDgbgssSvJZ1SRG7r2ea9rqfGa+m90zodwcC6CnYOVlbGTonRkNpl4tq03pTXZuPMfovI9/lQHsDA==","signatures":[{"sig":"MEYCIQD+JpW3CS8Pw8EUsv/0i5gTuNKMijYP6VDkFqNma0yVqAIhAPnlvTakV9NkmqlW2+wh4y73fPd/npflDyPfqmprqHQt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":183749},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"5ba7450098a6239e0f8c119d7f9a601981764436","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-TMPqrAs3KTDgbgssSvJZ1SRG7r2ea9rqfGa+m90zodwcC6CnYOVlbGTonRkNpl4tq03pTXZuPMfovI9/lQHsDA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.16_1780132324339_0.0776247004619981","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.17","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.17","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"903eda8f814a8a81553f6fce9b264f706df4e684","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.17.tgz","fileCount":67,"integrity":"sha512-hcfyeCQEDfhYxfH6V49jMPtvMzHEPvOUufS0k6aNIeUXT251t/xCMpFWV0y+HBvgb1FHnb4laJJ1CY0ORjxa3Q==","signatures":[{"sig":"MEQCIGOidOSHXaAGNGXB0ZWMMnuzcjnSOoL4MUGPFWvC6NnfAiAPEn7t16BWne/yXyPoPT975/pBsU/dcCytAYHevnoHEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":252919},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"903eda8f814a8a81553f6fce9b264f706df4e684","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-hcfyeCQEDfhYxfH6V49jMPtvMzHEPvOUufS0k6aNIeUXT251t/xCMpFWV0y+HBvgb1FHnb4laJJ1CY0ORjxa3Q==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.16"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.7","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.7"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.17_1780196209931_0.7800150334883709","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.18","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.18","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"7636a987c5beb637526075c4fa7db566f305a1d1","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.18.tgz","fileCount":67,"integrity":"sha512-h7CBaCsl2Q8tCqzbIk05SCgOHwQALaz5jMBg14hkAxBh5x2Jk513vi5fkqt/uu+6nrWMCo3nQWtQ30qSeBWnfg==","signatures":[{"sig":"MEUCIQDPC2fIqNLTBs+Rsc3EGRzv8p3sxWSZZ+3rZQknkklBMgIgSY8v7OtHywO9JMll+hNPXYdUy4VUBR+/UfpibFZEEP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":253378},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"7636a987c5beb637526075c4fa7db566f305a1d1","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-h7CBaCsl2Q8tCqzbIk05SCgOHwQALaz5jMBg14hkAxBh5x2Jk513vi5fkqt/uu+6nrWMCo3nQWtQ30qSeBWnfg==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.8"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.18_1780414101660_0.9297613149958353","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.19","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.19","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"9d091195d9444bbc652026003b885bb14274f29d","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.19.tgz","fileCount":79,"integrity":"sha512-mv9as82CykMFirXLiFAH9oVKXG863gN+4eu5w7Qhs+b7b55YuJWT5Pkh/rdOeEQVEvNA+6xACMcbtcabOOPaUA==","signatures":[{"sig":"MEQCICZ5JRPWd49SBpMoF4oZ5CTyjMRasTkiNcRPhRZ4mkXKAiB8o3rbh5GpnAwZmByZEU8T0UQAXithxMrkWEZi8o0hSA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331424},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"9d091195d9444bbc652026003b885bb14274f29d","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-mv9as82CykMFirXLiFAH9oVKXG863gN+4eu5w7Qhs+b7b55YuJWT5Pkh/rdOeEQVEvNA+6xACMcbtcabOOPaUA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.8"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.19_1780564362047_0.01566471433938088","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@cyanheads/openfda-mcp-server","version":"0.1.20","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.1.20","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"0cdefafe1c7890cf96e3d88849d804ca116497eb","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.1.20.tgz","fileCount":83,"integrity":"sha512-MvfzBGLSyJdzzdD9F5Awf9Du0M/Oty9aue6dD+BXYsAFfmyttpSHKg6NxFWaFdp5wOCKT3VMK5SVLDLgQsJIjA==","signatures":[{"sig":"MEYCIQCmc97pHHZmwTdU86EvAWiJrKBIdK4UcwDPOvjUFtxDewIhAJiTy7T9N6cvSqYq8veMxhHQbiTad0uBEXSvuVrn+OFD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":375090},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"0cdefafe1c7890cf96e3d88849d804ca116497eb","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-MvfzBGLSyJdzzdD9F5Awf9Du0M/Oty9aue6dD+BXYsAFfmyttpSHKg6NxFWaFdp5wOCKT3VMK5SVLDLgQsJIjA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.1","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.8"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.1.20_1780646922922_0.6248952941298753","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@cyanheads/openfda-mcp-server","version":"0.2.0","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.2.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"af643658bef399be61c071687f5547de523f88ff","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.2.0.tgz","fileCount":83,"integrity":"sha512-+ZJ0A4lzHmLs9QjiZQDMO4nKJU4s8N4lcdxdIL5jIhTABvPtxNaG9+YzaNXaz4PgLNwZk54ISEyA2JddoM2dww==","signatures":[{"sig":"MEYCIQDvFapt699D2e8xv857pKq1cVs7E13udvRR3yd1B84WVAIhANpbVI9GBFnAl9yu5Ho7FQ+Y6xUl4gER5fYdN7+cHcaA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":376199},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"af643658bef399be61c071687f5547de523f88ff","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-+ZJ0A4lzHmLs9QjiZQDMO4nKJU4s8N4lcdxdIL5jIhTABvPtxNaG9+YzaNXaz4PgLNwZk54ISEyA2JddoM2dww==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.2","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.8"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.2.0_1780967376650_0.8563180296886324","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@cyanheads/openfda-mcp-server","version":"0.3.0","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.3.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"fbab538ce348a5b8ff03d7d42f474c860250ddad","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.3.0.tgz","fileCount":99,"integrity":"sha512-4aPilsd1Im6aBcebUC+cxvW4wz4cPVF0+IyNO2CyHU91BWYilJBq1Rv+LTEqg0FQpyLVwBanNiTvylBNb7qYyw==","signatures":[{"sig":"MEQCIHP6ARm3QSeHdJdnsvTTpMAIe3QXnAgOmsvcJfQodU71AiBJwlo3dGFJQ4F8TiZeJo8BusT6Fu5yMOCWAmKW0R7fpA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461239},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"fbab538ce348a5b8ff03d7d42f474c860250ddad","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-4aPilsd1Im6aBcebUC+cxvW4wz4cPVF0+IyNO2CyHU91BWYilJBq1Rv+LTEqg0FQpyLVwBanNiTvylBNb7qYyw==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.3-r.3","@cyanheads/mcp-ts-core":"^0.9.21"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.2","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.8"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.3.0_1780975368204_0.5469858817053439","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@cyanheads/openfda-mcp-server","version":"0.3.1","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.3.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"e301e9bf7d2ca2cfbc61a799a4a6c9bfe1bc144d","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.3.1.tgz","fileCount":99,"integrity":"sha512-6ZRTebA4syfJZ7Dh5NJbBeqkEPZOT/Y53nP1wqGNlv2/6L2/W1X4GvqOEdpOg2GiCUnYLSLTn7MbCx9jJciiBA==","signatures":[{"sig":"MEUCIQD/Xq9pTUo0GiLi/AALbBKKl3KDXhkY4A37aZkauLk1GwIgZkfAr2HOhuSGF6UYnYDn7ezloFMnSaIg7ZDUQpeEQ8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468613},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"e301e9bf7d2ca2cfbc61a799a4a6c9bfe1bc144d","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-6ZRTebA4syfJZ7Dh5NJbBeqkEPZOT/Y53nP1wqGNlv2/6L2/W1X4GvqOEdpOg2GiCUnYLSLTn7MbCx9jJciiBA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.3-r.3","@cyanheads/mcp-ts-core":"^0.10.6"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.8","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^25.9.3","@biomejs/biome":"^2.4.16","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.8"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.3.1_1781253916060_0.40758699905942364","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@cyanheads/openfda-mcp-server","version":"0.3.2","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.3.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"fc9f72217c89ab3957933c881790e11eb1304980","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.3.2.tgz","fileCount":99,"integrity":"sha512-PbexqEmcRrtjw0FL45St9+P7PK83SfBM5aHU3MksBnVFdsT+6qL/trlKzWO/7wyhnR6D303ATWJGv0z4NJk1Wg==","signatures":[{"sig":"MEYCIQD7amzquNpbIcgB4bWfQ2ryIQhlYnNZPBQwGuaILDwNZgIhAP9bguatdBJ3vPAQ0ZjbNmv9xFxN7ieOqNAgGVc6MfYQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468612},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"fc9f72217c89ab3957933c881790e11eb1304980","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-PbexqEmcRrtjw0FL45St9+P7PK83SfBM5aHU3MksBnVFdsT+6qL/trlKzWO/7wyhnR6D303ATWJGv0z4NJk1Wg==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.9"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.0.0","@biomejs/biome":"^2.5.0","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.3.2_1781976720127_0.8324281710000552","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@cyanheads/openfda-mcp-server","version":"0.3.3","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.3.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"50000b4e113f92b2d72523a9be2da3dcf35c613a","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.3.3.tgz","fileCount":99,"integrity":"sha512-rXLgv7K9D4ZWrwHVLRH0q9fXxk02oTbvcnrNITEifkVw3JlZ4B5rt6g5gT4YNiMCdoNQ16SQKJXqA6eQVoMtww==","signatures":[{"sig":"MEYCIQD3aRorbaMp6vdpkYPxkyu1dgYx9a3V4A7ZlJgOUCmDzQIhAJpelaNHrv+AV+vcjD8rXguv7tDYbrA4gDrKBv1Tt56P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":480173},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"50000b4e113f92b2d72523a9be2da3dcf35c613a","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-rXLgv7K9D4ZWrwHVLRH0q9fXxk02oTbvcnrNITEifkVw3JlZ4B5rt6g5gT4YNiMCdoNQ16SQKJXqA6eQVoMtww==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.1.0","@biomejs/biome":"^2.5.2","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.3.3_1783069442134_0.4258977140379161","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@cyanheads/openfda-mcp-server","version":"0.4.0","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"cyanheads <casey@caseyjhand.com> (https://github.com/cyanheads/openfda-mcp-server#readme)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.4.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"4dc2debefbf07b00910473877680bf9abb4cd653","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.4.0.tgz","fileCount":99,"integrity":"sha512-95wcjPsgww/MlCC+vgebLi3IhV1cq+bFXzTudIA8dLlCItnJtI+CvLfE097JsFGGtQNWigVXk5ty5rqqcPG4bw==","signatures":[{"sig":"MEUCIChg+OlVdhk/R12Tcy8MVA2yvJsjnATggc4BTgRIo81QAiEAmxRb9wnUKF1XVxzNAXDQmvZUAx/H7D/AxWjLxyHEjx8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498249},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"4dc2debefbf07b00910473877680bf9abb4cd653","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-95wcjPsgww/MlCC+vgebLi3IhV1cq+bFXzTudIA8dLlCItnJtI+CvLfE097JsFGGtQNWigVXk5ty5rqqcPG4bw==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.10"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.11","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.9","depcheck":"^1.4.7","tsc-alias":"^1.8.17","typescript":"^6.0.3","@types/node":"^26.1.0","@biomejs/biome":"^2.5.2","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.4.0_1783072957626_0.48578347731586624","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@cyanheads/openfda-mcp-server","version":"0.4.1","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.4.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"b5bbb3222d499143693bc2144e95d42c3fb9464f","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.4.1.tgz","fileCount":99,"integrity":"sha512-b5pdntZyjG2oNp0JpuOCnHddypomoYQcGnh5XLVezk25njx92be/bWn1hTqqjK7GmGg1OK4nkJl9QWzniLK9aQ==","signatures":[{"sig":"MEQCIAPXLutTwHtgiTk5j28C/f6837OTQKKQZtrIbTXJ+BMGAiAUxJT3tqc727C9SI/3cgtSQdKTwKxuEsB4ThXCVc3kvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":498974},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"b5bbb3222d499143693bc2144e95d42c3fb9464f","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-b5pdntZyjG2oNp0JpuOCnHddypomoYQcGnh5XLVezk25njx92be/bWn1hTqqjK7GmGg1OK4nkJl9QWzniLK9aQ==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"^26.1.1","@biomejs/biome":"^2.5.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.4.1_1783762166161_0.5563463746317021","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@cyanheads/openfda-mcp-server","version":"0.4.2","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.4.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"40e7b39a4fd8f1896a236ebec8f3497d70752a11","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.4.2.tgz","fileCount":99,"integrity":"sha512-/j2I6J+tQsiC357Fw6+SfGlsNF5KNgHYWx24V7rjgM0pWjq09d+wsPMZzWrkWH8yiVjQC8gZ6zRpoZDgQBULkw==","signatures":[{"sig":"MEYCIQDRPTfkO+/gAJJISxbviKnUEQ+tuldsxOMHMZibNJABxAIhAJ4OIRZnP4b5+bHMm97lNMXOPSSCz4qvjlg+Yk+ZFX2s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":497595},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"40e7b39a4fd8f1896a236ebec8f3497d70752a11","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-/j2I6J+tQsiC357Fw6+SfGlsNF5KNgHYWx24V7rjgM0pWjq09d+wsPMZzWrkWH8yiVjQC8gZ6zRpoZDgQBULkw==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.4-r.1","@cyanheads/mcp-ts-core":"^0.10.14"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.5","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.0","typescript":"^6.0.3","@types/node":"^26.1.1","@biomejs/biome":"^2.5.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.4.2_1783764475159_0.9957753542275116","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@cyanheads/openfda-mcp-server","version":"0.4.3","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.4.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"ad9e0e93ecc7d00085c3c4baa5f5ce300fdb0b88","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.4.3.tgz","fileCount":103,"integrity":"sha512-6OCmkVU2ylxsi0pkgfMUOtD3y3Rf2LkCGtLFsoz9rT5xT9mknGxdjpSYoTldihq4OT+/qxYjhCKhBXISo5qWRg==","signatures":[{"sig":"MEUCIQCy3awWcBT8x5KNIXecSBqqxE4dU9DBAgSzKn38KyLiBwIgX39zsx1swLQjVlKgPqvqaVWS1ho95HMTrb2oBETX9Nc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":518281},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"ad9e0e93ecc7d00085c3c4baa5f5ce300fdb0b88","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-6OCmkVU2ylxsi0pkgfMUOtD3y3Rf2LkCGtLFsoz9rT5xT9mknGxdjpSYoTldihq4OT+/qxYjhCKhBXISo5qWRg==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.4.3_1785104662997_0.7284420865115","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@cyanheads/openfda-mcp-server","version":"0.5.0","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.5.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"490cb33d26691de1903bcea73d10c99e961b9afc","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.5.0.tgz","fileCount":103,"integrity":"sha512-iIUvVPKa2Hofq6WUpyKT+29EMeROatAW5Iu6wN17/esEaxA6ZqNSI+Mot+bhSsAQlhkDI2indfbqRaoQddsEJw==","signatures":[{"sig":"MEYCIQD0nh+sEW7x1z9mJ6aUpdapJyO5WoT77zg/UAVRrl1OrwIhANdv47K/ztz+m9MrUk0xfzeBAqtduzzac15wj+El522x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":552451},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"490cb33d26691de1903bcea73d10c99e961b9afc","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-iIUvVPKa2Hofq6WUpyKT+29EMeROatAW5Iu6wN17/esEaxA6ZqNSI+Mot+bhSsAQlhkDI2indfbqRaoQddsEJw==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.5.0_1785108494517_0.5935588564900531","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@cyanheads/openfda-mcp-server","version":"0.6.0","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.6.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"5f9aedb128427c96d53586dd592cf4998a2dee7c","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.6.0.tgz","fileCount":103,"integrity":"sha512-iSX+KzrF5De4t4C9iAnG1uap4d5bLYA+nLw9/sny8ePJ6x/9AW8amw709htmQEimWicZ9DI/A0nLVOiiIrrr8Q==","signatures":[{"sig":"MEUCIAyD8jHBimlHVAjHG24f2XbCHaQ/6fy4CR4VdkX4UJlfAiEAmwRbgNLT4QCHbXhyuKpEQ+lewAojJbK6SpQsGWHEThg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":573831},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"5f9aedb128427c96d53586dd592cf4998a2dee7c","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","lint:packaging":"bun run scripts/lint-packaging.ts","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"_integrity":"sha512-iSX+KzrF5De4t4C9iAnG1uap4d5bLYA+nLw9/sny8ePJ6x/9AW8amw709htmQEimWicZ9DI/A0nLVOiiIrrr8Q==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.6.0_1785112366856_0.12450087438099122","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.0","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.0","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"cf88af142f15c209d9e5f55bda5897bd1618480a","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.0.tgz","fileCount":132,"integrity":"sha512-44xeWDHWThx8yqICyquHHM5MQEA1D+1LHroq7F3k07jcDKV/gDzbvctTJbigCqCakZtctvOUL5uuAq2HhRaTwg==","signatures":[{"sig":"MEUCIFCGszdwq54XO9anzxfJpNB4bPmZE9TvPIZqDbOTRHJaAiEAy2dNdC0jxFjmQ+gUpGiOSWzX/vvCabt1UmGv1SHo62I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683538},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"cf88af142f15c209d9e5f55bda5897bd1618480a","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-44xeWDHWThx8yqICyquHHM5MQEA1D+1LHroq7F3k07jcDKV/gDzbvctTJbigCqCakZtctvOUL5uuAq2HhRaTwg==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.0_1785136978449_0.9575444964425928","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.1","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.1","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"274a8e9d198e2c5463ef645a978deb6531d224fe","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.1.tgz","fileCount":132,"integrity":"sha512-dxJC48Z4g0jnaVYabck3PEaE1ds89oGqot4RAeof3TNBz6aulO3NmXCCtMLghefsmrAT2Umo1NqbgE/d04B/Ug==","signatures":[{"sig":"MEUCICfELZRXYEk9HPgCtsGZHm89Gx4J8Iuv0hgnR+ayEEjNAiEAm6SuZKz6qwTJ6dZFA9dsE7oWeXN2GyCqgUE4C3r/jyA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":684635},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"274a8e9d198e2c5463ef645a978deb6531d224fe","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-dxJC48Z4g0jnaVYabck3PEaE1ds89oGqot4RAeof3TNBz6aulO3NmXCCtMLghefsmrAT2Umo1NqbgE/d04B/Ug==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.1","@cyanheads/mcp-ts-core":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.1","@biomejs/biome":"^2.5.5","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.1_1785138426571_0.35522478009176517","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.2","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.2","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"8a2c2f6982fa9ec021afbb6d5975c5385fd03ec7","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.2.tgz","fileCount":132,"integrity":"sha512-WRKBAX8lYdrsIUJcyxdGu926D/68PfzB2JrhR46WLZTO6fA9WWxVtKXUD9ODfikj2U2ka8b14lK5jlYCflgSWA==","signatures":[{"sig":"MEYCIQCzK1IOM3zVUO0kpHI01Qp1kgAFK9qM/jUeF9ih+7aubQIhAMEPQzRaVOpIgvWPXEWc/H32R6qPUTJ+ugohC5SyyL7g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":722127},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"8a2c2f6982fa9ec021afbb6d5975c5385fd03ec7","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-WRKBAX8lYdrsIUJcyxdGu926D/68PfzB2JrhR46WLZTO6fA9WWxVtKXUD9ODfikj2U2ka8b14lK5jlYCflgSWA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.3","@cyanheads/mcp-ts-core":"^0.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.2","@biomejs/biome":"^2.5.6","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.2_1786090630096_0.966098089777514","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.3","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.3","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"e2daeab2dda24cd395ad82c46e3eb287da09073f","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.3.tgz","fileCount":136,"integrity":"sha512-jSjc4WZs1h62a04xMDsWaU4khS7SIb/JTHqm+f/2dejI0fooILJceIpNRYBLfAkn7iB3rSseHcCkv1SxdS3t9w==","signatures":[{"sig":"MEQCIHwQ/kA0UXx3IaOobab9+S/fSzqkgGnTk0ZdWbaKHdAbAiAqbjwaOS5Ftd6ivXnX4Qm7w/dWA8B7Qfqc89qjOX8IsQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":766208},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"e2daeab2dda24cd395ad82c46e3eb287da09073f","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-jSjc4WZs1h62a04xMDsWaU4khS7SIb/JTHqm+f/2dejI0fooILJceIpNRYBLfAkn7iB3rSseHcCkv1SxdS3t9w==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.3","@cyanheads/mcp-ts-core":"^0.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.14","devDependencies":{"ignore":"^7.0.6","vitest":"^4.1.10","depcheck":"^1.4.7","tsc-alias":"^1.9.1","typescript":"^7.0.2","@types/node":"^26.1.2","@biomejs/biome":"^2.5.6","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.10","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.3_1786095986767_0.9078982191990932","host":"s3://npm-registry-packages-npm-production"}},"0.7.4":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.4","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.4","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"d8856cb24066788e2138173ffd28b58e958e5d11","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.4.tgz","fileCount":136,"integrity":"sha512-aRn5UqgUQ0Fj8jjvHqJ1IlyJ48deRdoGtigFyEMuO661P/mMCG6VBOUCAUgcySo4xIxEHbYGmMhF9bxRJiW20w==","signatures":[{"sig":"MEQCICSzDzCs9LkTtCcqgYp/kPg/NkV4joEByz7Y1SxiIPLfAiA6FhjnuYL08D4zEEsYWEFnHnpyInF3Csb0fz9inxdgnw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":768283},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d8856cb24066788e2138173ffd28b58e958e5d11","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-aRn5UqgUQ0Fj8jjvHqJ1IlyJ48deRdoGtigFyEMuO661P/mMCG6VBOUCAUgcySo4xIxEHbYGmMhF9bxRJiW20w==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.4.3","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@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","node-cron":"^4.6.0","tsc-alias":"^1.9.2","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.10","better-sqlite3":"^13.0.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.4_1787645611341_0.9635523541535111","host":"s3://npm-registry-packages-npm-production"}},"0.7.5":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.5","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.5","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"d9d6a93c8eff13cc2e4bab105a0cb983b256e779","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.5.tgz","fileCount":176,"integrity":"sha512-RHf+5lOuiovW9T/5WuLXPHL3dbrTobJBbHcldvhwnbD2/EctgiEr769+YuwObxtT8wqKYSVqCosi16e5JzZAkg==","signatures":[{"sig":"MEUCIQDel1v9EwGcMrSzM4aja1QFpuLJJOmCdgBVsXnXY/SjewIgE7Eu0ljTj7Qg6xJZAOJg2Zjyu9p8vNPyXXuwtCfYQK4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDcV76nZB1Ft+r+d7W2vTCg4eMjDPeWBKSpGvaqII8gDgIhAK07kVnwLPo7rffHcr2QdBVgebWMVN50x4kHmPsNUyv4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":879833},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d9d6a93c8eff13cc2e4bab105a0cb983b256e779","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-RHf+5lOuiovW9T/5WuLXPHL3dbrTobJBbHcldvhwnbD2/EctgiEr769+YuwObxtT8wqKYSVqCosi16e5JzZAkg==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.4","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.4","@cyanheads/mcp-ts-core":"^0.13.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.4.0","devDependencies":{"ignore":"^7.0.9","vitest":"^4.1.11","depcheck":"^1.4.7","node-cron":"^4.6.0","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"^26.2.0","@biomejs/biome":"^2.5.13","better-sqlite3":"^13.0.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^4.1.11","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.5_1789556479005_0.6960980158308494","host":"s3://npm-registry-packages-npm-production"}},"0.7.6":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.6","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.6","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"d4f36027e127ee986687f708c4900282262ddfe6","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.6.tgz","fileCount":177,"integrity":"sha512-91w7N2BftPxjM/9tMFYN6BRcYsUtfExBzl7ZpeTagE/4EGClQnr1/j5HN9usx4EuU/tpNsSpr5DkAFQmm5UYzw==","signatures":[{"sig":"MEQCICvlNfLZDzK3c4ExsYvVXjUE4KTQ4K0PxzU7oGG7qygIAiArRO1ZmT4plmoFyXCh2KAvAFeBISgyeq0VhMV5cL6G0A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC4nEq7/Vrk/aOPohtVQTsRhmouvg99T2dHq0vUEqqFxwIhANxehMTgYrJtE1p1VesWfRQf4BATmYj6GMyL0QioV5Cs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":896022},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"d4f36027e127ee986687f708c4900282262ddfe6","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-91w7N2BftPxjM/9tMFYN6BRcYsUtfExBzl7ZpeTagE/4EGClQnr1/j5HN9usx4EuU/tpNsSpr5DkAFQmm5UYzw==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.5","@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","node-cron":"^4.6.0","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"^2.5.14","better-sqlite3":"^13.0.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.6_1790055245619_0.043295667451785036","host":"s3://npm-registry-packages-npm-production"}},"0.7.7":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.7","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.7","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"746a3080e44c64d8abdd867dcbb18f34592de5f3","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.7.tgz","fileCount":178,"integrity":"sha512-+jARueyMR/WUuwu3jPID4z416Lu5TLsI7IkGuNk6VCkKT4SAY8KSWyVIbNV39rN/A/fA1gKooIcIaDEvyj+Bcw==","signatures":[{"sig":"MEQCIFI1R4EO034g5TZFuciI7NJ+ITnlMPrLeVZGK5LPaj+WAiA1baNfaYESTeoH1JZlBVe8jYy6aomZZuHplBy0qF5q8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCnWA8KbvHpOBuqbBg/BN5/yYaTsl3MHzptVaXZb8gOpgIhALvoprQtPjMlvslDfZvBGKxfeIk20R59MEkaV8B2qPQC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":913383},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"746a3080e44c64d8abdd867dcbb18f34592de5f3","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-+jARueyMR/WUuwu3jPID4z416Lu5TLsI7IkGuNk6VCkKT4SAY8KSWyVIbNV39rN/A/fA1gKooIcIaDEvyj+Bcw==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.5","@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","node-cron":"^4.6.0","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"^2.5.14","better-sqlite3":"^13.0.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.7_1790104343028_0.6405345511265212","host":"s3://npm-registry-packages-npm-production"}},"0.7.8":{"name":"@cyanheads/openfda-mcp-server","version":"0.7.8","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","_id":"@cyanheads/openfda-mcp-server@0.7.8","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"bin":{"openfda-mcp-server":"dist/index.js"},"dist":{"shasum":"efbd7bc7bf32dc47f28828967d4e9bac58b0f2ca","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.8.tgz","fileCount":179,"integrity":"sha512-0UGd9jPLhZnS0EwCRm0BKm8598yoq7onBdQGysZhghgIZM4CddzRZkGI/g5E+x/pPJ0fHbxyHyxWHaSSBXhiFA==","signatures":[{"sig":"MEUCIHCvUE0Px6bkKLxft+2RRo+mNJi3EGIsxITSh1qxSgNOAiEAgQnOsmp/yEfsVeVai/jL25sWx0IxuiktQzfwaIhNCWQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBKxFXbotbEFqQLBfnaJj0AE9J+KyxGmILSZUeNvIq5eAiEA2MFJb4oFoYqfC+55ulpCrMWk8Fnd+lJ6uubo9Y9pI/Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":968425},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","shasum":"efbd7bc7bf32dc47f28828967d4e9bac58b0f2ca","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","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-0UGd9jPLhZnS0EwCRm0BKm8598yoq7onBdQGysZhghgIZM4CddzRZkGI/g5E+x/pPJ0fHbxyHyxWHaSSBXhiFA==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","directories":{},"_nodeVersion":"26.3.0","dependencies":{"zod":"^4.6.5","pino-pretty":"^13.1.3","@duckdb/node-api":"^1.5.5-r.5","@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","node-cron":"^4.6.0","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"^2.5.14","better-sqlite3":"^13.0.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/openfda-mcp-server_0.7.8_1790108470013_0.5105236743563075","host":"s3://npm-registry-packages-npm-production"}},"0.7.9":{"_id":"@cyanheads/openfda-mcp-server@0.7.9","bin":{"openfda-mcp-server":"dist/index.js"},"bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"dist":{"shasum":"d7f1be31c062b25cd02fee06ac75ae919c5b1ea9","tarball":"https://registry.npmjs.org/@cyanheads/openfda-mcp-server/-/openfda-mcp-server-0.7.9.tgz","fileCount":184,"integrity":"sha512-8l5eyMZHCt/mePucbOBCky/1rNhuXA29A27Xizz5WcFuM7wsJsK8Fw+KMXIrQ6IdYUmDWNTFyRDj/9ACR82H4A==","signatures":[{"sig":"MEUCIEGOe2RJGds1Y4vQuWkFleVKXHwNBWmzcUs2H1+V42qbAiEAxhtusq8NDw27mrMJ/MhEia5F7dreOLGe8Gm98cCpxko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHR/cL1wEReXTY9dgQ6+s5OKZP6FDolSctNmHeEAuk0DAiBWtv8O7njJyw65ct3op2oAZ53M0s/iVG5WeAEX1MDMUQ=="}],"unpackedSize":1005772},"main":"dist/index.js","name":"@cyanheads/openfda-mcp-server","type":"module","types":"dist/index.d.ts","author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","shasum":"d7f1be31c062b25cd02fee06ac75ae919c5b1ea9","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/openfda-mcp-server","scripts":{"test":"bunx vitest run","tree":"bun run scripts/tree.ts","build":"bun run scripts/build.ts","clean":"bun run scripts/clean.ts","bundle":"bun run build && npx -y @anthropic-ai/mcpb pack . dist/openfda-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/openfda-mcp-server.mcpb","format":"biome check --write","rebuild":"bun run scripts/clean.ts && bun run build","devcheck":"bun run scripts/devcheck.ts","lint:mcp":"bun run scripts/lint-mcp.ts","audit:fix":"bun audit fix","start:http":"MCP_TRANSPORT_TYPE=http bun ./dist/index.js","list-skills":"bun run scripts/list-skills.ts","mirror:init":"bun run scripts/openfda-mirror.ts init","publish-mcp":"mcp-publisher login github -token \"$(security find-generic-password -a \"$USER\" -s mcp-publisher-github-pat -w)\" && mcp-publisher publish","start:stdio":"MCP_TRANSPORT_TYPE=stdio bun ./dist/index.js","audit:refresh":"rm -f bun.lock && bun install && bun audit","format:unsafe":"biome check --write --unsafe","mirror:status":"bun run scripts/openfda-mirror.ts status","mirror:verify":"bun run scripts/openfda-mirror.ts verify","lint:packaging":"bun run scripts/lint-packaging.ts","mirror:refresh":"bun run scripts/openfda-mirror.ts refresh","release:github":"bun run scripts/release-github.ts","changelog:build":"bun run scripts/build-changelog.ts","changelog:check":"bun run scripts/build-changelog.ts --check"},"version":"0.7.9","_npmUser":{"name":"cyanheads","email":"casey@caseyjhand.com"},"homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"_integrity":"sha512-8l5eyMZHCt/mePucbOBCky/1rNhuXA29A27Xizz5WcFuM7wsJsK8Fw+KMXIrQ6IdYUmDWNTFyRDj/9ACR82H4A==","repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"_npmVersion":"10.8.3","description":"Query FDA data on drugs, food, devices, and recalls via openFDA. 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","@duckdb/node-api":"^1.5.5-r.5","@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","node-cron":"^4.6.0","tsc-alias":"^1.9.5","typescript":"^7.0.2","@types/node":"^26.6.2","@biomejs/biome":"^2.5.14","better-sqlite3":"^13.0.3","@opentelemetry/api":"^1.9.1","@vitest/coverage-istanbul":"^5.0.1","@socketsecurity/bun-security-scanner":"^1.1.2"},"peerDependencies":{"node-cron":">=4","better-sqlite3":">=11"},"peerDependenciesMeta":{"node-cron":{"optional":true},"better-sqlite3":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/openfda-mcp-server_0.7.9_1790111180648_0.7886913353017329"}}},"time":{"created":"2026-04-03T21:18:28.430Z","modified":"2026-09-22T21:06:20.933Z","0.1.6":"2026-04-03T21:18:28.679Z","0.1.7":"2026-04-04T14:28:04.772Z","0.1.8":"2026-04-04T15:55:52.902Z","0.1.9":"2026-04-21T04:35:05.396Z","0.1.10":"2026-04-24T18:02:55.558Z","0.1.11":"2026-05-08T11:04:05.484Z","0.1.12":"2026-05-08T12:14:12.245Z","0.1.13":"2026-05-16T19:05:27.976Z","0.1.14":"2026-05-23T12:27:16.796Z","0.1.15":"2026-05-29T05:25:29.890Z","0.1.16":"2026-05-30T09:12:04.485Z","0.1.17":"2026-05-31T02:56:50.086Z","0.1.18":"2026-06-02T15:28:21.824Z","0.1.19":"2026-06-04T09:12:42.184Z","0.1.20":"2026-06-05T08:08:43.077Z","0.2.0":"2026-06-09T01:09:36.804Z","0.3.0":"2026-06-09T03:22:48.337Z","0.3.1":"2026-06-12T08:45:16.225Z","0.3.2":"2026-06-20T17:32:00.264Z","0.3.3":"2026-07-03T09:04:02.284Z","0.4.0":"2026-07-03T10:02:37.819Z","0.4.1":"2026-07-11T09:29:26.310Z","0.4.2":"2026-07-11T10:07:55.375Z","0.4.3":"2026-07-26T22:24:23.153Z","0.5.0":"2026-07-26T23:28:14.660Z","0.6.0":"2026-07-27T00:32:47.015Z","0.7.0":"2026-07-27T07:22:58.623Z","0.7.1":"2026-07-27T07:47:06.786Z","0.7.2":"2026-08-07T08:17:10.268Z","0.7.3":"2026-08-07T09:46:26.925Z","0.7.4":"2026-08-25T08:13:31.515Z","0.7.5":"2026-09-16T11:01:19.109Z","0.7.6":"2026-09-22T05:34:05.956Z","0.7.7":"2026-09-22T19:12:23.120Z","0.7.8":"2026-09-22T20:21:10.120Z","0.7.9":"2026-09-22T21:06:20.755Z"},"bugs":{"url":"https://github.com/cyanheads/openfda-mcp-server/issues"},"author":"Casey Hand <casey@caseyjhand.com> (https://caseyjhand.com)","license":"Apache-2.0","homepage":"https://github.com/cyanheads/openfda-mcp-server#readme","keywords":["mcp","mcp-server","model-context-protocol","openfda","fda","drug-safety","adverse-events","typescript","bun","stdio","streamable-http"],"repository":{"url":"git+https://github.com/cyanheads/openfda-mcp-server.git","type":"git"},"description":"Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.","maintainers":[{"name":"cyanheads","email":"casey@caseyjhand.com"}],"readme":"<div align=\"center\">\n  <h1>@cyanheads/openfda-mcp-server</h1>\n  <p><b>Query FDA data on drugs, food, devices, and recalls via openFDA. STDIO or Streamable HTTP.</b>\n  <div>14 Tools</div>\n  </p>\n</div>\n\n<div align=\"center\">\n\n[![npm](https://img.shields.io/npm/v/@cyanheads/openfda-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/openfda-mcp-server) [![Version](https://img.shields.io/badge/Version-0.7.9-blue.svg?style=flat-square)](./CHANGELOG.md) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)\n\n</div>\n\n<div align=\"center\">\n\n[![Install in Claude Desktop](https://img.shields.io/badge/Install_in-Claude_Desktop-D97757?style=for-the-badge&logo=anthropic&logoColor=white)](https://github.com/cyanheads/openfda-mcp-server/releases/latest/download/openfda-mcp-server.mcpb) [![Install in Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](https://cursor.com/en/install-mcp?name=openfda-mcp-server&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBjeWFuaGVhZHMvb3BlbmZkYS1tY3Atc2VydmVyIl0sImVudiI6eyJPUEVORkRBX0FQSV9LRVkiOiJ5b3VyLWFwaS1rZXkifX0=) [![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%22openfda-mcp-server%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40cyanheads/openfda-mcp-server%22%5D%2C%22env%22%3A%7B%22OPENFDA_API_KEY%22%3A%22your-api-key%22%7D%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://openfda.caseyjhand.com/mcp](https://openfda.caseyjhand.com/mcp)\n\n</div>\n\n---\n\n## Overview\n\nFDA data on drugs, food, devices, and recalls from the openFDA public API. Search adverse events, recalls, drug approvals, and device clearances; look up NDC codes and drug labels; aggregate field counts across any endpoint. 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| `openfda_drug_profile` | One drug name → consolidated FDA profile: identity, label, adverse events, recalls, approval, shortage |\n| `openfda_search_adverse_events` | Search adverse event reports across drugs, food, and devices |\n| `openfda_search_animal_events` | Search adverse event reports for veterinary drugs and devices |\n| `openfda_search_drug_shortages` | Search FDA drug shortage records — status, availability, therapeutic category, manufacturer |\n| `openfda_search_tobacco_reports` | Search problem reports for tobacco products, e-cigarettes, and vaping devices |\n| `openfda_search_recalls` | Search enforcement reports and recall actions across drugs, food, and devices |\n| `openfda_count_values` | Aggregate and tally unique values for any field across any openFDA endpoint |\n| `openfda_describe_fields` | Return searchable field paths for an openFDA endpoint, grouped by category |\n| `openfda_get_drug_label` | Look up FDA drug labeling (package inserts / SPL documents) |\n| `openfda_search_drug_approvals` | Search the Drugs@FDA database for NDA/ANDA application approvals |\n| `openfda_search_device_clearances` | Search FDA device premarket notifications — 510(k) clearances and PMA approvals |\n| `openfda_lookup_ndc` | Look up drugs in the NDC (National Drug Code) Directory |\n| `openfda_dataframe_query` | Run read-only SQL over a result set staged on a DataCanvas (opt-in) |\n| `openfda_dataframe_describe` | List tables and column schemas staged on a DataCanvas (opt-in) |\n\n## Capability reference\n\n### `openfda_drug_profile` <sub>tool</sub>\n\n- Resolves a brand or generic drug name to canonical FDA identifiers (generic name, NDC, RxCUI, SPL set ID) once, then keys every sub-query off that identity — avoids the identifier drift that breaks naive tool chaining\n- Fans out in parallel across `drug/label`, `drug/event`, `drug/enforcement`, `drug/drugsfda`, and `drug/shortages`; each section (`label`, `adverse_events`, `recalls`, `approval`, `shortage`) is best-effort and returns `null` on a miss rather than failing the call\n- A single-drug query resolves only to a single-ingredient product, never a combination\n- `degraded[]` names any section whose sub-query failed upstream (rate limit, 5xx, query error) — a section listed there is unknown, not confirmed absent\n- Auth, configuration, and cancellation failures abort the whole call rather than degrading silently\n- Accepts `drug_name` or `name` in place of `drug`\n\n---\n\n### `openfda_search_adverse_events` <sub>tool</sub>\n\n- `category` selects `drug`, `food`, or `device` — each returns a different field schema\n- `limit` up to 1000 and `skip` up to openFDA's 25000-record ceiling (past it: typed `pagination_limit_reached`); the page is also bounded by a shared ~24 KB serialized-byte budget — `drug/event` reports run tens of KB each against a few hundred bytes for `food/event`, so an oversized page returns fewer records than requested and reports the cut via `page_omitted`\n- Sortable date field is category-specific (`receivedate` for drug, `date_created` for food, `date_received` for device) — a field from another category causes a query error\n- Optional `stage: true` (or `canvas_id`) drains the matched set onto a DataCanvas table for SQL via `openfda_dataframe_query`\n\n---\n\n### `openfda_search_animal_events` <sub>tool</sub>\n\n- Covers FDA Center for Veterinary Medicine reports — animal species/breed/age/weight, drug, VeDDRA reaction terms, outcome\n- `limit` up to 1000, bounded by the shared ~24 KB page-byte budget (`page_omitted` reports any cut); `skip` capped at 25000\n- Optional `stage: true` (or `canvas_id`) stages the matched set for SQL via `openfda_dataframe_query`\n- Filter examples: `animal.species`, `drug.brand_name`, `reaction.veddra_term_name`, `serious_ae`\n\n---\n\n### `openfda_search_drug_shortages` <sub>tool</sub>\n\n- Filter by `status` (`Current`/`Resolved`), `therapeutic_category`, `generic_name`, or `company_name`\n- Each record's `openfda` block carries `brand_name`, `product_ndc`, and `rxcui` for chaining into `openfda_get_drug_label` or `openfda_lookup_ndc`\n- `limit` up to 1000, bounded by the shared ~24 KB page-byte budget; `skip` capped at 25000\n- Optional `stage: true` (or `canvas_id`) for DataCanvas SQL via `openfda_dataframe_query`\n\n---\n\n### `openfda_search_tobacco_reports` <sub>tool</sub>\n\n- Filter by `tobacco_products`, `reported_health_problems`, `reported_product_problems`, or `nonuser_affected`\n- Each report carries `number_tobacco_products` / `number_health_problems` / `number_product_problems` counts alongside the arrays\n- `limit` up to 1000, bounded by the shared ~24 KB page-byte budget; `skip` capped at 25000\n- Optional `stage: true` (or `canvas_id`) for DataCanvas SQL via `openfda_dataframe_query`\n\n---\n\n### `openfda_search_recalls` <sub>tool</sub>\n\n- `category` (`drug`/`food`/`device`) plus `endpoint` — `enforcement` covers all categories, `recall` is device-only and rejects a non-device category as a typed `recall_endpoint_non_device` error\n- Filter by `classification` (Class I/II/III), `recalling_firm`, `reason_for_recall`, `status`\n- Device recall records carry their own identity and status (`product_res_number`, `recall_status`) and no hazard classification; the text output renders each record with its endpoint's fields\n- `limit` up to 1000, bounded by the shared ~24 KB page-byte budget — a device record runs several KB against roughly one for drug/food\n- Optional `stage: true` (or `canvas_id`) for DataCanvas SQL via `openfda_dataframe_query`\n\n---\n\n### `openfda_count_values` <sub>tool</sub>\n\n- Works across all 20 openFDA endpoints (drug, food, device, animal/veterinary, tobacco, other) — the same set `openfda_describe_fields` covers\n- `count` takes a dotted field path — `openfda_describe_fields` lists the verified expression for each field (`countAs`); outside the catalog, append `.exact` on analyzed text fields and count keyword identifiers (`product_ndc`, `application_number`, `pma_number`) bare\n- A field that can't be aggregated fails as `not_aggregatable`, naming the expression that does count or saying the field has none; a search whose matched records lack the field returns an empty tally with a notice\n- Optional `search` scopes the aggregation; returns up to 1000 top terms ranked by count descending\n- `truncated` is set only when more distinct terms exist past `limit` (the tool reads one term ahead); at openFDA's 1000-term count maximum no look-ahead is possible, so a full list carries a notice that more may exist instead\n- Pairs with the search/label/recall tools when sample records help interpret an aggregate\n- Runs against the live API even when the local bulk mirror is enabled — a partial mirror can't produce complete aggregates\n\n---\n\n### `openfda_describe_fields` <sub>tool</sub>\n\n- Covers all 20 cataloged openFDA endpoints — the same set `openfda_count_values` accepts\n- Returns field paths grouped by category, each with type, a one-line description, and `countAs` — the live-verified `openfda_count_values` expression (bare or `.exact`), or `null` when the field can't be aggregated — plus `queryTips` covering quoting, AND/OR, `.exact`, and date-range syntax\n- Call before constructing a `search` query — field paths differ per endpoint and aren't derivable from a tool's own schema\n\n---\n\n### `openfda_get_drug_label` <sub>tool</sub>\n\n- `search` targets label fields (`openfda.brand_name`, `openfda.generic_name`, `openfda.manufacturer_name`, or `set_id` for a specific SPL revision); default `limit` 5, up to 1000\n- A page over the ~24 KB inline budget returns `kind: \"outline\"` — section names and their serialized size, largest first — instead of label text; re-call with `sections: [...]` for the ones needed\n- Outline sizes are summed across the whole page, so cost scales with `limit`; a `sections` selection is always returned whole even when it overflows the budget, with its size disclosed\n- `sections` narrows each record to the requested keys plus identity metadata (`openfda`, `set_id`, `id`, `effective_time`, `version`)\n- `*_table` sections render as Markdown tables in the text output (caption, spans, footnotes, and footer rows preserved); structured results keep the raw SPL table markup\n- `skip` capped at openFDA's 25000-record pagination ceiling\n\n---\n\n### `openfda_search_drug_approvals` <sub>tool</sub>\n\n- Filter by brand/generic name (`openfda.brand_name`), `sponsor_name` (stored uppercase — a lowercase quoted value matches nothing), or `submissions.submission_type` / `submissions.review_priority`\n- Each record carries the application's full submission history, so `limit` up to 1000 is bounded by the shared ~24 KB page-byte budget — a long-running application is an order of magnitude larger than a recent one\n- `page_omitted` reports any cut with the routes to the rest; `skip` capped at 25000\n- Optional `stage: true` (or `canvas_id`) for DataCanvas SQL via `openfda_dataframe_query`\n\n---\n\n### `openfda_search_device_clearances` <sub>tool</sub>\n\n- `pathway` selects `510k` (174K+ records, most common) or `pma` (higher-risk devices) — one pathway per call\n- Filter by `applicant`, `product_code`, `advisory_committee_description`, or `openfda.device_name`\n- `limit` up to 1000, bounded by the shared ~24 KB page-byte budget — a 510(k) record carries a summary narrative and runs several times the size of a PMA record\n- Optional `stage: true` (or `canvas_id`) for DataCanvas SQL via `openfda_dataframe_query`\n\n---\n\n### `openfda_lookup_ndc` <sub>tool</sub>\n\n- Search by `product_ndc`, `brand_name`, `generic_name`, `openfda.manufacturer_name`, or `active_ingredients.name`\n- Pair with `openfda_get_drug_label` via the returned `brand_name` or `set_id` to read the package insert\n- `limit` up to 1000, bounded by the shared ~24 KB page-byte budget — a product with many packaging configurations is several times the size of one with a single package\n- Optional `stage: true` (or `canvas_id`) for DataCanvas SQL via `openfda_dataframe_query`; `skip` capped at 25000\n\n---\n\n### `openfda_dataframe_query` <sub>tool</sub>\n\n- Runs a single read-only `SELECT` against a table staged by a search tool's `stage: true` — DDL, DML, COPY, and file-reading functions are rejected\n- Scalar fields are stored as text (`CAST` for numeric math); nested openFDA objects/arrays are JSON columns, queryable with DuckDB JSON functions\n- Results are capped at the canvas row limit; `truncated: true` means page the rest with `ORDER BY` plus `LIMIT`/`OFFSET`\n- Requires `CANVAS_PROVIDER_TYPE=duckdb` and the optional `@duckdb/node-api` dependency — errors `canvas_disabled` otherwise\n\n---\n\n### `openfda_dataframe_describe` <sub>tool</sub>\n\n- Lists every table on a canvas by `canvas_id` — name, kind (table/view), full staged row count (not the inline preview count), and column name/DuckDB-type/nullable for each\n- Nested openFDA objects/arrays are stored as JSON columns — query them with DuckDB JSON functions\n- Call before `openfda_dataframe_query` to get exact table and column names\n- Errors `canvas_disabled` when `CANVAS_PROVIDER_TYPE` is unset, `canvas_not_found` when the `canvas_id` has expired or never existed\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\nopenFDA-specific:\n\n- Generic API client for all 20 openFDA endpoints with retry (exponential backoff) and rate-limit awareness\n- Automatic error normalization — 404 returns empty results, 429/5xx retries, 400 surfaces an actionable message\n- Optional API key — works without one (1K requests/day), increases to 120K/day with a free key\n- Optional DataCanvas staging (`CANVAS_PROVIDER_TYPE=duckdb`, per call with `stage: true`) — stage large result sets as DuckDB tables, list their columns with `openfda_dataframe_describe`, and run SQL via `openfda_dataframe_query`\n- Optional local bulk mirror (`OPENFDA_MIRROR_ENABLED=true`) — a self-refreshing SQLite copy of four drug datasets that answers exact-key lookups without spending API budget, with live fallback\n\nAgent-friendly output:\n\n- Byte-budget disclosure — oversized pages are bounded by a shared ~24 KB serialized budget and disclosed via `page_omitted`/`page_bytes` on both `content[]` and `structuredContent`, never silently truncated and never emptied to zero records\n- Typed failure contracts — `errors[]` declarations key `ctx.fail` by reason (`rate_limited`, `query_error`, `pagination_limit_reached`, `canvas_disabled`, ...) so callers can branch on `error.data.reason` instead of parsing messages\n- Best-effort degradation — `openfda_drug_profile` returns `null` per section on a miss rather than failing the whole call, and names which sections failed upstream (vs. genuinely absent) in `degraded[]`\n- Empty-result guidance — a no-match search returns a notice pointing at `openfda_describe_fields` and broader query terms rather than a bare empty array; a page requested past the end of its results reports the real match count and says the offset overshot\n\n## Getting started\n\n### Public Hosted Instance\n\nA public instance is available at `https://openfda.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:\n\n```json\n{\n  \"mcpServers\": {\n    \"openfda-mcp-server\": {\n      \"type\": \"streamable-http\",\n      \"url\": \"https://openfda.caseyjhand.com/mcp\"\n    }\n  }\n}\n```\n\n### Self-Hosted / Local\n\nAdd the following to your MCP client configuration file:\n\n```json\n{\n  \"mcpServers\": {\n    \"openfda-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"bunx\",\n      \"args\": [\"@cyanheads/openfda-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\",\n        \"OPENFDA_API_KEY\": \"your-key-here\"\n      }\n    }\n  }\n}\n```\n\nOr with npx (no Bun required):\n\n```json\n{\n  \"mcpServers\": {\n    \"openfda-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@cyanheads/openfda-mcp-server@latest\"],\n      \"env\": {\n        \"MCP_TRANSPORT_TYPE\": \"stdio\",\n        \"MCP_LOG_LEVEL\": \"info\",\n        \"OPENFDA_API_KEY\": \"your-key-here\"\n      }\n    }\n  }\n}\n```\n\nOr with Docker:\n\n```json\n{\n  \"mcpServers\": {\n    \"openfda-mcp-server\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"-e\", \"MCP_TRANSPORT_TYPE=stdio\", \"ghcr.io/cyanheads/openfda-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.3.0](https://bun.sh/) or higher.\n- Optional: [openFDA API key](https://open.fda.gov/apis/authentication/) for higher rate limits (120K requests/day vs 1K/day).\n\n### Installation\n\n1. **Clone the repository:**\n\n```sh\ngit clone https://github.com/cyanheads/openfda-mcp-server.git\n```\n\n2. **Navigate into the directory:**\n\n```sh\ncd openfda-mcp-server\n```\n\n3. **Install dependencies:**\n\n```sh\nbun install\n```\n\n## Configuration\n\nAll configuration is validated at startup via Zod schemas in `src/config/server-config.ts`. Key environment variables:\n\n| Variable | Description | Default |\n|:---|:---|:---|\n| `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http` | `stdio` |\n| `MCP_HTTP_PORT` | HTTP server port | `3010` |\n| `MCP_SESSION_MODE` | HTTP session handling: `stateless`, `stateful`, or `auto`. No tool asks the caller for input mid-call, so no session store is needed. | `stateless` |\n| `MCP_AUTH_MODE` | Authentication: `none`, `jwt`, or `oauth` | `none` |\n| `MCP_LOG_LEVEL` | Log level (`debug`, `info`, `warning`, `error`, etc.) | `info` |\n| `LOGS_DIR` | Directory for log files (Node.js only). | `<project-root>/logs` |\n| `STORAGE_PROVIDER_TYPE` | Storage backend: `in-memory`, `filesystem`, `supabase`, `cloudflare-kv/r2/d1` | `in-memory` |\n| `OPENFDA_API_KEY` | Free API key from [open.fda.gov](https://open.fda.gov/apis/authentication/). Increases daily limit from 1K to 120K requests. | none |\n| `OPENFDA_BASE_URL` | Base URL override for testing against a proxy or mock. | `https://api.fda.gov` |\n| `OPENFDA_MIRROR_ENABLED` | Answer exact-key lookups from a local copy of the openFDA bulk downloads instead of the API. See [Local bulk mirror](#local-bulk-mirror). | `false` |\n| `OPENFDA_MIRROR_PATH` | Directory holding one SQLite file per mirrored dataset. | `./data/openfda-mirror` |\n| `OPENFDA_MIRROR_REFRESH_CRON` | Cron expression for the in-process mirror refresh (HTTP transport only). Unset means no scheduled refresh. | none |\n| `OPENFDA_MIRROR_FALLBACK_LIVE` | Fall back to the live API when the mirror is cold, missing the record, or failing. | `true` |\n| `OPENFDA_MIRROR_REFRESH_TIMEOUT_MS` | Wall-clock budget for one refresh before it is aborted. | `21600000` (6h) |\n| `OPENFDA_MIRROR_BASE_URL` | Host serving the bulk download manifest (`download.json`). | `https://api.fda.gov` |\n| `CANVAS_PROVIDER_TYPE` | Set to `duckdb` to enable DataCanvas staging — analytical SQL over result sets staged with `stage: true` and queried via `openfda_dataframe_query`. Requires the optional `@duckdb/node-api` dependency. | `none` (disabled) |\n| `OTEL_ENABLED` | Enable OpenTelemetry | `false` |\n\nSee [`.env.example`](./.env.example) for the full list of optional overrides.\n\n### Local bulk mirror\n\nopenFDA publishes whole-dataset JSON dumps alongside the API. With `OPENFDA_MIRROR_ENABLED=true` the server keeps a local SQLite copy of four of them — `drug/label`, `drug/ndc`, `drug/enforcement`, `drug/drugsfda` — and answers eligible lookups from it, leaving the API budget for everything else.\n\nThe mirror is deliberately narrow. openFDA's `search` runs server-side in Elasticsearch, which tokenises and ranks; a local corpus cannot reproduce that. A query is answered locally only when all of the following hold, and is sent to the API otherwise:\n\n- the search is a single quoted `field:\"value\"` term — no boolean operators, wildcards, or ranges;\n- the field is one of `id`, `set_id`, `product_id`, `product_ndc`, `recall_number`, `event_id`, `application_number`, and the value is a whole identifier in its canonical spelling and case;\n- there is no `count` and no `sort`, and `skip` is 0;\n- the value matches exactly one record.\n\nThe last condition is what keeps a mirrored answer identical to the API's rather than merely equivalent. Four of the seven lookup fields are primary keys and always match one record. The other three — `set_id`, `product_ndc`, `event_id` — can address several, and openFDA returns those in relevance order, which a local corpus cannot recompute; such a lookup routes to the API whatever the requested page size.\n\n`openfda_count_values` therefore always runs against the API — a partial mirror would return plausible but incomplete aggregates.\n\nThe initial harvest runs out-of-band, never at startup:\n\n```sh\nbun run mirror:init                  # all four datasets\nbun run mirror:init drug/enforcement # one dataset (~3.8 MB compressed)\nbun run mirror:status                # sync state per dataset\nbun run mirror:verify                # integrity check + row counts\nbun run mirror:refresh               # re-harvest datasets whose dump has advanced\n```\n\nopenFDA publishes no incremental API for these endpoints, so a refresh re-reads the whole dump and tombstones records the new export no longer carries. It is idempotent and resumable — re-running after an interrupt continues from the persisted cursor. Set `OPENFDA_MIRROR_REFRESH_CRON` to run it in-process on the HTTP transport; on stdio, run `bun run mirror:refresh` from the host.\n\n`meta.lastUpdated` on a mirrored response reports the `last_updated` stamp of the dump being served, which can differ from the live API's — the API index and the published dumps advance on separate schedules.\n\nOn Node, install the optional `better-sqlite3` peer dependency; Bun uses its built-in `bun:sqlite`. `OPENFDA_MIRROR_REFRESH_CRON` additionally needs the optional `node-cron` peer dependency — without it the server refuses to start rather than run with a schedule it cannot honour.\n\n## Running the server\n\n### Local development\n\n- **Build and run the production version:**\n\n  ```sh\n  # One-time build\n  bun run rebuild\n\n  # Run the built server\n  bun run start:http\n  # or\n  bun run start:stdio\n  ```\n\n- **Run checks and tests:**\n\n  ```sh\n  bun run devcheck  # Lints, formats, type-checks, and more\n  bun run test      # Runs the test suite\n  ```\n\n### Docker\n\n```sh\ndocker build -t openfda-mcp-server .\ndocker run --rm -p 3010:3010 openfda-mcp-server\n```\n\nThe Dockerfile defaults to HTTP transport, stateless session mode, and logs to `/var/log/openfda-mcp-server`. OpenTelemetry peer dependencies are installed by default — build with `--build-arg OTEL_ENABLED=false` to omit them. Mount a volume over `/usr/src/app/data/openfda-mirror` to persist an `OPENFDA_MIRROR_ENABLED=true` harvest across container replacement.\n\n## Project structure\n\n| Directory | Purpose |\n|:---|:---|\n| `src/index.ts` | Entry point — `createApp()` with tool registration and service setup. |\n| `src/config/` | Server-specific env var parsing and validation with Zod. |\n| `src/services/openfda/` | openFDA API client with retry, rate-limit handling, and error normalization. |\n| `src/services/openfda/mirror/` | Opt-in local bulk mirror — dataset registry, dump reader, sync ingester, and the query gate that decides mirror vs live. |\n| `src/services/canvas/` | DataCanvas accessor — resolves the active canvas provider for staging and SQL. |\n| `src/mcp-server/tools/definitions/` | Tool definitions (`*.tool.ts`). Fourteen openFDA tools. |\n| `tests/` | Unit and integration tests mirroring `src/`. |\n\n## Development guide\n\nSee [`CLAUDE.md`](./CLAUDE.md) for development guidelines and architectural rules. The short version:\n\n- Handlers throw, framework catches — no `try/catch` in tool logic\n- Use `ctx.log` for request-scoped logging\n- Register new tools in `src/mcp-server/tools/definitions/index.ts`\n- Validate raw upstream data → normalize to the output schema → never fabricate a field openFDA didn't return\n\n## Data attribution\n\nData is served from [openFDA](https://open.fda.gov), a U.S. Food and Drug Administration service. Under the [openFDA license](https://open.fda.gov/license/) the data is dedicated to the public domain under CC0 1.0, with one exception: GMDN® device-classification content — Term Code, Term Name, and Term Definition — is licensed from The GMDN Agency, and redistributing it or using it to train AI requires a separate licence from the Agency.\n\nThe local mirror therefore covers drug datasets only. `device/classification` and every other device endpoint are excluded from it, and the ingester rejects any record carrying a GMDN-bearing field rather than writing it to disk. Extending the mirror to device data requires clearing that licence first.\n\nFDA does not endorse this project. Do not rely on openFDA to make decisions regarding medical care.\n\n## Contributing\n\nIssues are welcome. Run checks and tests before submitting:\n\n```sh\nbun run devcheck\nbun run test\n```\n\n## License\n\nThis project is licensed under the Apache 2.0 License. See the [LICENSE](./LICENSE) file for details.\n","readmeFilename":"README.md"}