Provider REST API

Productivity

Connect Claude to Dropbox

Browse folders, search files, read metadata, create folders, move, copy, delete, and share links. Toolspoke puts 12 of its actions behind one MCP endpoint that Claude, Cursor, and Codex all speak.

Connection
Provider REST API
Authentication
Sign in with Dropbox
Actions exposed
12
Cost per call (typical)
1 credit
Adapter
Maintained by Toolspoke

Connected in three steps

  1. 1

    Install Dropbox

    Open the marketplace in your workspace, add Dropbox to the project your agents work in, and it appears on the gateway immediately.

  2. 2

    Connect the credential

    Sign in to Dropbox. Toolspoke holds the token encrypted and refreshes it when it expires.

  3. 3

    Point your agent at the gateway

    Give your client one address, https://toolspoke.com/mcp. Claude Code takes it as a command, Claude and Claude Desktop add it as a custom connector, and Cursor, Codex and VS Code each read it from a config file of their own.

.mcp.json
{
  "mcpServers": {
    "toolspoke": {
      "type": "http",
      "url": "https://toolspoke.com/mcp"
    }
  }
}

One block covers every tool you have installed. Dropbox shows up in the client as soon as your policy allows it, and so does everything else you install later.

Where the address goes, per client

Claude Code

Run it in your project, then /mcp to sign in

claude mcp add --transport http toolspoke https://toolspoke.com/mcp
Claude and Claude Desktop

Settings, then Connectors, then Add custom connector

https://toolspoke.com/mcp
Cursor

~/.cursor/mcp.json, or .cursor/mcp.json for one project

{ "mcpServers": { "toolspoke": { "url": "https://toolspoke.com/mcp" } } }
Codex

~/.codex/config.toml

[mcp_servers.toolspoke]
url = "https://toolspoke.com/mcp"
VS Code

.vscode/mcp.json, or the MCP: Add Server command

{ "servers": { "toolspoke": { "type": "http", "url": "https://toolspoke.com/mcp" } } }

What Dropbox asks for

Press connect and sign in to Dropbox. Toolspoke keeps the token encrypted and refreshes it when it expires, so there is nothing to copy and nothing to rotate by hand.

The scopes it asks for

  • account_info.read
  • files.metadata.read
  • files.content.write
  • sharing.read
  • sharing.write

What Claude can do in Dropbox

12 actions, each one declared and named by the connector rather than discovered at runtime. A workspace policy grants a person all of them, a hand-picked selection, everything on the read side, everything on the write side, or none.

Reads
7Reads
Writes
2Writes
Destructive
3Destructive

Reads

7

Fetches data and changes nothing.

  • get_current_account

    Return the connected Dropbox account: its account ID, display name, email address, and whether the account belongs to a team. It touches no file, which makes it the cheapest proof that the connection works and the right call to confirm whose Dropbox this is before acting on it.

  • get_space_usage

    Return how many bytes this account has used against its allocation. Numbers only - no file, no folder and no name appears in the answer. Call it before a large copy to know whether there is room.

  • list_folder

    List the contents of one folder. Paths are Dropbox-style and start with a slash - "/Clients/Acme" - and the account's root is the empty string, which is what this sends when no path is given. The answer carries `cursor` and `has_more`; when `has_more` is true, pass that cursor to list_folder_continue for the next page rather than calling this again. Set recursive to walk every subfolder in one call, but be aware Dropbox warns that a deep tree can time out - walking one level at a time is the reliable way through a large account.

  • list_folder_continue

    Fetch the next page of a listing started by list_folder, using the cursor that listing returned. The cursor also works as a change token: calling this again later returns only what has been added, changed or removed since, which is how a folder is watched without listing it repeatedly.

  • search_files

    Search the account for files and folders by name, and by the text inside documents on paid plans. Returns matches with each item's path, so a hit can be handed straight to get_metadata or create_shared_link. Narrow it with search_path to look inside one folder, with file_extensions to keep to one kind of file, or with filename_only when the words are expected in the name rather than the contents.

  • get_metadata

    Read one file's or folder's metadata by path or by ID - its name, size, revision, when it last changed, and whether it is shared. Dropbox does not support metadata for the account's root, so this needs a real path; use list_folder to see what is at the top level.

  • list_shared_links

    List the shared links this account has already created, with the file or folder each one points at. Give a path to see the links for one item; omit it to page through every link on the account. Call this before create_shared_link - Dropbox refuses to create a second link with the same settings for an item that already has one, and the existing link is usually the answer anyway.

Writes

2

Creates or updates something on the other side.

  • create_folder

    Create one empty folder at a path. Every folder above it has to exist already; Dropbox does not create intermediate folders. With autorename true, a name that is already taken becomes "Reports (1)" instead of failing.

  • copy_file

    Copy a file or folder to another path. The original is untouched and the copy is a new item with its own ID, so nothing is lost and this stays a write while move_file does not. Copying a folder copies what is inside it.

Destructive

3

Deletes or permanently alters something. Worth granting on purpose.

  • create_shared_link

    Create a shared link for a file or folder. Classified destructive, alongside deleting: with audience "public" the link works for anybody who has the URL, signed in or not, and a URL that has been sent somewhere cannot be un-sent. Set audience "team" to keep it inside the Dropbox team, or "no_one" for a link that only points members at content they can already reach. Prefer list_shared_links first - Dropbox rejects a second link with the same settings on an item that already has one.

  • delete_file

    Delete a file or folder. Deleting a folder takes everything inside it. Dropbox keeps a deleted item recoverable from the web interface for the account's retention window - 30 days on most plans - but it leaves the folder now, which is why this is gated with sharing rather than with renaming. This is not permanent deletion: that needs the files.permanent_delete scope, which this connector never asks for, so no grant here can destroy something outright.

  • move_file

    Move or rename a file or folder. Classified destructive rather than write because the old location is gone afterwards: anybody or anything holding the previous path - a link in a document, a script, a colleague's bookmark - no longer finds it, and there is no undo. Use copy_file when the original should stay where it is.

What it will not do

Enforced by the gateway rather than left to convention, which is why each of these can be stated flatly.

It cannot call anything else
The 12 actions above are the whole of it. A call to any other name is refused before it reaches Dropbox rather than forwarded on, and connecting your account does not add to the list: it is fixed by the connector, not discovered at run time.
It reaches no further than your credential
Toolspoke holds no access to Dropbox of its own. Every call carries the credential you stored and nothing besides, so whatever that credential cannot reach, this connector cannot reach either.
It never hears from Dropbox
Nothing is pushed to it. There is no webhook, no subscription and no polling, so this connector cannot notice by itself that something changed in Dropbox. An agent has to ask.
It does not smooth over provider limits
Toolspoke does not retry, queue or back off around Dropbox's own rate limits. A call that Dropbox refuses comes back to the agent as a failed call.

Before you connect it

What can Claude do in Dropbox?

12 named actions: 7 that only read, 2 that write and 3 that delete or permanently alter something. They include get_current_account, get_space_usage and list_folder. Nothing outside that list is reachable: the connector declares each operation by name rather than proxying whatever an agent asks for.

What credentials does the Dropbox connector need?

Nothing to paste. You sign in to Dropbox over OAuth 2.0 and Toolspoke keeps the resulting token encrypted, refreshing it when it expires. It asks for account_info.read, files.metadata.read, files.content.write, sharing.read and sharing.write, and can do nothing outside them.

Does the Dropbox connector work with Cursor and Codex, or only Claude?

Any client that speaks MCP, and every one of them gets the same 12 actions. There is a single address, https://toolspoke.com/mcp. Claude Code adds it with claude mcp add --transport http, Claude and Claude Desktop take it as a custom connector in settings, Cursor reads it from .cursor/mcp.json, Codex from ~/.codex/config.toml, and VS Code from .vscode/mcp.json. Each of them signs in to the gateway itself, so there is no key to paste.

What does the Dropbox connector not do?

The 12 actions above are the whole of it. A call to any other name is refused before it reaches Dropbox rather than forwarded on, and connecting your account does not add to the list: it is fixed by the connector, not discovered at run time. Toolspoke holds no access to Dropbox of its own. Every call carries the credential you stored and nothing besides, so whatever that credential cannot reach, this connector cannot reach either. Nothing is pushed to it. There is no webhook, no subscription and no polling, so this connector cannot notice by itself that something changed in Dropbox. An agent has to ask. Toolspoke does not retry, queue or back off around Dropbox's own rate limits. A call that Dropbox refuses comes back to the agent as a failed call.

Can I limit which actions an agent can call?

Yes, in two places. The project switches Dropbox's actions on and off one at a time, for everyone in the project at once, and the screen groups them by read, write and destructive so turning off everything that deletes is one click. An individual agent key can then be narrowed further, to particular toolkits in a project and to particular actions in a toolkit. Whatever it was granted, a key never reaches a project its owner cannot.

What gets recorded when an agent calls Dropbox?

Every attempt, with the agent that made it and the person that agent belongs to, the full request payload, the response payload, the status, the duration, and the credits spent. Values whose key names a secret are masked out before the record is shown to anyone. An operation the connector marks as not retained never has its response body written at all, so the gateway keeps no second copy of what was read.