Supabase Storage MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SUPABASE_URL | Yes | Your Supabase project URL (e.g., https://abcdefghijklmno.supabase.co). | |
| SUPABASE_SERVICE_ROLE_KEY | Yes | Your Supabase service role key (sensitive, treat like a password). |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| 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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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