Aliyun RDS Supabase MCP Server
OfficialEnables management and interaction with Supabase instances hosted on Alibaba Cloud RDS, including automatic credential retrieval and multi-instance support via Alibaba Cloud OpenAPI.
Provides tools for managing Supabase projects, including database schema operations, migrations, authentication, storage, realtime, and documentation search.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Aliyun RDS Supabase MCP Serverlist all tables in my database"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Aliyun RDS Supabase MCP Server
MCP (Model Context Protocol) server for Supabase instances running on Aliyun RDS. Enables AI assistants like Claude to interact with your Supabase instance hosted on Aliyun cloud infrastructure.
This project was adapted from the original work by HenkDz and is now maintained by Alibaba Cloud RDS.
Alibaba Cloud Operation
This server is purpose-built for Supabase instances that run on Aliyun RDS AI. Key capabilities:
Automatically fetches Supabase credentials from Alibaba Cloud OpenAPI
Only requires Alibaba Cloud AccessKey (AK) and SecretKey (SK)
Supports multiple Supabase instances with interactive selection
No need to manually configure
anon-key,service-key, orjwt-secret
Related MCP server: Supabase MCP
Features
This server exposes a rich set of tools for interacting with your Supabase instances running on Aliyun RDS:
Alibaba Cloud Management (Alibaba Cloud Mode only)
list_aliyun_supabase_instances: Lists all Supabase instances from Alibaba Cloud RDS AI.connect_to_supabase_instance: Connects to a specific Supabase instance by name.get_current_supabase_instance: Shows the currently connected instance.disconnect_supabase_instance: Disconnects from the current instance.
Database Schema
list_tables: Lists all tables in thepublicschema.list_extensions: Lists installed PostgreSQL extensions.get_database_connections: Retrieves current database connection information.get_database_stats: Gets database statistics (e.g., table sizes).
Migrations & SQL
list_migrations: Lists applied migrations from thesupabase_migrationsschema.apply_migration: Applies a new SQL migration via RPC.execute_sql: Executes arbitrary SQL (Requires helper function in DB or direct DB access).install_execute_sql_function: Installs theexecute_sqlRPC function into the database.generate_typescript_types: Generates TypeScript types from the database schema.
Project Configuration
get_project_url: Returns the configured Supabase project URL.get_anon_key: Returns the configured Supabase Anon Key.get_service_key: Returns the configured Supabase Service Role Key (if provided).verify_jwt_secret: Verifies the provided JWT secret against the database (Requires direct DB access).
Infrastructure
rebuild_hooks: Attempts to restart thepg_networker (if used).
Auth User Management
list_auth_users: Lists users fromauth.users.get_auth_user: Retrieves details for a specific user.create_auth_user: Creates a new user using Supabase Admin API.delete_auth_user: Deletes a user using Supabase Admin API.update_auth_user: Updates user details using Supabase Admin API.
Storage Insights
list_storage_buckets: Lists all storage buckets.list_storage_objects: Lists objects within a specific bucket.
Realtime Inspection
list_realtime_publications: Lists PostgreSQL publications (oftensupabase_realtime).
Documentation
search_docs: Searches Supabase official documentation using GraphQL queries.
RAG Agent Tools (when
--enable-rag-agentis set)All RAG Agent tools are dynamically loaded and prefixed with
rag_(e.g.,rag_check_health,rag_list_datasets,rag_get_dataset,rag_query_dataset,rag_query_multi_datasets).These tools provide Retrieval-Augmented Generation capabilities for semantic search and document management.
Available after connecting to a Supabase instance in Alibaba Cloud Mode.
(Note: get_logs was initially planned but skipped due to implementation complexities observed in the upstream self-hosted environment).
How It Works
This MCP server works with AI assistant tools like Claude Desktop, Cursor, and other MCP-compatible applications. Once configured, these AI assistants can automatically use the tools provided by this server to interact with your Aliyun RDS-hosted Supabase instance.
For example, when you ask an AI assistant "List all tables in my database", it will:
Recognize it needs to use a database tool
Call the
list_tablestool from this serverExecute the tool against your Supabase instance
Present the results in a human-readable format
Authentication Modes & Permission Levels
The server supports three authentication modes with automatic tool filtering:
Mode 1 – Alibaba Cloud Multi-Instance (AuthMode
aliyun, permissionfull)
Use--aliyun-ak,--aliyun-sk, and--aliyun-regionto discover and manage multiple Aliyun RDS Supabase instances. Grants access to all tools, including Aliyun management tools.Mode 2 – Single Instance Admin (AuthMode
admin, permissionadmin)
Use--supabase-url,--supabase-anon-key, and--supabase-service-role-keyfor a single project. Admin-only tools stay available; Aliyun management tools are hidden.Mode 3 – Single Instance User (AuthMode
user, permissionuser)
Use--supabase-url,--supabase-anon-key, plus--supabase-user-emailand--supabase-user-password. Runs under the user’s RLS scope; admin tools and Aliyun management tools are disabled.
Tool visibility is enforced automatically:
Aliyun-only tools (e.g.,
list_aliyun_supabase_instances,connect_to_supabase_instance,get_current_supabase_instance,disconnect_supabase_instance) requirefullpermissions.Admin-only tools (auth management,
get_service_key,verify_jwt_secret,install_execute_sql_function,rebuild_hooks) requirefulloradminpermissions.
Mode selection priority: if multiple configurations are provided, the server picks Aliyun first; if Aliyun is absent and user credentials are complete, user mode is selected; otherwise admin mode is used. A warning is logged when multiple modes are detected.
Security Model
This MCP server is designed for trusted local or controlled MCP clients. Depending on the authentication mode, it can access high-privilege database credentials and run SQL against your Supabase instance.
Prefer Single Instance User mode when RLS-scoped access is enough.
Use Single Instance Admin and Alibaba Cloud Multi-Instance modes only with trusted operators and trusted MCP clients.
Do not commit MCP client configuration files containing Alibaba Cloud AK/SK, Supabase service role keys, database URLs, JWT secrets, or user passwords.
execute_sql, migration, Auth management, and helper-function installation tools can change data or database objects.Credential inspection tools are admin-scoped and can return configured keys to authorized MCP callers.
Use
--tools-configto whitelist the minimum set of tools needed for a deployment.
Setup and Installation
Alibaba Cloud Mode Setup
Quick Start with npx
npx @aliyun-rds/supabase-mcp-server \
--aliyun-ak <your-access-key-id> \
--aliyun-sk <your-access-key-secret> \
--aliyun-region cn-hangzhouImportant: The --aliyun-region parameter is required. Without it, the API will return empty instance lists even though no error is reported. Common regions include:
cn-hangzhou(China East 1)cn-beijing(China North 2)cn-shanghai(China East 2)cn-shenzhen(China South 1)
The CLI flag defines the default region for automatic discovery. When you need to inspect instances in other regions, call the list_aliyun_supabase_instances tool and provide its optional region_id argument (e.g., cn-beijing) to override the default for that request.
Configuration for Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"aliyun-supabase": {
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--aliyun-ak", "<your-access-key-id>",
"--aliyun-sk", "<your-access-key-secret>",
"--aliyun-region", "cn-hangzhou"
]
}
}
}With RAG Agent integration:
{
"mcpServers": {
"aliyun-supabase": {
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--aliyun-ak", "<your-access-key-id>",
"--aliyun-sk", "<your-access-key-secret>",
"--aliyun-region", "cn-hangzhou",
"--enable-rag-agent"
]
}
}
}Or use environment variables:
{
"mcpServers": {
"aliyun-supabase": {
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--enable-rag-agent"
],
"env": {
"ALIYUN_ACCESS_KEY_ID": "<your-access-key-id>",
"ALIYUN_ACCESS_KEY_SECRET": "<your-access-key-secret>",
"ALIYUN_REGION": "cn-hangzhou"
}
}
}
}Usage Workflow
List instances: Use
list_aliyun_supabase_instancesto see all your Supabase instancesConnect: Use
connect_to_supabase_instancewith the instance nameUse tools: Now you can use all Supabase tools (list_tables, execute_sql, etc.)
Disconnect (optional): Use
disconnect_supabase_instanceto switch instances
Single Instance Admin Mode Setup
npx @aliyun-rds/supabase-mcp-server \
--supabase-url https://<your-project>.supabase.co \
--supabase-anon-key <anon-key> \
--supabase-service-role-key <service-role-key> \
[--db-url <postgres-connection-string>] \
[--jwt-secret <jwt-secret>] \
[--enable-rag-agent]Environment variable alternative:
SUPABASE_URL=https://<your-project>.supabase.co \
SUPABASE_ANON_KEY=<anon-key> \
SUPABASE_SERVICE_ROLE_KEY=<service-role-key> \
supabase-mcpClaude Desktop / Cursor JSON 示例:
{
"mcpServers": {
"supabase-admin": {
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--supabase-url", "https://<your-project>.supabase.co",
"--supabase-anon-key", "<anon-key>",
"--supabase-service-role-key", "<service-role-key>"
]
}
}
}Single Instance User Mode Setup (RLS Restricted)
npx @aliyun-rds/supabase-mcp-server \
--supabase-url https://<your-project>.supabase.co \
--supabase-anon-key <anon-key> \
--supabase-user-email <user-email> \
--supabase-user-password <user-password> \
[--enable-rag-agent]Environment variable alternative:
SUPABASE_URL=https://<your-project>.supabase.co \
SUPABASE_ANON_KEY=<anon-key> \
SUPABASE_USER_EMAIL=<user-email> \
SUPABASE_USER_PASSWORD=<user-password> \
supabase-mcpClaude Desktop / Cursor JSON 示例:
{
"mcpServers": {
"supabase-user": {
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--supabase-url", "https://<your-project>.supabase.co",
"--supabase-anon-key", "<anon-key>",
"--supabase-user-email", "<user-email>",
"--supabase-user-password", "<user-password>"
]
}
}
}Additional Installation Options
Global Installation
npm install -g @aliyun-rds/supabase-mcp-server
supabase-mcp \
--aliyun-ak <your-access-key-id> \
--aliyun-sk <your-access-key-secret> \
--aliyun-region cn-hangzhouConfiguration
Choose one configuration path. CLI flags override environment variables.
Mode 1 — Alibaba Cloud Multi-Instance (permission: full)
Required:
--aliyun-ak <key>orALIYUN_ACCESS_KEY_ID=<key>--aliyun-sk <secret>orALIYUN_ACCESS_KEY_SECRET=<secret>--aliyun-region <region>orALIYUN_REGION=<region>(e.g.,cn-hangzhou,cn-beijing; required for discovery)
Behavior: pulls Supabase URL/keys/DB URL/JWT secret from Aliyun for the selected instance.
Mode 2 — Single Instance Admin (permission: admin)
Required:
--supabase-url <url>orSUPABASE_URL--supabase-anon-key <key>orSUPABASE_ANON_KEY--supabase-service-role-key <key>orSUPABASE_SERVICE_ROLE_KEY
Optional:
--db-url <postgres-connection-string>orDB_URL--jwt-secret <secret>orJWT_SECRET
Legacy flag aliases are still accepted: --url, --anon-key, --service-key, --db-url, --jwt-secret.
Mode 3 — Single Instance User (permission: user, RLS enforced)
Required:
--supabase-url <url>orSUPABASE_URL--supabase-anon-key <key>orSUPABASE_ANON_KEY--supabase-user-email <email>orSUPABASE_USER_EMAIL--supabase-user-password <password>orSUPABASE_USER_PASSWORD
Behavior: operates under the provided user's RLS policies; admin-only and Aliyun management tools are filtered out.
Common Options
--tools-config <path>: JSON file specifying which tools to enable (whitelist). Format:{"enabledTools": ["tool_name_1", "tool_name_2"]}.--enable-rag-agentorENABLE_RAG_AGENT=true: Enable RAG Agent MCP integration. When enabled, the server resolves the Supabase host/port from the selected instance and uses the retrieved anon key as the API key for rag-agent.--workspace-path <path>: Workspace root for file operations (optional).
RAG Agent Integration
This server can integrate with rag-agent-mcp to provide RAG (Retrieval-Augmented Generation) capabilities alongside your Supabase database tools.
How it works:
When
--enable-rag-agentis set, the server automatically connects to a rag-agent MCP server after you select an Aliyun RDS Supabase instance.The Supabase host/port is derived from the instance metadata returned by Aliyun OpenAPI.
The anon key retrieved for the connected instance is reused as the API key for rag-agent (no manual secret sharing required).
All rag-agent tools are prefixed with
rag_to avoid naming conflicts (e.g.,rag_create_collection,rag_add_documents,rag_query).
Example configuration:
npx @aliyun-rds/supabase-mcp-server \
--aliyun-ak <your-access-key-id> \
--aliyun-sk <your-access-key-secret> \
--aliyun-region cn-hangzhou \
--enable-rag-agentRequirements:
uvxmust be installed on your systemrag-agent-mcppackage must be available viauvxThe rag-agent service must be reachable at the host/port reported by your Supabase instance
Behavior Notes:
RAG Agent tools are advertised at startup but become fully functional only after running
connect_to_supabase_instance.Because the host/port comes from Supabase metadata, ensure your Aliyun credentials can fetch instance connection details.
Important Notes:
execute_sqlHelper Function: Many tools rely on apublic.execute_sqlfunction for SQL execution via RPC. After you connect to an Aliyun RDS instance, the server checks for this function and, if your AK/SK grants the required privileges, automatically creates it and assigns least-privilege permissions when missing. Treat this as an admin capability.Direct Database Access: Tools that touch privileged schemas (
auth,storage) orpg_catalogstill require direct database connectivity. The connection string is pulled from Aliyun; ensure your credentials can retrieve it or those tools will be unavailable.Database URL Special Characters: When Aliyun returns database URLs containing characters like
#or$, the server automatically URL-encodes them (#→%23,$→%24). The@symbol remains unescaped because it separates credentials from the hostname.
Using with AI Assistant Tools
Cursor
Create or open the file
.cursor/mcp.jsonin your project root.Add one of the following configurations based on your authentication mode:
Mode 1 (Aliyun multi-instance, permission: full)
Grants all tools, including Aliyun management.{ "mcpServers": { "aliyun-supabase": { "command": "npx", "args": [ "@aliyun-rds/supabase-mcp-server", "--aliyun-ak", "<your-access-key-id>", "--aliyun-sk", "<your-access-key-secret>", "--aliyun-region", "cn-hangzhou", "--enable-rag-agent" ], "env": { // Optional: whitelist tools or toggle features "TOOLS_CONFIG": "<path-to-tools-config.json>", "ENABLE_RAG_AGENT": "true" } } } }Mode 2 (Single instance admin, permission: admin)
Admin tools available; Aliyun management tools hidden.{ "mcpServers": { "supabase-admin": { "command": "npx", "args": [ "@aliyun-rds/supabase-mcp-server", "--supabase-url", "https://<your-project>.supabase.co", "--supabase-anon-key", "<anon-key>", "--supabase-service-role-key", "<service-role-key>", "--enable-rag-agent" ] } } }Mode 3 (Single instance user, permission: user, RLS enforced)
Runs under user RLS; admin/Aliyun tools disabled.{ "mcpServers": { "supabase-user": { "command": "npx", "args": [ "@aliyun-rds/supabase-mcp-server", "--supabase-url", "https://<your-project>.supabase.co", "--supabase-anon-key", "<anon-key>", "--supabase-user-email", "<user-email>", "--supabase-user-password", "<user-password>", "--enable-rag-agent" ] } } }
Important Notes for RAG Agent:
RAG Agent tools stay inactive until you call
connect_to_supabase_instanceand select an Aliyun RDS Supabase project.Switching instances automatically re-initializes the rag-agent connection with the new host/port.
All RAG Agent tools are prefixed with
rag_(e.g.,rag_create_collection,rag_add_documents,rag_query).
Claude for Desktop
For Claude Desktop, open Settings → Developer → enable "Custom MCP Servers", then add one configuration matching your mode:
Mode 1 (Aliyun, permission: full)
{
"name": "Aliyun Supabase",
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--aliyun-ak", "<your-access-key-id>",
"--aliyun-sk", "<your-access-key-secret>",
"--aliyun-region", "cn-hangzhou",
"--enable-rag-agent"
]
}Mode 2 (Single instance admin, permission: admin)
{
"name": "Supabase Admin",
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--supabase-url", "https://<your-project>.supabase.co",
"--supabase-anon-key", "<anon-key>",
"--supabase-service-role-key", "<service-role-key>",
"--enable-rag-agent"
]
}Mode 3 (Single instance user, permission: user, RLS enforced)
{
"name": "Supabase User",
"command": "npx",
"args": [
"@aliyun-rds/supabase-mcp-server",
"--supabase-url", "https://<your-project>.supabase.co",
"--supabase-anon-key", "<anon-key>",
"--supabase-user-email", "<user-email>",
"--supabase-user-password", "<user-password>",
"--enable-rag-agent"
]
}Other MCP-Compatible Tools
Most MCP-compatible tools follow similar configuration patterns. The general format is:
Command:
npxArguments:
[@aliyun-rds/supabase-mcp-server, --aliyun-ak, <your-access-key-id>, --aliyun-sk, <your-access-key-secret>, --aliyun-region, <your-region>, ...]
License
This project is licensed under the MIT License - see the LICENSE file for details.
Originally developed by HenkDz, now maintained by Alibaba Cloud RDS.
Available Tools
27 toolsapply_migrationA
Applies a SQL migration script and records it in the supabase_migrations.schema_migrations table within a transaction. Requires direct database connection (DATABASE_URL).
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL DDL content of the migration. | |
| name | No | An optional descriptive name for the migration. | |
| version | Yes | The migration version string (e.g., '20240101120000'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses key behaviors: runs in a transaction, records in supabase_migrations.schema_migrations, and requires DATABASE_URL. However, it lacks details on failure modes, idempotency, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and key context (transaction, recording, database connection). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (modifies database, 3 params, no output schema), the description covers main aspects but omits return behavior and potential error conditions. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond what the schema already provides for parameters (version, sql, name).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool applies a SQL migration script and records it in a specific table within a transaction. It distinguishes itself from execute_sql by mentioning the recording step and transaction context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for applying migrations but does not explicitly state when to use this tool over alternatives like execute_sql or list_migrations. No exclusions or prerequisites beyond database connection are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
connect_to_supabase_instanceA
Connect to a specific Supabase instance by instance name. This tool fetches credentials from Alibaba Cloud and establishes a connection. After connecting, you can use all Supabase tools (list_tables, execute_sql, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| use_vpc | No | Whether to use VPC connection instead of public connection | |
| region_id | No | Region ID of the instance (e.g., cn-hangzhou, cn-chengdu). Required when connecting to an instance in a different region than the default startup region. | |
| instance_name | Yes | The instance name (e.g., ra-supabase-8moov5lxba****) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it fetches credentials from Alibaba Cloud and establishes a connection. No annotations are present, so the description carries the full burden. However, it does not detail behavioral traits like statefulness, idempotency, or side effects beyond connecting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose. No wasted words. Could be slightly more structured but remains concise and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the tool's purpose and parameter semantics via schema, but lacks return value info and details on state management (e.g., multiple connections, connection lifecycle). Given no output schema, this gap is notable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions (100% coverage). The description adds minimal extra meaning beyond the schema, e.g., 'by instance name' matches the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Connect to a specific Supabase instance by instance name' with explicit action and resource. Distinguishes from siblings like 'disconnect_supabase_instance' and 'list_aliyun_supabase_instances'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'After connecting, you can use all Supabase tools (list_tables, execute_sql, etc.)', providing clear context for when to use this tool. Lacks explicit 'when not to use' or alternatives, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_auth_userA
Creates a new user using Supabase Admin API. Requires service role key.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | User role. | authenticated |
| Yes | The email address for the new user. | ||
| password | Yes | Plain text password (min 6 chars). WARNING: Insecure. | |
| app_metadata | No | Optional app metadata. | |
| user_metadata | No | Optional user metadata. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the use of Admin API and the need for a service role key, but with no annotations, more behavioral details (e.g., side effects, authentication status) would be helpful. It provides some transparency but is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the essential action, and every sentence adds value. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given five parameters and no output schema, the description covers the main purpose and prerequisite, but could be more complete regarding return values, error states, or typical usage scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for parameter descriptions, so the description does not need to add extra meaning. It does not elaborate beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new user via the Supabase Admin API, with a specific verb and resource. It distinguishes from sibling tools like update_auth_user and delete_auth_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It mentions the requirement of a service role key, which is a useful prerequisite, but does not provide explicit guidance on when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_auth_userB
Deletes a user using Supabase Admin API. Requires service role key.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The UUID of the user to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool deletes a user but does not disclose whether the action is irreversible, if there are cascading effects, or any side effects. The security note about service role key is helpful but insufficient for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 9 words, directly stating the purpose and a key prerequisite. Every word earns its place, and it is front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema, so the description is mostly adequate. However, it lacks important behavioral context (e.g., irreversibility) that would fully prepare an agent for using this destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, fully describing the only parameter 'user_id' as a UUID. The tool description adds no additional meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'deletes' and the resource 'a user using Supabase Admin API', which is specific and distinguishes it from sibling tools like create_auth_user or update_auth_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement for a service role key, which is a prerequisite, but provides no explicit guidance on when to use this tool versus alternatives (e.g., update_auth_user for disabling users). No when-not or contextual usage notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disconnect_supabase_instanceA
Disconnect from the currently connected Supabase instance. After disconnecting, you need to connect to an instance again before using Supabase tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses the behavioral effect (disconnection requiring reconnection). This adequately conveys the impact, though could mention error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The most critical information is front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description fully explains the action and its necessity for subsequent operations. No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has no parameters, so the description is not required to add parameter information. The description correctly focuses on the action and context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Disconnect from the currently connected Supabase instance') and its consequence, distinguishing it from the sibling tool 'connect_to_supabase_instance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the need to reconnect after disconnecting, providing context for when to use this tool. It lacks explicit when-not or alternative guidance, but the simplicity of the action makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_sqlB
Executes an arbitrary SQL query against the database, using direct database connection when available or RPC function as fallback.
| Name | Required | Description | Default |
|---|---|---|---|
| sql | Yes | The SQL query to execute. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions fallback mechanism but fails to disclose if writes are allowed, timeout behavior, error handling, or result format. For a tool executing arbitrary SQL, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, efficient and to the point. Could be slightly more structured with line breaks, but conveys essential info without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or annotations provided. Description lacks essential details like return format, error behavior, and safety warnings for a tool that can run arbitrary SQL. Incomplete for real-world use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Single parameter 'sql' with 100% schema description coverage. Description adds 'arbitrary SQL query' but no additional details (e.g., SQL dialect, length limits). Baseline 3 since schema already documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Executes an arbitrary SQL query' with details on connection method (direct or RPC fallback). Distinguishes from siblings like 'apply_migration' which is for schema migrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. Other tools like 'list_tables' or 'get_database_stats' may also run queries but no context provided. Implied use is for arbitrary SQL, but no constraints or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_typescript_typesA
Generates TypeScript types from the database schema using the Supabase CLI (supabase gen types) and saves the file inside the configured workspace. Requires DATABASE_URL configuration and Supabase CLI installed.
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | No | Path inside the workspace where the generated TypeScript file should be saved. | |
| output_filename | No | Filename to save the generated types to in the workspace root. | database.types.ts |
| included_schemas | No | Database schemas to include in type generation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the action and prerequisites, but does not disclose potential side effects (e.g., file overwriting), error handling behavior, or what happens if prerequisites are not met. The description is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences. The first sentence front-loads the purpose and method, and the second adds essential requirements. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain the return value or action outcome. It mentions 'saves the file' but does not state what the tool returns (e.g., success message, file path). For a simple generation tool, this is a minor gap. Given context signals (no output schema, no annotations), the description is incomplete in that aspect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all three parameters. The description adds no additional meaning beyond stating the file is saved in the configured workspace. It does not enrich the understanding of parameter usage or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generates' and the resource 'TypeScript types from the database schema using the Supabase CLI'. It also specifies the output action ('saves the file inside the configured workspace'). This distinguishes it from sibling tools, as none of them mention type generation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists prerequisites ('Requires DATABASE_URL configuration and Supabase CLI installed'), but does not explicitly state when to use this tool versus alternatives. It implies usage context by describing the task, but lacks explicit guidance on exclusions or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_anon_keyA
Returns the configured Supabase anon key for this server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavior. It only says 'Returns', implying a read-only operation, but lacks details on potential side effects, authentication requirements, or error conditions. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is concise and front-loaded with the action and result. No wasted words, effectively communicates the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters and no output schema, the description is largely sufficient. However, it could mention the key's typical use (e.g., for public client access) or the need for a connected instance to fully cover the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so schema coverage is 100%. Baseline for zero-parameter tools is 4; the description adds no parameter-specific meaning but does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns the configured Supabase anon key. The verb 'Returns' and resource 'Supabase anon key' are specific and unambiguous, distinguishing it from sibling tools like get_service_key through the explicit mention of 'anon key'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., get_service_key for service role key). The description does not specify context or prerequisites, such as needing a connected Supabase instance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_auth_userB
Retrieves details for a specific user from auth.users by their ID.
| Name | Required | Description | Default |
|---|---|---|---|
| user_id | Yes | The UUID of the user to retrieve. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'retrieves', which is a read operation, but does not disclose potential side effects, error cases, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool without output schema, the description is minimally adequate. It could benefit from mentioning what 'details' are returned or handling of non-existent users.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little beyond 'by their ID'. The parameter is already fully described in the schema. No additional semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieves', the resource 'details for a specific user', and the method 'by their ID'. It distinctly separates from siblings like list_auth_users or create_auth_user.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like list_auth_users or other user-related tools. The description does not mention context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_current_supabase_instanceA
Get information about the currently connected Supabase instance. Returns the instance name if connected, or a message indicating no connection.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses return values (instance name or no connection message). No annotations to contradict; lacks details on error handling or preconditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded verb, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for simple info retrieval with zero parameters; could mention that connection must be established first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage 100%. Baseline 4 for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'get' and resource 'current Supabase instance' directly state purpose. Distinguishes from sibling connect/disconnect tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies use when connected but does not explicitly state when not to use or provide alternatives for connection management.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_database_connectionsA
Retrieves information about active database connections from pg_stat_activity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly implies a read-only operation ('retrieves'), but does not specify what fields are returned, any authentication requirements, or potential impacts. The description is adequate but lacks detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It front-loads the verb and resource, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description provides sufficient context for a simple read tool. However, it could mention the typical fields returned (e.g., user, host, state) to improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0 params, 100% schema coverage). The description does not need to explain parameters, and the baseline for 0 params is 4. It adds no parameter info because none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieves' and the resource 'information about active database connections from pg_stat_activity'. It distinguishes from sibling tools like get_database_stats and list_tables by specifying the exact system view used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like get_database_stats or execute_sql. The description lacks any context for appropriate usage or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_database_statsA
Retrieves statistics about database activity and the background writer from pg_stat_database and pg_stat_bgwriter.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions the source system views but does not disclose potential performance impact, staleness of data, or any prerequisites. Since no annotations are provided, the description carries full responsibility for behavioral disclosure, which it fails to satisfy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly states the tool's purpose without any extra words. It is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no output schema, and simple functionality, the description is minimally adequate. However, it could mention typical use cases or what the output contains (e.g., statistical counters) to be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema already covers 100% of the interface. The description does not need to add parameter semantics, and it correctly omits any. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as retrieving statistics about database activity and the background writer, naming the specific source views (pg_stat_database and pg_stat_bgwriter). This is distinct from sibling tools like get_database_connections which focus on connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any conditions or typical use cases. The description lacks contextual cues for an agent to decide if this is the appropriate tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_project_urlA
Returns the configured Supabase project URL for this server.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose any behavioral traits beyond the obvious read operation. No mention of auth requirements or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, front-loaded with the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal description; lacks specification of the return format (e.g., string, URL format). For a simple tool, it is adequate but leaves room for ambiguity about what 'configured' implies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is trivially 100%. Description adds context about the return value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool returns the configured Supabase project URL for the server. Verb 'Returns' and resource are specific, distinguishing it from siblings like get_anon_key or get_service_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives, such as when a project URL is needed vs other configuration retrieval tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_service_keyA
Returns the configured Supabase service role key for this server, if available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions 'if available' but does not address security concerns, permissions required, or implications of retrieving a sensitive key. For a credential-returning tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core function without wasted words. It is appropriately front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the sensitivity of returning a service role key, the description lacks warnings about key handling, availability conditions, or output format. With no output schema or annotations, the description should provide more context to ensure safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the input schema is empty (100% coverage). The description adds no parameter details but still clarifies the tool's purpose, which is appropriate given no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the Supabase service role key, which is distinct from sibling tools like get_anon_key and get_project_url. The verb 'Returns' combined with the specific resource 'Supabase service role key' makes the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., get_anon_key). While the context of sibling tools implies differentiation, the description itself lacks 'when to use' or 'when not to use' instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
install_execute_sql_functionA
Install the execute_sql RPC function in the connected Supabase instance. This function is required for tools that need to execute SQL queries (list_tables, list_extensions, execute_sql, etc.). This tool uses the postgres-meta API and does not require direct database access.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions that the tool uses the postgres-meta API and does not require direct database access, but does not disclose whether the operation is idempotent, what happens if the function already exists, or any required permissions. This lack of detail is notable for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the action, and contains no redundant information. Every sentence adds value by explaining the purpose and prerequisite nature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (zero parameters, no output schema), the description adequately covers purpose, usage context, and technical approach (postgres-meta API). It lacks information on success/failure indicators or idempotency, but these are minor omissions for a setup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the baseline is 4. The description adds context about using the postgres-meta API and not needing direct DB access, which is informative but not parameter-related. Since schema coverage is 100%, no further parameter documentation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool installs an execute_sql RPC function and explains it's required for tools that execute SQL queries. It specifies the verb 'install' and the resource 'execute_sql RPC function', distinguishing it from sibling tools which do not perform this setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: before using tools that need SQL execution capability (list_tables, etc.). It does not explicitly state when not to use it or alternatives, but the context is sufficiently clear for a setup tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_aliyun_supabase_instancesA
List all Supabase instances from Alibaba Cloud RDS AI. Returns instance names, status, connection URLs, and other metadata. Use this tool to discover available Supabase instances before connecting.
| Name | Required | Description | Default |
|---|---|---|---|
| page_size | No | Number of results per page (1-50) | |
| region_id | No | Region ID to filter instances (e.g., cn-beijing) | |
| page_number | No | Page number | |
| db_instance_name | No | RDS PostgreSQL database instance ID to filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden. It mentions that the tool returns metadata but does not explicitly state read-only semantics, pagination behavior, or authentication requirements. The schema covers pagination parameters, but the description lacks a clear safety disclaimer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence conveys purpose and output, the second provides usage guidance. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately explains return values (instance names, status, connection URLs, other metadata). It covers basic usage for listing instances, though it could mention error handling or response format for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions; it simply restates the existence of filtering by region or instance name implicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'Supabase instances from Alibaba Cloud RDS AI'. It specifies what is returned (instance names, status, connection URLs, other metadata). This distinguishes it from sibling tools like connect_to_supabase_instance or get_current_supabase_instance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a direct usage hint: 'Use this tool to discover available Supabase instances before connecting.' This provides context for when to use it, though it does not explicitly mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_auth_usersC
Lists users from the auth.users table.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of users to return | |
| offset | No | Number of users to skip |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only states a read operation ('Lists users'), but omits details like pagination behavior, authentication requirements, or side effects. The minimal description does not compensate for missing annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. While it is extremely brief, it is still efficient; however, it could be more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks completeness for a listing tool with no output schema. It does not explain the return format (e.g., array of user objects) or mention pagination behavior beyond parameter defaults. Given the tool's relative simplicity and the 100% schema coverage, more contextual details are needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (limit, offset). The tool description adds no additional meaning beyond what the schema already provides, resulting in a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Lists' and the resource 'users from the auth.users table', making the tool's purpose unambiguous. It distinguishes itself from sibling tools like get_auth_user (single user) and create_auth_user (creation), but does not explicitly highlight this distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_auth_user or search-like tools. The description lacks context for selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_extensionsA
Lists all installed PostgreSQL extensions in the database.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose behavioral traits such as permissions needed or whether it is read-only. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Clearly front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters, the description is sufficient. However, it could mention the return format (e.g., extension names only) since no output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, baseline of 4. Description adds no extra meaning beyond schema (empty), but that is acceptable given zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Lists' and specific resource 'all installed PostgreSQL extensions in the database,' distinguishing it from sibling tools like list_tables or list_migrations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternative guidance. Usage is implied but could benefit from mentioning that it is a safe read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_migrationsA
Lists applied database migrations recorded in supabase_migrations.schema_migrations table.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the purpose but does not disclose read-only nature, authentication requirements, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no extraneous information. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description is adequate. It could mention that it's a read-only operation or the format of results, but overall it's sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so schema coverage is 100%. The description adds no parameter details, but per guidelines, baseline is 4 for 0 parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Lists') and the specific resource ('applied database migrations') and the source table, making it distinct from sibling tools like apply_migration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as apply_migration. The description does not provide context or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_realtime_publicationsA
Lists PostgreSQL publications, often used by Supabase Realtime.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It only says 'lists' without disclosing read-only nature, authentication needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 10 words, no fluff. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters or output schema, the description provides the essential purpose and context. Missing return format is acceptable given no schema burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so baseline is 4. The description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists PostgreSQL publications and hints at the Supabase Realtime context, making it distinct from sibling list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use vs alternatives, but the purpose is self-evident given no other sibling tool lists publications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_storage_bucketsB
Lists all storage buckets in the project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, or response format. Only states the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence that is front-loaded and wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-parameter list operation, the description is complete enough. However, it lacks details about the return format or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and schema coverage is 100% (vacuously). The description adds no additional parameter meaning beyond the schema, aligning with the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all storage buckets in the project, using a specific verb and resource. It distinguishes from siblings like list_storage_objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., list_storage_objects). The description only states the functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_storage_objectsA
Lists objects within a specific storage bucket, optionally filtering by prefix.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max number of objects to return | |
| offset | No | Number of objects to skip | |
| prefix | No | Filter objects by a path prefix (e.g., 'public/') | |
| bucket_id | Yes | The ID of the bucket to list objects from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions listing and optional prefix filtering but does not disclose pagination behavior (despite limit/offset in schema), auth requirements, or potential side effects. Adequate but has gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 11 words, front-loading the core functionality. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no output schema, the description is minimal. It does not describe the return format (e.g., list of object names, metadata) or any other behavioral details, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds no extra meaning beyond what is in the schema; it simply reiterates the prefix filter without additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'lists', the resource 'objects within a specific storage bucket', and the optional 'prefix' filter, which distinguishes it from sibling tools like list_storage_buckets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing objects in a bucket but does not provide explicit guidance on when to use versus alternatives like list_storage_buckets, nor any when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tablesB
Lists all accessible tables in the connected database, grouped by schema.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavior. It only states the action, but omits important traits like whether it is read-only, requires authentication, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently communicates the core action and grouping. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no parameters and no output schema, the description is adequate but lacks details about the return format or structure of the grouped output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. With zero params, the baseline is 4. The description adds no parameter info, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('lists'), the resource ('tables'), and the grouping ('grouped by schema'). It distinguishes from siblings like list_extensions or list_migrations by specifying tables, but does not explicitly say when to use it over others.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, nor any prerequisites or exclusions. The agent receives no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rebuild_hooksB
Attempts to restart the pg_net worker. Requires the pg_net extension to be installed and available.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only discloses one behavioral trait (requires extension) but omits side effects, success/failure behavior, or what 'attempts' means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words, front-loading the action immediately. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description covers the core purpose and a prerequisite. However, it lacks details on return value, error conditions, or what exactly 'restart' entails, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100%. The description adds context about extension requirements beyond the empty schema, meeting the baseline expectation for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool attempts to restart the pg_net worker using a specific verb and resource. It distinguishes itself from sibling tools which are unrelated operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (pg_net extension installed) but lacks explicit guidance on when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_docsA
Search the Supabase official documentation using GraphQL. Must be a valid GraphQL query. You should default to calling this even if you think you already know the answer, since the documentation is always being updated. This tool queries the official Supabase documentation to help users understand Supabase features, APIs, and best practices.
| Name | Required | Description | Default |
|---|---|---|---|
| graphql_query | Yes | GraphQL query string to search Supabase documentation. Must be a valid GraphQL query. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must bear full burden. It mentions GraphQL requirement but does not disclose any behavioral traits like side effects, rate limits, or error states.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with main action. Slightly repetitive with 'official Supabase documentation' appearing twice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, input requirement, and usage hint. Lacks description of output format or how results are returned, which is important given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with graphql_query described as 'valid GraphQL query'. The description adds minimal extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as searching Supabase official documentation using GraphQL. It distinguishes from siblings like execute_sql and list_tables, which are for different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'default to calling this even if you think you already know the answer' and states it helps understand Supabase features. Lacks explicit non-usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_auth_userC
Updates fields for a user using Supabase Admin API. Requires service role key.
| Name | Required | Description | Default |
|---|---|---|---|
| role | No | New role. | |
| No | New email address. | ||
| user_id | Yes | The UUID of the user to update. | |
| password | No | New plain text password (min 6 chars). WARNING: Insecure. | |
| app_metadata | No | New app metadata (will overwrite existing). | |
| user_metadata | No | New user metadata (will overwrite existing). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits like side effects (e.g., email confirmation, password logout) but only states 'Updates fields'. It does not warn that metadata overwrites existing values, though the schema notes it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences, no filler or extraneous information. Every sentence serves a purpose: stating the action and the requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks completeness. It does not explain return behavior, error conditions, or important context like confirmation emails or password invalidation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are fully documented there. The description adds no additional semantic value beyond the schema, meriting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it updates a user via the Supabase Admin API, distinguishing it from create/delete/get siblings. However, it does not specify which fields can be updated, relying on the schema for details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement for a service role key but provides no guidance on when to use this tool versus alternatives like create_auth_user or delete_auth_user. No explicit when-not-to-use or criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_jwt_secretA
Checks if the Supabase JWT secret is configured for this server and returns a preview.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries the burden. It states the tool 'Checks' and 'returns a preview', implying a read-only operation with no side effects. However, it does not disclose what happens if the JWT secret is missing or what 'preview' entails exactly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying the exact purpose with no filler. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has no parameters, no output schema, and low complexity. Description succinctly covers what it does and what it returns, making it complete for an agent to decide and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so schema coverage is 100%. Description adds no parameter-specific info, which is acceptable given there are none. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Checks' and resource 'Supabase JWT secret', clearly stating the tool's action: verification and preview. It distinguishes itself from sibling tools which perform mutations, listings, or connections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. While the purpose implies uses before configuring other operations, the description does not explicitly state context, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
27 tool updates
v1.0.10- First observed
apply_migration - First observed
connect_to_supabase_instance - First observed
create_auth_user - First observed
delete_auth_user - First observed
disconnect_supabase_instance - First observed
execute_sql - First observed
generate_typescript_types - First observed
get_anon_key - First observed
get_auth_user - First observed
get_current_supabase_instance - First observed
get_database_connections - First observed
get_database_stats - First observed
get_project_url - First observed
get_service_key - First observed
install_execute_sql_function - First observed
list_aliyun_supabase_instances - First observed
list_auth_users - First observed
list_extensions - First observed
list_migrations - First observed
list_realtime_publications - First observed
list_storage_buckets - First observed
list_storage_objects - First observed
list_tables - First observed
rebuild_hooks - First observed
search_docs - First observed
update_auth_user - First observed
verify_jwt_secret
TDQS
Tools are grouped by domain (instance management, database, auth, storage, configuration, utilities) with clear, non-overlapping purposes. Each tool's description specifies its exact function, making it easy for an agent to select the correct one.
All tool names follow a consistent snake_case pattern starting with a verb (e.g., list_, get_, create_, delete_, update_, apply_, install_, rebuild_, search_, generate_, verify_). The naming conventions are uniform and predictable throughout the set.
27 tools is a high count, but still reasonable given the broad scope covering instance management, database operations, auth, storage, and configurations. Each tool has a clear role, though a few could potentially be merged (e.g., multiple get_ config tools).
Core CRUD operations are present for auth (create, read, update, delete) and migrations (apply, list), but storage management is limited to listing buckets and objects—missing create/delete/update for storage. Database management lacks full lifecycle (e.g., no backup or index tools).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
Cloud-hosted MCP server for durable AI memory
MCP server for AI dialogue using various LLM models via AceDataCloud
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceA universal database gateway MCP server that enables AI assistants to connect to and query multiple databases (PostgreSQL, MySQL, MariaDB, SQL Server, SQLite) with support for schema exploration, SQL execution, and secure connections via SSH tunnels.25-
- AlicenseNot gradedqualityDmaintenanceAn MCP server enabling AI assistants to perform CRUD operations on a Supabase database via a standardized interface.194MIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server providing AI assistants with intelligent Supabase database access, featuring dynamic schema discovery, complete user management, and file storage operations.1MIT
- -licenseNot gradedqualityCmaintenanceAn MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.3-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/aliyun/rds-supabase-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server