Skip to main content
Glama
danizeap

Supabase Storage MCP Server

by danizeap

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SUPABASE_URLYesYour Supabase project URL (e.g., https://abcdefghijklmno.supabase.co).
SUPABASE_SERVICE_ROLE_KEYYesYour Supabase service role key (sensitive, treat like a password).

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_bucketsA

List all Supabase Storage buckets with their settings: whether each is public or private, its file size limit, and which file types it accepts. Use this first when someone asks 'where can I upload this?' or before creating a new bucket, so you don't duplicate one that already exists.

create_bucketA

Create a new Supabase Storage bucket. Bucket names must start with one of: marketing, brand, campaigns, media, assets, then use lowercase letters, numbers, and dashes (for example: "marketing-q3-launch" or "brand-logos"). By default the bucket is PRIVATE (files need a signed link to view), accepts common media (images, video, audio, PDF), and limits files to 50MB. Set public=true only for assets meant to be shared openly on the web. If the name breaks the convention or already exists, creation fails with a clear explanation — nothing is overwritten.

upload_fileA

Upload a local file (image, video, audio, PDF, design asset) to a bucket. The file type and size are checked against the bucket's rules BEFORE uploading, so problems are caught early with a clear message. This NEVER overwrites: if a file with the same name already exists, the upload fails and asks for a different name. On success it returns the stored path, and for private buckets it reminds you to make a shareable link with 'get_signed_url'.

list_filesA

List the files in a bucket, with their sizes and last-updated dates. Optionally pass a folder prefix (e.g. 'logos') to look inside a specific folder. Handy for checking what's already there before uploading, or finding the exact path to make a shareable link.

get_signed_urlA

Create a temporary shareable link to a file. This works for PRIVATE buckets: anyone with the link can view the file until it expires. The default link lasts 7 days; you can ask for anywhere from 1 to 30 days. Use this to share media that shouldn't be public forever.

get_public_urlA

Get the permanent public web link for a file. This only works for PUBLIC buckets — files anyone can view. If the bucket is private, this explains that and points you to 'get_signed_url' for a temporary link instead. Use this for logos, campaign images, and other openly shared assets.

move_fileA

Move or rename a file within a bucket (for example, tidy 'draft.png' into 'logos/final.png'). This NEVER overwrites: if something already exists at the new path, the move fails and asks you to pick a different name. It moves the file, so the old path no longer holds it.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/danizeap/Supabase-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server