Manage Neon projects directly through Claude. Run SQL and transactions on Lakebase Postgres, inspect and diff table schemas, apply migrations on a temporary branch before committing them, and provision Auth and the Data API. Create copy-on-write branches for isolated work, query logs from Serverless Functions and Object Storage for debugging, tune slow queries, and search Neon docs all through natural language commands. Connect with OAuth. During authorization, choose read-only or full access. Always review and authorize actions before execution.
Protocol
MCP 2025-11-25
Server version
1.0.0
Supports
Tools
Resources
Overall score
B
Overall quality score: 83 out of 10083/100
Server metadata
4 of 8 fields50/1005 / 10 pts
Identity, discovery, and usage metadata advertised during the MCP handshake.
Notice: Write mode active. Destructive tools are exposed. For tools with `destructiveHint: true`, NEVER invoke autonomously; always ask the user first.
Notice: For tools with `project_id`, always pass it on an unscoped connection, even though the published schema marks it optional. A connection scoped to one project supplies it automatically when omitted; an explicit value must match the granted project. A project-scoped connection also hides project management tools such as list_projects and create_project. To change project scope, change or remove the projectId query param in the MCP server URL and reconnect. With OAuth, the project is fixed when the connection is authorized: log out and authorize again, and choose "All projects you can access" on the consent page to remove scoping.
Protocol
Pass100/10020 / 20 pts
Connection, authentication, and protocol compatibility.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_organizations",
"title": "List Organizations",
"description": "List all organizations the current user belongs to. Supports optional `search` parameter to filter by name or ID.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"search": {
"type": "string",
"description": "Search organizations by name or ID. You can specify partial name or ID values to filter results."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List Organizations",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Execute one SQL statement on a Neon database. If a prior step created a temporary branch, pass that branch_id. NEVER run destructive SQL autonomously; always ask the user first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs91/100
Input documentation gives an agent enough context to populate the arguments.
sql
The SQL query to execute
Clear enough to supply this argument.
project_id
The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An optional ID of the branch to execute the query against. If not provided the default branch is used.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "run_sql",
"title": "Run SQL",
"description": "Execute one SQL statement on a Neon database. If a prior step created a temporary branch, pass that branch_id. NEVER run destructive SQL autonomously; always ask the user first.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL query to execute"
},
"branch_id": {
"type": "string",
"description": "An optional ID of the branch to execute the query against. If not provided the default branch is used."
},
"project_id": {
"type": "string",
"description": "The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Run SQL",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Execute multiple SQL statements as one transaction. If a prior step created a temporary branch, pass that branch_id. NEVER run destructive SQL autonomously; always ask the user first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs88/100
Input documentation gives an agent enough context to populate the arguments.
sql_statements
The SQL statements to execute
Clear enough to supply this argument.
project_id
The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An optional ID of the branch to execute the query against. If not provided the default branch is used.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "run_sql_transaction",
"title": "Run SQL Transaction",
"description": "Execute multiple SQL statements as one transaction. If a prior step created a temporary branch, pass that branch_id. NEVER run destructive SQL autonomously; always ask the user first.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sql_statements"
],
"properties": {
"branch_id": {
"type": "string",
"description": "An optional ID of the branch to execute the query against. If not provided the default branch is used."
},
"project_id": {
"type": "string",
"description": "The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
},
"sql_statements": {
"type": "array",
"items": {
"type": "string"
},
"description": "The SQL statements to execute"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Run SQL Transaction",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
Get column definitions, data types, and constraints for a specific table. Do not use when you need all tables in a database (use `get_database_tables` instead).
Describe the returned information so the agent knows whether it will answer the request.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
table_name
The table name, optionally schema-qualified (for example, crm.contacts)
Clear enough to supply this argument.
project_id
The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An optional ID of the branch to execute the query against. If not provided the default branch is used.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "describe_table_schema",
"title": "Describe Table Schema",
"description": "Get column definitions, data types, and constraints for a specific table. Do not use when you need all tables in a database (use `get_database_tables` instead).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"table_name"
],
"properties": {
"branch_id": {
"type": "string",
"description": "An optional ID of the branch to execute the query against. If not provided the default branch is used."
},
"project_id": {
"type": "string",
"description": "The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"table_name": {
"type": "string",
"description": "The table name, optionally schema-qualified (for example, crm.contacts)"
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Describe Table Schema",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
List all tables in a Neon database. Do not use when you need column-level detail for a specific table (use `describe_table_schema` instead).
Describe the returned information so the agent knows whether it will answer the request.
Inputs92/100
Input documentation gives an agent enough context to populate the arguments.
project_id
The ID of the project. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An optional ID of the branch. If not provided the default branch is used.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_database_tables",
"title": "Get Database Tables",
"description": "List all tables in a Neon database. Do not use when you need column-level detail for a specific table (use `describe_table_schema` instead).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"branch_id": {
"type": "string",
"description": "An optional ID of the branch. If not provided the default branch is used."
},
"project_id": {
"type": "string",
"description": "The ID of the project. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get Database Tables",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Apply a schema change on a temporary branch and return a migration_id. Test with run_sql on that branch, ask the user, then complete_database_migration — even if they reject, so the temporary branch is deleted. Pass every field from the prepare response.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Input documentation gives an agent enough context to populate the arguments.
migration_sql
The SQL to execute to create the migration
Clear enough to supply this argument.
project_id
The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "prepare_database_migration",
"title": "Prepare Database Migration",
"description": "Apply a schema change on a temporary branch and return a migration_id. Test with run_sql on that branch, ask the user, then complete_database_migration — even if they reject, so the temporary branch is deleted. Pass every field from the prepare response.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"migration_sql"
],
"properties": {
"project_id": {
"type": "string",
"description": "The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
},
"migration_sql": {
"type": "string",
"description": "The SQL to execute to create the migration"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Prepare Database Migration",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Apply or discard a prepared migration and delete the temporary branch. NEVER run autonomously; always ask the user first. Pass migration_id, migration_sql, database_name, project_id, temporary_branch_id, and parent_branch_id from prepare_database_migration. Set apply_changes false to discard; omitting it applies the migration.
The description explains the capability, when to use it, and what to expect.
Inputs94/100
Input documentation gives an agent enough context to populate the arguments.
migration_id
The migration ID from prepare_database_migration.
Clear enough to supply this argument.
migration_sql
The SQL statements to apply. Pass the exact value from prepare_database_migration.
Clear enough to supply this argument.
database_name
The database name. Pass the exact value from prepare_database_migration.
Clear enough to supply this argument.
project_id
The project ID. Pass the exact value from prepare_database_migration. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
temporary_branch_id
The temporary branch ID to delete after migration.
Clear enough to supply this argument.
parent_branch_id
The parent branch ID where migration will be applied.
Clear enough to supply this argument.
apply_changes
Whether to apply the migration. Set to false to just delete the temp branch without applying.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "complete_database_migration",
"title": "Complete Database Migration",
"description": "Apply or discard a prepared migration and delete the temporary branch. NEVER run autonomously; always ask the user first. Pass migration_id, migration_sql, database_name, project_id, temporary_branch_id, and parent_branch_id from prepare_database_migration. Set apply_changes false to discard; omitting it applies the migration.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"migration_id",
"migration_sql",
"database_name",
"temporary_branch_id",
"parent_branch_id"
],
"properties": {
"project_id": {
"type": "string",
"description": "The project ID. Pass the exact value from prepare_database_migration. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"migration_id": {
"type": "string",
"description": "The migration ID from prepare_database_migration."
},
"apply_changes": {
"type": "boolean",
"default": true,
"description": "Whether to apply the migration. Set to false to just delete the temp branch without applying."
},
"database_name": {
"type": "string",
"description": "The database name. Pass the exact value from prepare_database_migration."
},
"migration_sql": {
"type": "string",
"description": "The SQL statements to apply. Pass the exact value from prepare_database_migration."
},
"parent_branch_id": {
"type": "string",
"description": "The parent branch ID where migration will be applied."
},
"temporary_branch_id": {
"type": "string",
"description": "The temporary branch ID to delete after migration."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Complete Database Migration",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Get a tree view of all objects in a branch, including databases, schemas, tables, views, and functions. Do not use when you only need table names (use `get_database_tables` instead) or column detail (use `describe_table_schema` instead).
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Explain the meaning of this value, not just its name.
project_id
The ID of the project. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An ID of the branch to describe
Explain the meaning of this value, not just its name.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "describe_branch",
"title": "Describe Branch",
"description": "Get a tree view of all objects in a branch, including databases, schemas, tables, views, and functions. Do not use when you only need table names (use `get_database_tables` instead) or column detail (use `describe_table_schema` instead).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"description": "An ID of the branch to describe"
},
"project_id": {
"type": "string",
"description": "The ID of the project. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Describe Branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Get a PostgreSQL connection string for a Neon database. The branch must have a compute endpoint. `create_project` and `create_branch` do not return one; call this after they succeed. Branch, compute, and database are optional and resolved automatically if not specified; `project_id` follows the connection scope. Requires write access: the connection string carries a privileged role password, so it is unavailable in read-only mode. A read-only caller who needs a DATABASE_URL must copy it from https://console.neon.tech manually.
The description explains the capability, when to use it, and what to expect.
Inputs91/100
Input documentation gives an agent enough context to populate the arguments.
project_id
The ID of the project. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
The ID or name of the branch. If not provided, the default branch will be used.
Clear enough to supply this argument.
compute_id
The ID of the compute/endpoint. If not provided, the read-write compute associated with the branch will be used.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
Clear enough to supply this argument.
role_name
The name of the role to connect with. If not provided, the database owner name will be used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_connection_string",
"title": "Get Connection String",
"description": "Get a PostgreSQL connection string for a Neon database. The branch must have a compute endpoint. `create_project` and `create_branch` do not return one; call this after they succeed. Branch, compute, and database are optional and resolved automatically if not specified; `project_id` follows the connection scope. Requires write access: the connection string carries a privileged role password, so it is unavailable in read-only mode. A read-only caller who needs a DATABASE_URL must copy it from https://console.neon.tech manually.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"branch_id": {
"type": "string",
"description": "The ID or name of the branch. If not provided, the default branch will be used."
},
"role_name": {
"type": "string",
"description": "The name of the role to connect with. If not provided, the database owner name will be used."
},
"compute_id": {
"type": "string",
"description": "The ID of the compute/endpoint. If not provided, the read-write compute associated with the branch will be used."
},
"project_id": {
"type": "string",
"description": "The ID of the project. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get Connection String",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Read Neon Auth config for a branch with OAuth and SMTP secrets redacted as "***redacted***". Requires provision_neon_auth first.
Describe the returned information so the agent knows whether it will answer the request.
Inputs94/100
Input documentation gives an agent enough context to populate the arguments.
project_id
Neon project ID. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Branch ID. If omitted, the project default branch is used (same as provision_neon_auth).
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_neon_auth_config",
"title": "Get Neon Auth configuration",
"description": "Read Neon Auth config for a branch with OAuth and SMTP secrets redacted as \"***redacted***\". Requires provision_neon_auth first.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"branch_id": {
"type": "string",
"description": "Branch ID. If omitted, the project default branch is used (same as provision_neon_auth)."
},
"project_id": {
"type": "string",
"description": "Neon project ID. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get Neon Auth configuration",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Generate the execution plan for a SQL statement. When `analyze` is true, PostgreSQL executes the statement and any side effects. Use `analyze: false` to inspect a statement without executing it. Never analyze potentially destructive SQL autonomously. Do not use when you need query results (use `run_sql` instead).
Describe the returned information so the agent knows whether it will answer the request.
Inputs96/100
Input documentation gives an agent enough context to populate the arguments.
sql
The SQL statement to analyze
Clear enough to supply this argument.
project_id
The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An optional ID of the branch to execute the query against. If not provided the default branch is used.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
Clear enough to supply this argument.
analyze
Whether to execute the statement with EXPLAIN ANALYZE. Defaults to false because execution may cause side effects.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "explain_sql_statement",
"title": "Explain SQL Statement",
"description": "Generate the execution plan for a SQL statement. When `analyze` is true, PostgreSQL executes the statement and any side effects. Use `analyze: false` to inspect a statement without executing it. Never analyze potentially destructive SQL autonomously. Do not use when you need query results (use `run_sql` instead).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sql"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL statement to analyze"
},
"analyze": {
"type": "boolean",
"default": false,
"description": "Whether to execute the statement with EXPLAIN ANALYZE. Defaults to false because execution may cause side effects."
},
"branch_id": {
"type": "string",
"description": "An optional ID of the branch to execute the query against. If not provided the default branch is used."
},
"project_id": {
"type": "string",
"description": "The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Explain SQL Statement",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Analyze a slow query on a temporary branch and return a tuning_id. Apply suggested SQL with run_sql on that branch, re-run explain_sql_statement there, then complete_query_tuning with the tuning_id (not the branch id) — apply_changes true if they accept, omit it or pass false if they reject, so the temporary branch is deleted. Do not use prepare_database_migration.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Input documentation gives an agent enough context to populate the arguments.
sql
The SQL statement to analyze and tune
Clear enough to supply this argument.
database_name
The name of the database to execute the query against
Clear enough to supply this argument.
project_id
The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
role_name
The name of the role to connect with. If not provided, the default role (usually "neondb_owner") will be used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "prepare_query_tuning",
"title": "Prepare Query Tuning",
"description": "Analyze a slow query on a temporary branch and return a tuning_id. Apply suggested SQL with run_sql on that branch, re-run explain_sql_statement there, then complete_query_tuning with the tuning_id (not the branch id) — apply_changes true if they accept, omit it or pass false if they reject, so the temporary branch is deleted. Do not use prepare_database_migration.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"sql",
"database_name"
],
"properties": {
"sql": {
"type": "string",
"description": "The SQL statement to analyze and tune"
},
"role_name": {
"type": "string",
"description": "The name of the role to connect with. If not provided, the default role (usually \"neondb_owner\") will be used."
},
"project_id": {
"type": "string",
"description": "The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database to execute the query against"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Prepare Query Tuning",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Apply or discard query-tuning changes and delete the temporary branch. NEVER run autonomously. Before calling, apply suggested SQL with run_sql on the temporary branch and re-run explain_sql_statement. Pass the tuning_id from prepare_query_tuning, not the branch id, plus temporary_branch_id. Set apply_changes true to apply; omitting it discards. Call this even when the user rejects the changes. Do not use prepare_database_migration.
The description explains the capability, when to use it, and what to expect.
Inputs93/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
suggested_sql_statements
The SQL DDL statements to execute to improve performance. These statements are the result of the prior steps, for example creating additional indexes.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
apply_changes
Whether to apply the suggested changes to the main branch
Clear enough to supply this argument.
tuning_id
The ID of the tuning to complete. This is NOT the branch ID. Remember this ID from the prior step using tool prepare_query_tuning.
Clear enough to supply this argument.
database_name
The name of the database to execute the query against
Clear enough to supply this argument.
project_id
The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
role_name
The name of the role to connect with. If you have used a specific role in prepare_query_tuning you MUST pass the same role again to this tool. If not provided, the default role (usually "neondb_owner") will be used.
Clear enough to supply this argument.
should_delete_temporary_branch
Whether to delete the temporary branch after tuning
Clear enough to supply this argument.
temporary_branch_id
The ID of the temporary branch that needs to be deleted after tuning.
Clear enough to supply this argument.
branch_id
The ID or name of the branch that receives the changes. If not provided, the default (main) branch will be used.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "complete_query_tuning",
"title": "Complete Query Tuning",
"description": "Apply or discard query-tuning changes and delete the temporary branch. NEVER run autonomously. Before calling, apply suggested SQL with run_sql on the temporary branch and re-run explain_sql_statement. Pass the tuning_id from prepare_query_tuning, not the branch id, plus temporary_branch_id. Set apply_changes true to apply; omitting it discards. Call this even when the user rejects the changes. Do not use prepare_database_migration.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"suggested_sql_statements",
"tuning_id",
"database_name",
"temporary_branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"description": "The ID or name of the branch that receives the changes. If not provided, the default (main) branch will be used."
},
"role_name": {
"type": "string",
"description": "The name of the role to connect with. If you have used a specific role in prepare_query_tuning you MUST pass the same role again to this tool. If not provided, the default role (usually \"neondb_owner\") will be used."
},
"tuning_id": {
"type": "string",
"description": "The ID of the tuning to complete. This is NOT the branch ID. Remember this ID from the prior step using tool prepare_query_tuning."
},
"project_id": {
"type": "string",
"description": "The ID of the project to execute the query against. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"apply_changes": {
"type": "boolean",
"default": false,
"description": "Whether to apply the suggested changes to the main branch"
},
"database_name": {
"type": "string",
"description": "The name of the database to execute the query against"
},
"temporary_branch_id": {
"type": "string",
"description": "The ID of the temporary branch that needs to be deleted after tuning."
},
"suggested_sql_statements": {
"type": "array",
"items": {
"type": "string"
},
"description": "The SQL DDL statements to execute to improve performance. These statements are the result of the prior steps, for example creating additional indexes."
},
"should_delete_temporary_branch": {
"type": "boolean",
"default": true,
"description": "Whether to delete the temporary branch after tuning"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Complete Query Tuning",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
List queries from pg_stat_statements by execution time, slowest first. For sizes, indexes, locks, cache, bloat, or replication use inspect_database.
Describe the returned information so the agent knows whether it will answer the request.
Inputs93/100
Input documentation gives an agent enough context to populate the arguments.
project_id
The ID of the project to list slow queries from. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An optional ID of the branch. If not provided the default branch is used.
Clear enough to supply this argument.
database_name
The name of the database. If not provided, the default neondb or first available database is used.
Clear enough to supply this argument.
compute_id
The ID of the compute/endpoint. If not provided, the read-write compute associated with the branch will be used.
Clear enough to supply this argument.
limit
Maximum number of slow queries to return
Clear enough to supply this argument.
min_execution_time
Minimum execution time in milliseconds to consider a query as slow
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_slow_queries",
"title": "List Slow Queries",
"description": "List queries from pg_stat_statements by execution time, slowest first. For sizes, indexes, locks, cache, bloat, or replication use inspect_database.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "number",
"default": 10,
"description": "Maximum number of slow queries to return"
},
"branch_id": {
"type": "string",
"description": "An optional ID of the branch. If not provided the default branch is used."
},
"compute_id": {
"type": "string",
"description": "The ID of the compute/endpoint. If not provided, the read-write compute associated with the branch will be used."
},
"project_id": {
"type": "string",
"description": "The ID of the project to list slow queries from. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"description": "The name of the database. If not provided, the default neondb or first available database is used."
},
"min_execution_time": {
"type": "number",
"default": 1000,
"description": "Minimum execution time in milliseconds to consider a query as slow"
}
},
"additionalProperties": false
},
"annotations": {
"title": "List Slow Queries",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Run one read-only neon inspect db check (pick `check` from the input schema). Not for arbitrary SQL (`run_sql`), one statement's plan (`explain_sql_statement`), or applying indexes (`prepare_query_tuning`). Omit `database_name` to cover every database; some checks are compute-wide. If a check needs an extension, the tool names `CREATE EXTENSION`; ask before running it.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
check
Which diagnostic to run:
`table-sizes`: Size of each table (including TOAST), largest first (pg_table_size)
`index-sizes`: Size of each index, largest first (pg_relation_size)
`unused-indexes`: Non-unique indexes with fewer than 50 scans — candidates for removal (pg_stat_user_indexes)
`seq-scans`: Number of sequential scans recorded against each table (pg_stat_user_tables)
`long-running-queries`: Queries running longer than 5 minutes (pg_stat_activity)
`stalled-queries`: Active queries running longer than 30 seconds with parallel-worker grouping, waits, and blockers, oldest query group first (compute-wide)
`locks`: Locks held with the acquiring query and its age (pg_locks + pg_stat_activity)
`outliers`: The 25 queries with the highest cumulative execution time since statistics were last reset (needs pg_stat_statements)
`calls`: The 25 most frequently executed queries since statistics were last reset (needs pg_stat_statements)
`lfc-hit-rate`: Local File Cache hit rate (compute-wide, needs neon extension)
`working-set`: Estimated working set vs LFC size (compute-wide, needs neon extension)
`vacuum-stats`: Autovacuum status per table: last (auto)vacuum, dead tuples, threshold
`bloat`: Estimated bloat for the 25 most bloated tables (statistical estimate, no extension needed)
`replication-slots`: Replication slots (compute-wide): kind, status, client, restart/confirmed-flush LSNs, and lag (pg_replication_slots + pg_stat_replication)
`subscriptions`: Per-table logical replication progress on this subscriber (pg_subscription_rel)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
project_id
The ID of the project to inspect. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
An optional ID of the branch. If not provided the default branch is used.
Clear enough to supply this argument.
database_name
For a database-scoped check, the database to inspect. Omit to cover every database on the branch. Ranking and SQL row limits stay per database. One failing database fails the whole run. For a compute-wide check, the database to connect through; the check still runs once for the whole compute and the result does not include `databaseName`. The response `limit` applies to the combined rows after that.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
compute_id
The ID of the compute/endpoint. If not provided, the read-write compute associated with the branch will be used.
Clear enough to supply this argument.
limit
Maximum number of rows to return from the combined result. Per-database ranking and SQL caps are applied first. The response reports how many rows the check produced and whether they were truncated, so raise this only when `truncated` is true. A few checks are capped in SQL and say so in their description.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "inspect_database",
"title": "Inspect Database",
"description": "Run one read-only neon inspect db check (pick `check` from the input schema). Not for arbitrary SQL (`run_sql`), one statement's plan (`explain_sql_statement`), or applying indexes (`prepare_query_tuning`). Omit `database_name` to cover every database; some checks are compute-wide. If a check needs an extension, the tool names `CREATE EXTENSION`; ask before running it.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"check"
],
"properties": {
"check": {
"enum": [
"table-sizes",
"index-sizes",
"unused-indexes",
"seq-scans",
"long-running-queries",
"stalled-queries",
"locks",
"outliers",
"calls",
"lfc-hit-rate",
"working-set",
"vacuum-stats",
"bloat",
"replication-slots",
"subscriptions"
],
"type": "string",
"description": "Which diagnostic to run:\n`table-sizes`: Size of each table (including TOAST), largest first (pg_table_size)\n`index-sizes`: Size of each index, largest first (pg_relation_size)\n`unused-indexes`: Non-unique indexes with fewer than 50 scans — candidates for removal (pg_stat_user_indexes)\n`seq-scans`: Number of sequential scans recorded against each table (pg_stat_user_tables)\n`long-running-queries`: Queries running longer than 5 minutes (pg_stat_activity)\n`stalled-queries`: Active queries running longer than 30 seconds with parallel-worker grouping, waits, and blockers, oldest query group first (compute-wide)\n`locks`: Locks held with the acquiring query and its age (pg_locks + pg_stat_activity)\n`outliers`: The 25 queries with the highest cumulative execution time since statistics were last reset (needs pg_stat_statements)\n`calls`: The 25 most frequently executed queries since statistics were last reset (needs pg_stat_statements)\n`lfc-hit-rate`: Local File Cache hit rate (compute-wide, needs neon extension)\n`working-set`: Estimated working set vs LFC size (compute-wide, needs neon extension)\n`vacuum-stats`: Autovacuum status per table: last (auto)vacuum, dead tuples, threshold\n`bloat`: Estimated bloat for the 25 most bloated tables (statistical estimate, no extension needed)\n`replication-slots`: Replication slots (compute-wide): kind, status, client, restart/confirmed-flush LSNs, and lag (pg_replication_slots + pg_stat_replication)\n`subscriptions`: Per-table logical replication progress on this subscriber (pg_subscription_rel)"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 1000,
"minimum": 1,
"description": "Maximum number of rows to return from the combined result. Per-database ranking and SQL caps are applied first. The response reports how many rows the check produced and whether they were truncated, so raise this only when `truncated` is true. A few checks are capped in SQL and say so in their description."
},
"branch_id": {
"type": "string",
"description": "An optional ID of the branch. If not provided the default branch is used."
},
"compute_id": {
"type": "string",
"description": "The ID of the compute/endpoint. If not provided, the read-write compute associated with the branch will be used."
},
"project_id": {
"type": "string",
"description": "The ID of the project to inspect. Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string",
"minLength": 1,
"description": "For a database-scoped check, the database to inspect. Omit to cover every database on the branch. Ranking and SQL row limits stay per database. One failing database fails the whole run. For a compute-wide check, the database to connect through; the check still runs once for the whole compute and the result does not include `databaseName`. The response `limit` applies to the combined rows after that."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Inspect Database",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Search across all organizations, projects, and branches by keyword. Returns matching items with id, title, and URL. Query must be at least 3 characters. Do not use when you need all projects (use `list_projects` instead).
The description explains the capability, when to use it, and what to expect.
Inputs96/100
Input documentation gives an agent enough context to populate the arguments.
query
The search query to find matching organizations, projects, or branches
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search",
"title": "Search",
"description": "Search across all organizations, projects, and branches by keyword. Returns matching items with id, title, and URL. Query must be at least 3 characters. Do not use when you need all projects (use `list_projects` instead).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 3,
"description": "The search query to find matching organizations, projects, or branches"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Search",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "fetch",
"title": "Fetch",
"description": "Fetch detailed information about a specific organization, project, or branch using the ID returned by the `search` tool.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The ID returned by the search tool to fetch detailed information about the entity"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Fetch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
Fetch one Neon documentation page as markdown. Pass a slug from list_docs_resources (for example docs/guides/prisma.md).
Describe the returned information so the agent knows whether it will answer the request.
Inputs99/100
Input documentation gives an agent enough context to populate the arguments.
slug
The docs page slug (path) to fetch, e.g. 'docs/guides/prisma.md'. Slugs use .md file endings matching the URLs in the documentation index. Use the list_docs_resources tool first to discover available slugs.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Send anonymous feedback about Neon or this MCP server to the Neon team. Only call this when the user asks to give feedback. Sends only the feedback text, not account, project, or connection details.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
feedback
The feedback to send to Neon. Do not include passwords, API keys, connection strings, or other secrets.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "send_feedback",
"title": "Send Feedback",
"description": "Send anonymous feedback about Neon or this MCP server to the Neon team. Only call this when the user asks to give feedback. Sends only the feedback text, not account, project, or connection details.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"feedback"
],
"properties": {
"feedback": {
"type": "string",
"maxLength": 10000,
"minLength": 1,
"description": "The feedback to send to Neon. Do not include passwords, API keys, connection strings, or other secrets."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Send Feedback",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
List Neon projects you own. Returns every page. Pass limit to cap how many. There is no `cursor` argument. `org_id` is optional: organization API keys use their organization; personal API keys auto-select when unambiguous and otherwise return the IDs to choose from.
Describe the returned information so the agent knows whether it will answer the request.
Inputs0/100
0 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
search
Not provided
Missing description. Explain what this value means and how to supply it.
org_id
Not provided
Missing description. Explain what this value means and how to supply it.
timeout
Not provided
Missing description. Explain what this value means and how to supply it.
recoverable
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "describe_project",
"title": "Retrieve project details",
"description": "Retrieves the project record (settings, compute, usage). Call `list_branches` for branches.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Retrieve project details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Creates a Neon project and waits until the default compute is ready. `org_id` is optional: organization API keys use their organization; personal API keys auto-select when unambiguous and otherwise return the IDs to choose from. Does not return a connection string; call `get_connection_string` with the project id.
The description explains the capability, when to use it, and what to expect.
Inputs0/100
0 of 35 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
settings › quota › active_time_seconds
Not provided
Missing description. Explain what this value means and how to supply it.
settings › quota › compute_time_seconds
Not provided
Missing description. Explain what this value means and how to supply it.
settings › quota › written_data_bytes
Not provided
Missing description. Explain what this value means and how to supply it.
settings › quota › data_transfer_bytes
Not provided
Missing description. Explain what this value means and how to supply it.
settings › quota › logical_size_bytes
Not provided
Missing description. Explain what this value means and how to supply it.
settings › allowed_ips › ips
Not provided
Missing description. Explain what this value means and how to supply it.
settings › allowed_ips › protected_branches_only
Not provided
Missing description. Explain what this value means and how to supply it.
settings › enable_logical_replication
Not provided
Missing description. Explain what this value means and how to supply it.
settings › maintenance_window › weekdays
Not provided
Missing description. Explain what this value means and how to supply it.
settings › maintenance_window › start_time
Not provided
Missing description. Explain what this value means and how to supply it.
settings › maintenance_window › end_time
Not provided
Missing description. Explain what this value means and how to supply it.
settings › block_public_connections
Not provided
Missing description. Explain what this value means and how to supply it.
settings › block_vpc_connections
Not provided
Missing description. Explain what this value means and how to supply it.
settings › audit_log_level
Not provided
Missing description. Explain what this value means and how to supply it.
settings › hipaa
Not provided
Missing description. Explain what this value means and how to supply it.
settings › preload_libraries › use_defaults
Not provided
Missing description. Explain what this value means and how to supply it.
settings › preload_libraries › enabled_libraries
Not provided
Missing description. Explain what this value means and how to supply it.
name
Not provided
Missing description. Explain what this value means and how to supply it.
branch › name
Not provided
Missing description. Explain what this value means and how to supply it.
branch › role_name
Not provided
Missing description. Explain what this value means and how to supply it.
branch › database_name
Not provided
Missing description. Explain what this value means and how to supply it.
branch › annotations
Not provided
Missing description. Explain what this value means and how to supply it.
autoscaling_limit_min_cu
Not provided
Missing description. Explain what this value means and how to supply it.
autoscaling_limit_max_cu
Not provided
Missing description. Explain what this value means and how to supply it.
provisioner
Not provided
Missing description. Explain what this value means and how to supply it.
region_id
Not provided
Missing description. Explain what this value means and how to supply it.
default_endpoint_settings › pg_settings
Not provided
Missing description. Explain what this value means and how to supply it.
default_endpoint_settings › pgbouncer_settings
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "recover_project",
"title": "Recover a deleted project",
"description": "Recovers a deleted project within the 7-day deletion recovery period.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Recover a deleted project",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description75/100
Retrieves details about users who have access to the project, including the permission `id`, the granted-to email address, and the date project access was granted.
The description explains the capability, when to use it, and what to expect.
Inputs94/100
Input documentation gives an agent enough context to populate the arguments.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_project_permissions",
"title": "List project access",
"description": "Retrieves details about users who have access to the project, including the permission `id`, the granted-to email address, and the date project access was granted.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List project access",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Lists organization members and their per-project roles for an org-owned project. Returns every page. Pass limit to cap how many.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List org members and their project roles",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_project_members",
"title": "List org members and their project roles",
"description": "Lists organization members and their per-project roles for an org-owned project. Returns every page. Pass limit to cap how many.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List org members and their project roles",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_operations",
"title": "List operations",
"description": "Lists operations for a project. Omitting `limit` returns every remaining page. There is no `cursor` argument.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List operations",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_branch",
"title": "Retrieve branch details",
"description": "Retrieves information about the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Retrieve branch details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Creates a branch with a read-write compute and waits until it is ready. Pass `no_compute: true` to skip the endpoint. Does not return a connection string; call `get_connection_string` with the project and branch id. Copies the parent at HEAD; point-in-time restore is `restore_snapshot`.
The description explains the capability, when to use it, and what to expect.
Inputs29/100
2 of 7 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
name
Not provided
Missing description. Explain what this value means and how to supply it.
parent_id
Not provided
Missing description. Explain what this value means and how to supply it.
compute › min_cu
Not provided
Missing description. Explain what this value means and how to supply it.
compute › max_cu
Not provided
Missing description. Explain what this value means and how to supply it.
compute › suspend_timeout_seconds
Not provided
Missing description. Explain what this value means and how to supply it.
no_compute
Skip the read-write endpoint. Default false. Cannot be combined with compute.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "create_branch",
"title": "Create branch",
"description": "Creates a branch with a read-write compute and waits until it is ready. Pass `no_compute: true` to skip the endpoint. Does not return a connection string; call `get_connection_string` with the project and branch id. Copies the parent at HEAD; point-in-time restore is `restore_snapshot`.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"compute": {
"type": "object",
"properties": {
"max_cu": {
"type": "number",
"minimum": 0.25
},
"min_cu": {
"type": "number",
"minimum": 0.25
},
"suspend_timeout_seconds": {
"type": "integer",
"maximum": 604800,
"minimum": -1
}
},
"additionalProperties": false
},
"parent_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"no_compute": {
"type": "boolean",
"description": "Skip the read-write endpoint. Default false. Cannot be combined with compute."
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description93/100
Delete a branch and all its data. NEVER run autonomously; always ask the user first. For the whole project, use `delete_project`.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_branch",
"title": "Delete branch",
"description": "Delete a branch and all its data. NEVER run autonomously; always ask the user first. For the whole project, use `delete_project`.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_default_branch",
"title": "Get default branch",
"description": "Resolve the project's default branch by the default flag, not by name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get default branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "set_default_branch",
"title": "Set branch as default",
"description": "Sets the specified branch as the project's default branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Set branch as default",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
Reset a branch to its parent's current HEAD. Discards every change the branch has written since it diverged. NEVER run autonomously; always ask the user first. `preserve_under_name` saves the current state first and is required when the branch has children; those children move to the new branch. Point-in-time restore is `restore_snapshot`.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs67/100
2 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
preserve_under_name
Name under which to save the current branch before the reset. Required when the branch has children; those children move to the new branch.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "reset_from_parent",
"title": "Reset branch from parent",
"description": "Reset a branch to its parent's current HEAD. Discards every change the branch has written since it diverged. NEVER run autonomously; always ask the user first. `preserve_under_name` saves the current state first and is required when the branch has children; those children move to the new branch. Point-in-time restore is `restore_snapshot`.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"preserve_under_name": {
"type": "string",
"description": "Name under which to save the current branch before the reset. Required when the branch has children; those children move to the new branch."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Reset branch from parent",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description72/100
Compare one database's SQL schema on a branch to another. `database_name` is required. Omit `base_branch_id` to compare against the parent; it is a branch id (`br-...`), not a name. Pass `lsn`, `timestamp`, `base_lsn`, or `base_timestamp` only for a point-in-time comparison.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs13/100
1 of 8 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
database_name
Not provided
Missing description. Explain what this value means and how to supply it.
base_branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
lsn
Not provided
Missing description. Explain what this value means and how to supply it.
timestamp
Not provided
Missing description. Explain what this value means and how to supply it.
base_lsn
Not provided
Missing description. Explain what this value means and how to supply it.
base_timestamp
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "compare_database_schema",
"title": "Compare database schema",
"description": "Compare one database's SQL schema on a branch to another. `database_name` is required. Omit `base_branch_id` to compare against the parent; it is a branch id (`br-...`), not a name. Pass `lsn`, `timestamp`, `base_lsn`, or `base_timestamp` only for a point-in-time comparison.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"database_name"
],
"properties": {
"lsn": {
"type": "string"
},
"base_lsn": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"timestamp": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string"
},
"base_branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"base_timestamp": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Compare database schema",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Finalize a branch created with `restore_snapshot` and `finalize: false`: reassign computes (this restarts them) and swap names so it replaces the original branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
name
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "finalize_branch_restore",
"title": "Finalize branch restore from snapshot",
"description": "Finalize a branch created with `restore_snapshot` and `finalize: false`: reassign computes (this restarts them) and swap names so it replaces the original branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"name": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Finalize branch restore from snapshot",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description75/100
Retrieves a list of Postgres roles from the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_postgres_roles",
"title": "List roles",
"description": "Retrieves a list of Postgres roles from the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List roles",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_postgres_role",
"title": "Retrieve role details",
"description": "Retrieves details about the specified role.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"role_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"role_name": {
"type": "string"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Retrieve role details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "create_postgres_role",
"title": "Create role",
"description": "Creates a Postgres role in the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"name"
],
"properties": {
"name": {
"type": "string"
},
"no_login": {
"type": "boolean"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create role",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_postgres_role",
"title": "Delete role",
"description": "Deletes the specified Postgres role from the branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"role_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"role_name": {
"type": "string"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete role",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "reset_postgres_role_password",
"title": "Reset role password",
"description": "Resets the password for the specified Postgres role.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"role_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"role_name": {
"type": "string"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Reset role password",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_postgres_databases",
"title": "List databases",
"description": "Retrieves a list of databases for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List databases",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_postgres_database",
"title": "Retrieve database details",
"description": "Retrieves information about the specified database.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"database_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Retrieve database details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "create_postgres_database",
"title": "Create database",
"description": "Creates a database in the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"name",
"owner_name"
],
"properties": {
"name": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"owner_name": {
"type": "string"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create database",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "update_postgres_database",
"title": "Update database",
"description": "Updates the specified database in the branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"database_name"
],
"properties": {
"name": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"owner_name": {
"type": "string"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update database",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_postgres_database",
"title": "Delete database",
"description": "Deletes the specified database from the branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"database_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete database",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_postgres_endpoints",
"title": "List compute endpoints",
"description": "Retrieves a list of compute endpoints for the specified project.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List compute endpoints",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Retrieves a list of compute endpoints for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_branch_computes",
"title": "List branch endpoints",
"description": "Retrieves a list of compute endpoints for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List branch endpoints",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "restart_postgres_endpoint",
"title": "Restart compute endpoint",
"description": "Restarts the specified compute endpoint by immediately suspending it and then starting it again.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"endpoint_id"
],
"properties": {
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"endpoint_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Restart compute endpoint",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_snapshots",
"title": "List project snapshots",
"description": "Lists the snapshots for the specified project.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List project snapshots",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Returns the backup schedule for the specified branch, including the configured snapshot frequencies.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_snapshot_schedule",
"title": "Retrieve backup schedule",
"description": "Returns the backup schedule for the specified branch, including the configured snapshot frequencies.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Retrieve backup schedule",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Replace a branch's automatic snapshot schedule. Frequency must be daily, weekly, or monthly.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs14/100
1 of 7 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
schedule › items › frequency
Not provided
Missing description. Explain what this value means and how to supply it.
schedule › items › hour
Not provided
Missing description. Explain what this value means and how to supply it.
schedule › items › day
Not provided
Missing description. Explain what this value means and how to supply it.
schedule › items › month
Not provided
Missing description. Explain what this value means and how to supply it.
schedule › items › retention_seconds
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "create_snapshot",
"title": "Create snapshot",
"description": "Creates a snapshot from the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"lsn": {
"type": "string"
},
"name": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"timestamp": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create snapshot",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Restore a snapshot onto a new or existing branch. The call waits until the branch is ready. Pass `target_branch_id` to restore onto an existing branch; omit it to create one. Pass `finalize: false` then call `finalize_branch_restore` to swap names later.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs40/100
2 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
snapshot_id
Not provided
Missing description. Explain what this value means and how to supply it.
name
Not provided
Missing description. Explain what this value means and how to supply it.
target_branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
finalize
Finalize immediately (move computes onto the restored branch). Defaults to true when restoring as a new branch and false when restoring onto an existing branch.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "restore_snapshot",
"title": "Restore snapshot",
"description": "Restore a snapshot onto a new or existing branch. The call waits until the branch is ready. Pass `target_branch_id` to restore onto an existing branch; omit it to create one. Pass `finalize: false` then call `finalize_branch_restore` to swap names later.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"snapshot_id"
],
"properties": {
"name": {
"type": "string"
},
"finalize": {
"type": "boolean",
"description": "Finalize immediately (move computes onto the restored branch). Defaults to true when restoring as a new branch and false when restoring onto an existing branch."
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"snapshot_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"target_branch_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Restore snapshot",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description85/100
Retrieves the Neon Auth integration details for the specified branch, including the auth provider type and integration status.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Retrieve Neon Auth details for the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_auth",
"title": "Retrieve Neon Auth details for the branch",
"description": "Retrieves the Neon Auth integration details for the specified branch, including the auth provider type and integration status.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Retrieve Neon Auth details for the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Enables Neon Auth for the specified branch by connecting it to an authentication provider.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
auth_provider
Not provided
Missing description. Explain what this value means and how to supply it.
database_name
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Enable Neon Auth for the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "provision_neon_auth",
"title": "Enable Neon Auth for the branch",
"description": "Enables Neon Auth for the specified branch by connecting it to an authentication provider.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"auth_provider"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"auth_provider": {
"enum": [
"mock",
"stack",
"better_auth"
],
"type": "string"
},
"database_name": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Enable Neon Auth for the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Disables the Neon Auth integration for the specified branch, removing the connection to the authentication provider.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
delete_data
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Disable Neon Auth for the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "disable_auth",
"title": "Disable Neon Auth for the branch",
"description": "Disables the Neon Auth integration for the specified branch, removing the connection to the authentication provider.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"delete_data": {
"type": "boolean"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Disable Neon Auth for the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "update_auth_config",
"title": "Update auth configuration",
"description": "Updates the auth configuration for the branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 256,
"minLength": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update auth configuration",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description78/100
Lists the OAuth providers configured for the specified branch's Neon Auth integration.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List OAuth providers for the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_auth_oauth_providers",
"title": "List OAuth providers for the branch",
"description": "Lists the OAuth providers configured for the specified branch's Neon Auth integration.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List OAuth providers for the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description75/100
Adds an OAuth provider configuration to the specified branch's Neon Auth integration.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs17/100
1 of 6 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
id
Not provided
Missing description. Explain what this value means and how to supply it.
client_id
Not provided
Missing description. Explain what this value means and how to supply it.
client_secret
Not provided
Missing description. Explain what this value means and how to supply it.
microsoft_tenant_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_auth_oauth_provider",
"title": "Delete OAuth provider",
"description": "Deletes an OAuth provider from the specified project.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"oauth_provider_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"oauth_provider_id": {
"enum": [
"google",
"github",
"microsoft",
"vercel"
],
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete OAuth provider",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
Lists the trusted domains in the redirect URI whitelist for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_auth_trusted_domains",
"title": "List domains in redirect_uri whitelist",
"description": "Lists the trusted domains in the redirect URI whitelist for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List domains in redirect_uri whitelist",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description74/100
Adds a domain to the redirect URI whitelist for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
domain
Not provided
Missing description. Explain what this value means and how to supply it.
auth_provider
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "add_auth_trusted_domain",
"title": "Add domain to redirect_uri whitelist",
"description": "Adds a domain to the redirect URI whitelist for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"domain",
"auth_provider"
],
"properties": {
"domain": {
"type": "string",
"format": "uri"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"auth_provider": {
"enum": [
"mock",
"stack",
"better_auth"
],
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Add domain to redirect_uri whitelist",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Align the title with the capability actually described by this tool.
Description76/100
Removes a domain from the redirect URI whitelist for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
auth_provider
Not provided
Missing description. Explain what this value means and how to supply it.
domains › items › domain
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description75/100
Creates a new user in the Neon Auth user directory for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
email
Not provided
Missing description. Explain what this value means and how to supply it.
name
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "create_auth_user",
"title": "Create new auth user",
"description": "Creates a new user in the Neon Auth user directory for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"email"
],
"properties": {
"name": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"email": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 256,
"minLength": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create new auth user",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Deletes the specified user from the Neon Auth user directory for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
auth_user_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_auth_user",
"title": "Delete auth user",
"description": "Deletes the specified user from the Neon Auth user directory for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"auth_user_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"auth_user_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete auth user",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description73/100
Updates the role of a user in the Neon Auth user directory for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
auth_user_id
Not provided
Missing description. Explain what this value means and how to supply it.
roles
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "update_auth_user_role",
"title": "Update auth user role",
"description": "Updates the role of a user in the Neon Auth user directory for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"auth_user_id",
"roles"
],
"properties": {
"roles": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"auth_user_id": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update auth user role",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Retrieves the Neon Data API configuration for the specified branch, including endpoint URL, enabled state, and database settings.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
database_name
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Retrieve Neon Data API configuration",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_data_api",
"title": "Retrieve Neon Data API configuration",
"description": "Retrieves the Neon Data API configuration for the specified branch, including endpoint URL, enabled state, and database settings.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"database_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Retrieve Neon Data API configuration",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description72/100
Creates a new instance of Neon Data API in the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs5/100
1 of 19 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
database_name
Not provided
Missing description. Explain what this value means and how to supply it.
auth_provider
Not provided
Missing description. Explain what this value means and how to supply it.
jwks_url
Not provided
Missing description. Explain what this value means and how to supply it.
provider_name
Not provided
Missing description. Explain what this value means and how to supply it.
jwt_audience
Not provided
Missing description. Explain what this value means and how to supply it.
add_default_grants
Not provided
Missing description. Explain what this value means and how to supply it.
skip_auth_schema
Not provided
Missing description. Explain what this value means and how to supply it.
settings › db_aggregates_enabled
Not provided
Missing description. Explain what this value means and how to supply it.
settings › db_anon_role
Not provided
Missing description. Explain what this value means and how to supply it.
settings › db_extra_search_path
Not provided
Missing description. Explain what this value means and how to supply it.
settings › db_max_rows
Not provided
Missing description. Explain what this value means and how to supply it.
settings › db_schemas
Not provided
Missing description. Explain what this value means and how to supply it.
settings › jwt_role_claim_key
Not provided
Missing description. Explain what this value means and how to supply it.
settings › jwt_cache_max_lifetime
Not provided
Missing description. Explain what this value means and how to supply it.
settings › openapi_mode
Not provided
Missing description. Explain what this value means and how to supply it.
settings › server_cors_allowed_origins
Not provided
Missing description. Explain what this value means and how to supply it.
settings › server_timing_enabled
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description69/100
Updates the Neon Data API configuration for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs8/100
1 of 13 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
database_name
Not provided
Missing description. Explain what this value means and how to supply it.
db_aggregates_enabled
Not provided
Missing description. Explain what this value means and how to supply it.
db_anon_role
Not provided
Missing description. Explain what this value means and how to supply it.
db_extra_search_path
Not provided
Missing description. Explain what this value means and how to supply it.
db_max_rows
Not provided
Missing description. Explain what this value means and how to supply it.
db_schemas
Not provided
Missing description. Explain what this value means and how to supply it.
jwt_role_claim_key
Not provided
Missing description. Explain what this value means and how to supply it.
jwt_cache_max_lifetime
Not provided
Missing description. Explain what this value means and how to supply it.
openapi_mode
Not provided
Missing description. Explain what this value means and how to supply it.
server_cors_allowed_origins
Not provided
Missing description. Explain what this value means and how to supply it.
server_timing_enabled
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_data_api",
"title": "Delete Neon Data API",
"description": "Deletes the Neon Data API for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"database_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"database_name": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete Neon Data API",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Returns logs for a branch. Pass `limit` to cap how many. There is no `cursor` argument. Filters combine with AND. Pass `logql` instead of structured filters, not with them. Give the window as `since` or `start_time`, not both; default is the previous hour, max seven days; `end_time` is exclusive. Private beta; a branch without logs access returns HTTP 404 with reason "telemetry_not_enabled".
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs7/100
1 of 15 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
since
Not provided
Missing description. Explain what this value means and how to supply it.
start_time
Not provided
Missing description. Explain what this value means and how to supply it.
end_time
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
sort_order
Not provided
Missing description. Explain what this value means and how to supply it.
source
Not provided
Missing description. Explain what this value means and how to supply it.
service_name
Not provided
Missing description. Explain what this value means and how to supply it.
scope_name
Not provided
Missing description. Explain what this value means and how to supply it.
minimum_severity
Not provided
Missing description. Explain what this value means and how to supply it.
severity_text
Not provided
Missing description. Explain what this value means and how to supply it.
body_contains
Not provided
Missing description. Explain what this value means and how to supply it.
trace_id
Not provided
Missing description. Explain what this value means and how to supply it.
logql
Not provided
Missing description. Explain what this value means and how to supply it.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/100
Lists the low-cardinality log fields observed on this branch. Call `list_log_field_values` with `field_name` to list distinct values.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_log_fields",
"title": "List branch log fields",
"description": "Lists the low-cardinality log fields observed on this branch. Call `list_log_field_values` with `field_name` to list distinct values.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List branch log fields",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description88/100
Lists distinct values for a low-cardinality log field. Call `list_log_fields` first for `field_name`; a field the branch has never emitted returns `unknown_field`. Pass `since` or `start_time`, not both; default is the previous six hours, max seven days. Private beta.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs13/100
1 of 8 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
field_name
Not provided
Missing description. Explain what this value means and how to supply it.
since
Not provided
Missing description. Explain what this value means and how to supply it.
start_time
Not provided
Missing description. Explain what this value means and how to supply it.
end_time
Not provided
Missing description. Explain what this value means and how to supply it.
source
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_log_field_values",
"title": "List branch log field values",
"description": "Lists distinct values for a low-cardinality log field. Call `list_log_fields` first for `field_name`; a field the branch has never emitted returns `unknown_field`. Pass `since` or `start_time`, not both; default is the previous six hours, max seven days. Private beta.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"field_name"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1
},
"since": {
"type": "string",
"pattern": "^[0-9]{1,6}(ms|s|m|h|d)$"
},
"source": {
"enum": [
"function",
"storage",
"pg_endpoint"
],
"type": "string"
},
"end_time": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"field_name": {
"type": "string",
"minLength": 1
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"start_time": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
}
},
"additionalProperties": false
},
"annotations": {
"title": "List branch log field values",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Returns the AI Gateway endpoint host for the specified branch, used to render code-snippet base URLs.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_ai_gateway",
"title": "Get branch AI Gateway endpoint",
"description": "Returns the AI Gateway endpoint host for the specified branch, used to render code-snippet base URLs.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get branch AI Gateway endpoint",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Lists functions on the specified branch. Returns every page. Pass limit to cap how many.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List functions on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_functions",
"title": "List functions on the branch",
"description": "Lists functions on the specified branch. Returns every page. Pass limit to cap how many.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List functions on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_function",
"title": "Get function details",
"description": "Returns the function identified by its slug.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]{1,20}$"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get function details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description72/100
Updates the function's mutable metadata — currently only the display `name`.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
slug
Not provided
Missing description. Explain what this value means and how to supply it.
name
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "update_function",
"title": "Update a function",
"description": "Updates the function's mutable metadata — currently only the display `name`.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"slug",
"name"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 256,
"minLength": 1
},
{
"type": "null"
}
]
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9]{1,20}$"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Update a function",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description77/100
Deletes the function identified by its slug.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
slug
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Delete a function on the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_function",
"title": "Delete a function on the branch",
"description": "Deletes the function identified by its slug.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9]{1,20}$"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete a function on the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description74/100
Creates a deployment for the function. Supply at least one of `zip`, `environment`, or `runtime`; omitted fields inherit the latest version. The first deployment must include `zip`.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs29/100
2 of 6 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
slug
Not provided
Missing description. Explain what this value means and how to supply it.
zip
Base64-encoded binary file contents.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
runtime
Not provided
Missing description. Explain what this value means and how to supply it.
environment
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Deploy code to a function",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "deploy_function",
"title": "Deploy code to a function",
"description": "Creates a deployment for the function. Supply at least one of `zip`, `environment`, or `runtime`; omitted fields inherit the latest version. The first deployment must include `zip`.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"slug"
],
"properties": {
"zip": {
"type": "string",
"format": "base64",
"pattern": "^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$",
"description": "Base64-encoded binary file contents.",
"contentEncoding": "base64"
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9]{1,20}$"
},
"runtime": {
"enum": [
"nodejs24"
],
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"environment": {
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Deploy code to a function",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description90/100
Lists all custom domains registered on the branch, across every target entity. Returns every page. Pass limit to cap how many.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List the custom domains on a branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_functions_custom_domains",
"title": "List the custom domains on a branch",
"description": "Lists all custom domains registered on the branch, across every target entity. Returns every page. Pass limit to cap how many.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List the custom domains on a branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description92/100
Registers a hostname on the branch and routes it to a function. Pass `entity_type: "function"` and `entity_id` as the slug from `list_functions`. Point a CNAME at the returned `cname_target`.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs20/100
1 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
domain
Not provided
Missing description. Explain what this value means and how to supply it.
entity_type
Not provided
Missing description. Explain what this value means and how to supply it.
entity_id
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Register a custom domain on a branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "register_functions_custom_domain",
"title": "Register a custom domain on a branch",
"description": "Registers a hostname on the branch and routes it to a function. Pass `entity_type: \"function\"` and `entity_id` as the slug from `list_functions`. Point a CNAME at the returned `cname_target`.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"domain",
"entity_type",
"entity_id"
],
"properties": {
"domain": {
"type": "string",
"maxLength": 254,
"minLength": 3
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"entity_id": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"entity_type": {
"type": "string",
"maxLength": 32,
"minLength": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "Register a custom domain on a branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description89/100
Removes a custom domain registered on the branch and stops routing it.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
domain
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Delete a custom domain from a branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_functions_custom_domain",
"title": "Delete a custom domain from a branch",
"description": "Removes a custom domain registered on the branch and stops routing it.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"domain"
],
"properties": {
"domain": {
"type": "string",
"pattern": "^[A-Za-z0-9.-]+$",
"maxLength": 254,
"minLength": 3
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete a custom domain from a branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description84/100
Lists the complete project-bounded set of triggers visible on the branch, ordered by `trigger_id`.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List triggers on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_triggers",
"title": "List triggers on the branch",
"description": "Lists the complete project-bounded set of triggers visible on the branch, ordered by `trigger_id`.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List triggers on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_trigger",
"title": "Get a trigger",
"description": "Returns the trigger visible on the branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"trigger_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"trigger_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.\\-]{0,127}$",
"maxLength": 128,
"minLength": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get a trigger",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description86/100
Deletes a branch-local trigger or writes a branch-local tombstone for an inherited trigger so it does not reappear.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
trigger_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_trigger",
"title": "Delete a trigger",
"description": "Deletes a branch-local trigger or writes a branch-local tombstone for an inherited trigger so it does not reappear.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"trigger_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"trigger_id": {
"type": "string",
"pattern": "^[A-Za-z0-9][A-Za-z0-9_.\\-]{0,127}$",
"maxLength": 128,
"minLength": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete a trigger",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
Returns metadata for customer-issued credentials on the branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List credentials on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_credentials",
"title": "List credentials on the branch",
"description": "Returns metadata for customer-issued credentials on the branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List credentials on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
Issues a new scoped service credential anchored to the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs20/100
1 of 5 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
name
Not provided
Missing description. Explain what this value means and how to supply it.
scopes
Not provided
Missing description. Explain what this value means and how to supply it.
principal_type
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Issue a scoped credential on the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "create_credential",
"title": "Issue a scoped credential on the branch",
"description": "Issues a new scoped service credential anchored to the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"scopes",
"principal_type"
],
"properties": {
"name": {
"type": "string",
"maxLength": 256
},
"scopes": {
"type": "array",
"items": {
"enum": [
"storage:read",
"storage:write",
"ai_gateway:invoke",
"functions:invoke"
],
"type": "string"
},
"maxItems": 16,
"minItems": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"principal_type": {
"enum": [
"user"
],
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Issue a scoped credential on the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "revoke_credential",
"title": "Revoke a credential",
"description": "Soft-deletes the credential.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"token_id"
],
"properties": {
"token_id": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Revoke a credential",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description74/100
Replaces the secret material on an existing scoped credential in place.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
token_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "rotate_credential",
"title": "Rotate a credential's secrets",
"description": "Replaces the secret material on an existing scoped credential in place.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"token_id"
],
"properties": {
"token_id": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Rotate a credential's secrets",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Returns whether branchable object storage is usable for the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_storage",
"title": "Get branch object storage state",
"description": "Returns whether branchable object storage is usable for the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "Get branch object storage state",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/100
Lists branchable object storage buckets visible on the specified branch, including those inherited from ancestor branches.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs50/100
1 of 2 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List buckets on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_storage_buckets",
"title": "List buckets on the branch",
"description": "Lists branchable object storage buckets visible on the specified branch, including those inherited from ancestor branches.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
}
},
"additionalProperties": false
},
"annotations": {
"title": "List buckets on the branch",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description76/100
Creates a new branchable object storage bucket on the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
The description explains the capability, when to use it, and what to expect.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
name
Not provided
Missing description. Explain what this value means and how to supply it.
access_level
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Create a bucket on the branch",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "create_storage_bucket",
"title": "Create a bucket on the branch",
"description": "Creates a new branchable object storage bucket on the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"access_level": {
"enum": [
"private",
"public_read"
],
"type": "string"
}
},
"additionalProperties": false
},
"annotations": {
"title": "Create a bucket on the branch",
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description80/100
Deletes the named bucket from the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs33/100
1 of 3 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
bucket_name
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Delete a bucket on the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_storage_bucket",
"title": "Delete a bucket on the branch",
"description": "Deletes the named bucket from the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"bucket_name"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"bucket_name": {
"type": "string",
"maxLength": 255,
"minLength": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete a bucket on the branch",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Lists objects visible in the named bucket on the specified branch, including those inherited from ancestor branches. Returns every page. Pass limit to cap how many.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs17/100
1 of 6 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
bucket_name
Not provided
Missing description. Explain what this value means and how to supply it.
prefix
Not provided
Missing description. Explain what this value means and how to supply it.
delimiter
Not provided
Missing description. Explain what this value means and how to supply it.
limit
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "List objects in a bucket",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "list_storage_objects",
"title": "List objects in a bucket",
"description": "Lists objects visible in the named bucket on the specified branch, including those inherited from ancestor branches. Returns every page. Pass limit to cap how many.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"bucket_name"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 1000,
"minimum": 1
},
"prefix": {
"type": "string"
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"delimiter": {
"type": "string"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"bucket_name": {
"type": "string",
"maxLength": 255,
"minLength": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "List objects in a bucket",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description79/100
Deletes the named object from the bucket on the specified branch.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
bucket_name
Not provided
Missing description. Explain what this value means and how to supply it.
object_key
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Delete an object in a bucket",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_storage_object",
"title": "Delete an object in a bucket",
"description": "Deletes the named object from the bucket on the specified branch.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"bucket_name",
"object_key"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"object_key": {
"type": "string",
"maxLength": 1024,
"minLength": 1
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"bucket_name": {
"type": "string",
"maxLength": 255,
"minLength": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete an object in a bucket",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
Delete every object under a key prefix (folder) in a bucket
The title clearly communicates the tool’s action and subject. Keep it concise.
Description82/100
Soft-deletes every object on the specified branch whose key starts with `prefix`, in a single call.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Explain mutations, irreversible effects, or prerequisites that matter before calling this tool.
Inputs25/100
1 of 4 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
bucket_name
Not provided
Missing description. Explain what this value means and how to supply it.
prefix
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Delete every object under a key prefix (folder) in a bucket",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "delete_storage_objects_by_prefix",
"title": "Delete every object under a key prefix (folder) in a bucket",
"description": "Soft-deletes every object on the specified branch whose key starts with `prefix`, in a single call.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"bucket_name",
"prefix"
],
"properties": {
"prefix": {
"type": "string",
"maxLength": 1024,
"minLength": 1
},
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"bucket_name": {
"type": "string",
"maxLength": 255,
"minLength": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "Delete every object under a key prefix (folder) in a bucket",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
Presign an upload or download for an object in a bucket
The title clearly communicates the tool’s action and subject. Keep it concise.
Description81/100
Returns a presigned URL that transfers bytes directly to or from the object's bucket on the specified branch, without the caller ever handling S3 credentials.
branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Describe the returned information so the agent knows whether it will answer the request.
Inputs14/100
1 of 7 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
project_id
Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project.
Clear enough to supply this argument.
branch_id
Not provided
Missing description. Explain what this value means and how to supply it.
bucket_name
Not provided
Missing description. Explain what this value means and how to supply it.
object_key
Not provided
Missing description. Explain what this value means and how to supply it.
operation
Not provided
Missing description. Explain what this value means and how to supply it.
content_type
Not provided
Missing description. Explain what this value means and how to supply it.
expires_in_seconds
Not provided
Missing description. Explain what this value means and how to supply it.
Annotations100/100
All four behavior hints are declared.
{
"title": "Presign an upload or download for an object in a bucket",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "presign_storage_object",
"title": "Presign an upload or download for an object in a bucket",
"description": "Returns a presigned URL that transfers bytes directly to or from the object's bucket on the specified branch, without the caller ever handling S3 credentials.\n\nbranch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"branch_id",
"bucket_name",
"object_key",
"operation"
],
"properties": {
"branch_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$"
},
"operation": {
"enum": [
"upload",
"download"
],
"type": "string"
},
"object_key": {
"type": "string",
"maxLength": 1024,
"minLength": 1
},
"project_id": {
"type": "string",
"pattern": "^[a-z0-9-]{1,60}$",
"description": "Required for an unscoped connection. May be omitted when the connection is scoped to one project; if provided, it must match that project."
},
"bucket_name": {
"type": "string",
"maxLength": 255,
"minLength": 1
},
"content_type": {
"type": "string"
},
"expires_in_seconds": {
"type": "integer",
"maximum": 604800,
"minimum": 1
}
},
"additionalProperties": false
},
"annotations": {
"title": "Presign an upload or download for an object in a bucket",
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": true
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01SearchSearch across all organizations, projects, and branches by keyword.
02List OrganizationsList all organizations the current user belongs to.
03List Neon projects you own
04List regionsLists Neon regions available to the authenticated account.
05Fetch one Neon documentation page as markdown
Want to run these tasks against your MCP server with us?
compare_database_schemacomplete_database_migrationcomplete_query_tuningconfigure_neon_authcreate_branchcreate_projectdelete_branchdelete_projectdescribe_branchdescribe_projectdescribe_table_schemaexplain_sql_statement+23 more
mcp-server-neon setup, tools, quality score, publishing readiness, and alternatives.
How do I add mcp-server-neon to Claude, ChatGPT, or Cursor?
Add mcp-server-neon to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://mcp.neon.tech/mcp. This server requires OAuth, so complete the login prompt after you connect.
Is mcp-server-neon MCP ready for ChatGPT and Claude?
As of October 6, 2026, mcp-server-neon scores 100/100 on Manufact's MCP publishing checklist. The scan meets ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is mcp-server-neon's MCP tool documentation?
As of October 6, 2026, mcp-server-neon scores 69/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 114 of 114 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What tools does the mcp-server-neon MCP server provide?
mcp-server-neon lists 35 MCP tools, including compare_database_schema, complete_database_migration, complete_query_tuning, configure_neon_auth, create_branch, create_project, delete_branch, delete_project, describe_branch, describe_project, describe_table_schema, and explain_sql_statement.
What are the best alternatives to mcp-server-neon?
As of October 20, 2026, alternatives to mcp-server-neon in data-analytics on the Manufact MCP leaderboard include Epicure, Newsflash, Point Topic, Pricing Optimizer AI, and StatCite.
Does mcp-server-neon MCP require authentication?
mcp-server-neon requires authentication. Connect it in Claude, ChatGPT, or Cursor and complete the OAuth login prompt.
How can mcp-server-neon improve its MCP documentation?
update_project is the lowest-scoring reviewed tool at 51/100. No output schema is declared. Add one for structured results so clients can interpret returned fields. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.