Add auth oauth provider
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.
Manage Neon projects, branches, databases, and development workflows.
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.
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.
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.
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.
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.
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.
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`.
Creates a database in the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Creates a compute endpoint on a branch. Does not return a connection string; call `get_connection_string`.
Creates a Postgres role in the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Creates a Neon project and waits until the default compute is ready. Pass `org_id` with a personal API key. Does not return a connection string; call `get_connection_string` with the project id.
Creates a snapshot from the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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.
Deletes an OAuth provider from the specified project. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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.
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.
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.
Deletes the Neon Data API for the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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.
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.
Deletes the specified database from the branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Deletes the specified compute endpoint.
Deletes the specified Postgres role from the branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Delete a Neon project and all its data. NEVER run autonomously; always ask the user first. For a single branch, use `delete_branch`.
Deletes the specified snapshot.
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.
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.
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.
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.
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).
Retrieves the project record (settings, compute, usage). Call `list_branches` for branches.
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).
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.
Analyze the query execution plan for a SQL statement using EXPLAIN ANALYZE. Do not use when you need to execute the query for results (use `run_sql` instead).
Fetch detailed information about a specific organization, project, or branch using the ID returned by the `search` tool.
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.
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.
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.
Retrieves information about the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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. All parameters are optional; the tool resolves the project, branch, and database automatically if not specified. 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.
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.
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).
Resolve the project's default branch by the default flag, not by name.
Fetch one Neon documentation page as markdown. Pass a slug from list_docs_resources (for example docs/guides/prisma.md).
Returns the function identified by its slug. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Read Neon Auth config for a branch with OAuth and SMTP secrets redacted as "***redacted***". Requires provision_neon_auth first.
Retrieves details for the specified operation.
Retrieves information about the specified database. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Retrieves information about the specified compute endpoint.
Retrieves details about the specified role. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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.
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.
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.
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.
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.
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.
Retrieves a list of branches for the specified project. Returns every page. Pass limit to cap how many.
List Neon documentation page slugs from neon.com/docs/llms.txt. Call this before get_doc_resource; do not guess slugs.
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.
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.
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.
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.
Lists operations for a project. Omitting `limit` returns every remaining page. There is no `cursor` argument.
List all organizations the current user belongs to. Supports optional `search` parameter to filter by name or ID.
Retrieves a list of databases for the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Retrieves a list of compute endpoints for the specified project.
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.
Lists organization members and their per-project roles for an org-owned project. Returns every page. Pass limit to cap how many.
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.
List Neon projects you own. Returns every page. Pass limit to cap how many. There is no `cursor` argument. Pass `org_id` with a personal API key to list that org's projects.
Lists Neon regions available to the authenticated account.
List queries from pg_stat_statements by execution time, slowest first. For sizes, indexes, locks, cache, bloat, or replication use inspect_database.
Lists the snapshots for the specified project.
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.
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.
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.
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.
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.
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.
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.
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.
Recovers a deleted project within the 7-day deletion recovery period.
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.
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.
Resets the password for the specified Postgres role. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Restarts the specified compute endpoint by immediately suspending it and then starting it again.
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.
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.
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.
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).
Sets the specified branch as the project's default branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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.
Starts a compute endpoint.
Suspends the specified compute endpoint.
Updates the auth configuration for the branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Updates an OAuth provider for the specified project. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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.
Updates the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
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.
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.
Updates the specified database in the branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.
Updates the specified compute endpoint.
Updates the specified project.
Updates the specified snapshot.
The Neon MCP integration connects your Dench AI CRM directly to Neon MCP, so agents can read and act on your Neon MCP data as part of everyday work — answering questions in chat, keeping your CRM in sync, and running automations without anyone copying data between tools.
104 actions are available for agents to invoke on your behalf. Every call runs through Neon MCP's own authorization, scoped to the account you connect.
Sign in to your Dench workspace and open Integrations.
Find Neon MCP and click Connect — you'll authorize access through Neon MCP's own sign-in flow. No API keys or code required.
Ask an agent to use Neon MCP in chat, or call it from an automation.
Manage or disconnect the connection any time from workspace settings.
The Dench Neon MCP integration connects your AI CRM to Neon MCP, so AI agents can work with your Neon MCP data as part of chats, automations, and CRM workflows. You connect your account once, and every agent in your workspace can use it — governed by your workspace permissions.
The Neon MCP integration currently exposes 104 actions, including Add auth oauth provider, Add auth trusted domain, Compare database schema, Complete database migration, Complete query tuning, and Create auth user. Agents invoke them on your behalf from chat or from automations.
No. You connect Neon MCP from your Dench workspace using Neon MCP's own sign-in and authorization flow — no API keys to copy, no glue code to maintain.
Connections are authorized through Neon MCP's own authentication flow, and Dench stores only the authorization needed to act on your behalf. You can review and disconnect the Neon MCP connection from your workspace settings at any time.