Provider REST API
ProductivityConnect 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
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
Connect the credential
Sign in to Dropbox. Toolspoke holds the token encrypted and refreshes it when it expires.
- 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
7Fetches data and changes nothing.
get_current_accountReturn 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_usageReturn 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_folderList 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_continueFetch 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_filesSearch 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_metadataRead 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_linksList 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
2Creates or updates something on the other side.
create_folderCreate 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_fileCopy 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
3Deletes or permanently alters something. Worth granting on purpose.
create_shared_linkCreate 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_fileDelete 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_fileMove 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.