Neon MCP logo

Integrate Neon MCP with your AI CRM

Manage Neon projects, branches, databases, and development workflows.

Explore Triggers and Actions

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.

ActionTry it

Add auth trusted domain

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.

ActionTry it

Compare database schema

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.

ActionTry it

Complete database migration

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.

ActionTry it

Complete query tuning

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.

ActionTry it

Create auth user

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.

ActionTry it

Create branch

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`.

ActionTry it

Create postgres database

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.

ActionTry it

Create postgres endpoint

Creates a compute endpoint on a branch. Does not return a connection string; call `get_connection_string`.

ActionTry it

Create postgres role

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.

ActionTry it

Create project

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.

ActionTry it

Create snapshot

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.

ActionTry it

Create storage bucket

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.

ActionTry it

Delete auth oauth provider

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.

ActionTry it

Delete auth trusted domain

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.

ActionTry it

Delete auth user

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.

ActionTry it

Delete branch

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.

ActionTry it

Delete data api

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.

ActionTry it

Delete function

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.

ActionTry it

Delete functions custom domain

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.

ActionTry it

Delete postgres database

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.

ActionTry it

Delete postgres endpoint

Deletes the specified compute endpoint.

ActionTry it

Delete postgres role

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.

ActionTry it

Delete project

Delete a Neon project and all its data. NEVER run autonomously; always ask the user first. For a single branch, use `delete_branch`.

ActionTry it

Delete snapshot

Deletes the specified snapshot.

ActionTry it

Delete storage bucket

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.

ActionTry it

Delete storage object

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.

ActionTry it

Delete storage objects by prefix

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.

ActionTry it

Deploy function

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.

ActionTry it

Describe branch

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).

ActionTry it

Describe project

Retrieves the project record (settings, compute, usage). Call `list_branches` for branches.

ActionTry it

Describe table schema

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).

ActionTry it

Disable auth

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.

ActionTry it

Explain sql statement

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).

ActionTry it

Fetch

Fetch detailed information about a specific organization, project, or branch using the ID returned by the `search` tool.

ActionTry it

Finalize branch restore

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.

ActionTry it

Get ai gateway

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.

ActionTry it

Get auth

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.

ActionTry it

Get branch

Retrieves information about the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.

ActionTry it

Get connection string

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.

ActionTry it

Get data api

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.

ActionTry it

Get database tables

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).

ActionTry it

Get default branch

Resolve the project's default branch by the default flag, not by name.

ActionTry it

Get doc resource

Fetch one Neon documentation page as markdown. Pass a slug from list_docs_resources (for example docs/guides/prisma.md).

ActionTry it

Get function

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.

ActionTry it

Get neon auth config

Read Neon Auth config for a branch with OAuth and SMTP secrets redacted as "***redacted***". Requires provision_neon_auth first.

ActionTry it

Get operation

Retrieves details for the specified operation.

ActionTry it

Get postgres database

Retrieves information about the specified database. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.

ActionTry it

Get postgres endpoint

Retrieves information about the specified compute endpoint.

ActionTry it

Get postgres role

Retrieves details about the specified role. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.

ActionTry it

Get snapshot schedule

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.

ActionTry it

Get storage

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.

ActionTry it

Inspect database

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.

ActionTry it

List auth oauth providers

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.

ActionTry it

List auth trusted domains

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.

ActionTry it

List branch computes

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.

ActionTry it

List branches

Retrieves a list of branches for the specified project. Returns every page. Pass limit to cap how many.

ActionTry it

List docs resources

List Neon documentation page slugs from neon.com/docs/llms.txt. Call this before get_doc_resource; do not guess slugs.

ActionTry it

List functions

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.

ActionTry it

List functions custom domains

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.

ActionTry it

List log field values

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.

ActionTry it

List log fields

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.

ActionTry it

List operations

Lists operations for a project. Omitting `limit` returns every remaining page. There is no `cursor` argument.

ActionTry it

List organizations

List all organizations the current user belongs to. Supports optional `search` parameter to filter by name or ID.

ActionTry it

List postgres databases

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.

ActionTry it

List postgres endpoints

Retrieves a list of compute endpoints for the specified project.

ActionTry it

List postgres roles

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.

ActionTry it

List project members

Lists organization members and their per-project roles for an org-owned project. Returns every page. Pass limit to cap how many.

ActionTry it

List project permissions

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.

ActionTry it

List projects

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.

ActionTry it

List regions

Lists Neon regions available to the authenticated account.

ActionTry it

List slow queries

List queries from pg_stat_statements by execution time, slowest first. For sizes, indexes, locks, cache, bloat, or replication use inspect_database.

ActionTry it

List snapshots

Lists the snapshots for the specified project.

ActionTry it

List storage buckets

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.

ActionTry it

List storage objects

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.

ActionTry it

Prepare database migration

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.

ActionTry it

Prepare query tuning

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.

ActionTry it

Presign storage object

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.

ActionTry it

Provision neon auth

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.

ActionTry it

Provision neon data api

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.

ActionTry it

Query logs

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.

ActionTry it

Recover project

Recovers a deleted project within the 7-day deletion recovery period.

ActionTry it

Register functions custom domain

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.

ActionTry it

Reset from parent

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.

ActionTry it

Reset postgres role password

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.

ActionTry it

Restart postgres endpoint

Restarts the specified compute endpoint by immediately suspending it and then starting it again.

ActionTry it

Restore snapshot

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.

ActionTry it

Run sql

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.

ActionTry it

Run sql transaction

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.

ActionTry it

Search

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).

ActionTry it

Set default branch

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.

ActionTry it

Set snapshot schedule

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.

ActionTry it

Start postgres endpoint

Starts a compute endpoint.

ActionTry it

Suspend postgres endpoint

Suspends the specified compute endpoint.

ActionTry it

Update auth config

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.

ActionTry it

Update auth oauth provider

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.

ActionTry it

Update auth user role

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.

ActionTry it

Update branch

Updates the specified branch. branch_id is a branch id (br-...), not a branch name. Call list_branches to resolve a name.

ActionTry it

Update data api

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.

ActionTry it

Update function

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.

ActionTry it

Update postgres database

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.

ActionTry it

Update postgres endpoint

Updates the specified compute endpoint.

ActionTry it

Update project

Updates the specified project.

ActionTry it

Update snapshot

Updates the specified snapshot.

ActionTry it

How the Neon MCP integration works

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.

Set up Neon MCP in Dench

  1. 1

    Sign in to your Dench workspace and open Integrations.

  2. 2

    Find Neon MCP and click Connect — you'll authorize access through Neon MCP's own sign-in flow. No API keys or code required.

  3. 3

    Ask an agent to use Neon MCP in chat, or call it from an automation.

  4. 4

    Manage or disconnect the connection any time from workspace settings.

Frequently asked questions

How does the Neon MCP integration work with Dench?

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.

What actions can AI agents perform with Neon MCP via Dench?

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.

Do I need to write code to connect Neon MCP to Dench?

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.

Is the Neon MCP integration secure?

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.

Neon MCP | Dench AI CRM