ChatGPT and Claude
Your folders in a chat, only the ones you pick.
Connect
- The address:
https://mcp.folder.dev/mcp. Add it as a connector in ChatGPT or Claude; in Claude Code,claude mcp add --transport http folder https://mcp.folder.dev/mcp. - The Connect Folder page opens: sign in with Apple, tick the folders it may use, choose Read Only or Read and Change, and Allow. It signs in with OAuth 2.1 and S256 PKCE, so the app never sees your Apple ID or a password.
- It reaches only the folders you ticked, on Folder or in your own Cloudflare. It never deletes or moves files, and every change it makes is a new version you can put back.
- Disconnect it any time in folder.dev › Settings › Connected Apps.
- Step by step for each app, and what it looks like: ChatGPT and Claude.
What each label means
- Read: reads, never changes anything.
- Write: changes a file in a folder you ticked, as a new version in its history.
- Sensitive write: asks you first. The first call says what would happen and answers a confirm code; only a second call with that code does it. A share link is one: it reaches people.
- Share links work on a folder in your own Cloudflare; a folder on Folder opens only for you.
Reads
list_folders
Use this when you need to know which of the person’s Folder folders this connection can use, or a folder name for another tool. Start here. Not for the files inside a folder: use list_files.
- takes: nothing
- answers: the folders the person picked for this connection, where each lives (on Folder or in their Cloudflare), and whether files may be changed
- label: Read
list_files
Use this when the person asks what is in one of their Folder folders, or you need exact paths before reading or changing a file. Not for searching across folders by name: use search_files.
- takes: folder, path (optional), cursor (optional)
- answers: a folder’s files and folders, folders first: name, path, kind, size, when changed; a cursor when there are more
- label: Read
search_files
Use this when the person asks for a file in their Folder folders by part of its name and you do not know its path. Matches names only, not what is inside files. Not for listing one folder: use list_files.
- takes: name, folder (optional)
- answers: files and folders whose name contains the words, with their folder and path; a note when a large folder was only partly looked through
- label: Read
read_file
Use this when the person asks what one of their files in Folder says, or before edit_file to get the exact text. Not for photos, PDFs or other binaries: it answers their link instead of their content.
- takes: folder, path
- answers: a text file’s content (up to 256 KB) and its version; for anything bigger or not text, its size, type and the link where the person opens it
- label: Read
list_versions
Use this when the person asks how a file changed, or to find a version to bring back with restore_version. Not for what is in the file now: use read_file.
- takes: folder, path
- answers: every saved version of a file, newest first: when, size, whether the person or an app saved it, and the version to pass to restore_version
- label: Read
Writes
create_file
Use this when the person asks to save text from the chat as a new file in one of their Folder folders. Refuses when something is already at that path, so it never replaces a file. Not for changing an existing file: use edit_file. Not for photos or PDFs from the chat: use save_file.
- takes: folder, path, content
- label: Write
- undo: none: the person deletes it in Finder or the Files app; its history keeps it
save_file
Use this when the person asks to keep a file in one of their Folder folders: a file they dropped in the chat (file) or a file on the web (file_url, https). Up to 10 MB. Refuses when something is already at that path. Not for text you wrote in the chat: use create_file.
- takes: folder, path, file (optional), file_url (optional)
- label: Write
- undo: none: the person deletes it in Finder or the Files app; its history keeps it
edit_file
Use this when the person asks to change text in one of their text files in Folder. Replaces old_text, which must appear exactly once, with new_text; read_file first. Refuses when the file changed since it was read. Not for making a new file: use create_file.
- takes: folder, path, old_text, new_text
- label: Write
- undo: restore_version
restore_version
Use this when the person asks to undo a change to a file, or to bring back an earlier version: list_versions lists the versions. Not for files in another folder or ones they never saved here.
- takes: folder, path, version
- label: Write
- undo: restore_version
create_share_link
Use this when the person asks for a link to one of their files that someone else can open. The first call answers who will be able to open it and a confirm code; ask the person, and only after they say yes call again with that confirm. Only for folders in their own Cloudflare. Not for opening a file yourself: use read_file.
- takes: folder, path, expires_in_days (optional), confirm (optional)
- label: Sensitive write (asks first)
- undo: revoke_share
revoke_share
Use this when the person asks to stop a link to one of their files from opening. The first call answers how many links would stop and a confirm code; ask the person, and only after they say yes call again with that confirm. Not for deleting the file, which this connection cannot do.
- takes: folder, path, confirm (optional)
- label: Sensitive write (asks first)
- undo: create_share_link
Shapes
- file: ChatGPT’s file param, exactly {download_url!, file_id!, mime_type, file_name}, for a file the person dropped in the chat; file_url is any https file instead. save_file needs one of the two
- days: a whole number of days, 1 to 365: how long a share link opens; left out, the link opens until it is revoked
Questions?
Write to folder@tinysend.com.