Neon MCP

Live

API KEY

DATABASE

Developer Tools

The Neon MCP connector lets AI agents manage serverless Postgres databases end-to-end — creating projects, running SQL transactions, branching schemas, and optimizing queries. Agents act on behalf of the authorizing user, so every database operation is scoped, audited, and credential-safe.

  • Acts as the user: Database operations and project changes are tied to the Neon account owner who authorized the agent, not a shared service account.
  • Credentials stay vaulted: AES-256, resolved at request time, never in LLM context.
  • Scoped before every call: Permissions enforced per-user. 90-day audit trail.
Neon MCP
agent · Acme Q3
Run
List all my Neon projects and show me the slowest queries on the main branch.
S
list_projects
85ms
Neon MCP agent
You have 4 active Neon projects; the top slow query on your main branch is a sequential scan on the orders table averaging 320ms.
Message Claude...

Tools your developer agent reaches for on Neon MCP, scoped per user.

CALL ANY TOOL
30 tools covering Neon project lifecycle, branch management, SQL execution, schema migrations, query optimization, authentication provisioning, and documentation lookup.
neonmcp_compare_database_schema
Compare Database Schema
Compare the database schema between two branches to identify differences in tables, columns, and constraints.
Parameters
Name
Type
Required
Description
branchId
string
Required
The ID of the branch. Leave blank to use the default branch.
databaseName
string
Required
The name of the database. Defaults to `neondb` if not provided.
projectId
string
Required
The ID of the Neon project.
neonmcp_complete_database_migration
Complete Database Migration
neonmcp_complete_query_tuning
Complete Query Tuning
neonmcp_configure_neon_auth
Configure Neon Auth
neonmcp_create_branch
Create Branch
neonmcp_create_project
Create Project
neonmcp_delete_branch
Delete Branch
neonmcp_delete_project
Delete Project
neonmcp_describe_branch
Describe Branch
neonmcp_describe_project
Describe Project
neonmcp_describe_table_schema
Describe Table Schema
neonmcp_explain_sql_statement
Explain Sql Statement
neonmcp_fetch
Fetch
neonmcp_get_connection_string
Get Connection String
neonmcp_get_database_tables
Get Database Tables
neonmcp_get_doc_resource
Get Doc Resource
neonmcp_get_neon_auth_config
Get Neon Auth Config
neonmcp_list_branch_computes
List Branch Computes
neonmcp_list_docs_resources
List Docs Resources
neonmcp_list_organizations
List Organizations
neonmcp_list_projects
List Projects
neonmcp_list_shared_projects
List Shared Projects
neonmcp_list_slow_queries
List Slow Queries
neonmcp_prepare_database_migration
Prepare Database Migration
neonmcp_prepare_query_tuning
Prepare Query Tuning
neonmcp_provision_neon_auth
Provision Neon Auth
neonmcp_provision_neon_data_api
Provision Neon Data Api
neonmcp_reset_from_parent
Reset From Parent
neonmcp_run_sql
Run Sql
neonmcp_run_sql_transaction
Run Sql Transaction

For more tools, view docs.

Build your Agent
Same auth pattern across every framework.
Python · LlamaIndex
from langchain_mcp_adapters.client import MultiServerMCPClient
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="neonmcp")

mcp = MultiServerMCPClient({
"neonmcp": {
"url": "https://mcp.scalekit.com/neonmcp",
"headers": {"Authorization": "Bearer " + token}
}
})
tools = await mcp.get_tools()
import OpenAI from "openai";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "neonmcp" });

const openai = new OpenAI();
// Connect to MCP at https://mcp.scalekit.com/neonmcp
// Pass: Authorization: Bearer + token
import Anthropic from "@anthropic-ai/sdk";
import { ScalekitClient } from "@scalekit-sdk/node";

const client = new ScalekitClient({ envUrl, clientId, clientSecret });
const token = await client.agent.getToken({ userId: "user_id", connector: "neonmcp" });

const anthropic = new Anthropic();
// Connect to MCP at https://mcp.scalekit.com/neonmcp
// Pass: Authorization: Bearer + token
from google.adk.agents import LlmAgent
from scalekit import ScalekitClient

client = ScalekitClient(env_url=ENV_URL, client_id=CLIENT_ID, client_secret=SECRET)
token = client.agent.get_token(user_id="user_id", connector="neonmcp")
# Connect to MCP at https://mcp.scalekit.com/neonmcp
# Pass: Authorization: Bearer + token
Try these prompts
Paste any prompt into your agent to get started.
Explore & query
Copy the prompt
Copied
List all my Neon projects and show me which branches have had the most activity in the last 7 days.
Copy the prompt
Copied
Run a query on the production database to find all users who signed up in the last 30 days.
Copy the prompt
Copied
Show me the schema for the orders table on the main branch of my e-commerce project.
Copy the prompt
Copied
Find the 5 slowest queries on my production database and explain what is causing them.
Manage & optimize
Copy the prompt
Copied
Create a new branch off main called staging, apply my pending migration SQL, and compare the schema diff before I merge.
Copy the prompt
Copied
Prepare a migration to add an index on users.email, review the execution plan on a temp branch, then apply it.
Copy the prompt
Copied
Reset my dev branch back to its parent state to get a clean slate for testing.
Copy the prompt
Copied
Provision the Neon Data API on my analytics project so I can query it over HTTP with JWT tokens.
SEE HOW AUTH WORKS
User authorises once. Every agent call after uses their token with scope enforcement.
1
Authorize
Your user connects
Neon MCP
once. We tie it to their identity and the meetings they approved — no shared bot account, no org-wide access
Who:
user ‘A’
when:
Once per user
access:
Limited to user
2
Store
Their
Neon MCP
token lives in a vault scoped to them. User A's meetings are never reachable by an agent acting for user B, even on the same connection
vault:
encrypted
scope:
per-user
tokens:
auto-refreshed
3
Resolve
When your agent calls a
Neon MCP
tool, we fetch the right token server-side. It never touches your agent, never appears in the LLM context, never shows up in your logs
speed:
~40ms
check:
before every call
seen by:
nobody
4
Audit
Every
Neon MCP
tool call is logged — who triggered it, which meeting was fetched, what came back. 90 days of history, tied to the user who authorized it
history:
90 days
export:
SIEM-ready
logged:
every call
Test other agents
See the same per-user auth pattern across other connectors.
ENGINEERING
DevOps assistant agent
Triage GitHub incidents, open Linear tickets, and notify the on-call channel in Slack with context already attached.
ENGINEERING
Auto-release notes agent
Group merged GitHub PRs by feature, fix, or chore and publish release notes per tag. No manual changelog grooming.
Why Scalekit
Secure your agent's access. Connectors ship in minutes
Other connector libraries treat auth as a demo afterthought.
01.
Shared tokens break per-user analytics
A shared token looks fine in a demo. In production every call looks like a service account. Scalekit resolves the real user credential.
// shared token
audit → bot_service_account

// scalekit
audit → user_abc ✓
02.
Authentication is not authorization
“Our agents act across Salesforce, Gong, Google Drive, and more, on behalf of every customer. Scalekit behind the scenes meant we can keep adding tools without ever rebuilding how credentials or tool calling work.”
Venu Madhav Kattagoni
Head of Engineering / Von
FAQs
Frequently Asked Questions
Does the agent access Neon MCP as the user or as a shared key?
Scalekit resolves a per-user credential for each call. The Neon MCP audit log shows the real user identity, not a shared service account.
Where is the Neon MCP token stored?
In Scalekit AES-256 encrypted vault, isolated per tenant. Tokens are auto-refreshed before expiry and revocable from a single dashboard.
Can I limit what the agent is allowed to do in Neon MCP?
Pass a toolNames filter to listScopedTools. Scalekit enforces the allowed set before every API call.
Start in your coding agent
Up and running in one command
Install the Scalekit skill in your editor of choice. Connector, auth, tools, prompt, all wired up
Claude Code REPL
/plugin marketplace add scalekit-inc/claude-code-authstack
/plugin install agentkit@scalekit-auth-stack
Cursor Code REPL
# ~/.cursor/mcp.json
{
""mcpServers"": {
""neonmcp"": {
""url"": ""https://mcp.scalekit.com/neonmcp"",
""headers"": { ""Authorization"": ""Bearer $SCALEKIT_TOKEN"" }
}
}
}
Codex Code REPL
# ~/.codex/config.toml
[mcp_servers.neonmcp]
url = ""https://mcp.scalekit.com/neonmcp""
auth_env = ""SCALEKIT_TOKEN""
Copilot Code REPL
# .vscode/mcp.json
{
""servers"": {
""neonmcp"": {
""url"": ""https://mcp.scalekit.com/neonmcp"",
""type"": ""http""
}
}
}