A migration is prepared on a temporary branch and tested there, so what you review is a proposal rather than something that already happened to your main branch. Query tuning works the same way, and the reach of the whole thing is set in the connection URL — read-only, one project, or a couple of tool categories — rather than trusted to the model.
Neon's own MCP server for Neon Postgres, offered as a managed remote endpoint and as open source you can run yourself. It translates requests into Neon API calls, so a client can create projects and branches, run queries, and carry out schema migrations without writing the API calls itself.
- List, describe, create and delete projects, and see the organizations and shared projects you can reach — list_projects, describe_project, create_project, delete_project, list_organizations, list_shared_projects
- Create, describe, delete and reset branches, diff a branch's schema against its parent, and list its computes — create_branch, describe_branch, delete_branch, reset_from_parent, compare_database_schema, list_branch_computes
- Run SQL statements and transactions, read table and column definitions, and get a connection string — run_sql, run_sql_transaction, get_database_tables, describe_table_schema, get_connection_string
- Apply a schema change on a temporary branch first, then commit it to the parent — prepare_database_migration, complete_database_migration
- Diagnose Postgres: inspect_database runs 15 read-only checks against a branch — relation and index sizes, index and sequential-scan usage, active queries and locks, the heaviest queries, cache hit rate, autovacuum and bloat estimates, replication state
- Tune a slow query the same way a migration is handled: list_slow_queries, explain_sql_statement, then prepare_query_tuning and complete_query_tuning on a temporary branch
- Provision and configure Neon Auth, and turn on the HTTP Data API for a branch — provision_neon_auth, configure_neon_auth, get_neon_auth_config, provision_neon_data_api
- Query logs from Neon serverless functions and storage — query_logs, list_log_fields, list_log_field_values
- Look up Neon documentation without authorizing anything — list_docs_resources, get_doc_resource
- Search across organizations, projects and branches, and fetch one by id
- The tool list narrowed from the URL itself: ?readonly=true drops every write tool and holds run_sql to read-only queries, ?projectId= pins everything to one project, and ?category= keeps only the groups you name — projects, branches, schema, querying, neon_auth, data_api, observability or docs
A Neon account and an MCP client. The managed endpoint is https://mcp.neon.tech/mcp — authorize it over OAuth, choosing read or full access in the consent screen, or send a Neon API key in the Authorization header where OAuth is not available. Node.js v18.0.0 or newer for the local path, and `neon@latest init` configures Cursor, VS Code and Claude Code in one command. Under OAuth it works on your personal account's projects unless you name an organization or project in the request. If IP Allow is on, add 34.192.103.46 and 23.22.233.166 to the allowlist. Neon intends this for local development and IDE work and does not recommend pointing it at production, so give it a development project or branch.
One command plus a key — npx add-mcp https://mcp.neon.tech/mcp, then supply credentials
