
Neon MCP Server: Setup for Claude, Cursor and Other Apps
Lets Claude, Cursor and other assistants create and manage Neon Postgres databases, run SQL and test schema changes on a safe branch.
This is Neon's own hosted server. You sign in with your Neon account and the assistant can create projects and branches, run SQL, compare schemas and tune slow queries. Schema changes first run on a temporary branch, so your main branch is untouched until you approve. Neon says this server is meant for local development and IDE use, not for production. The README names over 100 tools but says the Management API ones are generated, so the exact set you see depends on the categories and read-only setting in your server address.
Good for
- Developers who set up and change Postgres schemas from their editor
- Teams who want a safe branch for each migration
- People who want to ask questions about their data in plain language
Works in
14 should work
Tap an app to see how to set it up and any known problems.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports hosted MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports local MCP servers.
Supports hosted MCP servers.
Install mcp-server-neon
Claude Code
- 1
Copy this prompt.
Add the mcp-server-neon server to Claude Code. Run this command: claude mcp add --transport http neon https://mcp.neon.tech/mcp Then check that it loaded and tell me if I need to sign in or restart.
- 2
Paste it into Claude Code. It shows the change and asks before running it.
Requires Sign-in with the vendor account (OAuth).
Hosted OAuth is the default. Add ?readonly=true (and projectId) to the address for a limited grant. Neon says the server is for local development and IDE use, not production.
Built from the package data we hold. Not yet tested by us.
Tools
Runs a SQL query on your database
Runs one SQL statement on a Neon database. It can read and also change or delete data, unless read-only mode is on.
Try: “Show the 10 newest rows in the users table.”
Delete ·
run_sqlRuns several SQL statements together
Runs a series of SQL statements in one transaction. Not available in read-only mode.
Try: “Insert these three orders and update the stock in one go.”
Delete ·
run_sql_transactionLists the tables in a database
Lists all tables in a Neon database.
Try: “What tables are in my database?”
Read ·
get_database_tablesShows the columns of a table
Returns the columns, types and constraints of one table.
Try: “Describe the users table.”
Read ·
describe_table_schemaShows what is in a branch
Returns a tree of databases, schemas, tables, views and functions on a branch.
Try: “Show the structure of my main branch.”
Read ·
describe_branchCompares two branches' schemas
Shows the SQL differences between a database and another branch.
Try: “What changed in schema between dev and main?”
Read ·
compare_database_schemaGets your connection string
Returns a connection string for your database. Withheld in read-only mode.
Try: “Give me the connection string for my main branch.”
Read ·
get_connection_stringLists your Neon projects
Lists the projects in your account.
Try: “List my Neon projects.”
Read ·
list_projectsShows one project
Fetches a project by ID.
Try: “Show details of my-project.”
Read ·
describe_projectCreates a project
Creates a Neon project and waits for its default compute.
Try: “Create a project called my-database.”
Write ·
create_projectDeletes a project
Deletes a Neon project.
Try: “Delete the project old-test.”
Delete ·
delete_projectLists your organizations
Lists the organizations you can access.
Try: “Which Neon organizations am I in?”
Read ·
list_organizationsLists available regions
Lists the regions where you can create projects.
Try: “Which regions can I use?”
Read ·
list_regionsLists who is on a project
Lists the members of a project.
Try: “Who has access to my-project?”
Read ·
list_project_membersLists project permissions
Lists permissions set on a project.
Try: “What permissions are set on my-project?”
Read ·
list_project_permissionsLists a project's branches
Lists branches so you can find one by name.
Try: “List branches in my-project.”
Read ·
list_branchesCreates a branch
Creates a branch with a read-write compute and waits until it is ready.
Try: “Create a branch called feature-x.”
Write ·
create_branchDeletes a branch
Deletes a branch.
Try: “Delete the feature-x branch.”
Delete ·
delete_branchResets a branch to its parent
Resets a branch to its parent's current state. This discards changes made on the branch since it split.
Try: “Reset dev to match main.”
Delete ·
reset_from_parentLists database roles
Lists the Postgres roles on a branch.
Try: “List the roles on my main branch.”
Read ·
list_postgres_rolesCreates a database
Creates a database on a branch.
Try: “Create a database called analytics.”
Write ·
create_postgres_databaseLists branch credentials
Lists credentials for Object Storage and the AI Gateway on a branch.
Try: “List credentials on my main branch.”
Read ·
list_credentialsCreates a branch credential
Creates a credential for Object Storage or the AI Gateway.
Try: “Create a storage credential for dev.”
Write ·
create_credentialReplaces a credential's secret
Replaces the secret in place. Not repeatable.
Try: “Rotate the storage credential on dev.”
Write ·
rotate_credentialRevokes a credential
Revokes a branch credential.
Try: “Revoke the old storage credential.”
Delete ·
revoke_credentialLists compute endpoints
Lists compute endpoints in a project.
Try: “List the computes in my-project.”
Read ·
list_postgres_endpointsLists a branch's computes
Lists the computes on one branch.
Try: “Which computes does main have?”
Read ·
list_branch_computesShows one compute
Fetches one compute endpoint.
Try: “Show the compute for main.”
Read ·
get_postgres_endpointAdds a compute
Creates a compute endpoint on a branch.
Try: “Add a read replica compute to main.”
Write ·
create_postgres_endpointChanges a compute
Updates a compute endpoint.
Try: “Raise the max compute size of main.”
Write ·
update_postgres_endpointDeletes a compute
Deletes a compute endpoint.
Try: “Delete the extra compute on dev.”
Delete ·
delete_postgres_endpointStarts a compute
Starts a suspended compute.
Try: “Start the compute on dev.”
Write ·
start_postgres_endpointSuspends a compute
Suspends a running compute.
Try: “Suspend the dev compute.”
Write ·
suspend_postgres_endpointRestarts a compute
Restarts a compute endpoint.
Try: “Restart the main compute.”
Write ·
restart_postgres_endpointLists snapshots
Lists snapshots of a project.
Try: “List my snapshots.”
Read ·
list_snapshotsShows the snapshot schedule
Returns how often snapshots are taken.
Try: “When are snapshots taken?”
Read ·
get_snapshot_scheduleSets the snapshot schedule
Changes the automatic snapshot schedule.
Try: “Take a snapshot every day.”
Write ·
set_snapshot_scheduleTakes a snapshot
Creates a snapshot of a branch.
Try: “Snapshot main before the migration.”
Write ·
create_snapshotEdits a snapshot
Updates a snapshot's details.
Try: “Rename the latest snapshot.”
Write ·
update_snapshotDeletes a snapshot
Deletes a snapshot.
Try: “Delete the oldest snapshot.”
Delete ·
delete_snapshotRestores a snapshot
Restores a snapshot onto an existing branch or a new one.
Try: “Restore the snapshot onto a new branch.”
Write ·
restore_snapshotTests a schema change on a temporary branch
Starts a migration and tries it on a temporary branch, so main is not touched yet.
Try: “Add a created_at column to the users table.”
Write ·
prepare_database_migrationApplies a tested migration
Applies a prepared migration to the main branch and cleans up the temporary branch.
Try: “Apply the migration to main.”
Write ·
complete_database_migrationSuggests query speed-ups
Analyzes a query and suggests changes such as an index, testing them on a temporary branch.
Try: “Why is this query slow, and how can I speed it up?”
Write ·
prepare_query_tuningApplies or drops a tuning change
Applies the tested tuning changes to the main branch or discards them.
Try: “Apply the index to main.”
Write ·
complete_query_tuningRuns a health check on a database
Runs one of 15 ready-made read-only diagnostics, such as sizes, index use, locks and cache hit rate.
Try: “Which indexes are unused?”
Read ·
inspect_databaseFinds the slowest queries
Finds the slowest queries. Needs the pg_stat_statements extension.
Try: “What are my slowest queries?”
Read ·
list_slow_queriesShows how a query will run
Returns the execution plan for a SQL statement.
Try: “Explain this query.”
Read ·
explain_sql_statementSearches branch logs
Queries OpenTelemetry logs for a branch. Only for some projects in the Neon Platform Beta.
Try: “Show errors from the last hour.”
Read ·
query_logsLists searchable log fields
Lists log fields you can enumerate on a branch.
Try: “Which log fields can I filter on?”
Read ·
list_log_fieldsLists values of a log field
Lists the distinct values of a log field in a time window.
Try: “Which log levels appear today?”
Read ·
list_log_field_valuesSets up Neon Auth
Provisions Neon Auth for a branch database.
Try: “Turn on Neon Auth for main.”
Write ·
provision_neon_authShows Neon Auth settings
Returns the Neon Auth state of a branch.
Try: “Is Neon Auth enabled on main?”
Read ·
get_authShows Neon Auth config
Returns Neon Auth config with secrets hidden.
Try: “Show my Neon Auth config.”
Read ·
get_neon_auth_configTurns off Neon Auth
Disables Neon Auth on a branch.
Try: “Turn off Neon Auth on dev.”
Write ·
disable_authChanges Neon Auth config
Updates Neon Auth settings.
Try: “Allow sign-ups with email.”
Write ·
update_auth_configLists social login providers
Lists the sign-in providers set up for Neon Auth.
Try: “Which social logins are on?”
Read ·
list_auth_oauth_providersAdds a social login provider
Adds a sign-in provider to Neon Auth.
Try: “Add Google sign-in.”
Write ·
add_auth_oauth_providerEdits a social login provider
Changes a provider's settings.
Try: “Update the Google client ID.”
Write ·
update_auth_oauth_providerRemoves a social login provider
Deletes a sign-in provider.
Try: “Remove GitHub sign-in.”
Delete ·
delete_auth_oauth_providerShows Neon Auth as OAuth server
Returns the OAuth 2.1 server settings of Neon Auth.
Try: “Is the OAuth server enabled?”
Read ·
get_auth_oauth_serverChanges the OAuth server settings
Configures Neon Auth as an OAuth 2.1 authorization server.
Try: “Enable the OAuth server.”
Write ·
update_auth_oauth_serverLists OAuth clients
Lists clients of the Neon Auth OAuth server.
Try: “List my OAuth clients.”
Read ·
list_auth_oauth_clientsShows an OAuth client
Fetches one OAuth client.
Try: “Show the web app OAuth client.”
Read ·
get_auth_oauth_clientCreates an OAuth client
Creates a client. The secret is shown once.
Try: “Create an OAuth client for my app.”
Write ·
create_auth_oauth_clientEdits an OAuth client
Updates an OAuth client.
Try: “Add a redirect URL to my client.”
Write ·
update_auth_oauth_clientDeletes an OAuth client
Deletes an OAuth client.
Try: “Delete the old OAuth client.”
Delete ·
delete_auth_oauth_clientReplaces a client secret
Rotates an OAuth client's secret.
Try: “Rotate the secret for my client.”
Write ·
rotate_auth_oauth_client_secretLists trusted domains
Lists domains Neon Auth trusts.
Try: “Which domains are trusted?”
Read ·
list_auth_trusted_domainsAdds a trusted domain
Adds a trusted domain.
Try: “Trust app.example.com.”
Write ·
add_auth_trusted_domainRemoves a trusted domain
Removes a trusted domain.
Try: “Stop trusting old.example.com.”
Delete ·
delete_auth_trusted_domainCreates an auth user
Creates a user in Neon Auth.
Try: “Create a user for dana@example.com.”
Write ·
create_auth_userDeletes an auth user
Deletes a user from Neon Auth.
Try: “Delete user dana@example.com.”
Delete ·
delete_auth_userChanges a user's role
Updates the role of a Neon Auth user.
Try: “Make Dana an admin.”
Write ·
update_auth_user_roleSets up the Data API
Provisions the Neon Data API for a branch database.
Try: “Enable the Data API on main.”
Write ·
provision_neon_data_apiShows the Data API
Returns the Data API state for a branch.
Try: “Is the Data API on?”
Read ·
get_data_apiChanges the Data API
Updates the Data API settings.
Try: “Change the Data API exposed schema.”
Write ·
update_data_apiRemoves the Data API
Deletes the Data API for a branch database.
Try: “Remove the Data API from dev.”
Delete ·
delete_data_apiSearches orgs, projects and branches
Searches your organizations, projects and branches and returns IDs and console links.
Try: “Find my project called shop.”
Read ·
searchFetches details for a search result
Fetches details of an organization, project or branch by ID.
Try: “Fetch details for that project.”
Read ·
fetchSearches Neon's docs
Searches neon.com docs, API reference, guides, FAQs, changelog and blog.
Try: “How do I use Neon with Prisma?”
Read ·
search_docsReads a Neon doc page
Fetches one neon.com page as markdown.
Try: “Open the Prisma guide.”
Read ·
get_docSends feedback to Neon
Sends anonymous feedback text to the Neon team.
Try: “Tell Neon the docs search missed my answer.”
Write ·
send_feedbackLists functions
Lists functions on a branch.
Try: “List my functions.”
Read ·
list_functionsShows a function
Fetches one function.
Try: “Show the cleanup function.”
Read ·
get_functionEdits a function
Updates a function.
Try: “Change the cleanup function's timeout.”
Write ·
update_functionDeletes a function
Deletes a function.
Try: “Delete the cleanup function.”
Delete ·
delete_functionDeploys a function
Deploys a function to Neon.
Try: “Deploy the cleanup function.”
Write ·
deploy_functionLists function domains
Lists custom domains for functions.
Try: “List function custom domains.”
Read ·
list_functions_custom_domainsAdds a function domain
Registers a custom domain for functions.
Try: “Register api.example.com for functions.”
Write ·
register_functions_custom_domainRemoves a function domain
Deletes a custom domain for functions.
Try: “Remove api.example.com from functions.”
Delete ·
delete_functions_custom_domainLists scheduled triggers
Lists scheduled function triggers.
Try: “List my scheduled triggers.”
Read ·
list_triggersShows a trigger
Fetches one trigger.
Try: “Show the nightly trigger.”
Read ·
get_triggerCreates a scheduled trigger
Creates a trigger that runs a function on a UTC cron schedule.
Try: “Run cleanup every night at 2am UTC.”
Write ·
create_triggerEdits a trigger
Updates a scheduled trigger.
Try: “Move the nightly trigger to 3am.”
Write ·
update_triggerDeletes a trigger
Deletes a scheduled trigger.
Try: “Delete the nightly trigger.”
Delete ·
delete_triggerLists storage buckets
Lists Object Storage buckets.
Try: “List my storage buckets.”
Read ·
list_storage_bucketsCreates a bucket
Creates a storage bucket.
Try: “Create a bucket called uploads.”
Write ·
create_storage_bucketDeletes a bucket
Deletes a storage bucket.
Try: “Delete the uploads bucket.”
Delete ·
delete_storage_bucketLists files in a bucket
Lists objects in a bucket.
Try: “List files in uploads.”
Read ·
list_storage_objectsDeletes a file
Deletes one object from a bucket.
Try: “Delete logo.png from uploads.”
Delete ·
delete_storage_objectDeletes files by prefix
Deletes every object that starts with a prefix.
Try: “Delete everything under tmp/ in uploads.”
Delete ·
delete_storage_objects_by_prefixMakes a temporary file link
Creates a presigned link for an object.
Try: “Give me a download link for report.pdf.”
Read ·
presign_storage_objectShows storage settings
Returns the Object Storage state of a branch.
Try: “Is storage enabled on main?”
Read ·
get_storageShows Realtime state
Returns the Realtime state of a branch.
Try: “Is Realtime on for main?”
Read ·
get_realtimeTurns on Realtime
Enables Realtime for a branch and waits until applied.
Try: “Enable Realtime on dev.”
Write ·
enable_realtimeTurns off Realtime
Disables Realtime for a branch.
Try: “Disable Realtime on dev.”
Write ·
disable_realtimeGets the Realtime secret
Returns the shared secret your backend uses to issue Realtime tokens. Not in read-only mode.
Try: “Show the Realtime secret.”
Read ·
get_realtime_secretReplaces the Realtime secret
Replaces the shared secret. Not repeatable.
Try: “Rotate the Realtime secret.”
Write ·
rotate_realtime_secret
Read from the source code
Permissions
high risk · 3 things to watch
High risk
It can run any SQL, change schemas and delete projects, branches and data. Turn on read-only mode, scope it to one project, and review each action before you approve it.
What it can do
- Read your data
- Create and change things
- Delete things
- Read-only modeHow to turn it on
Watch out for
It can delete projects, branches and data
Delete tools and unrestricted SQL are available by default. Use readonly=true and a projectId in the address to limit it. raw.githubusercontent.com
Neon says not to use it in production
The README says it is for local development and IDE integrations and warns it can make accidental or unauthorized changes. Point it at a development project. raw.githubusercontent.com
The connection string tool returns a privileged password
It is withheld in read-only mode. Avoid asking the assistant to print it in shared chats. raw.githubusercontent.com
Security advisories
No published security advisories as of Nov 1, 2026.
Technical details
| Turning on read-only | Add ?readonly=true to the server address, or untick Allow writes on the sign-in page. Other options: projectId, category and roleName. |
|---|---|
| Talks to | mcp.neon.tech |
| Sign-in and keys | OAuth: the token is held by your AI app. API key: a bearer token you put in the client config. |
| Scopes |
|
Questions
Is the Neon MCP server official?
Yes. It is published by Neon in the neondatabase/mcp-server-neon repository.
What is the Neon MCP server URL?
https://mcp.neon.tech/mcp. Add it in your AI app and sign in with your Neon account.
Can I make it read-only?
Yes. Add ?readonly=true to the server address, or untick Allow writes on the sign-in page. In read-only mode the SQL tool runs each query inside a read-only transaction.
Can I limit it to one project?
Yes. Add projectId to the address. You can also limit tool groups with category, and run SQL as a chosen database role with roleName.
Do I need an API key?
No. OAuth sign-in is the easiest option. An API key in an Authorization header is supported for remote agents where OAuth is not available, and an organization key limits access to that organization.
Does it work in production?
Neon says no. The README states it is intended for local development and IDE integrations and does not recommend it for production.
What is the npx neon init command?
It signs you in, creates a Neon API key for you and sets up the server in Cursor, VS Code or Claude Code in one command.
Information
updated Nov 2, 2026
- Publisher
- Official
- Package
mcp/neon- Registry
- Docker
- Endpoint
https://mcp.neon.tech/mcp- Transport
- Streamable HTTP, stdio
- Auth
- OAuth
- Version
- 1.0.0
- License
- MIT
- Last commit
- Oct 31, 2026
- Open issues
- 20
- Listed in
- Official MCP registry, Docker MCP Catalog
Other PostgreSQL MCP servers
Sources
Docs, issue trackers and discussions this page is built from. Issues, quotes and findings above link to their own source.
Show all 1Hide
- raw.githubusercontent.com · raw.githubusercontent.com