{"_id":"fitbit-mcp-unofficial","_rev":"21-b5c11490f98dc9ff0aaee56090588df5","name":"fitbit-mcp-unofficial","dist-tags":{"latest":"0.6.3"},"versions":{"0.1.0":{"name":"fitbit-mcp-unofficial","version":"0.1.0","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.1.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://fitbitmcp.vercel.app/","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"44ce324f8fb6605c9e495701bfdbcc7e8c527913","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.1.0.tgz","fileCount":98,"integrity":"sha512-FWsbE42f/aBa5bFGlz015Sa2M3EN714V6mW/nGoxio6If/HcdlgeMmYHXZO927JtvXYlo5D9XE+YAIDyf234qQ==","signatures":[{"sig":"MEYCIQCCtv3oHYdF/UPMcMb0+GqvQg0UV8lbxiv6WcZn3zckQwIhAN5mDqJo9BQNdRvjrjWpVn69oeNofpgUSWj6ifRRe061","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":432388},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"585940b72f981e0126ee19c0f9e77f5b5f1fd4c3","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","prepublishOnly":"npm test","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^3.25.76","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^5.9.3","@types/cors":"^2.8.19","@types/node":"^22.10.2","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.1.0_1777655225477_0.7162762079444489","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"fitbit-mcp-unofficial","version":"0.2.0","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.2.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://fitbitmcp.vercel.app/","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"887bcbbc723c8c817a2063b8abef24a5ab37e954","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.2.0.tgz","fileCount":98,"integrity":"sha512-FZLeh0d92LBKThucrW1B/f8nMQDHVcpDmjrF5sPdBhhQZiM2TkFHpwopH88CR/X+XfT+Kipp09ARAwHAcFePoQ==","signatures":[{"sig":"MEYCIQDctMWekFVRTvlVRSdcebj68xfriVPPY+O7v3Dn1y/7mAIhAKZ7APu4lEdTBUoPC2xkmBKpJfByQDMMCOlyb1AWlEam","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":609444},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"629e6f00f852bf9f9a4fe6a519736934ba96255d","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","prepublishOnly":"npm test","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.2.0_1777926414682_0.18320587653957365","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"fitbit-mcp-unofficial","version":"0.2.1","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.2.1","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"97e1703d87d00e7c0a37fb09abdb98f24eb24980","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.2.1.tgz","fileCount":105,"integrity":"sha512-/T2kQL+15em+5xBzXHTDNGRCzmSmTumJt6IhlzdPxi8oYxuyYy70eo5/JxLKNcsS4CPunbfHzWo7LaQ4OJ9Wxg==","signatures":[{"sig":"MEQCIAbS2nOaRoenNYwWdI+uyh8FMJIfV8rioaCUar37N+/9AiBaw+vBFaqTFkh7LduQn0UD+fYiuIrMmc4eVBbo5IoakA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":634800},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"7301578636a397573703a09b71acd8b486f99b8f","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.2.1_1778094412351_0.3558641322521787","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"fitbit-mcp-unofficial","version":"0.3.0","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.3.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"b2beabd98360f5f2f27fea172f94a4721f49aa36","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.3.0.tgz","fileCount":105,"integrity":"sha512-crrFqwH1jPBWuUlSg8uZ4x34cgPsE7v9Cx+YbCtRvqZpY0G4y6z/K6jxs6GOI3U4YHL3xD2t0NXHkRoDjTYOBw==","signatures":[{"sig":"MEUCIQDIf5aFjQLwV1enltenpCjJuPwpFU5LULlMQTkkrm42VwIgVaL11oJZQvaXs+bDI3dKuZWy5oTp7hjEW54HtF0JidU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":649509},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"f2f5d30ddccb2a3f89cca49a4ef2bf55856e722a","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.3.0_1778489781191_0.7998094350782772","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"fitbit-mcp-unofficial","version":"0.4.0","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"1a844f8dbda92d2980f182a4293b4f97919a3b1a","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.0.tgz","fileCount":108,"integrity":"sha512-Y2utW4wmb4oG7USAqcFZHeEGCKe0XujZElfIDB5gTWkey+kXIVHpT0qqlWi0pnwWHMMw8wre0GpnlkhhYTBM1Q==","signatures":[{"sig":"MEQCICOX3QZyiOB6X3+xy97z/ePAxd2SZ6xDVg73rvvtiVmSAiARo8ze8FFO54JzBKZgoXZNrq22aDILuJrvscn1ypm33w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":693142},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"6fbb136fe5ffa0323be9a20ea9f9e4c992612c6b","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.0_1778491854281_0.021237157663834383","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"fitbit-mcp-unofficial","version":"0.4.1","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.1","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"ac1895d373bb52a7484d455038b8755cb2bc395d","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.1.tgz","fileCount":108,"integrity":"sha512-hM4XVnP1gKe/rTSZ+IWNBRI1OS7I8namVGJ5K6hWokGm3JBvvKFETVBhP8AYsVK0rLHUBqmQsoALz4QdbVXvzQ==","signatures":[{"sig":"MEYCIQC/SVWM8WtbDIhX7wKVcVG+Cd69EfO9tDZx/28JIr28RQIhAIKs+4vVy9nd1COZSD6korsiRAi0YO3U7iTyiNDyeeZ0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697858},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"11046e5aa0d3c5f5bbcdb896d0291996af0051ac","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.1_1778495117419_0.8969038960250106","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"fitbit-mcp-unofficial","version":"0.4.2","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.2","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"68d0cecb108e0597a9bb0559912a06e68ef070dc","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.2.tgz","fileCount":111,"integrity":"sha512-unZBlapWi2i9lMfzW9UoZdHQwDA1VDjrPafcN7n51CukCA/JhEcUKZIP0NgO0vdOYpKyRYW0oYcaXpG1DnmYsQ==","signatures":[{"sig":"MEUCIQDrFj9tzBn0Ll1p9TSX4RJuAik/Gj6igIXNmqCaueInRwIgLyDO3UVWQ3WbezzCrTo2AdtLIq16khU8TQ2t2S4aCAQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":705501},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ce697494013a296e7df03305cd204c6a9be01109","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.2_1779269185335_0.8178712926638392","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"fitbit-mcp-unofficial","version":"0.4.3","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.3","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"0e0c7b862d236ebf035dc60b5264293e042b2082","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.3.tgz","fileCount":114,"integrity":"sha512-P7c9etHKFSCKqxd8/+7+4RxjgGo/A6v3XVBB1VyEb0B+/xaU1q6VB88QioVx+H6Hs15TZEKRLUWSZ2bU/8e8FA==","signatures":[{"sig":"MEYCIQCig0Gp0Igg9F5mFYMnnG3tWbr5gTFRWGhV2Smp2VhRtAIhAPT6mVBAkZJAh0NCIdy2Mciq75c96aXvSsflxR4vXSYl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":718104},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"60d6fc05feda666e0d1240e6d00889521a79f9cc","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.21.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.3_1779310298431_0.5866323384595109","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"fitbit-mcp-unofficial","version":"0.4.4","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.4","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"77353d59a0907a5397193f5bffd066d61dfe7f71","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.4.tgz","fileCount":114,"integrity":"sha512-EmpKW8gKObFqQpEETUH7B1KhAJCcmXEoG9EyKaHgHKTfRllxyISqZZHIp36YPaSBnWT7fK8a4RMJ6Zm2YWSqcA==","signatures":[{"sig":"MEUCIQDNRDlEiwRI1/x9PXXTFcNyuP/vHGbQsfgCyMJjOhiRlgIgbe6TOfYO//yRMMtJVo9bjZ0jVL/ARh3SmdX2UE3LCQw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692745},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c7e51d2429823e9c9001c057193e1a78f1c0390d","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.22","fast-uri":"3.1.2","ip-address":"10.2.0"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.4_1779618114167_0.5600726694854614","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"fitbit-mcp-unofficial","version":"0.4.5","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.5","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbitmcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"eb51e715e62c81230ed376bf37c580ff330f4e6d","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.5.tgz","fileCount":114,"integrity":"sha512-AmOe+BQY2o4QMQ7OCELlWydeVW99pHYkkVjlgEHrof1OGMAVHbEqxj6am+mqogKFtcn3kosTiJtKwbLfLRSGxQ==","signatures":[{"sig":"MEYCIQCDD42crtQHGrA4SBOyeTYV1KF2ysY6Ch/wo8IH6SDtZwIhAKfV2R+nA0046uT2ivON8a+q/ziKIvEecMfEjmdnoSdM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":692742},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"df367b39830db18a6da6e45c747ebb68e6f7ad0b","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.22","fast-uri":"3.1.2","ip-address":"10.2.0"},"repository":{"url":"git+https://github.com/davidmosiah/fitbitmcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.5_1779622147112_0.4765185626888171","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"fitbit-mcp-unofficial","version":"0.4.6","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.6","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"3684821ed618cb9b8378083206415f1336ec81cd","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.6.tgz","fileCount":114,"integrity":"sha512-InZdWAU3/LsJoBkVTRPH/Dt8gQ0HqVwapkNF1DsGVyn7nUSblKR0iQ1ejniA/ZM6zHUsELHkRCdO84QP/mzjpQ==","signatures":[{"sig":"MEYCIQDv3uimQhHH1eZI6oCgx6SlCY5IwR+RuvUgg+M1RPMFYAIhAPTuu2UjGzDbbBup2So94U04ywCcknMsePG/at4OhK5P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":695566},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"47a551856ac864b6503d3a899550e5bd3766f9ab","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.2","ip-address":"10.2.0"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.6_1784204671059_0.041844010412604105","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"fitbit-mcp-unofficial","version":"0.4.7","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.7","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"1209814f4bd0429d2038158590fe7164871d9eb3","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.7.tgz","fileCount":114,"integrity":"sha512-nOVuJAlP1wVCxKGF3gdTWR1Sc655G0FYybHgrwd+dG0Bwf7Z38LDnBaP/TNZxoN864M5TGy+mHDxsv9tHnheHA==","signatures":[{"sig":"MEQCIG/eXmNlVAeWycjHQnF+rZvHRm3IdHoQCh54WfDXOgtMAiAjJq/HpEBDeqaf4f/pT8K0o8JgV3Bl542tqQoZyHRi1g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":697616},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"e9f5584134a5e74f301fad3b9928c61dd2970df1","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.4","ip-address":"10.2.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.7_1785416921915_0.02145005222421892","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"fitbit-mcp-unofficial","version":"0.4.8","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.8","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"a7b63127484c5985340569bce93567d3cc33a317","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.8.tgz","fileCount":114,"integrity":"sha512-BfRBjjecQ2nskWimTxtVy+SZhtf/CdKAeDQKWerLS8N3/mPDgm1eKmdx45ga1Fe2ikyPyu/eP8dQLsOXnMOxTw==","signatures":[{"sig":"MEUCIQDr00jaXCVjg9qjDAuHDbyLQr7uZUU93+l2rErxrB9FmgIgNKUTfwv4XZL1iC6yPZuLuWq/gMeycsUFPvTBo64RzVQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":698625},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"fd677c2088fd82ac7359f47a434db97fc432745d","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.4","ip-address":"10.2.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.8_1785425607279_0.4706904893060282","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"fitbit-mcp-unofficial","version":"0.4.9","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.9","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"9258d91b5cef642ed1483e5da001dd8ecb9d5e5e","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.9.tgz","fileCount":114,"integrity":"sha512-jScHDGYpdhxIeN9BHH3i85RgS07Dr5PMjYFJvtE9VBe/Hi+jbm/l7FEXqnjT83s6a0QloiS8WKJl3yJrbwc4HA==","signatures":[{"sig":"MEUCIBAGPZ2vWWM7ru4rL5N+26eDyBDYT30NnMPeSQLTK0xDAiEA6a++q/LDErwi1CLlC0a/HWtO623laFpTLI4BXuWymuc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700396},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"226db4763539ac54a5178de659aa12b1f919082c","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.4","ip-address":"10.2.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.9_1785430506287_0.1556913987483879","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"fitbit-mcp-unofficial","version":"0.4.10","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.10","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"3a7b807117cf020181753fc9cab98d77b49feeec","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.10.tgz","fileCount":114,"integrity":"sha512-2NR2HHpXTy3rGfRJ6/UWEefcGKP//8PZXWifdDDrw1GhxkmnQvWeaF8snnxGUQJVOnTXph9OT74nqqqaHWyS/g==","signatures":[{"sig":"MEYCIQCORGd1eLD0N1279SWUxbDnoKvDrCJNSuXYs7lfju7+2gIhALXhwaUAL85bCVvZ4L0JZAJMoBbLjO9l/gkIuhYY6UFk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703523},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"ca5c7e0f1e02b0280871fd036ed2b4330d6d78a3","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.4","ip-address":"10.2.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.10_1785434050775_0.7347936375014079","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"fitbit-mcp-unofficial","version":"0.4.11","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.4.11","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"94c052a236790ff6f72b7e274b4ed86e8ae2e6e9","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.4.11.tgz","fileCount":114,"integrity":"sha512-FX2eL9j8tz4Ic7cS3zV8H80hNqo7A5KlEGTmQjYY6cAUi2M4zAH3baozcF4jGp8HXqYYg+TFLDKCQOCe7qnnvg==","signatures":[{"sig":"MEQCIDoq+5NYw7aioLxqx2/Iu5voCN3jDDdnaA2HGnFqGjPJAiBNGrb0sDpekQibdMjZZCmfb5IARoDB8rDQ9AH2hlnXpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":703783},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"4713294bf0540c950dc7ca0727c8eb235b414d80","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.4","ip-address":"10.2.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.4.11_1785436016332_0.28939658851049144","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"fitbit-mcp-unofficial","version":"0.5.0","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.5.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"12443fd82007c3ab2567238920f8cc6e02e95144","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.5.0.tgz","fileCount":117,"integrity":"sha512-etws4CkSLFWTOdv1T1PkIhJ7twNOvDHfyBmpxyJzG+pG73T0tVmI5pH+n2JSalp4R9DEe5pwAiAu6AFFQ6y+Eg==","signatures":[{"sig":"MEYCIQD4SD2hnM9ZW64sqXsle0+qC5DpOa8EjRQMQFGg86P2pwIhALCYdjwt2ecCWXlLD0fltRbCesiSFoDTDxau7LTRGzZ2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":714300},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"1b8b6de57f4162c7547bbe8ae22b99072025ba6c","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:demo-contract && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:demo-contract":"node scripts/demo-contract-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.4","ip-address":"10.2.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.5.0_1785583618032_0.18647631265456144","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"fitbit-mcp-unofficial","version":"0.6.0","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.6.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"3e2a68254c02c203a097d9461cbb519ac856fff9","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.6.0.tgz","fileCount":120,"integrity":"sha512-cJw9eWzNeIO0Hvn6TPzWRb4xWOk/wNPV9fUCXgd8K07z7dcwXUgRfVJe8wK0gdZcn661p6embKQ4TNd4CwDeTA==","signatures":[{"sig":"MEYCIQCQ/37l+AuBq1k6tdmlkyjvUZ5C76pDAbGAv3xqFmKUSQIhAPyEX8K3CReq0JHibHPl6fl+fYcD8conYGi38/YORRXs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764120},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"06c0d3a6174ee6f720447d693072d3c1488030b4","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:activity-series && npm run test:demo-contract && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:demo-contract":"node scripts/demo-contract-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:activity-series":"node scripts/activity-series-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.4","ip-address":"10.2.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.6.0_1785949898646_0.20399349278632606","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"fitbit-mcp-unofficial","version":"0.6.1","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.6.1","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"f15fda7947a7edb5f1748ec54991c6eacd53ceb2","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.6.1.tgz","fileCount":122,"integrity":"sha512-l9r8kc1Q/JWYoZmq7SkpTOiTlyxFwBhV4MvFCcYdWknAWFdIv8PbFXx6eDAZqYLokF5waM8GzPtNkDFvEyDk7Q==","signatures":[{"sig":"MEUCIQDCYO1WzQjw4R+akqk45VOvIifxyJrA5Z14gddHcE55GAIgS/MbyRDI98y7clynaW1GKGJj+dVX+8eeBU0wNXDcbNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764543},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"78574b0719a21900a9fe4b775244a169c3cdb108","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:activity-series && npm run test:demo-contract && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:demo-contract":"node scripts/demo-contract-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:activity-series":"node scripts/activity-series-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.12.30","fast-uri":"3.1.5","ip-address":"10.4.0","body-parser":"2.3.0","@hono/node-server":"2.0.12"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.6.1_1786472617792_0.8859091622510813","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"fitbit-mcp-unofficial","version":"0.6.2","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"fitbit-mcp-unofficial@0.6.2","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/fitbit","bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"bin":{"fitbit-mcp-server":"dist/index.js","fitbit-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"d27e4fac05321218e587973300040d86258afb2c","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.6.2.tgz","fileCount":122,"integrity":"sha512-mtP2UmmhEEA26PB1Bhv2BmT48N6bYW69Zpqa8Af3EyXFeBQ4rab3KrUb6Nwopm24p11zcpeu7j+NEfEhm+oasg==","signatures":[{"sig":"MEQCIFZ8lGGJaEOW1F3fZKHQbgz1JNLpl9oTevFAwgrTY9SEAiBwp7X4xZaVCWW0Xl6sbLIx/zPQPdOPRjsZJuuFECon5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":764677},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"1b01f08e9be48ff48ae27b27afa0732e02a24e58","mcpName":"io.github.davidmosiah/fitbitmcp","scripts":{"dev":"tsx src/index.ts","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:activity-series && npm run test:demo-contract && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache","build":"tsc -p tsconfig.json","smoke":"node scripts/smoke-tools.mjs","start":"node dist/index.js","typecheck":"tsc --noEmit -p tsconfig.json","smoke:http":"node scripts/smoke-http.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","test:metadata":"node scripts/metadata-check.mjs","prepublishOnly":"npm test","test:http-cache":"node scripts/http-cache-test.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:demo-contract":"node scripts/demo-contract-test.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:activity-series":"node scripts/activity-series-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"overrides":{"qs":"6.15.2","hono":"4.13.1","fast-uri":"3.1.5","ip-address":"10.4.0","body-parser":"2.3.0","@hono/node-server":"2.1.0"},"repository":{"url":"git+https://github.com/davidmosiah/fitbit-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.1","cors":"^2.8.6","express":"^5.2.1","better-sqlite3":"^12.9.0","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.20.6","typescript":"^6.0.3","@types/cors":"^2.8.19","@types/node":"^25.6.0","@types/express":"^5.0.6","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/fitbit-mcp-unofficial_0.6.2_1786482267253_0.9085442110605957","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"fitbit-mcp-unofficial","version":"0.6.3","description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","type":"module","bin":{"fitbit-mcp-unofficial":"dist/index.js","fitbit-mcp-server":"dist/index.js"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json","start":"node dist/index.js","dev":"tsx src/index.ts","smoke":"node scripts/smoke-tools.mjs","test":"npm run typecheck && npm run build && npm run smoke && npm run smoke:http && npm run test:endpoint-contracts && npm run test:summary && npm run test:activity-series && npm run test:demo-contract && npm run test:privacy-cache && npm run test:cli-ux && npm run test:agent-readiness && npm run test:hermes-agent && npm run test:metadata && npm run test:http-retry && npm run test:http-cache && npm run test:skill-surface","test:endpoint-contracts":"node scripts/endpoint-contract-test.mjs","test:activity-series":"node scripts/activity-series-test.mjs","test:demo-contract":"node scripts/demo-contract-test.mjs","test:summary":"node scripts/summary-fixture-test.mjs","prepublishOnly":"npm test","smoke:http":"node scripts/smoke-http.mjs","test:privacy-cache":"node scripts/privacy-cache-test.mjs","test:cli-ux":"node scripts/cli-ux-test.mjs","test:agent-readiness":"node scripts/agent-readiness-test.mjs","test:hermes-agent":"node scripts/hermes-agent-manifest-test.mjs","test:metadata":"node scripts/metadata-check.mjs","test:http-retry":"node scripts/http-retry-test.mjs","test:http-cache":"node scripts/http-cache-test.mjs","test:skill-surface":"node scripts/test-skill-surface.mjs"},"keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","better-sqlite3":"^12.9.0","cors":"^2.8.6","express":"^5.2.1","zod":"^4.4.1"},"devDependencies":{"@types/better-sqlite3":"^7.6.13","@types/cors":"^2.8.19","@types/express":"^5.0.6","@types/node":"^25.6.0","tsx":"^4.20.6","typescript":"^6.0.3"},"engines":{"node":">=20"},"repository":{"type":"git","url":"git+https://github.com/davidmosiah/fitbit-mcp.git"},"bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"homepage":"https://wellness.delx.ai/connectors/fitbit","mcpName":"io.github.davidmosiah/fitbitmcp","publishConfig":{"access":"public"},"main":"dist/index.js","overrides":{"qs":"6.15.2","hono":"4.13.1","fast-uri":"3.1.5","ip-address":"10.4.0","@hono/node-server":"2.1.0","body-parser":"2.3.0"},"_id":"fitbit-mcp-unofficial@0.6.3","gitHead":"5484cbb57a0dada61a3157aa70a8a7e5637c5a68","types":"./dist/index.d.ts","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-I/vZhzw3HJUXL9lZoMQfihkxjEHeJSxH4Nl9XC6v5rxoYNzsXcaeMAAYkfIqfU1/TdxZaOCNjh/FQa0hrdzDEg==","shasum":"b9c68f94346af735575879f8095c012f9de168fe","tarball":"https://registry.npmjs.org/fitbit-mcp-unofficial/-/fitbit-mcp-unofficial-0.6.3.tgz","fileCount":126,"unpackedSize":770948,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGM+69FDqAeXMR5d06AkJiO+scib2z5HPltayDRIvA+LAiApa4YgXo2EmdWTjQHsWwjJ6Zc9efmW4kwmSUQlOFHADg=="}]},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"directories":{},"maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/fitbit-mcp-unofficial_0.6.3_1787999258323_0.03382737805745695"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-01T17:07:05.418Z","modified":"2026-08-29T10:27:38.632Z","0.1.0":"2026-05-01T17:07:05.727Z","0.2.0":"2026-05-04T20:26:54.907Z","0.2.1":"2026-05-06T19:06:52.550Z","0.3.0":"2026-05-11T08:56:21.392Z","0.4.0":"2026-05-11T09:30:54.412Z","0.4.1":"2026-05-11T10:25:17.614Z","0.4.2":"2026-05-20T09:26:25.506Z","0.4.3":"2026-05-20T20:51:38.639Z","0.4.4":"2026-05-24T10:21:54.367Z","0.4.5":"2026-05-24T11:29:07.329Z","0.4.6":"2026-07-16T12:24:31.261Z","0.4.7":"2026-07-30T13:08:42.098Z","0.4.8":"2026-07-30T15:33:27.419Z","0.4.9":"2026-07-30T16:55:06.428Z","0.4.10":"2026-07-30T17:54:10.927Z","0.4.11":"2026-07-30T18:26:56.483Z","0.5.0":"2026-08-01T11:26:58.195Z","0.6.0":"2026-08-05T17:11:38.874Z","0.6.1":"2026-08-11T18:23:37.939Z","0.6.2":"2026-08-11T21:04:27.433Z","0.6.3":"2026-08-29T10:27:38.480Z"},"bugs":{"url":"https://github.com/davidmosiah/fitbit-mcp/issues","email":"support@delx.ai"},"author":{"name":"David Mosiah"},"license":"MIT","homepage":"https://wellness.delx.ai/connectors/fitbit","keywords":["mcp","model-context-protocol","fitbit","health","sleep","heart-rate","fitness","ai-agents"],"repository":{"type":"git","url":"git+https://github.com/davidmosiah/fitbit-mcp.git"},"description":"Unofficial local-first Fitbit MCP server for AI health, sleep and activity agents.","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"readme":"<!-- delx-wellness header v2 -->\n<h1 align=\"center\">Fitbit MCP</h1>\n\n<div align=\"center\">\n  <img src=\"assets/banner.png\" alt=\"Fitbit MCP — Fitbit MCP for AI agents\" width=\"85%\" />\n</div>\n\n<h3 align=\"center\">\n  Give your AI agent your Fitbit activity, sleep, heart and HRV data &mdash; locally.<br>\n  Local-first MCP server &mdash; <strong>tokens never leave your machine</strong>.\n</h3>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/fitbit-mcp-unofficial\"><img src=\"https://img.shields.io/npm/v/fitbit-mcp-unofficial?style=for-the-badge&labelColor=0F172A&color=10B981&logo=npm&logoColor=white\" alt=\"npm version\" /></a>\n  <a href=\"https://www.npmjs.com/package/fitbit-mcp-unofficial\"><img src=\"https://img.shields.io/npm/dm/fitbit-mcp-unofficial?style=for-the-badge&labelColor=0F172A&color=0EA5A3&logo=npm&logoColor=white\" alt=\"npm downloads\" /></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/LICENSE-MIT-22C55E?style=for-the-badge&labelColor=0F172A\" alt=\"License MIT\" /></a>\n  <a href=\"https://wellness.delx.ai/connectors/fitbit\"><img src=\"https://img.shields.io/badge/SITE-wellness.delx.ai-0EA5A3?style=for-the-badge&labelColor=0F172A\" alt=\"Site\" /></a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/davidmosiah/fitbit-mcp/stargazers\"><img src=\"https://img.shields.io/github/stars/davidmosiah/fitbit-mcp?style=for-the-badge&labelColor=0F172A&color=FBBF24&logo=github\" alt=\"GitHub stars\" /></a>\n  <a href=\"https://modelcontextprotocol.io\"><img src=\"https://img.shields.io/badge/BUILT_FOR-MCP-7C3AED?style=for-the-badge&labelColor=0F172A\" alt=\"Built for MCP\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness-hermes\"><img src=\"https://img.shields.io/badge/HERMES-one--command_setup-10B981?style=for-the-badge&labelColor=0F172A\" alt=\"Hermes one-command setup\" /></a>\n  <a href=\"https://github.com/davidmosiah/delx-wellness\"><img src=\"https://img.shields.io/badge/Fitbit-00B0B9?style=for-the-badge&labelColor=0F172A&logoColor=white&logo=fitbit&logoColor=white\" alt=\"Fitbit\" /></a>\n</p>\n\n> ⚡ **One-command install** with [Delx Wellness for Hermes](https://github.com/davidmosiah/delx-wellness-hermes):\n> `npx -y delx-wellness-hermes setup` &mdash; preconfigures this connector and the other 8 in a dedicated Hermes profile.\n>\n> Or wire it standalone into Claude Desktop / Cursor / ChatGPT Desktop &mdash; see the install section below.\n\n---\n\n## HTTP (v2 stateless)\n\nDefault is **stdio**. Optional Streamable HTTP — no session id, JSON responses, loopback only:\n\n```bash\nnpx -y fitbit-mcp-unofficial --http\n# GET  http://127.0.0.1:3000/health\n# POST http://127.0.0.1:3000/mcp   (sessionless)\n```\n\nEnv: `FITBIT_MCP_HOST`, `FITBIT_MCP_PORT`, `FITBIT_MCP_TRANSPORT=http`.\n\n\n<!-- /delx-wellness header v2 -->\n\n**Local-first MCP server that connects AI agents to your Fitbit activity, sleep, heart-rate, HRV, SpO2 and weight data.**\n\n> **Unofficial project.** Not affiliated with, endorsed by or supported by Fitbit or Google. Use this only with your own Fitbit account and in line with the Fitbit Web API terms.\n\n> **Platform migration risk:** Fitbit is migrating to the Google Health API. OAuth, base URL, scopes and reconnection flows may change in 2026. Treat any breakage as platform drift and check the [Fitbit Web API docs](https://dev.fitbit.com/build/reference/web-api/) before reporting it as a bug.\n\nBuilt by [David Mosiah](https://github.com/davidmosiah) for people who use Claude, Cursor, Hermes, OpenClaw or other MCP-compatible agents to think about activity, sleep and heart context — without copy-pasting numbers from the Fitbit app.\n\nPart of [Delx Wellness](https://github.com/davidmosiah/delx-wellness), a registry of local-first wellness MCP connectors.\n\n> If this connector helps your agent workflow, please star the repo. Stars make the project easier for other AI builders to discover and help Delx keep shipping local-first wellness infrastructure.\n\n## Why this exists\n\nFitbit (now under Google) has years of wearable data — daily activity, sleep stages, intraday heart-rate, HRV, SpO2, breathing rate, weight, food and water logs. But its API uses OAuth 2.0 with per-scope authorization and intraday access that varies by app, and the platform is mid-migration to the Google Health API.\n\nThis package handles the OAuth dance locally, normalizes responses, and exposes Fitbit through the Model Context Protocol. Tokens never leave your machine. Privacy-mode defaults keep raw payloads opt-in.\n\n## Setup in 60 seconds\n\nYou'll need a Fitbit app ([create one here](https://dev.fitbit.com/apps)) with redirect URI `http://127.0.0.1:3000/callback`.\n\n```bash\nnpx -y fitbit-mcp-unofficial setup    # interactive: paste client id + secret\nnpx -y fitbit-mcp-unofficial auth     # opens browser, captures the OAuth code\nnpx -y fitbit-mcp-unofficial doctor   # verifies you're ready\n```\n\nRecommended scopes:\n\n```text\nactivity heartrate profile settings sleep weight nutrition\n```\n\nThen add this to your MCP client config:\n\n```json\n{\n  \"mcpServers\": {\n    \"fitbit\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"fitbit-mcp-unofficial\"]\n    }\n  }\n}\n```\n\nFor Claude Desktop, run `setup --client claude` and the snippet is written for you.\n\n## Try it with your agent\n\nThree things to ask first:\n\n```text\nUse fitbit_connection_status to check setup, then run fitbit_daily_summary.\nGive me a 5-line operating brief for today.\n```\n\n```text\nCall fitbit_weekly_summary with response_format=json. Identify my biggest\nsleep/activity bottleneck and give me a next-week plan.\n```\n\n```text\nUse the fitbit_intraday_investigation prompt for date=today, detail_level=1min.\nDon't claim anything Fitbit can't actually prove.\n```\n\n## Data availability\n\nThis package uses the official Fitbit Web API. When this README says `raw`, it means the upstream Fitbit JSON for a supported endpoint — not raw device sensor streams.\n\n| Data | Available | Notes |\n|---|:---:|---|\n| Daily activity (steps, calories, distance, zones) | ✓ | Standard activity summaries |\n| Activity logs | ✓ | Logged workouts |\n| Sleep + sleep stages | ✓ | When Fitbit returns stage data |\n| Resting heart rate + daily heart-rate zones | ✓ | All scored days |\n| Intraday heart-rate samples | conditional | Only when the Fitbit app/API access permits intraday |\n| HRV (overnight) | ✓ | When supported by device/account |\n| SpO2 (overnight) | ✓ | When supported by device/account |\n| Breathing rate | ✓ | When supported by device/account |\n| Weight + body composition | ✓ | When logged |\n| Food + water logs | ✓ | When logged |\n| Continuous device telemetry | — | Not exposed by Fitbit's public API |\n\n## Tools\n\n**Start with these:**\n\n- `fitbit_connection_status` — verify local setup before calling Fitbit\n- `fitbit_data_inventory` — inventory supported data domains, scopes, privacy modes and recommended first calls without calling Fitbit APIs.\n- `fitbit_daily_summary` — readiness, activity, sleep and heart context for today\n- `fitbit_weekly_summary` — scorecard, comparison vs prior week, next-week plan\n\n**Auth & diagnostics**\n\n- `fitbit_capabilities`, `fitbit_agent_manifest`, `fitbit_privacy_audit`, `fitbit_cache_status`\n- `fitbit_get_auth_url`, `fitbit_exchange_code`, `fitbit_revoke_access`\n\n**Profile & devices**\n\n- `fitbit_get_profile`, `fitbit_list_devices`\n\n**Activity**\n\n- `fitbit_get_activity_day`, `fitbit_list_activities`, `fitbit_get_activity`\n- List calls accept either `after` or `before`, matching Fitbit's mutually exclusive cursor contract. Offset ISO inputs retain their written calendar date and invalid cursors fail before HTTP.\n\n**Sleep**\n\n- `fitbit_get_sleep_day`, `fitbit_list_sleep`\n\n**Heart & physiology** (each takes a `date`)\n\n- `fitbit_get_heart_day`, `fitbit_heart_series`, `fitbit_get_heart_intraday`\n- `fitbit_get_hrv_day`, `fitbit_get_spo2_day`, `fitbit_get_breathing_rate_day`\n\n**Body & nutrition** (each takes a `date`)\n\n- `fitbit_get_weight_day`, `fitbit_get_food_day`, `fitbit_get_water_day`\n\n## Prompts\n\n- `fitbit_daily_checkin` — practical daily health and activity check-in\n- `fitbit_weekly_review` — review trends across activity, sleep and heart context\n- `fitbit_intraday_investigation` — investigate one day's intraday heart-rate samples\n\n## Resources\n\n- `fitbit://capabilities`, `fitbit://agent-manifest`\n- `fitbit://summary/daily`, `fitbit://summary/weekly`\n\n## Privacy & security\n\n- OAuth tokens are stored in `~/.fitbit-mcp/tokens.json` with `0600` permissions and are never returned by tools.\n- The server never prints access or refresh tokens.\n- `FITBIT_PRIVACY_MODE` defaults to `structured`. Raw Fitbit JSON is opt-in via `raw` mode or per-call override.\n- Structured mode preserves complete upstream physiological records and response metadata while removing GPS and secret-bearing fields.\n- Health data is sensitive — do not paste raw payloads publicly.\n- This is **not medical advice**. The server exposes user-authorized data for personal AI workflows, not diagnosis or treatment.\n\n## Configuration\n\n`setup` writes most of these into `~/.fitbit-mcp/config.json` (`0600`). Manual env override is supported:\n\n```bash\nFITBIT_CLIENT_ID=…\nFITBIT_CLIENT_SECRET=…\nFITBIT_REDIRECT_URI=http://127.0.0.1:3000/callback\n\n# Optional\nFITBIT_SCOPES=\"activity heartrate profile settings sleep weight nutrition\"\nFITBIT_PRIVACY_MODE=structured        # summary | structured | raw\nFITBIT_CACHE=sqlite                   # optional read-through cache\n```\n\n## Hermes / remote setup\n\n```bash\nnpx -y fitbit-mcp-unofficial setup --client hermes --no-auth\nnpx -y fitbit-mcp-unofficial auth                       # run locally if browser auth is needed\nnpx -y fitbit-mcp-unofficial doctor --client hermes\nhermes mcp test fitbit\n```\n\nAfter Hermes config changes, use `/reload-mcp` or `hermes mcp test fitbit`. Don't restart the gateway for normal data access.\n\nIf browser OAuth has to happen on a different machine than Hermes, run `auth` locally and copy `~/.fitbit-mcp/tokens.json` to the server with `chmod 600`.\n\n## Requirements\n\n- Node.js 20+\n- A Fitbit app at <https://dev.fitbit.com/apps> with redirect URI `http://127.0.0.1:3000/callback`\n- Intraday heart-rate access requires the Fitbit app to be approved for intraday data (varies per app)\n\n## Development\n\n```bash\ngit clone https://github.com/davidmosiah/fitbit-mcp.git\ncd fitbit-mcp\nnpm install\nnpm test\nnpm run build\n```\n\nTest with MCP Inspector:\n\n```bash\nnpx @modelcontextprotocol/inspector node dist/index.js\n```\n\n## Links\n\n- npm: <https://www.npmjs.com/package/fitbit-mcp-unofficial>\n- Docs site: <https://wellness.delx.ai/connectors/fitbit>\n- Legacy docs: <https://fitbitmcp.vercel.app/>\n- GitHub: <https://github.com/davidmosiah/fitbit-mcp>\n- Delx Wellness registry: <https://github.com/davidmosiah/delx-wellness>\n- Connector quality standard: <https://github.com/davidmosiah/delx-wellness/blob/main/docs/connector-quality-standard.md>\n- Fitbit Web API: <https://dev.fitbit.com/build/reference/web-api/>\n\n<!-- delx-wellness see-also -->\n\n## See also\n\nThe full [Delx Wellness](https://wellness.delx.ai) connector library:\n\n| Provider | Package | Repo |\n|---|---|---|\n| WHOOP | [`whoop-mcp-unofficial`](https://www.npmjs.com/package/whoop-mcp-unofficial) | [whoop-mcp](https://github.com/davidmosiah/whoop-mcp) |\n| Oura | [`oura-mcp-unofficial`](https://www.npmjs.com/package/oura-mcp-unofficial) | [ouramcp](https://github.com/davidmosiah/ouramcp) |\n| Garmin | [`garmin-mcp-unofficial`](https://www.npmjs.com/package/garmin-mcp-unofficial) | [garminmcp](https://github.com/davidmosiah/garminmcp) |\n| Strava | [`strava-mcp-unofficial`](https://www.npmjs.com/package/strava-mcp-unofficial) | [strava-mcp](https://github.com/davidmosiah/strava-mcp) |\n| Fitbit | [`fitbit-mcp-unofficial`](https://www.npmjs.com/package/fitbit-mcp-unofficial) | [fitbit-mcp](https://github.com/davidmosiah/fitbit-mcp) |\n| Withings | [`withings-mcp-unofficial`](https://www.npmjs.com/package/withings-mcp-unofficial) | [withingsmcp](https://github.com/davidmosiah/withingsmcp) |\n| Apple Health | [`apple-health-mcp-unofficial`](https://www.npmjs.com/package/apple-health-mcp-unofficial) | [apple-health-mcp](https://github.com/davidmosiah/apple-health-mcp) |\n| Polar | [`polar-mcp-unofficial`](https://www.npmjs.com/package/polar-mcp-unofficial) | [polarmcp](https://github.com/davidmosiah/polarmcp) |\n| Nourish (nutrition) | [`wellness-nourish`](https://www.npmjs.com/package/wellness-nourish) | [wellness-nourish](https://github.com/davidmosiah/wellness-nourish) |\n\n**One-command setup for Hermes** — preconfigures every connector above plus wellness skills + onboarding: [`delx-wellness-hermes`](https://github.com/davidmosiah/delx-wellness-hermes).\n\n<!-- /delx-wellness see-also -->\n\n## 📧 Contact & Support\n\n- 📨 **support@delx.ai** — general questions, integration help, partnerships\n- 🐛 **Bug reports / feature requests** — [GitHub Issues](https://github.com/davidmosiah/fitbit-mcp/issues)\n- 🐦 **Updates** — [@delx369](https://x.com/delx369) on X\n- 🌐 **Site** — [wellness.delx.ai](https://wellness.delx.ai)\n\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n\n## Disclaimer\n\nThis software is provided as-is. It is not a medical device, does not provide medical advice, and should not be used for diagnosis or treatment. Fitbit is migrating to the Google Health API; the integration boundary may change. Always consult qualified professionals for medical concerns.\n\n## Skill or MCP\n\nSame package, two doors. MCP registers tools on stdio/HTTP. The [skill](skill/SKILL.md) can drive the **same** tools through the CLI when the client has no MCP:\n\n```bash\nnpx -y fitbit-mcp-unofficial call fitbit_connection_status --json '{}'\n```\n\nCopy `skill/SKILL.md` into your agent skills dir.\n","readmeFilename":"README.md"}