{"_id":"strava-mcp-unofficial","_rev":"24-380593c9d1526d6dc7d7c80f97d51eb8","name":"strava-mcp-unofficial","dist-tags":{"latest":"0.6.4"},"versions":{"0.1.0":{"name":"strava-mcp-unofficial","version":"0.1.0","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.1.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://stravamcp.vercel.app/","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"956d86e11c094a2df9c2803de2a276d5edb30f4e","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.1.0.tgz","fileCount":94,"integrity":"sha512-mxt3chGo1mNFDV+skuhs3rl6u6MHgLu6SMW03anrMPqMdvQQUCeAfIvvq9JbFp3qnOb/4MvM1mein2CI2x0GDw==","signatures":[{"sig":"MEUCIF/aPxeDRZ+obQ97s5O/3ss2cNkuHKPoWh2wZD0FXOSGAiEA5kfcRFzMYSO/d5XB9kjFhUa16LT+tdJxNSQWjnZEPpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":381341},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"mcpName":"io.github.davidmosiah/strava-mcp","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","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:privacy-cache":"node scripts/privacy-cache-test.mjs"},"_npmUser":{"name":"davidbatista","email":"mosiahdavid@gmail.com"},"repository":{"url":"git+https://github.com/davidmosiah/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance 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/strava-mcp-unofficial_0.1.0_1777640142041_0.11921046917213052","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"strava-mcp-unofficial","version":"0.1.1","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.1.1","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://stravamcp.vercel.app/","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"354f3f31100bc9dd992216192128876760055f8a","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.1.1.tgz","fileCount":94,"integrity":"sha512-f5GVtNsUmRPfZ9ZhiPgfDfwEvqq1gz0nxNjR2wxACsRIjgFvGpeu8IlDOXJNAMydUxe6MjaGf4cpjWaxFN7fSQ==","signatures":[{"sig":"MEUCIQD3DNoNODxyLok71jn+Bv3ozkeOm9O/FLYvT22dv1wGTwIgav3fzr1MCEK/bowhSYP+6TAE9D+sLa/Yhz7+Bd9Up8M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":393864},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"feca93d4c3bfa6ea061fc3e3c4906a7a9243a8ee","mcpName":"io.github.davidmosiah/strava-mcp","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","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: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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance 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/strava-mcp-unofficial_0.1.1_1777642414021_0.465560771208098","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"strava-mcp-unofficial","version":"0.1.2","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.1.2","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://stravamcp.vercel.app/","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"02a0da5fb9355c9768959d66b93423231f567f24","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.1.2.tgz","fileCount":98,"integrity":"sha512-+y53Takysti67dydar9c4KI7v/i2tR1EnkNg4DDx+DtPz4L1VhZ9o5mUUpFsptZJ5dkvlXwEO5758LqzAdOAzw==","signatures":[{"sig":"MEUCIQCCnsLrC7ay72CibbdiRbwjUcx9bJkse2mOlgfSlETu4AIgRthpw60Z4GQAUIsvs19uwZeG2k1nvPPyzRZrEtaLZf0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":454740},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c4867e9e81aefc96d2c08f6a0434c023a0cdcc6d","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance 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/strava-mcp-unofficial_0.1.2_1777643963588_0.985703628216871","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"strava-mcp-unofficial","version":"0.2.0","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.2.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://stravamcp.vercel.app/","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"60a09bf5fce501d5aa8c776422ea3b8c09fe7f49","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.2.0.tgz","fileCount":98,"integrity":"sha512-YjVuQlHMNg2U6UUy0YKRVn3F05iyHBTIbaIa15xywiDrREmNKnOHaF+du1w1VRQNu1ndIZ1M/y9e7Jv+C6kTRg==","signatures":[{"sig":"MEUCIQCEfrFLtyh1vgeE3cDx74ZHUyhkSyc7L9VvhzR2R7RHygIgSnt61km5NnzFXP+rJmnN9acLAnQF1QS7vOrll3olbzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":462362},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c12eba7dcf6b0c15008e464b25e0ad6a33108c24","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.2.0_1777926399697_0.2344381574883998","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"strava-mcp-unofficial","version":"0.2.1","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.2.1","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"658ebc0c0e3ea70b17734c1e019df0d37a3d7393","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.2.1.tgz","fileCount":105,"integrity":"sha512-OnTyNMOiUNhdqUKvBcxH8Bf3zxgMTq/s1HHcKOQipcuWC8r4hbRbpkPVhIFG9XU1VQ++ARVirSCel2R2OWg5rw==","signatures":[{"sig":"MEUCIQCtfS4k6G4vufDGtCSr5QOioGvKeAg7hylWkMHLfOfOEwIgaeB4GvlTcZ8fYuH/xdL4urc9rddUhXFMP0H5ljSdQ0Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493009},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"d394294f0816670f109f6cb09775632813b9b702","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.2.1_1778094479289_0.211523842768927","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"strava-mcp-unofficial","version":"0.3.0","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.3.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"045b1f10fd3fd9b9ba00f12502aece44663b3400","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.3.0.tgz","fileCount":105,"integrity":"sha512-HgGTtpTqX5ydMEW0AJPPuY5X/Cai0TgJrkdep6apJRjWlitI391C5LyGnEQQLooHClUpWXOxx+HLYZ9YMu0OCg==","signatures":[{"sig":"MEUCIEPyqGJzdhAV3EG30hu+5+u6MIIaPeXrvUzABUzfoHinAiEAg8JFH9KM3i5bCAV8JkxLq/6tKzQln4BfjC5L7548ZG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":484135},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"486734c215bd375f8d98694a958ce82da4511763","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.3.0_1778489734328_0.8592308954592018","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"strava-mcp-unofficial","version":"0.4.0","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"ebc024254bb3ea9374f52dc72b48ba7598feb8af","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.0.tgz","fileCount":108,"integrity":"sha512-ylaA+Weg2IbVA5xE1CxwUpiMwQdTseV81BNnxBazXxY1trBWtNjZWk900j5dzjmLTfbD4yEszXcvMghabR6Dxw==","signatures":[{"sig":"MEUCIDVnZkRq2EMw5AwJNy2aOpyNrnrF0OSy8rLEV2O2FEEBAiEA0BCjuBje5cU4Q8TDmugA34LTwPBBc4bP0Qm0cPcaDcU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":528708},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"6df1559a73b57f31a9532d0aefeead712dbdf681","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.0_1778491649199_0.7450645941977068","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"strava-mcp-unofficial","version":"0.4.1","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.1","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"32724a92e713328eb516a6e37c452283f942cdaf","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.1.tgz","fileCount":108,"integrity":"sha512-PtFQHYOcw6h9Dbk5/7KeW0e32XjvPqv3EgcLvh5FGQOZ0jndtdcHep4FirRq+2hIlt0lBXq32ABPhPBSG3P5bg==","signatures":[{"sig":"MEUCIQCHFwblwmTuPkE7le2WVQSsOOCfMDzfGkbyzPPabwg6jQIgPDqefxNgGWNA+thgDHJW02Mi/1VFXG/360STUlQbYOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":533424},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"729ab951bda5f5c5a8335d3e3098a3da4ed17479","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.1_1778495057115_0.09579415221761467","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"strava-mcp-unofficial","version":"0.4.2","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.2","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"35d2c098e4360e750affbe47383ffd4c3a7b5315","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.2.tgz","fileCount":114,"integrity":"sha512-U9r58RHnTu7WZu6+xeSV/2YiwJpabYdo5IERxpUWh03ouqeuP3xqYzoNz3pDtofQA95BWP21sbTsmNKyqQ383A==","signatures":[{"sig":"MEQCICObcMfpqTCFZIlZEwDM5Z/xxmQ0ZrhkomVfifWQzSbPAiAa7QOlm8bkiWAdsX1hIMohMIknRG4iWmMnsDtO9cxg5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":564677},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"516aa79d3ebb98bf68d6a22261ec528399413583","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.2_1779269138868_0.7003903639384816","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"strava-mcp-unofficial","version":"0.4.3","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.3","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"c456b78f2e9a7b2fbda66302cea7c1e264c643ed","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.3.tgz","fileCount":117,"integrity":"sha512-UV5F5c67kc/lF1V+y8SfJFJSURPIgQ6ZPbzxqADvkx+uwP/0gsoSFSbT3DZIdVbUukcY0TxWZLLtoRZvbUTskQ==","signatures":[{"sig":"MEUCIQDp+Ux+ZqAUk1DCOjVcvx5UgN/8/KAkuJbqm68W/JRlygIgN5dOdlARgNj8Ecv57difqBQGaWy27QfOcmrTb19T+uI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":576480},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"36c790356ef1794690100ab6dc6288208f65f392","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.3_1779310035942_0.37983058772992573","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"strava-mcp-unofficial","version":"0.4.4","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.4","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"ee1a0829db1952c71da8edb4c1e17d0ea1f96323","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.4.tgz","fileCount":114,"integrity":"sha512-toXr/o9G59MRVuDaJXhnGK+y0sYYsyoyb/aeWvqfW2xz8RE+7uCIoCpvS66tB206wsIqeltO66E4ZMuAT8Sf3Q==","signatures":[{"sig":"MEUCIQCj7x7Z9sJLavnz3GStsUo3XscuIetAHA/Np736+ETtOwIgDt+25wcVsk/plh1kJnLFd+XrOrm0TW9E4U8M34usPU4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555516},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"68a27a44d0bcb4a395606da1017559701173b4cf","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.4_1779618150379_0.5715213474846079","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"strava-mcp-unofficial","version":"0.4.5","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.5","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"b7feeca1e661d6a5b2c87dff197ef84b70aebb76","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.5.tgz","fileCount":114,"integrity":"sha512-bzmxvHAs48QyMcG/Fe7pwReoKA2r5Zo8ErX1lw0tIYxYv4XW2YlxtFQnSWwbRlSipE3iKQMafB4nQmiFhFNlzQ==","signatures":[{"sig":"MEQCIFwC83xYgYfsd/HHyWR9qPByU4oGWr0OYFuf6HgafmydAiAWwc+1tSH2MtZwS2AGIhUjkCy8/z46mgjmyLKT3GvW/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":555513},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"25c0f4133e485b9920833ddcc0e8b0578f07daa6","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.5_1779622185183_0.816205451475466","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"strava-mcp-unofficial","version":"0.4.6","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.6","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"d562a237038daeeb49153d3e7e71ab7fe88af587","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.6.tgz","fileCount":114,"integrity":"sha512-DeKHE4OlvxtytUnMQtanqeIOgBNJJjm+mb+0D3MlRwjIySU9qpCsEzGvyuG0hyrKexkk3frOEF2Kipu/d9fFVA==","signatures":[{"sig":"MEUCIDu4BeLBTuxihr6C9+gLnfMVBcf1qwNQhEeg7rnPn3gDAiEAt1/UIQbzfq9qwG3akWQ/GW6XmQYB0C3nE3ugKNjsuFE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":557824},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"57dd35458abaf79d90f8e0c34e3ec71e69aa4eb0","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.6_1780080732894_0.93183298725684","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"strava-mcp-unofficial","version":"0.4.7","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.7","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"9456baa1b42738d406b5d1eb0a3df327672b75f9","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.7.tgz","fileCount":114,"integrity":"sha512-gYiwYGe3lPG+K0fvwKdbUWahN6y+H+e4U1r/t3TchtGDvmgQwXbrX9YnWSfdqsBP8ODhMPbGiI6D/M1daNWgAA==","signatures":[{"sig":"MEYCIQDEt7sybxIANeCd1slKG1T22CFZMgHL7HWbXdXu1W91gAIhAPaCeON9qxN0U4ouAvwO5fNvZ965ftA1YQ7AiFO13sg/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":560958},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0c0b52a0eee08e7a7bfb9f5309f612dda28a85e3","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.7_1784204677580_0.728014415064544","host":"s3://npm-registry-packages-npm-production"}},"0.4.8":{"name":"strava-mcp-unofficial","version":"0.4.8","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.8","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"a61dfa815c808050b9339c9a6f98e8b5b897ad1f","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.8.tgz","fileCount":114,"integrity":"sha512-rIkwWtCyjznxF/ZbwXnDU6dwj9Eqb+UQj58qWpvPOnaLZZJ6B4nEkiTRLGoi+Ek8qPU8/+F496oiJ3dsiuP79g==","signatures":[{"sig":"MEUCIQDT/tDIZVYQscG7ZCwQQvqxaDhMAFV/1jpdn/h+XifQzgIgBWlVjgo13g7UA1grhxCc9+2zOG4/xHXH3h3lScXSBpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":561792},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"1486228e8b7b51350ae8184940271099c2f2a330","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.8_1785416943095_0.4726549901459438","host":"s3://npm-registry-packages-npm-production"}},"0.4.9":{"name":"strava-mcp-unofficial","version":"0.4.9","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.9","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"4e28fd25e949121610ec4f2733c0b98230005e07","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.9.tgz","fileCount":114,"integrity":"sha512-FIGkgRfCxFT/2EgMYENSg0UhhCKRj45tQqSOwRiNQ8sEkrwhYieI6bLaXXVCo1vHzhW4Ds/A999HvkQ+8vJn/Q==","signatures":[{"sig":"MEQCIAZ9KuSUE+5ltziECYegvw8Svd+Cu1O4dQ8JNn9gH9fzAiAYxZmQPjZH8B2a4/2pMZm1Bos868Jdk8wXGuVKqTgOcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":562801},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"f56c7ab581e9fbdf13ab83b82707967c578c5583","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.9_1785425579648_0.8472327033465477","host":"s3://npm-registry-packages-npm-production"}},"0.4.10":{"name":"strava-mcp-unofficial","version":"0.4.10","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.10","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"d6b8ff24a501f4ffce47e9c6c74c50233035b260","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.10.tgz","fileCount":114,"integrity":"sha512-C34Vl/wzzNXl4/If37qxWembnRkEeCFf31X9FTAenphRyX0NgXZ4+5AxUMrxbmWuBp9qGOdWn+1ItB61xJztmg==","signatures":[{"sig":"MEYCIQDduTsVZd/Iocbdd/KaFljF1ZfTnK3NItcy5ePGQGm7tQIhAPC+P/F83cAdT+SKNluMlvpVYX4TgntlGleJ25Fn2wEV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":566038},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"5e04ffc1a12e24d29f5eb9c06d75758c7fa8573a","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.10_1785434028155_0.037302817119955645","host":"s3://npm-registry-packages-npm-production"}},"0.4.11":{"name":"strava-mcp-unofficial","version":"0.4.11","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.4.11","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"e3d1155d2f45a894276d7bd7cd8ef27b3ba9547e","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.4.11.tgz","fileCount":114,"integrity":"sha512-Up97dlWBs+o8d2qOmEPvgR3GAwT7eZK1mW/KWLnWtUHfr0giJ0rXlGwUsBE/bxjotBfJXhNuc2bOPVi+PNwUyg==","signatures":[{"sig":"MEQCICcontynSUXM6uLbyq6a0OGqmamirLkWF/H5QIJtSg6wAiByCM/BfvOJfEgwMt5PKkXHtifOhrvD5DXZI+KuukYAqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":566298},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c307f9bf0fa5db69bbc2a03bfebf556ca72cb856","mcpName":"io.github.davidmosiah/strava-mcp","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.4.11_1785436008620_0.5234110295662153","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"strava-mcp-unofficial","version":"0.5.0","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.5.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"a3d0cf8fe17d543c441ddec56ae1a09b51001945","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.5.0.tgz","fileCount":120,"integrity":"sha512-gqQMwpk6Ij0w35vOThrPUEGclU3rwHBcPhbgBie62MJNyRXEkX7PcMEDJf2rNQAzSoUf4AghvGrH7yO6q9BX4A==","signatures":[{"sig":"MEUCID5pl+qhHgBS5l5d2GQ7njAJQtpFB+oAyWqhsRbXiH1qAiEAoxXI5ua4wyXn0qTNhtmjSve/CZyjqAPmmH0sI1hbuPw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":589069},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"de382e8e5c8d6d80e97700e53aeba1d725f53aaa","mcpName":"io.github.davidmosiah/strava-mcp","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 && npm run test:demo-contract","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.5.0_1785583600212_0.9862572630146909","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"strava-mcp-unofficial","version":"0.6.0","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.6.0","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"14d0a2c5e0ca26223464e212f24730c18e7f73d8","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.6.0.tgz","fileCount":123,"integrity":"sha512-MSg90GyOMpKvJgKmkrEbihhvn7SGLxM0l4EHP+r5a/sORzx/84LPDl9XI1WWl0TX01bIQxQR3pn4dmVptWJ1ew==","signatures":[{"sig":"MEYCIQDN0Lh63USNhrXG51ckeWQwGHbdITpEsAbnwlPOBRdH0wIhAJFUKGV46PiBhn0NiD5tENDLfS6UezC2SSVOff03uIoo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":643041},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c412c45b61634f7ade888c45ff483189d87da6c1","mcpName":"io.github.davidmosiah/strava-mcp","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 && npm run test:activity-series && npm run test:demo-contract","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.6.0_1785946253970_0.9977952137738535","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"strava-mcp-unofficial","version":"0.6.1","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.6.1","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"7e900db7b1f1099ce38979a9b3ae1bfb77347fa3","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.6.1.tgz","fileCount":125,"integrity":"sha512-mkntojPe/iSTuICHlCUDCq6TzFpr8iASGgOqp5Y2PwEAr5vvDH34VjGzZvbfKyClREjHUhYyj+I53xLAn2V/Ew==","signatures":[{"sig":"MEYCIQCLYPRUvjbVSpZ+cwcRqG2gcXSTBLu9LgfR/FlShLc3KgIhAIik1SH+RrQVj/8oX3a0hDoBOkrLWmiqwTiXfFoXh1Rs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":643471},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0cec7493d22ceaf7c19e21d0550c13b3ee74ea7c","mcpName":"io.github.davidmosiah/strava-mcp","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 && npm run test:activity-series && npm run test:demo-contract","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.6.1_1786472474395_0.7881279617387227","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"strava-mcp-unofficial","version":"0.6.2","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.6.2","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"c6cd5853f289996ed89ae12ce4d25763af576d6f","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.6.2.tgz","fileCount":125,"integrity":"sha512-JJb/t/bfgb07dMYXfjzciu0sWUMXEz+Jvm48Hc5YnZ5uRRG+tFbqjtUX1TpuGYXoybkolOMwWTVVl3E4WFaVHQ==","signatures":[{"sig":"MEQCIBPSfcnZrOcs16lctP9iT3/4wjozAGPa6W5yjQ23rLx4AiBA3TUyI+5GVFjxxciptkRhNA9j2G83yxWdsgpYRZ5OCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":643605},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"c6f17f737f0cbecf71b34dc29d1dcca3a82cc6b4","mcpName":"io.github.davidmosiah/strava-mcp","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 && npm run test:activity-series && npm run test:demo-contract","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.6.2_1786482237235_0.3644646996520329","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"strava-mcp-unofficial","version":"0.6.3","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"author":{"name":"David Mosiah"},"license":"MIT","_id":"strava-mcp-unofficial@0.6.3","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"homepage":"https://wellness.delx.ai/connectors/strava","bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"bin":{"strava-mcp-server":"dist/index.js","strava-mcp-unofficial":"dist/index.js"},"dist":{"shasum":"d6f8d691c3dfd7b5e87ab784eac4c0c63a910108","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.6.3.tgz","fileCount":125,"integrity":"sha512-J3Ns9kYmP4mtDH8ropcaB52/N2RJ+9+n0ZUrsElFgP20nlJHj1+1rQvC2/OUCQIf//5L++Sw/6IMTecKZa+w6g==","signatures":[{"sig":"MEYCIQCbPvI8UoQF6r7sSy4ldXdiaibgsxiQ4X45u1udJ3FMWQIhAIZJpFWJqOce63Cevs6qoJiIX2wPHTg83DGwv/ipJl6s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":646010},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"91b19947ea9cbc69869b4389d71b6d7d9b7ba5be","mcpName":"io.github.davidmosiah/strava-mcp","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 && npm run test:activity-series && npm run test:demo-contract","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/strava-mcp.git","type":"git"},"_npmVersion":"10.9.2","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","directories":{},"_nodeVersion":"23.11.0","dependencies":{"zod":"^4.4.2","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/strava-mcp-unofficial_0.6.3_1787754156668_0.7100108940488896","host":"s3://npm-registry-packages-npm-production"}},"0.6.4":{"name":"strava-mcp-unofficial","version":"0.6.4","description":"Unofficial local-first Strava MCP server for AI training and performance agents.","type":"module","bin":{"strava-mcp-unofficial":"dist/index.js","strava-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: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:activity-series && npm run test:demo-contract && npm run test:skill-surface","test:endpoint-contracts":"node scripts/endpoint-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:activity-series":"node scripts/activity-series-test.mjs","test:demo-contract":"node scripts/demo-contract-test.mjs","test:skill-surface":"node scripts/test-skill-surface.mjs"},"keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","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.2"},"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/strava-mcp.git"},"bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"homepage":"https://wellness.delx.ai/connectors/strava","mcpName":"io.github.davidmosiah/strava-mcp","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":"strava-mcp-unofficial@0.6.4","gitHead":"a8fd0ee5b9587f609251d83f1ae94132a71701c5","types":"./dist/index.d.ts","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-KPc1losg7TU7/1DUbiZ1MLlTFtN2eQUiKiSr4oGPWNiEh/8ehcmTIVCjHwM3T9MZ0eggBpsKVj11Nf6RDu3Nxw==","shasum":"fa3b322ee28659166ecac0739a7f6352370e5443","tarball":"https://registry.npmjs.org/strava-mcp-unofficial/-/strava-mcp-unofficial-0.6.4.tgz","fileCount":129,"unpackedSize":651960,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCjIL4ma44fGSri8aNqwOjy6aILt6eHEdKMg7lM4ceIkgIhAMYYoXTEJJ2+44HZHauzRFLGR460/8X+FKGiQMIMkqtU"}]},"_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/strava-mcp-unofficial_0.6.4_1787999342515_0.07446575741094619"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-01T12:55:41.895Z","modified":"2026-08-29T10:29:02.780Z","0.1.0":"2026-05-01T12:55:42.212Z","0.1.1":"2026-05-01T13:33:34.316Z","0.1.2":"2026-05-01T13:59:23.829Z","0.2.0":"2026-05-04T20:26:39.843Z","0.2.1":"2026-05-06T19:07:59.478Z","0.3.0":"2026-05-11T08:55:34.495Z","0.4.0":"2026-05-11T09:27:29.450Z","0.4.1":"2026-05-11T10:24:17.300Z","0.4.2":"2026-05-20T09:25:39.093Z","0.4.3":"2026-05-20T20:47:16.190Z","0.4.4":"2026-05-24T10:22:30.558Z","0.4.5":"2026-05-24T11:29:45.336Z","0.4.6":"2026-05-29T18:52:13.111Z","0.4.7":"2026-07-16T12:24:37.763Z","0.4.8":"2026-07-30T13:09:03.278Z","0.4.9":"2026-07-30T15:32:59.893Z","0.4.10":"2026-07-30T17:53:48.351Z","0.4.11":"2026-07-30T18:26:48.789Z","0.5.0":"2026-08-01T11:26:40.395Z","0.6.0":"2026-08-05T16:10:54.125Z","0.6.1":"2026-08-11T18:21:14.558Z","0.6.2":"2026-08-11T21:03:57.425Z","0.6.3":"2026-08-26T14:22:36.862Z","0.6.4":"2026-08-29T10:29:02.651Z"},"bugs":{"url":"https://github.com/davidmosiah/strava-mcp/issues","email":"support@delx.ai"},"author":{"name":"David Mosiah"},"license":"MIT","homepage":"https://wellness.delx.ai/connectors/strava","keywords":["mcp","model-context-protocol","strava","running","cycling","fitness","training","ai-agents"],"repository":{"type":"git","url":"git+https://github.com/davidmosiah/strava-mcp.git"},"description":"Unofficial local-first Strava MCP server for AI training and performance agents.","maintainers":[{"name":"davidbatista","email":"mosiahdavid@gmail.com"}],"readme":"<!-- delx-wellness header v2 -->\n<h1 align=\"center\">Strava MCP</h1>\n\n<div align=\"center\">\n  <img src=\"assets/banner.png\" alt=\"Strava MCP — Strava MCP for AI agents\" width=\"85%\" />\n</div>\n\n<h3 align=\"center\">\n  Give your AI agent your Strava activities, streams, segments and routes &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/strava-mcp-unofficial\"><img src=\"https://img.shields.io/npm/v/strava-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/strava-mcp-unofficial\"><img src=\"https://img.shields.io/npm/dm/strava-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/strava\"><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/strava-mcp/stargazers\"><img src=\"https://img.shields.io/github/stars/davidmosiah/strava-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/Strava-FC4C02?style=for-the-badge&labelColor=0F172A&logoColor=white&logo=strava&logoColor=white\" alt=\"Strava\" /></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 strava-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: `STRAVA_MCP_HOST`, `STRAVA_MCP_PORT`, `STRAVA_MCP_TRANSPORT=http`.\n\n\n<!-- /delx-wellness header v2 -->\n\n**Local-first MCP server that connects AI agents to your Strava activities, routes, streams and training context.**\n\n> **Unofficial project.** Not affiliated with, endorsed by or supported by Strava, Inc. Strava is a trademark of its respective owner. Use this only with your own Strava account and in line with Strava's API agreement.\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 training, endurance and performance — without copy-pasting numbers from Strava.\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\nStrava holds the long memory of your training — every ride, run, swim, segment, route and stream. But it lives behind an OAuth API with strict rate limits (200 req/15min, 2k/day per app) and GPS data that's privacy-sensitive by default.\n\nThis package does the OAuth dance locally, throttles under Strava's per-app limits, redacts GPS lat/lng unless you explicitly opt in, and exposes Strava through the Model Context Protocol. Any MCP-compatible agent gets your training context with one config snippet. Tokens never leave your machine.\n\n## Quickstart\n\nFrom zero to your first agent call in about a minute. You only need a Strava app ([create one here](https://www.strava.com/settings/api)) with redirect URI `http://127.0.0.1:3000/callback`.\n\n**1. Paste your app's client id + secret** (interactive, stored at `~/.strava-mcp/config.json` with `0600`):\n\n```bash\nnpx -y strava-mcp-unofficial setup\n```\n\n**2. Authorize Strava.** `auth` opens your browser; `--no-open` prints the URL so you can paste it yourself (handy on a headless box). Tokens are saved locally — the command never prints them:\n\n```console\n$ npx -y strava-mcp-unofficial auth --no-open\nStrava MCP · Authorization\n\nOpen this URL manually:\n  https://www.strava.com/oauth/authorize?client_id=12345&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fcallback&response_type=code&approval_prompt=auto&scope=read%2Cactivity%3Aread_all%2Cprofile%3Aread_all&state=aa38f29b\n\nSteps\n  1. Approve access in the browser tab that opens.\n  2. Strava will redirect to the local callback.\n  3. Tokens are saved locally; this command never prints them.\n\nWaiting for callback...\n```\n\n**3. Verify you're ready** — `doctor` confirms scopes and setup without calling Strava:\n\n```console\n$ npx -y strava-mcp-unofficial doctor\nStrava MCP · Doctor\nStatus: READY ✓\n\nChecks\n  ✓  Node.js >=20\n  ✓  Env vars\n  ✓  Local config\n  ✓  Automatic auth redirect\n  ✓  Token file\n  ✓  Token permissions\n  ✓  Refresh token\n  ✓  OAuth scopes\n  ·  Privacy mode\n  ·  Cache\n\nNext steps\n  1. Ready. Add this MCP server to your agent and start with strava_daily_summary.\n```\n\nIf `OAuth scopes` shows a `✗`, re-run `auth` and approve `activity:read_all profile:read_all read`.\n\n**4. Make a first call — no live account required.** Ask your agent to run `strava_demo`. It returns realistic, synthetic payloads (tagged `is_demo: true`) so you can wire prompts before connecting real data:\n\n```text\n> Call strava_demo and summarize my week.\n\n# Strava Demo\n\n- **is_demo**: true\n- **recent_sessions**: 3\n- **load_classification**: moderate\n- **primary_signal**: Recent Strava load is manageable; use intent and consistency as the main lever.\n- **recommended_handoff**: exercise_catalog_recommend_session\n```\n\nCall it with `response_format: \"json\"` for the full shapes. The `sample` block mirrors `strava_daily_summary`, `strava_training_context` and `strava_list_activities` key-for-key — `npm run test:demo-contract` runs the real builders over `fixtures/strava-activities.mjs` and fails the build if the demo ever invents a field or omits one. Swap `strava_demo` for the real tool and the same shape arrives filled with your Strava data.\n\n**5. Wire it into your MCP client:**\n\n```json\n{\n  \"mcpServers\": {\n    \"strava\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"strava-mcp-unofficial\"]\n    }\n  }\n}\n```\n\nFor Claude Desktop, run `setup --client claude` and the snippet is written for you. For Hermes, see [Hermes / remote setup](#hermes--remote-setup) below.\n\n## Try it with your agent\n\nThree things to ask first:\n\n```text\nUse strava_connection_status to check setup, then run strava_daily_summary.\nTell me what my training context looks like in 5 lines.\n```\n\n```text\nCall strava_weekly_summary with response_format=json. Find my biggest\nload/intensity bottleneck and give me a next-week endurance plan.\n```\n\n```text\nUse the strava_activity_stream_investigator prompt for activity_id=<id>.\nDon't expose GPS unless I explicitly ask for it.\n```\n\n## Data availability\n\nThis package uses the official Strava API v3. When this README says `raw`, it means the upstream Strava JSON for a supported endpoint — not continuous device telemetry.\n\n| Data | Available | Notes |\n|---|:---:|---|\n| Activities (runs, rides, swims, walks, workouts) | ✓ | All recorded activities |\n| Activity details + zones + splits | ✓ | HR, power, cadence, elevation, gear |\n| Activity streams (HR / cadence / watts / altitude) | ✓ | Per-second samples for the activity |\n| GPS lat/lng streams | opt-in | Hidden by default; requires `include_gps=true` or `raw` mode |\n| Athlete profile + zones + aggregate stats | ✓ | Authenticated athlete |\n| Routes + clubs + gear | ✓ | Route geometry redacted in summary/structured modes |\n| Live device telemetry / continuous HR | — | Not exposed by Strava's public API |\n\n## Tools\n\n**Start with these:**\n\n- `strava_connection_status` — verify local setup, scopes and readiness before calling Strava\n- `strava_data_inventory` — inventory supported data domains, scopes, privacy modes and recommended first calls without calling Strava APIs.\n- `strava_daily_summary` — latest activity, weekly load and intensity context for today\n- `strava_weekly_summary` — scorecard, comparison vs prior week, next-week training plan\n\n**Auth & diagnostics**\n\n- `strava_capabilities`, `strava_agent_manifest`, `strava_privacy_audit`, `strava_cache_status`\n- `strava_get_auth_url`, `strava_exchange_code`, `strava_revoke_access`\n\n**Athlete & training**\n\n- `strava_get_athlete`, `strava_get_zones`, `strava_get_athlete_stats`\n\n**Activities & streams**\n\n- `strava_list_activities`, `strava_get_activity`, `strava_get_activity_zones`\n- `strava_activity_series`, `strava_get_activity_streams` — GPS lat/lng requires `include_gps=true` or `raw` mode\n\n**Routes & context**\n\n- `strava_list_routes`, `strava_get_route`, `strava_list_clubs`, `strava_get_gear`\n\n## Prompts\n\n- `strava_daily_training_director` — practical daily training brief\n- `strava_weekly_endurance_review` — week comparison + next-week endurance plan\n- `strava_activity_stream_investigator` — investigate one activity using streams (GPS-aware)\n\nEach accepts `timezone` (IANA, default `UTC`).\n\n## Resources\n\n- `strava://capabilities`, `strava://agent-manifest`\n- `strava://athlete`\n- `strava://latest/activity`\n- `strava://summary/daily`, `strava://summary/weekly`\n\n## Privacy & security\n\n- OAuth tokens are stored in `~/.strava-mcp/tokens.json` with `0600` permissions and are never returned by tools.\n- Write/upload scopes are **not** requested by default — read-only by design.\n- GPS lat/lng and route geometry are recursively removed in `summary` and `structured` modes, and only included with explicit `include_gps=true` for stream calls or `raw` mode.\n- Structured mode otherwise preserves complete upstream physiological records and future Strava fields.\n- Activity `after` / `before` filters retain instant semantics when converted from timezone-aware ISO date-times to Strava epoch seconds; invalid ranges fail before HTTP.\n- Route geometry is also redacted unless raw mode is explicitly requested.\n- The MCP client never sees access or refresh tokens.\n- This is **not medical advice**. The server exposes user-authorized data for personal AI workflows, not diagnosis or training prescription.\n\n## Configuration\n\n`setup` writes most of these into `~/.strava-mcp/config.json` (`0600`). Manual env override is supported:\n\n```bash\nSTRAVA_CLIENT_ID=…\nSTRAVA_CLIENT_SECRET=…\nSTRAVA_REDIRECT_URI=http://127.0.0.1:3000/callback\n\n# Optional\nSTRAVA_SCOPES=\"read activity:read_all profile:read_all\"\nSTRAVA_PRIVACY_MODE=structured        # summary | structured | raw\nSTRAVA_CACHE=sqlite                   # optional read-through cache\n```\n\n## Hermes / remote setup\n\n```bash\nnpx -y strava-mcp-unofficial setup --client hermes --no-auth\nnpx -y strava-mcp-unofficial auth                       # run locally if browser auth is needed\nnpx -y strava-mcp-unofficial doctor --client hermes\nhermes mcp test strava\n```\n\nHermes commonly exposes Strava tools with a prefix:\n\n- `mcp_strava_strava_agent_manifest`\n- `mcp_strava_strava_connection_status`\n- `mcp_strava_strava_daily_summary`\n- `mcp_strava_strava_weekly_summary`\n- `mcp_strava_strava_get_activity_streams`\n\nAfter Hermes config changes, use `/reload-mcp` or `hermes mcp test strava`. 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 `~/.strava-mcp/tokens.json` to the server with `chmod 600`. The token must include `activity:read_all profile:read_all read` for activity history and streams.\n\n## Requirements\n\n- Node.js 20+\n- A Strava app with redirect URI `http://127.0.0.1:3000/callback`\n\nWhy these scopes:\n\n- `read` — public profile, routes and public Strava resources\n- `activity:read_all` — your activities, including private activities visible to your app\n- `profile:read_all` — fuller authenticated athlete profile fields\n\nNo write scope is requested by default.\n\n## Development\n\n```bash\ngit clone https://github.com/davidmosiah/strava-mcp.git\ncd strava-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/strava-mcp-unofficial>\n- Docs site: <https://wellness.delx.ai/connectors/strava>\n- Legacy docs: <https://stravamcp.vercel.app/>\n- GitHub Pages mirror: <https://davidmosiah.github.io/strava-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- Strava API docs: <https://developers.strava.com/docs/reference/>\n- Strava auth docs: <https://developers.strava.com/docs/authentication/>\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) | [fitbitmcp](https://github.com/davidmosiah/fitbitmcp) |\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/strava-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, treatment or training prescription. Always consult qualified professionals for medical or training 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 strava-mcp-unofficial call strava_connection_status --json '{}'\n```\n\nCopy `skill/SKILL.md` into your agent skills dir.\n","readmeFilename":"README.md"}