{
  "service": "supabase",
  "displayName": "Supabase",
  "categories": [
    "Developer Tools",
    "Data",
    "Storage"
  ],
  "authTypes": [
    "oauth2",
    "api_key"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://api.supabase.com/v1/oauth/authorize",
      "tokenUrl": "https://api.supabase.com/v1/oauth/token",
      "scopes": [
        "organizations:read",
        "projects:read",
        "secrets:read",
        "secrets:write",
        "database:read",
        "storage:read",
        "edge_functions:read"
      ],
      "tokenEndpointAuthMethod": "client_secret_basic"
    },
    {
      "type": "api_key",
      "label": "Personal Access Token",
      "placeholder": "sbp_...",
      "description": "Supabase personal access token used with the Authorization Bearer header. Create it in the Supabase dashboard: https://supabase.com/dashboard/account/tokens.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://supabase.com",
  "actions": [
    {
      "id": "supabase.create_project_api_key",
      "service": "supabase",
      "name": "create_project_api_key",
      "description": "Create a publishable or secret API key for a Supabase project.",
      "requiredScopes": [
        "secrets:write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "name": {
            "type": "string",
            "minLength": 4,
            "maxLength": 64,
            "description": "The API key name. Use lowercase letters, numbers, and underscores; it must start with a lowercase letter or underscore.",
            "pattern": "^[a-z_][a-z0-9_]+$"
          },
          "type": {
            "type": "string",
            "enum": [
              "publishable",
              "secret"
            ],
            "description": "The type of API key to create."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "The optional description for the API key."
          },
          "reveal": {
            "type": "boolean",
            "description": "Whether to reveal the full API key value in the response."
          },
          "secretJwtTemplate": {
            "type": "object",
            "additionalProperties": true,
            "description": "The JWT template for secret API keys."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "name",
          "type"
        ],
        "description": "Input parameters for creating a project API key."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the API key."
              },
              "name": {
                "type": "string",
                "description": "The name of the API key."
              },
              "type": {
                "type": "string",
                "enum": [
                  "legacy",
                  "publishable",
                  "secret",
                  "unknown"
                ],
                "description": "The type of the API key."
              },
              "prefix": {
                "type": "string",
                "description": "The prefix portion of the API key."
              },
              "hash": {
                "type": "string",
                "description": "The hash of the API key."
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The description of the API key."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "apiKey": {
                "type": "string",
                "description": "The full API key value when reveal is true and Supabase returns it."
              },
              "insertedAt": {
                "type": "string",
                "description": "The timestamp when the API key was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "The timestamp when the API key was last updated."
              },
              "secretJwtTemplate": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The JWT template for secret API keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "type",
              "prefix",
              "hash"
            ],
            "description": "A Supabase API key record."
          }
        },
        "additionalProperties": false,
        "required": [
          "apiKey"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.delete_project_api_key",
      "service": "supabase",
      "name": "delete_project_api_key",
      "description": "Delete a Supabase project API key.",
      "requiredScopes": [
        "secrets:write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "apiKeyId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the project API key."
          },
          "reveal": {
            "type": "boolean",
            "description": "Whether Supabase should reveal key data in the delete response."
          },
          "wasCompromised": {
            "type": "boolean",
            "description": "Whether the key is being deleted because it was compromised."
          },
          "reason": {
            "type": "string",
            "minLength": 1,
            "description": "Optional deletion reason sent to Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "apiKeyId"
        ],
        "description": "Input parameters for deleting a project API key."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the API key."
              },
              "name": {
                "type": "string",
                "description": "The name of the API key."
              },
              "type": {
                "type": "string",
                "enum": [
                  "legacy",
                  "publishable",
                  "secret",
                  "unknown"
                ],
                "description": "The type of the API key."
              },
              "prefix": {
                "type": "string",
                "description": "The prefix portion of the API key."
              },
              "hash": {
                "type": "string",
                "description": "The hash of the API key."
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The description of the API key."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "apiKey": {
                "type": "string",
                "description": "The full API key value when reveal is true and Supabase returns it."
              },
              "insertedAt": {
                "type": "string",
                "description": "The timestamp when the API key was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "The timestamp when the API key was last updated."
              },
              "secretJwtTemplate": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The JWT template for secret API keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "type",
              "prefix",
              "hash"
            ],
            "description": "A Supabase API key record."
          }
        },
        "additionalProperties": false,
        "required": [
          "apiKey"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.delete_project_secrets",
      "service": "supabase",
      "name": "delete_project_secrets",
      "description": "Bulk delete secrets from a Supabase project.",
      "requiredScopes": [
        "secrets:write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "names": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A secret name."
            },
            "description": "The names of secrets to delete.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "names"
        ],
        "description": "Input parameters for deleting project secrets."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Supabase accepted the secret delete request."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.generate_typescript_types",
      "service": "supabase",
      "name": "generate_typescript_types",
      "description": "Generate TypeScript database types for a Supabase project.",
      "requiredScopes": [
        "database:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "includedSchemas": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Database schemas to include, such as public or auth.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef"
        ],
        "description": "Input parameters for generating TypeScript types."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "typescript": {
            "type": "string",
            "description": "The generated TypeScript type definitions."
          }
        },
        "additionalProperties": false,
        "required": [
          "typescript"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.get_edge_function",
      "service": "supabase",
      "name": "get_edge_function",
      "description": "Get metadata for one Supabase Edge Function by slug.",
      "requiredScopes": [
        "edge_functions:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "functionSlug": {
            "type": "string",
            "minLength": 1,
            "description": "The Edge Function slug."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "functionSlug"
        ],
        "description": "Input parameters for fetching an Edge Function."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "function": {
            "type": "object",
            "additionalProperties": true,
            "description": "A JSON object returned by Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "function"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.get_organization",
      "service": "supabase",
      "name": "get_organization",
      "description": "Get details for a Supabase organization by slug.",
      "requiredScopes": [
        "organizations:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationSlug": {
            "type": "string",
            "minLength": 1,
            "description": "The Supabase organization slug."
          }
        },
        "additionalProperties": false,
        "required": [
          "organizationSlug"
        ],
        "description": "Input parameters for fetching an organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organization": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the organization."
              },
              "name": {
                "type": "string",
                "description": "The name of the organization."
              },
              "plan": {
                "type": "string",
                "description": "The subscription plan of the organization."
              }
            },
            "additionalProperties": true,
            "required": [
              "id",
              "name",
              "plan"
            ],
            "description": "The Supabase organization detail payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "organization"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.get_project",
      "service": "supabase",
      "name": "get_project",
      "description": "Get detailed metadata for a Supabase project by project ref.",
      "requiredScopes": [
        "projects:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef"
        ],
        "description": "Input parameters identifying a Supabase project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the project."
              },
              "ref": {
                "type": "string",
                "description": "The project reference identifier."
              },
              "organizationId": {
                "type": "string",
                "description": "The organization ID this project belongs to."
              },
              "organizationSlug": {
                "type": "string",
                "description": "The organization slug."
              },
              "name": {
                "type": "string",
                "description": "The name of the project."
              },
              "region": {
                "type": "string",
                "description": "The cloud region of the project."
              },
              "status": {
                "type": "string",
                "enum": [
                  "ACTIVE_HEALTHY",
                  "ACTIVE_UNHEALTHY",
                  "COMING_UP",
                  "GOING_DOWN",
                  "INACTIVE",
                  "INIT_FAILED",
                  "REMOVED",
                  "RESTARTING",
                  "UNKNOWN",
                  "UPGRADING",
                  "PAUSING",
                  "RESTORING",
                  "RESTORE_FAILED",
                  "PAUSE_FAILED",
                  "RESIZING"
                ],
                "description": "The current status of the Supabase project."
              },
              "createdAt": {
                "type": "string",
                "description": "The timestamp when the project was created."
              },
              "database": {
                "type": "object",
                "properties": {
                  "host": {
                    "type": "string",
                    "description": "The database host address."
                  },
                  "version": {
                    "type": "string",
                    "description": "The database version."
                  },
                  "postgresEngine": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "The Postgres engine identifier."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "releaseChannel": {
                    "anyOf": [
                      {
                        "type": "string",
                        "description": "The release channel of the database."
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "additionalProperties": false,
                "required": [
                  "host",
                  "version"
                ],
                "description": "A Supabase project database configuration."
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "ref",
              "organizationId",
              "organizationSlug",
              "name",
              "region",
              "status",
              "createdAt",
              "database"
            ],
            "description": "A Supabase project detail record."
          }
        },
        "additionalProperties": false,
        "required": [
          "project"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.get_project_api_key",
      "service": "supabase",
      "name": "get_project_api_key",
      "description": "Get one API key record from a Supabase project.",
      "requiredScopes": [
        "secrets:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "apiKeyId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the project API key."
          },
          "reveal": {
            "type": "boolean",
            "description": "Whether to reveal the full API key value."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "apiKeyId"
        ],
        "description": "Input parameters for fetching one project API key."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the API key."
              },
              "name": {
                "type": "string",
                "description": "The name of the API key."
              },
              "type": {
                "type": "string",
                "enum": [
                  "legacy",
                  "publishable",
                  "secret",
                  "unknown"
                ],
                "description": "The type of the API key."
              },
              "prefix": {
                "type": "string",
                "description": "The prefix portion of the API key."
              },
              "hash": {
                "type": "string",
                "description": "The hash of the API key."
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The description of the API key."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "apiKey": {
                "type": "string",
                "description": "The full API key value when reveal is true and Supabase returns it."
              },
              "insertedAt": {
                "type": "string",
                "description": "The timestamp when the API key was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "The timestamp when the API key was last updated."
              },
              "secretJwtTemplate": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The JWT template for secret API keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "type",
              "prefix",
              "hash"
            ],
            "description": "A Supabase API key record."
          }
        },
        "additionalProperties": false,
        "required": [
          "apiKey"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.get_project_health",
      "service": "supabase",
      "name": "get_project_health",
      "description": "Check health for selected services in a Supabase project.",
      "requiredScopes": [
        "projects:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "services": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "auth",
                "db",
                "db_postgres_user",
                "pooler",
                "realtime",
                "rest",
                "storage",
                "pg_bouncer"
              ],
              "description": "A Supabase service name to check health for."
            },
            "description": "The services to check.",
            "minItems": 1
          },
          "timeoutMs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 10000,
            "description": "Optional timeout in milliseconds, up to 10000."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "services"
        ],
        "description": "Input parameters for checking project service health."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "services": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "enum": [
                    "auth",
                    "db",
                    "db_postgres_user",
                    "pooler",
                    "realtime",
                    "rest",
                    "storage",
                    "pg_bouncer"
                  ],
                  "description": "A Supabase service name to check health for."
                },
                "healthy": {
                  "type": "boolean",
                  "description": "Deprecated upstream health flag. Prefer status when present."
                },
                "status": {
                  "type": "string",
                  "description": "The service health status."
                },
                "error": {
                  "type": "string",
                  "description": "The service health error message when present."
                }
              },
              "additionalProperties": true,
              "required": [
                "name",
                "healthy",
                "status",
                "error"
              ],
              "description": "A Supabase service health result."
            },
            "description": "The health results returned by Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "services"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_available_regions",
      "service": "supabase",
      "name": "list_available_regions",
      "description": "List Supabase regions available for creating projects in an organization.",
      "requiredScopes": [
        "organizations:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationSlug": {
            "type": "string",
            "minLength": 1,
            "description": "The Supabase organization slug."
          },
          "continent": {
            "type": "string",
            "enum": [
              "NA",
              "SA",
              "EU",
              "AF",
              "AS",
              "OC",
              "AN"
            ],
            "description": "Optional continent code for regional recommendations."
          },
          "desiredInstanceSize": {
            "type": "string",
            "minLength": 1,
            "description": "Optional desired instance size for availability."
          }
        },
        "additionalProperties": false,
        "required": [
          "organizationSlug"
        ],
        "description": "Input parameters for listing available project regions."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "regions": {
            "type": "object",
            "additionalProperties": true,
            "description": "A JSON object returned by Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "regions"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_edge_functions",
      "service": "supabase",
      "name": "list_edge_functions",
      "description": "List Edge Functions in a Supabase project.",
      "requiredScopes": [
        "edge_functions:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef"
        ],
        "description": "Input parameters identifying a Supabase project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "functions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A JSON object returned by Supabase."
            },
            "description": "The Edge Functions returned by Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "functions"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_organization_members",
      "service": "supabase",
      "name": "list_organization_members",
      "description": "List members of a Supabase organization.",
      "requiredScopes": [
        "organizations:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationSlug": {
            "type": "string",
            "minLength": 1,
            "description": "The Supabase organization slug."
          }
        },
        "additionalProperties": false,
        "required": [
          "organizationSlug"
        ],
        "description": "Input parameters for listing organization members."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "members": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "userId": {
                  "type": "string",
                  "description": "The unique identifier of the member."
                },
                "userName": {
                  "type": "string",
                  "description": "The display name of the member."
                },
                "email": {
                  "type": "string",
                  "description": "The email address of the member."
                },
                "roleName": {
                  "type": "string",
                  "description": "The organization role name of the member."
                },
                "mfaEnabled": {
                  "type": "boolean",
                  "description": "Whether the member has MFA enabled."
                }
              },
              "additionalProperties": true,
              "required": [
                "userId",
                "userName",
                "email",
                "roleName",
                "mfaEnabled"
              ],
              "description": "A Supabase organization member."
            },
            "description": "The organization members."
          }
        },
        "additionalProperties": false,
        "required": [
          "members"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_organization_projects",
      "service": "supabase",
      "name": "list_organization_projects",
      "description": "List projects in a Supabase organization with optional search and pagination.",
      "requiredScopes": [
        "projects:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationSlug": {
            "type": "string",
            "minLength": 1,
            "description": "The Supabase organization slug."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "The number of projects to skip."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of projects to return, up to 100."
          },
          "search": {
            "type": "string",
            "minLength": 1,
            "description": "Search projects by name."
          },
          "sort": {
            "type": "string",
            "enum": [
              "name_asc",
              "name_desc",
              "created_asc",
              "created_desc"
            ],
            "description": "The sort order for projects."
          },
          "statuses": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "ACTIVE_HEALTHY",
                "ACTIVE_UNHEALTHY",
                "COMING_UP",
                "GOING_DOWN",
                "INACTIVE",
                "INIT_FAILED",
                "REMOVED",
                "RESTARTING",
                "UNKNOWN",
                "UPGRADING",
                "PAUSING",
                "RESTORING",
                "RESTORE_FAILED",
                "PAUSE_FAILED",
                "RESIZING"
              ],
              "description": "The current status of the Supabase project."
            },
            "description": "Project statuses to include.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "organizationSlug"
        ],
        "description": "Input parameters for listing organization projects."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "ref": {
                  "type": "string",
                  "description": "The project reference identifier."
                },
                "name": {
                  "type": "string",
                  "description": "The project name."
                },
                "region": {
                  "type": "string",
                  "description": "The project region."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "ACTIVE_HEALTHY",
                    "ACTIVE_UNHEALTHY",
                    "COMING_UP",
                    "GOING_DOWN",
                    "INACTIVE",
                    "INIT_FAILED",
                    "REMOVED",
                    "RESTARTING",
                    "UNKNOWN",
                    "UPGRADING",
                    "PAUSING",
                    "RESTORING",
                    "RESTORE_FAILED",
                    "PAUSE_FAILED",
                    "RESIZING"
                  ],
                  "description": "The current status of the Supabase project."
                }
              },
              "additionalProperties": true,
              "required": [
                "ref",
                "name",
                "region",
                "status"
              ],
              "description": "A project returned from an organization listing."
            },
            "description": "The projects in the organization."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "count": {
                "type": "number",
                "description": "The total number of matching records."
              },
              "limit": {
                "type": "number",
                "description": "The maximum number of records returned."
              },
              "offset": {
                "type": "number",
                "description": "The number of records skipped."
              }
            },
            "additionalProperties": false,
            "required": [
              "count",
              "limit",
              "offset"
            ],
            "description": "Pagination metadata returned by Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "projects",
          "pagination"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_organizations",
      "service": "supabase",
      "name": "list_organizations",
      "description": "List the organizations available to the authenticated Supabase account.",
      "requiredScopes": [
        "organizations:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organizations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the organization."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the organization."
                },
                "slug": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The URL slug of the organization."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name"
              ],
              "description": "A Supabase organization summary."
            },
            "description": "The list of organizations."
          }
        },
        "additionalProperties": false,
        "required": [
          "organizations"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_project_api_keys",
      "service": "supabase",
      "name": "list_project_api_keys",
      "description": "List API keys for a Supabase project.",
      "requiredScopes": [
        "secrets:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "reveal": {
            "type": "boolean",
            "description": "Whether to reveal the full API key values."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef"
        ],
        "description": "Input parameters for listing project API keys."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "apiKeys": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the API key."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the API key."
                },
                "type": {
                  "type": "string",
                  "enum": [
                    "legacy",
                    "publishable",
                    "secret",
                    "unknown"
                  ],
                  "description": "The type of the API key."
                },
                "prefix": {
                  "type": "string",
                  "description": "The prefix portion of the API key."
                },
                "hash": {
                  "type": "string",
                  "description": "The hash of the API key."
                },
                "description": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The description of the API key."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "apiKey": {
                  "type": "string",
                  "description": "The full API key value when reveal is true and Supabase returns it."
                },
                "insertedAt": {
                  "type": "string",
                  "description": "The timestamp when the API key was created."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The timestamp when the API key was last updated."
                },
                "secretJwtTemplate": {
                  "anyOf": [
                    {
                      "type": "object",
                      "additionalProperties": true,
                      "description": "The JWT template for secret API keys."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "name",
                "type",
                "prefix",
                "hash"
              ],
              "description": "A Supabase API key record."
            },
            "description": "The list of API keys."
          }
        },
        "additionalProperties": false,
        "required": [
          "apiKeys"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_project_secrets",
      "service": "supabase",
      "name": "list_project_secrets",
      "description": "List secrets configured for a Supabase project.",
      "requiredScopes": [
        "secrets:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef"
        ],
        "description": "Input parameters identifying a Supabase project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "secrets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "The secret name."
                },
                "value": {
                  "type": "string",
                  "description": "The secret value when Supabase returns it."
                },
                "updatedAt": {
                  "type": "string",
                  "description": "The timestamp when the secret was last updated."
                }
              },
              "additionalProperties": false,
              "required": [
                "name"
              ],
              "description": "A Supabase project secret."
            },
            "description": "The project secrets returned by Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "secrets"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_projects",
      "service": "supabase",
      "name": "list_projects",
      "description": "List Supabase projects visible to the authenticated account.",
      "requiredScopes": [
        "projects:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input parameters are required for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier of the project."
                },
                "organizationId": {
                  "type": "string",
                  "description": "The organization ID this project belongs to."
                },
                "name": {
                  "type": "string",
                  "description": "The name of the project."
                },
                "region": {
                  "type": "string",
                  "description": "The cloud region of the project."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "ACTIVE_HEALTHY",
                    "ACTIVE_UNHEALTHY",
                    "COMING_UP",
                    "GOING_DOWN",
                    "INACTIVE",
                    "INIT_FAILED",
                    "REMOVED",
                    "RESTARTING",
                    "UNKNOWN",
                    "UPGRADING",
                    "PAUSING",
                    "RESTORING",
                    "RESTORE_FAILED",
                    "PAUSE_FAILED",
                    "RESIZING"
                  ],
                  "description": "The current status of the Supabase project."
                },
                "createdAt": {
                  "type": "string",
                  "description": "The timestamp when the project was created."
                },
                "database": {
                  "type": "object",
                  "properties": {
                    "host": {
                      "type": "string",
                      "description": "The database host address."
                    },
                    "version": {
                      "type": "string",
                      "description": "The database version."
                    },
                    "postgresEngine": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "The Postgres engine identifier."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "releaseChannel": {
                      "anyOf": [
                        {
                          "type": "string",
                          "description": "The release channel of the database."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "required": [
                    "host",
                    "version"
                  ],
                  "description": "A Supabase project database configuration."
                }
              },
              "additionalProperties": false,
              "required": [
                "id",
                "organizationId",
                "name",
                "region",
                "createdAt"
              ],
              "description": "A Supabase project summary."
            },
            "description": "The list of projects."
          }
        },
        "additionalProperties": false,
        "required": [
          "projects"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.list_storage_buckets",
      "service": "supabase",
      "name": "list_storage_buckets",
      "description": "List Storage buckets for a Supabase project.",
      "requiredScopes": [
        "storage:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef"
        ],
        "description": "Input parameters identifying a Supabase project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "buckets": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "A JSON object returned by Supabase."
            },
            "description": "The Storage buckets returned by Supabase."
          }
        },
        "additionalProperties": false,
        "required": [
          "buckets"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.run_read_only_query",
      "service": "supabase",
      "name": "run_read_only_query",
      "description": "Run a SQL query through Supabase as the read-only database user.",
      "requiredScopes": [
        "database:read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "The SQL query to run with read-only permissions."
          },
          "parameters": {
            "type": "array",
            "items": {
              "description": "A query parameter."
            },
            "description": "Optional positional query parameters."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "query"
        ],
        "description": "Input parameters for running a read-only SQL query."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "result": {
            "description": "The raw read-only query response returned by Supabase, or null when Supabase returns no response body."
          }
        },
        "additionalProperties": false,
        "required": [
          "result"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.update_project_api_key",
      "service": "supabase",
      "name": "update_project_api_key",
      "description": "Update the name, description, or JWT template for a Supabase project API key.",
      "requiredScopes": [
        "secrets:write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "apiKeyId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique identifier of the project API key."
          },
          "name": {
            "type": "string",
            "minLength": 4,
            "maxLength": 64,
            "description": "The API key name. Use lowercase letters, numbers, and underscores; it must start with a lowercase letter or underscore.",
            "pattern": "^[a-z_][a-z0-9_]+$"
          },
          "description": {
            "anyOf": [
              {
                "type": "string",
                "description": "The updated API key description."
              },
              {
                "type": "null"
              }
            ]
          },
          "reveal": {
            "type": "boolean",
            "description": "Whether to reveal the full API key value in the response."
          },
          "secretJwtTemplate": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true,
                "description": "The updated JWT template for secret API keys."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "apiKeyId"
        ],
        "description": "Input parameters for updating a project API key."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier of the API key."
              },
              "name": {
                "type": "string",
                "description": "The name of the API key."
              },
              "type": {
                "type": "string",
                "enum": [
                  "legacy",
                  "publishable",
                  "secret",
                  "unknown"
                ],
                "description": "The type of the API key."
              },
              "prefix": {
                "type": "string",
                "description": "The prefix portion of the API key."
              },
              "hash": {
                "type": "string",
                "description": "The hash of the API key."
              },
              "description": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The description of the API key."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "apiKey": {
                "type": "string",
                "description": "The full API key value when reveal is true and Supabase returns it."
              },
              "insertedAt": {
                "type": "string",
                "description": "The timestamp when the API key was created."
              },
              "updatedAt": {
                "type": "string",
                "description": "The timestamp when the API key was last updated."
              },
              "secretJwtTemplate": {
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": true,
                    "description": "The JWT template for secret API keys."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "required": [
              "id",
              "name",
              "type",
              "prefix",
              "hash"
            ],
            "description": "A Supabase API key record."
          }
        },
        "additionalProperties": false,
        "required": [
          "apiKey"
        ],
        "description": "Action output."
      }
    },
    {
      "id": "supabase.upsert_project_secrets",
      "service": "supabase",
      "name": "upsert_project_secrets",
      "description": "Bulk create or update secrets for a Supabase project.",
      "requiredScopes": [
        "secrets:write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectRef": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64,
            "description": "The Supabase project reference, for example 'abcdefghijklmnopqrst'."
          },
          "secrets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 256,
                  "description": "The secret name. It must not start with the reserved SUPABASE_ prefix."
                },
                "value": {
                  "type": "string",
                  "maxLength": 24576,
                  "description": "The secret value."
                }
              },
              "additionalProperties": false,
              "required": [
                "name",
                "value"
              ],
              "description": "A secret name/value pair to upsert."
            },
            "description": "The secrets to create or update.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "projectRef",
          "secrets"
        ],
        "description": "Input parameters for upserting project secrets."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "description": "Whether Supabase accepted the secret upsert request."
          }
        },
        "additionalProperties": false,
        "required": [
          "success"
        ],
        "description": "Action output."
      }
    }
  ]
}
