# @kentcdodds/dropbox ## Intent Provide reusable, account-agnostic Dropbox helpers for Kody agents through the standard saved `dropbox` OAuth integration. Cover common account, metadata, search, transfer (small and large uploads), deletion, and sharing workflows — including direct content URLs — while retaining a generic escape hatch for the rest of the Dropbox API. Agents should use these MCP exports instead of the Dropbox website UI. ## What it does - Inspect the connected Dropbox account or storage usage - List folders, read metadata, and search for files - Download or upload file content (small single-shot or large upload sessions) - Save a remote URL into Dropbox when chat cannot carry large base64 - Delete files or create shared links with explicit confirmation - Ensure a shared link and return a curl-friendly direct content URL - Call less-common Dropbox RPC and content endpoints through `./request` Mutating helpers require `confirm: true` and support `dryRun: true`. Paths begin with `/`. Kody-writable files usually live under **`/Apps/Kody/…`** — list the root first. Agents: copy-paste upload and share recipes live in [`AGENTS.md`](./AGENTS.md). ## Prerequisites / setup 1. Connect a Dropbox OAuth integration named **`dropbox`** at `https://kody.codes/connect/oauth?provider=dropbox`. 2. Grant the scopes your workflows need. Common scopes: `account_info.read`, `files.metadata.read`, `files.metadata.write`, `files.content.read`, `files.content.write`, `sharing.read`, `sharing.write`. 3. Agents: see [`AGENTS.md`](./AGENTS.md) for import paths, smoke, dryRun, and the **Upload a file (small vs large)** playbook. ## Done when - The `dropbox` OAuth integration is connected - Smoke test returns `{ ok: true }` without account PII - Mutations refuse without `confirm: true`; `dryRun: true` never calls Dropbox - Large uploads use `./upload-large` (or `./upload` auto-delegate) with `bytesBase64` in execute **params**, not inlined in `code`