You're viewing a demo portfolio

Join the waitlist
PRSM
This tool is no longer present in the server's latest manifest. Showing the last observed version (server version 0.1.0).

manage_storage

Inactive

Tool of io.github.butterbase-ai/mcp

declared in 0.1.0

Manage app storage: presigned upload/download URLs, list/delete objects, update config. Actions: - "upload_url": Get a presigned PUT URL to upload a file (expires in 15 min) - "download_url": Get a presigned GET URL for a stored file (expires in 1 hour) - "list": List all objects in app storage with metadata - "delete": Permanently delete an object from S3 + database - "update_config": Update storage config (e.g., publicReadEnabled) Parameters by action: upload_url: { app_id, action: "upload_url", filename, content_type, size_bytes, public? } download_url: { app_id, action: "download_url", object_id } list: { app_id, action: "list" } delete: { app_id, action: "delete", object_id } update_config: { app_id, action: "update_config", publicReadEnabled? } object_id is the UUID returned from upload or list. Do NOT pass the s3_key / bucket path (e.g. app_id/user_id/uuid_file.jpg) — that is metadata only and is not a usable URL. Upload workflow: 1. action: "upload_url" → returns { upload_url, object_id, expires_at } 2. PUT the file to upload_url with the matching Content-Type header 3. Persist object_id (e.g. users.avatar_id) 4. Later: action: "download_url" with that object_id Set public: true on upload_url to make the file downloadable by any authenticated user (e.g. post images, avatars). Files are private by default. publicReadEnabled (update_config): - true: any authenticated user can download any file (uploads/deletes still user-scoped) - false (default): users can only download their own files; platform auth (API key) can still access any file Limits & errors: - Files: max 10 MB each (QUOTA_FILE_SIZE_EXCEEDED) - QUOTA_STORAGE_EXCEEDED: delete unused files or upgrade plan - RESOURCE_NOT_FOUND: app or object doesn't exist (verify object_id, not s3_key) - delete is idempotent (no-op if already deleted); upload/download URL generation is not (new URL each call) Warning: "delete" cannot be undone. Update DB references (e.g. users.avatar_id) first.

Parameters schema

{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "app_id",
    "action"
  ],
  "properties": {
    "action": {
      "enum": [
        "upload_url",
        "download_url",
        "list",
        "delete",
        "update_config"
      ],
      "type": "string",
      "description": "The action to perform"
    },
    "app_id": {
      "type": "string",
      "description": "The app ID (e.g. app_abc123def456)"
    },
    "public": {
      "type": "boolean",
      "description": "Optional for upload_url. Mark file as publicly downloadable. Default: false."
    },
    "filename": {
      "type": "string",
      "description": "Required for upload_url. The filename for the upload."
    },
    "object_id": {
      "type": "string",
      "description": "Required for download_url and delete. Storage object UUID — not the s3_key path."
    },
    "size_bytes": {
      "type": "integer",
      "description": "Required for upload_url. File size in bytes.",
      "exclusiveMinimum": 0
    },
    "content_type": {
      "type": "string",
      "description": "Required for upload_url. MIME type (e.g. \"image/png\", \"application/pdf\")."
    },
    "publicReadEnabled": {
      "type": "boolean",
      "description": "Optional for update_config. Enable/disable app-wide public read."
    }
  },
  "additionalProperties": false
}

What this tool wraps· 0 endpoints

min confidence0.700.50

No endpoints wrapped at confidence ≥ 0.50.

Parent server

io.github.butterbase-ai/mcp

https://github.com/butterbase-ai/butterbase-oss

1/7 registries
View full server →
manage_storage — io.github.butterbase-ai/mcp — PRSM MCP