MCP server
Let your AI agent share files from your own bucket
aktar mcp connects Claude, Cursor, VS Code, Codex and other agents to the Aktar app. Ask for a link and the agent uploads the file to your own S3, Cloudflare R2 or Backblaze B2 bucket, then hands you the URL or Markdown. Your storage keys never leave Aktar.
npm install -g @getaktar/cli claude mcp add --scope user aktar -- aktar mcpThen run aktar login once. Cursor, VS Code, Codex and others are below.
Upload the checkout-bug screenshot on my Desktop and give me a Markdown link for the issue.
upload_file{ "path": "~/Desktop/checkout-bug.png" }Uploaded to your Screenshots destination. Here's the Markdown for the issue:
What you can ask
Say it the way you'd say it to a colleague. The agent picks the tool, Aktar does the upload with the destination's own settings, and you get the link in the conversation.
-
Share a file from a session
“Zip the build and give me a link I can send to QA.”
The agent makes the file and uploads it. Without a destination named, Aktar picks one by file type (each destination's Use For), like a drop on the menu bar.
Tools:
upload_file -
Images for a README or an issue
“Add the screenshot I just copied to the README.”
It uploads the image, or what's on the clipboard, and writes the Markdown where it belongs. WebP conversion and location removal happen in Aktar, as the destination says.
Tools:
upload_file,upload_clipboard -
Update a file, keep its link
“Replace the onboarding PDF I shared last week with this new version.”
It finds the upload in history and writes the new file over it. Everyone who has the link sees the new version; nothing needs to be sent again.
Tools:
search_uploads,replace_file -
Find what you uploaded
“What was the link to the invoice I uploaded on Monday?”
It searches Aktar's history by name and date, and can look at thumbnails to tell screenshots, photos and documents apart.
Tools:
search_uploads,get_thumbnail -
A link that expires
“Give me a 30-minute link to the contract in the Legal bucket.”
A presigned link to any file in a bucket, for private buckets or sharing for a limited time. Nothing in the bucket changes.
Tools:
create_temporary_link -
Look around your buckets
“What's in the releases folder of my Builds bucket?”
It lists folders and files, including ones not uploaded with Aktar, and knows which destination is used for which file types.
Tools:
list_bucket,list_destinations
Set up in two steps
Aktar for Mac or Windows does the uploading, so it has to be running on the same computer as your agent.
Install the
aktarcommand and connect it to Aktar. In Aktar, open Settings > Integrations, turn on Allow local connections and copy the token, then paste it intoaktar login.npm install -g @getaktar/cli aktar loginAdd Aktar to your agent. The agent starts
aktar mcpby itself when it needs it.Claude Code
One command, for every project. Check with
/mcpin Claude Code.claude mcp add --scope user aktar -- aktar mcpCodex
One command; it goes into
~/.codex/config.toml.codex mcp add aktar -- aktar mcpClaude Desktop
Open Settings > Developer > Edit Config, add this, and restart Claude Desktop.
In claude_desktop_config.json{ "mcpServers": { "aktar": { "command": "aktar", "args": ["mcp"] } } }Cursor
Add this to the file, or to
.cursor/mcp.jsonin one project.In ~/.cursor/mcp.json{ "mcpServers": { "aktar": { "command": "aktar", "args": ["mcp"] } } }VS Code
One command adds it to your VS Code profile. Copilot's agent mode then lists Aktar's tools.
code --add-mcp '{"name":"aktar","command":"aktar","args":["mcp"]}'Windsurf
Add this to the file, then refresh the MCP servers in Windsurf's settings.
In ~/.codeium/windsurf/mcp_config.json{ "mcpServers": { "aktar": { "command": "aktar", "args": ["mcp"] } } }
If an app says it can't find aktar, put the full path from which aktar in command; desktop apps don't always load your shell's PATH. Without a global install, use npx as the command and ["-y", "@getaktar/cli", "mcp"] as the arguments. Any other agent that runs MCP servers over stdio works the same way.
Tools your agent gets
Searching, listing, temporary links and thumbnails only look. Uploading and replacing change your bucket, and your agent asks before using them unless you allow it.
| Tool | What it does |
|---|---|
upload_file | Uploads a file and returns its link, Markdown and HTML. Destination, name, folder and expiry are optional. |
upload_clipboard | Uploads the file or image on the clipboard. |
replace_file | Writes a new file over an upload, keeping its link. Needs Aktar for Mac 0.14.0 or Windows 0.7.0. |
search_uploads | Searches the upload history. |
list_destinations | Lists destinations and the file types each one is used for. |
list_bucket | Lists a bucket's folders and files, including files not uploaded with Aktar. |
create_temporary_link | Makes a link that stops working after a while (a presigned URL). |
get_thumbnail | Shows the agent a preview of an upload. Needs Aktar for Mac 0.13.0 or Windows 0.6.0. |
list_watched_folders | Lists watched folders and their status. |
get_status | Checks the connection to Aktar. |
delete_upload | Deletes an upload from its bucket. Only with --allow-delete. |
You decide what it can touch
An upload is public to anyone with the link, so the server is careful by default and you can narrow it further.
-
Uploading is publishing
The agent is told to upload only what you asked to share, and agents ask before calling a tool that uploads.
-
Only from your folders
--rootlimits uploads to the folders you name. Paths are resolved, symlinks included, so a link to~/.sshor a.envelsewhere is refused. -
Read-only, and no deleting
--read-onlyleaves out every tool that writes. Deleting from a bucket isn't offered at all unless you add--allow-delete. -
Your keys stay in Aktar
The server talks to Aktar on 127.0.0.1 with your token. The agent never sees your access keys, and nothing goes through a server of ours.
aktar mcp --root ~/Projects --root ~/Desktop
aktar mcp --read-onlyNo MCP? Use the skill
For agents that use skills but not MCP, aktar skill prints a SKILL.md that teaches them the aktar command: what to run, how to read --json, and to upload only what you asked. Every command is in the CLI docs.
mkdir -p ~/.claude/skills/aktar
aktar skill > ~/.claude/skills/aktar/SKILL.mdRequirements
- Aktar for Mac or Windows, running, with at least one destination
-
The
aktarcommand 0.4.0 or later (Node.js 18 or later) - An agent that runs MCP servers over stdio
- Replacing files: Aktar for Mac 0.14.0 or Windows 0.7.0. Thumbnails: Mac 0.13.0 or Windows 0.6.0
- Open source (MIT) on GitHub, listed in the official MCP Registry
Questions
Does it work with ChatGPT or other agents in the browser?
Not yet. The server runs on your computer next to Aktar and talks to agents over stdio, so it works with agents that run on your computer: Claude Code, Claude Desktop, Cursor, VS Code, Codex, Windsurf and others.
Can the agent upload files I didn't ask for?
It can only call the tools you allow, and agents ask before calling a tool that uploads unless you've said otherwise. To be sure, start the server with --root so only the folders you name can be uploaded from, or --read-only.
Which bucket does it upload to?
The same as a drop on Aktar's menu bar: the destination whose Use For matches the file type, or the selected one. Name a destination in your request and the agent uses that one.
Does it cost anything?
No. Aktar, the CLI and the MCP server are free. You pay your storage provider for the bucket, as usual.
Does it work on Windows?
Yes. The aktar command works with Aktar for Windows the same way, and so does every agent above.