Self-hosted · Open source · Agent-native

Modern file storage
built for AI agents

Connect your agent over MCP or give it an API key. It uploads, manages, and shares files. You stay in control.

See how it worksGitHub

Trusted by

How it works

From login to live in four steps

01

Login to dashboard

Sign in with Google to access your personal dashboard.

02

Get an API Key

Generate an API key from your dashboard in one click.

03

Hand it to your agent

Add Stashy as an MCP server, or pass the key to your agent and point it to your instance.

04

Upload & Share

Your agent uploads files and shares them at a clean URL.

Features

Everything your agent needs

Multi-protocol API

MCP, REST, gRPC, gRPC-Web, and Connect — your agent speaks whatever protocol it prefers.

Any storage backend

In-memory for dev, local disk, Google Cloud Storage, Amazon S3, MinIO, or Cloudflare R2.

You choose who sees it

Keep each file private, share it with your team, or make it public. Change it at any time.

CDN-ready URLs

Give a file a readable slug and serve it from your own domain or CDN.

Self-hosted & open source

Deploy it yourself — Docker, bare metal, or any cloud. Your data, your rules.

Domain-restricted access

Restrict access to your company's email domain. Keep your storage private to your team.

Connect your agent

From a local file to a public URL

Same result either way. Use MCP with Claude Code and other MCP clients, or call the REST API from your own agents and scripts.

Claude Code
# 1. Add Stashy once
claude mcp add --transport http stashy http://127.0.0.1:7487/mcp

# 2. Ask for what you need
> Upload ~/Desktop/screenshot.png and make it public

● stashy · upload_file(path: "~/Desktop/screenshot.png", visibility: "public")
Done: https://stashy.example.com/V1StGXR8_Z5jdHi6B-myT/screenshot

Stashy Desktop

http://127.0.0.1:7487/mcp

Menu bar app that keeps your keys in the system keychain. No key in your agent config, and your agent can upload and download files on your computer.

list_filesget_fileupdate_filedelete_fileupload_filereplace_filedownload_file

Stashy Server

{HOSTNAME}/mcp

Built into every Stashy server. Connect with an API key sent as a Bearer token. Manages files already in Stashy.

list_filesget_fileupdate_filedelete_file

With Desktop, file contents go straight between disk and the server, so large files don't use up your agent's context. MCP docs →

Deploy in minutes

Docker Compose or bare Go binary. SQLite by default, PostgreSQL when you're ready.

# Quick start
export SESSION_SECRET="your-secret"
export GOOGLE_CLIENT_ID="..."
export GOOGLE_CLIENT_SECRET="..."

stashy serve

Full setup guide in the docs.

Hosted version

Interested?

No infra, no setup. Get notified at launch.

No spam. Just one email when it launches.

Or reach us at contact@stashy.sh