{"_id":"dropbox-analytics-mcp-server","_rev":"17-f7407f1a2b0a0150806cd52eaa36dcf7","name":"dropbox-analytics-mcp-server","dist-tags":{"latest":"0.4.7"},"versions":{"0.1.0":{"name":"dropbox-analytics-mcp-server","version":"0.1.0","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.1.0","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"72066d0bf64bdc83c1b956b03a8ff5a706d60283","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.1.0.tgz","fileCount":5,"integrity":"sha512-W7dRB+tctm44Je4T/fPgl4tb1xQ/ANqapUktVkSADxhxeuiwDehK+9NsSTbB6ecPJJv8fnLPQLGabud8ULoaUg==","signatures":[{"sig":"MEQCIGvQKy3pDB7rZE5kTGFWIiFWchJcFxuqz0/sIRBDvitdAiBWoJY2gW6iCO/4S3ptn+7G6F3zNjwccS4XE6tQRq7Xqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29684},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","dropbox":"^10.34.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.1.0_1781170216726_0.7439598680673623","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"dropbox-analytics-mcp-server","version":"0.1.1","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.1.1","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"e4ee3cf91a5730e1617c248224e7d00f180d2b3e","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.1.1.tgz","fileCount":5,"integrity":"sha512-UWgThQNyMwq3HiobqNIoZCmK1LOHcMRoMNvLa/YR8uycTOPRrHw8A1HpUEUtsHqujD5lVLlweo14We39Il4r0w==","signatures":[{"sig":"MEUCIDZiKVTYTHqKUQoxGpS/LGLRhUkVknt7uuSyqCrD0YmAAiEA5a29JdkpSo5d6jR7xuDoN88PvRYsnk7SXotsFdXsO90=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30406},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","dropbox":"^10.34.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.1.1_1781268030337_0.9325123043525991","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"dropbox-analytics-mcp-server","version":"0.1.2","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.1.2","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"18aeaa1f5df023df65172554d427185135087913","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.1.2.tgz","fileCount":5,"integrity":"sha512-a16B45yPrxzWjOejfcEXWBZebKZtUkenAzrSgaE96lYBkX93PtpfpfJUqQ7Yb8QMVIZ8JcSGzGNPNGjyf1EOIQ==","signatures":[{"sig":"MEYCIQDbN4dbPb4yNG5hiKcwbmt9Nx9swTdTGm4Zs2yeYjWohwIhALlcB+Nvz1gJBceIDwnDImdlaJapy2Fda2Fa0yfGw0rK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30968},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","dropbox":"^10.34.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.1.2_1781674077040_0.2034325301276847","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"dropbox-analytics-mcp-server","version":"0.2.0","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.2.0","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"3142a231cac34152af146a0edd05255dc97f4084","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.2.0.tgz","fileCount":5,"integrity":"sha512-LUHve0SQMPYOi85IxTKh92cdJWgqCgaK58NmCSMooAm+f1Bm+woCETWOERCO6MFi5ydJPxlRLIA53sLAwMwGJA==","signatures":[{"sig":"MEYCIQC2KpePZhWsYbdXhQArAMj9okzVAYxLKGpV+hXsNW6yagIhANoQ67mBGjnYVyVnfbIZaf4SfIPXFzYQvDShZwvSFNuZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40451},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.2.0_1782208746586_0.16557125268787565","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"dropbox-analytics-mcp-server","version":"0.2.1","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.2.1","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"356fbcc667ea3b5b243023552ed46f103160cd73","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.2.1.tgz","fileCount":5,"integrity":"sha512-2JLNtrqDeA5yByIAkiOUwd9pOAmtj2y/dqamMNSI/ZZ5jz7ot0QNq4iE6U2e3Twqfbi/xsTLDVUBp/oggSiWzA==","signatures":[{"sig":"MEUCIAjeBN3LbrczhU4K7QVbmUuZxjYflXh2B3ysL8FMvQFDAiEA5UMxyzNkXlecQaySwWoRps+aAdQmaThlTwurQrOThl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45414},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.2.1_1782213413294_0.8493592823641474","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"dropbox-analytics-mcp-server","version":"0.3.0","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.3.0","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"e729f00bae4ac5018c95cf8bd9decc8c4ca055bb","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.3.0.tgz","fileCount":5,"integrity":"sha512-75TEP3biMLSeqWyr1zBYE0H7FFRUFOF2bAgpmo8uZ4ik03ma5YBErk8uVFMn7nZ6OmENTi/NfcBA13iKdi62wQ==","signatures":[{"sig":"MEQCIGN03SXn67IaYDs9HphJ6AFQpoZwmWbj7MZX8DbtPl6nAiBEGlxJUz3loa2Xd0B+PZlubfrP/R4x0v0idlAy2pmspA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48632},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.3.0_1782362330826_0.8525179804914935","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"dropbox-analytics-mcp-server","version":"0.3.1","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.3.1","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"3ebc36703046a06e3c85b6c35c3b63cd60c39d5c","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.3.1.tgz","fileCount":5,"integrity":"sha512-QVPT5uaYEiyoM4vhFW0e8YoovBSJysieRhUEn352beScvVmDwMOd3goVmusqTW/rBOA496q6W2t6rkQJxPWLFg==","signatures":[{"sig":"MEYCIQCiGEF5bjqfuejtJi8umcTxFbju8wzlH3XK3LxK/ElG3QIhAL58bvoxn6n1QLacpuVDhTMdSCPsXphPLF7a40RXmMrG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":52611},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.3.1_1782370357905_0.8871130030535905","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"dropbox-analytics-mcp-server","version":"0.3.2","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.3.2","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"b53a32880a50a096fffe68962045c21d31cf1382","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.3.2.tgz","fileCount":5,"integrity":"sha512-p4ZTFkBJLdgDpuieAmtfRrFfDn1nvgfKVuSOc6PgtUbXjRbdv9ZvEOZqulnsVZ9p5NH+yWxfs7ZcfLn44rTm8g==","signatures":[{"sig":"MEUCICpmnyz9cexfukPcadH/4cfR+Koym5XbFqXgCWxP3hfKAiEA9BGOMEixqSskFmKKvSgwFwaNSwLxT/kBe06T4X2BQCs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54558},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.3.2_1782452133785_0.39683277002943473","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"dropbox-analytics-mcp-server","version":"0.3.3","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.3.3","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"777db0ff5f1e18599ad606c130b4e61cdfb2a2a7","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.3.3.tgz","fileCount":5,"integrity":"sha512-1p1jdv4K+2CDkvR2dOy5VD2Vn6fst/o5D2LlHpPSx+fzikxn2Hhd/RbfZKTT2HpMYUtoXbBfeEWY7+/UDhptuQ==","signatures":[{"sig":"MEYCIQDlIZWEjT1eRlKdEPmLe1kHI8wGiQXLi63cp9l3Mt3i0QIhAJvjQpi2JeXdpZGylcQfYDNjBbMPJ2msWtl5iwNONm0v","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60564},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.3.3_1782708368343_0.9063679263625843","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"dropbox-analytics-mcp-server","version":"0.4.0","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.4.0","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"7a40fffed057c2bcdb3abd671ca930b20d78f3bf","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.0.tgz","fileCount":5,"integrity":"sha512-jypAaSK0xkbDtO3DYNecKTadZ5iEUP4R8Q4Zpq07hByKXGwQ8j1zgg9vQggMIvyOR+Kn6thPEX+o31pR/0LNdA==","signatures":[{"sig":"MEQCICwnwPCWbJydG2khzbNJRDlrxs9mmRxXdhwSTs47cUHrAiApEDxaxqRjuMNhu/kSYZXwsETA1S+XtW/QCcomTAQrhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71747},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.4.0_1782975767765_0.5589171335268979","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"dropbox-analytics-mcp-server","version":"0.4.1","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.4.1","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"823e38c74e0b20942b06347ed76855bd1ce33db2","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.1.tgz","fileCount":5,"integrity":"sha512-wbi490UCzgaWmR5rlq20GHhK/fkcKUSQdQH5LmuAfGW3u6G6UiXjyt9D7LednvryW1o0Tu6iyH8Ya7Af+2Irqg==","signatures":[{"sig":"MEUCIQC45JRqeELZviXDR7e6PUU8FxGSDdUpWLIJdrkGylvHDwIgEyEIIGfSC5edlGXJuTK+VfatIbiVrHyg3wnkKIYG5rY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74823},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.4.1_1783101066588_0.9369483210243774","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"dropbox-analytics-mcp-server","version":"0.4.2","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.4.2","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"23c73a4cdbcdda2c0421d0fbe3ae8a569cf03256","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.2.tgz","fileCount":5,"integrity":"sha512-W1IcYmWvXX6HfOMnrhwgOqe3bGlRSs7QccYM63ZOKQmcPrS9zqiLqq51mfh7/oIR3uBxBleTUOL5fzMi/CILeQ==","signatures":[{"sig":"MEQCIGW0Ht56Ltq1CTuci90fRGqgGgno6YW5xFCMoJq/bmwbAiAW7iDoCbZsQqMcuICgei1wJge3XkhG3yOmE1yRLHTrBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75074},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.4.2_1783102296271_0.042699951609287634","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"dropbox-analytics-mcp-server","version":"0.4.3","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.4.3","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"ff69db13701f83bac579952d9ec08ffb065e51bd","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.3.tgz","fileCount":5,"integrity":"sha512-CDAQu/7wuigUdtTpbUL8d0hBaT9v8evUkEPIBkPqDjOm0yGCA/RA0mM+XwO/tk2U3+kzarkmqm9SRN10ssxYbQ==","signatures":[{"sig":"MEUCIBAm7OM83SYUCHcRUJRfTrkVyzwSm2RoFBx3Ke2/+lA5AiEAp51kv9WHQyakVhRG7v8PE/M5X345JTjDS33qwmnHsoU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75747},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.4.3_1783103689321_0.2138305956398059","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"dropbox-analytics-mcp-server","version":"0.4.4","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.4.4","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"c6757aec1ce293faa46b5535360c0dd1bf4bb7d3","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.4.tgz","fileCount":5,"integrity":"sha512-pesurvgpPpT/F0FlGjEl21zx6j8H3aIq97pS/f7pKhtFC6VAi2tny800IhbTD56NfPXyvUy06IYZXrAJ2vZU2g==","signatures":[{"sig":"MEUCIQD84pVyQn/fH39tijKIjEnIpNa6Sk56AYZdLtuXcKEpbwIgLyfSj6I5YSKD0V2xPj3AjJlX+STYk8xUYU4ZE06lHIc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75854},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.4.4_1783139819923_0.8639997173037115","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"dropbox-analytics-mcp-server","version":"0.4.5","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.4.5","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"7747be2a03f31c2f533ee8c6be6e0b4d597fc1bd","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.5.tgz","fileCount":5,"integrity":"sha512-oN5762z5B9m+lrzAeT47hwEzbUw9G4PJTfUY0YKeHn3fU90ZBBYtjSSgIY+/38f8n+Q8SA9DLYqfj1ytV8WbHg==","signatures":[{"sig":"MEUCIQDH85ZqWleMvddU6FMpFyi5hm264zkh2TVb/P59jU/a8QIgHYcn0uqysvPNddF6o4aalPwG+BQmPcTncrPOvxnml/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77007},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.4.5_1783141062877_0.4752893757884318","host":"s3://npm-registry-packages-npm-production"}},"0.4.6":{"name":"dropbox-analytics-mcp-server","version":"0.4.6","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","_id":"dropbox-analytics-mcp-server@0.4.6","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"dist":{"shasum":"8abb7d0a01886333387f8894379805354a05c727","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.6.tgz","fileCount":6,"integrity":"sha512-4GC7+a6Zgl8YRR4b1m4sCYQTD0P3wJ1QN5sLwm4v5PhwKTM/hf7oAdnVRvqDpLXC9hCITgzqbDiDJd1DAqBr2w==","signatures":[{"sig":"MEQCIF55j0Dx69gYd7ounOmF6PWsQV4IXJhFHjfTWqxSyMeyAiBBWhtmU0nz8kIAp3gc3uXKtK5KMIL2Uiy2zfH7y8Yrmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92619},"main":"dist/index.js","type":"module","engines":{"node":">=18"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"_npmVersion":"11.11.0","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","xlsx":"^0.18.5","unpdf":"^1.6.2","fflate":"^0.8.3","dropbox":"^10.34.0","mammoth":"^1.12.0","@modelcontextprotocol/sdk":"^1.12.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.6.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/dropbox-analytics-mcp-server_0.4.6_1783409715461_0.27386214651920127","host":"s3://npm-registry-packages-npm-production"}},"0.4.7":{"name":"dropbox-analytics-mcp-server","version":"0.4.7","description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","type":"module","bin":{"dropbox-analytics-mcp-server":"dist/index.js"},"main":"dist/index.js","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('dist/index.js', 0o755)\"","start":"node dist/index.js","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"author":{"name":"sagar1012"},"license":"MIT","engines":{"node":">=18"},"dependencies":{"@modelcontextprotocol/sdk":"^1.12.0","dropbox":"^10.34.0","fflate":"^0.8.3","mammoth":"^1.12.0","unpdf":"^1.6.2","xlsx":"^0.18.5","zod":"^3.24.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.6.0"},"_id":"dropbox-analytics-mcp-server@0.4.7","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-69QC1YB7fOzmHxljOo/6t78vmnnSuuf40ERKFWBzaMqIxXEEHyVVd117iXUewpF1t01WSe1ZEDWYIvVd4O0e9w==","shasum":"9af4507bf7d45c618d3c30fcbb5ddb9a0642ccb5","tarball":"https://registry.npmjs.org/dropbox-analytics-mcp-server/-/dropbox-analytics-mcp-server-0.4.7.tgz","fileCount":6,"unpackedSize":86774,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC8joir7JoO0TyAyie81CWuvx7tJ/nSdRgtPKsyZ33EagIgcRhNVnKm/nyGZS5xoCCy7rMOhvvKEWlZHYCzqZXIWiA="}]},"_npmUser":{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"},"directories":{},"maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dropbox-analytics-mcp-server_0.4.7_1783488149761_0.7582330488529763"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-11T09:30:16.665Z","modified":"2026-07-08T05:22:30.118Z","0.1.0":"2026-06-11T09:30:16.874Z","0.1.1":"2026-06-12T12:40:30.460Z","0.1.2":"2026-06-17T05:27:57.186Z","0.2.0":"2026-06-23T09:59:06.720Z","0.2.1":"2026-06-23T11:16:53.436Z","0.3.0":"2026-06-25T04:38:50.965Z","0.3.1":"2026-06-25T06:52:38.030Z","0.3.2":"2026-06-26T05:35:33.905Z","0.3.3":"2026-06-29T04:46:08.478Z","0.4.0":"2026-07-02T07:02:47.976Z","0.4.1":"2026-07-03T17:51:06.727Z","0.4.2":"2026-07-03T18:11:36.407Z","0.4.3":"2026-07-03T18:34:49.445Z","0.4.4":"2026-07-04T04:37:00.059Z","0.4.5":"2026-07-04T04:57:43.009Z","0.4.6":"2026-07-07T07:35:15.608Z","0.4.7":"2026-07-08T05:22:30.008Z"},"author":{"name":"sagar1012"},"license":"MIT","keywords":["mcp","model-context-protocol","dropbox","analytics","csv","excel","claude"],"description":"MCP server for Dropbox: read public shared links without auth, or browse/read/search a private Dropbox via OAuth refresh token. Parses CSV/Excel/JSON into tabular data for analytics.","maintainers":[{"name":"sagar1012","email":"sagarkpatel1719@gmail.com"}],"readme":"# dropbox-analytics-mcp-server\n\nMCP server for Dropbox, built for analytics workflows. Read public shared links with **zero authentication**, browse a full Dropbox account via OAuth, or analyze **someone else's shared folder link** (public or password-protected). CSV/Excel files are parsed into tabular rows, PDF/DOCX into extracted text — ready for analysis.\n\nBuilt-in **rate limiting** (max concurrent requests + request spacing + automatic 429 retry) and **chunked reading** (small defaults with offset-based pagination) keep large files and deep folder trees from hitting Dropbox rate limits or blowing up the model's context.\n\n## Operating modes\n\nThe server picks a mode automatically from the environment variables present:\n\n| Mode | Env vars set | What you get |\n|---|---|---|\n| **Account** | `DROPBOX_APP_KEY` + `DROPBOX_REFRESH_TOKEN` (+ optional `DROPBOX_APP_SECRET`) | Full access to the connected account: list, search, read, upload, share |\n| **Shared link (authenticated)** | Token vars above **+** `DROPBOX_SHARED_URL` (+ optional `DROPBOX_SHARED_PASSWORD`) | `list_sources` / `read_source` / `search_in_source` / `summarize_source` operate on that link — including links owned by **other** accounts, nested subfolders, and password-protected links |\n| **Public link (tokenless)** | Only `DROPBOX_SHARED_URL` (must be a public link) | `list_sources` / `read_source` / `search_in_source` with no credentials at all |\n| **Public-link-only** | Nothing | Just `read_public_link` for ad-hoc public links |\n\n## Quick start (no auth)\n\n```bash\nnpx dropbox-analytics-mcp-server\n```\n\n| Tool | Description |\n|---|---|\n| `read_public_link` | Download and parse any public Dropbox shared link (CSV/Excel → rows, PDF/DOCX → text, JSON → object, text → raw) |\n\nWorks with both old (`/s/...`) and new (`/scl/fi/...?rlkey=...`) link formats.\n\n## Tools (authenticated)\n\n### Source tools — the primary analytics interface\n\nThese work identically in account mode and shared-link mode:\n\n| Tool | Description |\n|---|---|\n| `list_sources` | List ALL analyzable sources in one call: spreadsheets (kind `table`) and PDF/DOCX (kind `document`). Walks nested subfolders of shared links. |\n| `read_source` | Read any source by name. Tables return rows, documents return text. Supports **pagination** (see below). |\n| `summarize_source` | Compact profile without pulling full content: per-column stats (type, nulls, uniques, min/max/mean, top values) for tables; counts, preview, probable headings, and top keywords for documents. **Use this first on large files.** |\n| `search_in_source` | Search inside a source's content. Tables → matching rows + which columns matched; documents → matching lines with context. |\n\n### Table / document tools\n\n| Tool | Description |\n|---|---|\n| `list_tables` | List tabular files as `{ table_name }` entries (optionally expand Excel sheets with `include_sheets`) |\n| `read_table` | Read rows from a `list_tables` name |\n| `describe_table` | Column names + inferred types + row count + sample rows |\n| `list_documents` | List PDF/DOCX files |\n\n### Account tools\n\n| Tool | Description |\n|---|---|\n| `list_folder` | List files/folders at a path |\n| `search_files` | Search by name or content |\n| `get_file_metadata` | Size, modified date, revision |\n| `read_file` | Download + parse by real path or table name |\n| `list_shared_links` / `create_shared_link` | Manage the account's own shared links |\n| `upload_file` | Upload text content (e.g. export analytics results as CSV) |\n| `get_account_info` | Verify the connection works |\n\n### Ad-hoc shared-link tools\n\n| Tool | Description |\n|---|---|\n| `verify_shared_link` | Check a link + password is valid without persisting anything (`{ valid, reason, kind, fileCount }`) |\n| `list_shared_link` | List sources inside an explicitly passed folder link |\n| `read_shared_link_file` | Read one file inside an explicitly passed folder link |\n\n## Chunked reading / pagination\n\nDefaults are intentionally small so a single call never floods the context. Responses include everything needed to continue:\n\n**Tables** — default 50 rows per call:\n\n```text\nread_source  source_name: \"Reports.sales\"                  → rows 0–49,  hasMore: true, nextOffsetRows: 50\nread_source  source_name: \"Reports.sales\", offset_rows: 50 → rows 50–99, hasMore: true, nextOffsetRows: 100\n```\n\n**Documents** — default 500 characters per call:\n\n```text\nread_source  source_name: \"contract\"                    → chars 0–499,   hasMore: true, nextOffsetChars: 500\nread_source  source_name: \"contract\", offset_chars: 500 → chars 500–999, ...\n```\n\nEvery response carries `hasMore` and `nextOffsetRows` / `nextOffsetChars` — pass the value back as `offset_rows` / `offset_chars` to fetch the next chunk. `totalRows` / `charCount` report the full size. Increase `max_rows` / `max_chars` per call if you need bigger chunks.\n\nRecommended flow for large files: `summarize_source` first → then `read_source` with offsets or `search_in_source` to pull only what's needed.\n\n## Rate limiting\n\nAll outbound Dropbox calls (SDK + public-link fetches) flow through a global limiter:\n\n- Max **3 concurrent** requests (`DROPBOX_MAX_CONCURRENT`)\n- Minimum **350 ms** between request starts (`DROPBOX_MIN_GAP_MS`)\n- Automatic retry on HTTP 429 (up to 3 attempts), honouring Dropbox's `retry_after`, exponential backoff capped at 5 s\n\nParallel operations (like the nested shared-folder walk) are automatically kept under these caps — no more `too_many_requests` errors from bursty listings.\n\n## One-time setup: getting a refresh token\n\nDropbox no longer issues long-lived access tokens, so the server uses an auto-refreshing **refresh token**:\n\n**1. Create a Dropbox app** at <https://www.dropbox.com/developers/apps>\n   - Choose **Scoped access** → **Full Dropbox** (or App folder for sandboxing)\n   - Under **Permissions**, enable: `files.metadata.read`, `files.content.read`, `sharing.read`, `account_info.read`, plus `files.content.write` (only for `upload_file`) and `sharing.write` (only for `create_shared_link`)\n   - Note the **App key** and **App secret** from the Settings tab\n\n**2. Authorize** — open this URL in a browser (replace `YOUR_APP_KEY`):\n\n```\nhttps://www.dropbox.com/oauth2/authorize?client_id=YOUR_APP_KEY&response_type=code&token_access_type=offline\n```\n\nApprove the app and copy the authorization code.\n\n**3. Exchange the code for a refresh token:**\n\n```bash\ncurl https://api.dropbox.com/oauth2/token \\\n  -d code=YOUR_AUTH_CODE \\\n  -d grant_type=authorization_code \\\n  -u YOUR_APP_KEY:YOUR_APP_SECRET\n```\n\nThe response contains `refresh_token` — save it. It does not expire unless revoked.\n\n> **Note for shared-link mode:** `sharing.read` scope is required. If `list_sources` reports zero items on a valid link, re-check the app's Permissions tab and re-authenticate to mint a token with the updated scope.\n\n## Environment variables\n\n| Variable | Required | Purpose |\n|---|---|---|\n| `DROPBOX_APP_KEY` | for account access | App key from the Dropbox app console |\n| `DROPBOX_APP_SECRET` | confidential apps only | App secret (omit for PKCE apps) |\n| `DROPBOX_REFRESH_TOKEN` | for account access | Auto-exchanged for short-lived access tokens |\n| `DROPBOX_ACCESS_TOKEN` | alternative | Short-lived token for quick testing only (~4 h) |\n| `DROPBOX_SHARED_URL` | for shared-link mode | A shared file or folder link to operate on |\n| `DROPBOX_SHARED_PASSWORD` | if link is protected | Password for the shared link (requires a token) |\n| `DROPBOX_MAX_CONCURRENT` | optional (default 3) | Max simultaneous Dropbox requests |\n| `DROPBOX_MIN_GAP_MS` | optional (default 350) | Minimum ms between request starts |\n| `DROPBOX_DEFAULT_MAX_ROWS` | optional (default 50) | Default rows per table read |\n| `DROPBOX_DEFAULT_DOC_CHARS` | optional (default 500) | Default characters per document read |\n\n## MCP client configuration\n\n### Claude Desktop (`claude_desktop_config.json`)\n\n```json\n{\n  \"mcpServers\": {\n    \"dropbox\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"dropbox-analytics-mcp-server\"],\n      \"env\": {\n        \"DROPBOX_APP_KEY\": \"your_app_key\",\n        \"DROPBOX_APP_SECRET\": \"your_app_secret\",\n        \"DROPBOX_REFRESH_TOKEN\": \"your_refresh_token\"\n      }\n    }\n  }\n}\n```\n\nTo analyze a shared folder link instead of the account root, add:\n\n```json\n        \"DROPBOX_SHARED_URL\": \"https://www.dropbox.com/scl/fo/abc123/h?rlkey=xyz&dl=0\",\n        \"DROPBOX_SHARED_PASSWORD\": \"optional-link-password\"\n```\n\nFor public-link-only mode, omit the `env` block entirely.\n\n## Tool examples\n\n```text\nsummarize_source\n  source_name: \"Reports.sales\"          → column stats + 3 sample rows\n\nread_source\n  source_name: \"Reports.sales::Q1\"      → first 50 rows of sheet Q1\n  offset_rows: 50                        → next 50 rows\n\nread_source\n  source_name: \"contract\"               → first 500 chars of the PDF\n  offset_chars: 500, max_chars: 2000    → next 2000 chars\n\nsearch_in_source\n  source_name: \"contract\"\n  query: \"termination clause\"\n\nread_public_link\n  shared_link: \"https://www.dropbox.com/scl/fi/abc/sales.xlsx?rlkey=xyz&dl=0\"\n  sheet_name:  \"Q1\"\n\nupload_file\n  path:    \"/Exports/summary.csv\"\n  content: \"region,total\\nWest,1200\\nEast,950\"\n```\n\n## Limits\n\n- Downloads capped at 50 MB per file\n- Table reads default to 50 rows per call (`max_rows` / `offset_rows` to page; env-tunable)\n- Document reads default to 500 characters per call (`max_chars` / `offset_chars` to page; 200k absolute ceiling per call; env-tunable)\n- Plain-text files truncated at 100k characters\n- Shared-folder walks capped at 10,000 entries / 500 folders\n- `search_in_source` scans up to 5,000 rows by default (`scan_rows` to raise)\n- `upload_file` is text-only (UTF-8); binary upload not supported\n\n## Development\n\n```bash\nnpm install\nnpm run build\nnode dist/index.js\n```\n\n## License\n\nMIT","readmeFilename":"README.md"}