Announcing CIMD support for MCP Client registration
Learn more

Dropbox MCP vs Dropbox API for AI Agents (2026)

Saif Ali Shaik
Founding Developer Advocate

TL;DR

  • Dropbox's remote MCP server (beta, generally available) ships 23 file-centric tools covering listing, search, content extraction, sharing links, file requests, and revision history. Team administration, webhooks, Paper, and large-file upload sessions are absent from the MCP surface and live only in the v2 API.
  • Both paths run on OAuth exclusively. There is no API key and, critically, no Client Credentials flow: Dropbox does not support M2M authentication, so headless access requires the offline refresh-token pattern, and the MCP server's interactive consent flow cannot participate in it.
  • For multi-tenant B2B agents, both paths give you one credential per user. Neither stores, refreshes, or revokes those refresh tokens for you. That remains an infrastructure problem regardless of the path.
  • MCP is the faster path for interactive, user-present agents. The v2 API is the right foundation for background jobs, large-file transfer, team-wide operations, and change-driven pipelines.
  • Scalekit's Dropbox connector handles the OAuth flow, token storage, and refresh for both paths, so the MCP vs API decision doesn't change your auth infrastructure.

Your agent needs to read and write Dropbox. Dropbox now ships two paths: a hosted remote MCP server at mcp.dropbox.com and the v2 REST API your integrations have used for years. They cover overlapping but not identical territory, they put you on different auth paths, and for background agents specifically, one of those differences is a hard blocker. Here's how to pick.

What Dropbox MCP and Dropbox API actually are

Dropbox MCP

Dropbox's MCP server is a hosted remote server at https://mcp.dropbox.com/mcp, built on the Model Context Protocol (MCP) standard and maintained by Dropbox. It launched in an open beta that is generally available, and it authenticates through Dropbox OAuth. The server supports Dynamic Client Registration (DCR) for a trusted set of MCP clients (Claude Code, Claude Web, ChatGPT Codex, ChatGPT Web, and Cursor); for any other client you register a Dropbox app manually and supply credentials. Official docs: help.dropbox.com/integrations/connect-dropbox-mcp-server.

Dropbox API

The Dropbox API is a versioned v2 REST surface spanning files, sharing, users, file requests, team administration, and change detection, authenticated with a bearer access token in the Authorization header. It supports OAuth 2.0 Authorization Code in two modes: online (short-lived access token only) and offline (short-lived access token plus a long-lived refresh token). Team apps additionally use the Dropbox-API-Select-User and Dropbox-API-Select-Admin headers to act as a specific member or administrator. Official docs: developers.dropbox.com/documentation.

Comparing them where it matters for agents

What your agent can actually do

The MCP server covers the file-management surface an assistant needs: browsing, search, reading content out of PDFs and documents, creating files and folders, sharing links, file requests, and revision history. That handles the majority of interactive Dropbox agent workflows.

The gaps appear when an agent needs to operate above the individual file layer, move data at volume, or react to change.

Capability
Dropbox MCP
Dropbox API (v2)
List folder contents
Yes (ListFolder)
Yes
Search files and folders
Yes (Search)
Yes
Read/extract file content
Yes (GetFileContent)
Yes
Create file from inline content
Yes (CreateFile, up to 5 MB)
Yes
Create folder, copy, move, delete
Yes
Yes
Shared links and file requests
Yes
Yes
Revision history and restore
Yes (ListFileRevisions, RestoreFileRevision)
Yes
Large-file upload (over 150 MB)
No
Yes (upload sessions, up to 350 GB)
Batch upload and batch move
No
Yes (up to 1,000 entries per batch)
Webhooks for file and folder changes
No
Yes
Team administration and member management
No
Yes (Business API)
Team activity and audit log
No
Yes (/team/log/get_events)
Paper content
No
Via Files and Sharing endpoints

The most consequential gaps

Three gaps decide the path for anything beyond a personal assistant. The first is large-file and batch transfer: the MCP CreateFile tool tops out at 5 MB of inline UTF-8 content, while the API's upload sessions handle files up to 350 GB and batches up to 1,000 entries. The second is change detection: if your agent must react when a file or folder changes, the API exposes webhooks and the MCP server does not. The third is the team surface: member provisioning, per-user file access as an admin, and the team audit log are Business API features, not MCP tools that ship next month.

The auth path each one puts you on

Both paths run on OAuth, so there is no API key shortcut on either one. The MCP server drives a browser-based OAuth consent flow: a user authorizes, and the client acts within that user's grant. This is correct for interactive, user-present workflows, and it is a hard constraint for anything running without a user in the loop. For a deeper look at OAuth architecture patterns for AI agents, the tradeoffs between interactive and headless flows are covered in detail.

The headless gap and the missing M2M flow

The v2 API supports offline access: the authorization response returns a long-lived refresh token, and your backend exchanges it for a fresh short-lived access token whenever the user is not present. That is the pattern for background execution.

What Dropbox does not offer on either path is a Client Credentials or M2M flow. There is no static service credential that authenticates as the app with no user grant behind it. Every access token traces back to a specific user's authorization. So headless Dropbox work is not "use a service account"; it is "store each user's refresh token and mint access tokens against it." The MCP server, being interactive-consent only, cannot hold or replay a refresh token for background use, which is why headless agents belong on the API.

The multi-tenant reality

For a B2B agent serving 40 users across several customer accounts, the per-user model means 40 refresh tokens to store, 40 access tokens to refresh before each one expires, and 40 grants to revoke when a person leaves. The API's Dropbox-API-Select-User header lets a team app act as any member under one team grant, which reduces token count for team-wide jobs but still requires the same encrypted storage and revocation discipline. Neither path manages that lifecycle for you. Understanding how tool calling auth changes when you move from single-tenant to multi-tenant is essential before committing to either path.

What you own in production

The MCP path manages tool schema definitions and endpoint normalization on your behalf. When Dropbox updates the API, it updates the server's tools, and your agent picks up changes without a redeploy. That is a real operational advantage for fast-moving interactive products.

What the MCP path does not manage

Token storage, refresh, revocation on user disconnect, and tenant isolation remain yours regardless of path. The MCP server also carries a client-support constraint: DCR works only for its trusted client list, so any other client needs a manually registered Dropbox app, and changing an app's scopes forces a reconnect.

The direct API surface you own

The direct API means you own endpoint selection, request construction, error handling, pagination cursors, rate-limit retries (HTTP 429 responses carry a Retry-After header), and the full token lifecycle. That is more surface area and more control. The access token expiry is returned in the expires_in field of the token response, so proactive refresh is driven by a value you can read rather than by waiting for a 401.

Schema stability and versioning

MCP tool schemas are unversioned and can change when Dropbox updates the hosted server. The v2 API is a stable, explicitly versioned contract. For deterministic production pipelines where an unexpected schema change is an incident, the versioned API is the more predictable dependency.

When to use MCP, when to use the API

Use Dropbox MCP when:

  • You are building an interactive agent in Claude Code, Cursor, ChatGPT, or a similar client where the user is present for the OAuth flow.
  • The agent's job is file retrieval, search, content extraction, and sharing, not team administration or bulk transfer.
  • You want to validate a Dropbox agent concept quickly without writing v2 API integration code.
  • Your client is on the DCR trusted list, so connection is one browser flow with no manual app registration.

Use the Dropbox API directly when:

  • The agent runs headless: scheduled jobs, background sync, or content pipelines with no user present at execution time.
  • The agent transfers large files or moves data in batches, which requires upload sessions and batch endpoints.
  • The agent must react to changes in Dropbox through webhooks.
  • The agent performs team-wide operations or needs the team audit log for compliance.
  • Schema stability matters more than automatic tool updates.

The credential problem that exists on both paths

Whether you choose MCP or the API, every user in a multi-tenant agent has their own Dropbox credential. Forty customers means forty refresh tokens, forty lifecycles to manage.

What neither path gives you

Both paths hand you a token per user and stop there. The refresh token has to live somewhere: encrypted at rest, isolated per tenant, and revocable when a user disconnects. Dropbox refresh tokens do not expire on a schedule, but a user or team admin can revoke one at any time from their connected-apps page. Your agent has no built-in way to detect that until a call fails, so you own the detection, the re-auth prompt, and the cleanup. The challenge of handling token refresh for AI agents at scale is one of the most common production pain points teams encounter.

Where Scalekit fits

Scalekit's Dropbox connector handles the OAuth flow, token storage, and rotation for both paths, so the MCP vs API decision doesn't change what you build for auth infrastructure.

Building on Dropbox with Scalekit

Two connectors, one auth layer

Scalekit ships both a Dropbox connector for the v2 API (OAuth 2.0, proxied API calls plus prebuilt tools) and a Dropbox MCP connector (OAuth 2.1, 20 prebuilt tools). Both register once per environment in the dashboard, and both put the credential in Scalekit's Token Vault rather than in your agent runtime. The agent calls a tool, gets a result, and never sees a token.

The Token Vault value for a Dropbox agent

Dropbox's refresh-token model is exactly the lifecycle that breaks homegrown integrations at scale: short-lived access tokens expiring mid-run, refresh tokens revoked without notice, and per-user isolation across tenants. Token Vault stores each user's Dropbox credential encrypted and isolated per tenant, refreshes access tokens proactively, and surfaces revocation instead of failing silently. What the user can't do, the agent can't do.

Connecting with the Python SDK

After creating the Dropbox MCP connection in the dashboard, authorize a user and execute a tool. The connection_name must match the connection configured in the Scalekit dashboard exactly; this is the single most common integration error.

import os from scalekit.client import ScalekitClient from dotenv import load_dotenv load_dotenv() scalekit_client = ScalekitClient( env_url=os.getenv("SCALEKIT_ENV_URL"), client_id=os.getenv("SCALEKIT_CLIENT_ID"), client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"), ) actions = scalekit_client.actions connection_name = "dropboxmcp" identifier = "user_123" # Generate an authorization link for the user link_response = actions.get_authorization_link( connection_name=connection_name, identifier=identifier, ) print("Authorize Dropbox:", link_response.link) input("Press Enter after authorizing...") # Search the user's Dropbox through their scoped connected account result = actions.execute_tool( connection_name=connection_name, identifier=identifier, tool_name="dropboxmcp_search", tool_input={"query": "Q3 report", "max_results": 10}, ) print(result)

Scoped tool surfaces instead of a full catalog

execute_tool runs against the tools the current user's connected account is authorized to call, not a flat connector catalog. That scoping matters for accuracy and cost: an LLM handed every tool selects worse and burns tokens before it does any work. Retrieving the authorized surface for a user, then executing against it, keeps the decision space small. The fix is surface reduction, not better prompting.

Virtual MCP servers for multi-tool, multi-tenant agents

If your agent spans Dropbox plus other tools, Scalekit's Virtual MCP Servers give it one scoped, user-specific MCP endpoint declaring exactly which tools it can see and whose credentials it acts with, with no MCP server to deploy, host, or maintain. You create the server once per agent role and get back a static URL of the form https://yourcompany.scalekit.com/mcp/v3/servers/<server-id>. Before each run you mint a short-lived session token scoped to one user's connected accounts. One server definition serves all users; the endpoint is static, the identity is per-user.

Observability through agent auth logs

For multi-tenant agents, the audit question is not "did a call succeed" but "under whose authorization did the agent touch that file." Agent tool observability ties every tool call to the connected account that authorized it, with correlation IDs and immutable trails, so a Dropbox action traces back to a real user rather than a shared account. That is what a security reviewer asks for.

If a tool you need isn't there yet

Scalekit's Dropbox connectors cover file, sharing, and file-request operations. If you need a Dropbox capability the connectors don't expose yet, request it in the Scalekit Slack community (join.slack.com/t/scalekit-community) or through the team at scalekit.com/demo-agent-actions.

Which one to build against

If your Dropbox agent runs interactively and its job is searching, reading, and sharing files, the hosted MCP server is the faster path to a working agent, especially on a DCR-supported client. If your agent runs headless, transfers large files, performs team-wide operations, or reacts to changes through webhooks, build against the v2 API directly, because the MCP server's interactive-consent model and file-centric tool surface are genuine constraints. Most production Dropbox agents end up using both: MCP for the interactive assistant, the API for the background pipeline. Either way, the credential management problem is the same, and that is what needs production-grade infrastructure.

Browse the Scalekit Dropbox connector: docs.scalekit.com/agentkit/connectors/dropbox
Browse the Scalekit Dropbox MCP connector: docs.scalekit.com/agentkit/connectors/dropboxmcp

No items found.
Agent
Auth Quickstart
On this page
Share this article
Agent
Auth Quickstart

Acquire enterprise customers with
zero upfront cost.

Every feature unlocked. No hidden fees.