---
title: "Neon MCP in Slack: ask an AI teammate about your Postgres branches | Chickpea"
description: "Use Neon's MCP server from Slack. Give a channel an AI teammate connected to a Neon project, then ask it for branches, a query, or a migration. Open source."
canonical: https://chickpea.co/connectors/neon
keyword: "Neon MCP in Slack"
verified: 2026-09-17
---

# Ask your Neon Postgres projects a question in Slack, on Neon's MCP server.

> Chickpea gives a channel a named AI teammate that holds its own Neon connection. It calls Neon's MCP server at [mcp.neon.tech](https://neon.com/docs/ai/neon-mcp-server) with an API key you create in the Neon console, so there is no client to configure. Neon asks that MCP be used for development and testing rather than production databases, and a project-scoped key is the narrow way to hold a teammate to that.

Facts checked against the sources on September 17, 2026. The HTML page is at https://chickpea.co/connectors/neon; every connector is listed at https://chickpea.co/connectors; the site index for agents is at https://chickpea.co/llms.txt.

**Neon** (Neon, Inc., https://neon.com): Inspect and manage Postgres projects, branches, databases, and compute. Category: Data and infrastructure. Lane: Vendor MCP server. Sign in: API key.

**Chickpea**: an open source Slack app that gives a workspace named AI teammates, each with its own handle, instructions, memory, connected accounts, schedules, and model, deployed to your own Cloudflare account or a Node host.

## What people ask it
The teammate in these examples is @oncall, published to #eng.

### Projects, branches, and schemas
- @oncall what branches are on the Northwind project, and how big is each one
- @oncall describe the orders table on staging, columns and indexes

Neon's branch and schema tools list projects, branches, and computes, and describe tables and columns, so this is one round trip and no SQL from you. Reads never need confirmation, and a long answer comes back as a table in the thread.

### Run a read query
- @oncall on staging, how many orders went to failed since Monday, by error code
- @oncall on staging, find the customers with more than one refund this month

Say what you want to know and the teammate writes the SQL. Neon names its SQL tools Run SQL and Run SQL Transaction, which is not a read verb, so your own message has to ask for the query. A thread that mentioned it earlier does not count.

### Branch a database for a test
- @oncall create a branch off staging called test-refunds so I can try the backfill
- @oncall start the compute on dev-priya, it went idle and I need to connect

Neon branches copy on write, so a new branch copies no data and its parent is untouched. Creating one, or starting a compute, is a small reversible write, so it applies at once and the reply says what changed.

### Migrations and deleted branches
- @oncall add a nullable retry_count integer to orders on staging and apply it as a migration
- @oncall delete the test-checkout branch, that work merged last week

Neon applies a schema change on a temporary branch first and completes it on the real branch second, so the teammate can show you a clean run before it asks. A migration and a deleted branch are both consequential, so it says what it would do and waits for a yes.

### On a schedule
- @oncall every weekday at 9am Pacific, post the table and index sizes on staging here
- @oncall every Monday at 8am Eastern, list the unused indexes and anything stalled over 30 seconds

Neon's inspect_database tool runs 15 read-only checks, among them table and index sizes, unused indexes, cache hit rate, and queries stalled longer than 30 seconds. A schedule saves on the spot. It needs an explicit time zone, runs under the Neon connection of the person who asked, and is paused rather than run if that connection goes away.

### Example conversations

**What is in the project**
> **Dana:** @oncall what branches are on the Northwind project, and how big is each one?
> **@oncall:** Five branches on northwind. production is the default, and everything else came off it or off staging. Nothing here changed.
>
> | Branch | Parent | Data size | Compute | Last active |
> |---|---|---|---|---|
> | production | none | 62 GB | Active | now |
> | staging | production | 61 GB | Active | 4 min ago |
> | dev-priya | staging | 61 GB | Idle | 2 days ago |
> | test-checkout | staging | 61 GB | Idle | 6 days ago |
> | schema-only-ci | production | 11 MB | Idle | 20 min ago |

**Run a query**
> **Marco:** @oncall on the staging branch, run a query: how many orders went to failed since Monday, by error code?
> **@oncall:** 412 orders failed since Mon Sep 14 on staging. Three codes cover 380 of them, and card_declined is flat week over week. The jump is gateway_timeout, which was 11 last week.
>
> | Error code | Orders | Last week |
> |---|---|---|
> | gateway_timeout | 212 | 11 |
> | card_declined | 118 | 124 |
> | insufficient_funds | 50 | 47 |
> | other | 32 | 29 |

**Branch for a test**
> **Priya:** @oncall create a branch off staging called test-refunds so I can try the backfill.
> **@oncall:** Created test-refunds off staging, copy-on-write, so nothing was duplicated and staging is untouched. Its compute is up and the connection string is in the Neon console under that branch. Say "delete test-refunds" when you are done and I will ask you to confirm.

**Apply a migration**
> **Sofia:** @oncall add a nullable retry_count integer to orders on staging and apply it as a migration.
> **@oncall:** Ran it on a temporary branch first and it applied cleanly: alter table public.orders add column retry_count integer; It is nullable, so nothing backfills and no row changes. Applying it to staging changes the schema, so I will wait. Go ahead?
> Buttons: Yes, apply it to staging · Show me the temp branch

**Every weekday**
> **Dana:** @oncall every weekday at 9am Pacific, post the table and index sizes on staging here, biggest first.
> **@oncall:** Saved. Every weekday at 9:00 AM Pacific I’ll run the table and index size checks on staging and post them in #eng, biggest first. First run is Thu Sep 18. It runs on your Neon connection, so say "pause the morning sizes" to stop it.

## Connect Neon
1. In Neon, open [Account settings → API keys](https://console.neon.tech/app/settings/api-keys) and create a key. Neon shows the secret once, so copy it before the dialog closes.
2. Pick the narrowest key that does the job. An organization Admin can create a **project-scoped** key, which Neon gives Editor access to one project: it reads and changes that project, and cannot delete it or change who reaches it. A personal key instead carries your own access across every project in the organization.
3. Choose the project. Neon's guidance is to use MCP for development and testing, never to point an agent at a production database, and to keep production and personal data out of it. A development branch is the usual answer, and it costs nothing to make.
4. In Chickpea Admin, open the teammate, then **Connections**, find **Neon**, and choose **Connect**. Or ask in Slack, `@oncall connect Neon`, and follow the link it posts.
5. Choose who uses it. **Team** is one shared key that everyone who can use the teammate acts through. **Personal** means each member pastes their own. Paste the key into the write-only **Credential** field, which is stored once on your deployment and never returned to the browser. Chickpea connects to [mcp.neon.tech/mcp](https://neon.com/docs/ai/neon-mcp-server) before it saves anything, so a server that will not answer leaves you with no connection. Then ask something: `@oncall what branches are on the project` reads and cannot change anything.

A connection belongs to one teammate. Giving a second teammate Neon means a second key with its own scope, so a support teammate never inherits the project the on-call teammate can reach.

## What the teammate is handed with Neon
There is no built-in Chickpea skill for Neon, and none is needed. The tools arrive from Neon's MCP server: Chickpea connects before it saves anything, records what the server answered with, and exposes only those tools. Neon sorts them into twelve categories, which are projects, branches, compute endpoints, snapshots, schema, SQL, Neon Auth, the Data API, observability, docs, functions, and object storage. The recorded list is the teammate's ceiling, and it can be narrowed later but never widened.

Neon documents the server and its tool categories: https://neon.com/docs/ai/neon-mcp-server

## Beside Neon
- **Supabase:** Two managed Postgres providers, one teammate that reads either
- **Sentry:** The stack trace in Sentry, then the rows behind it in Neon
- **PostHog:** What the product data says beside what the database says
- **Cloudflare API:** The Worker in front and the Postgres behind it, asked about together
- All 37 connectors: https://chickpea.co/connectors

## Questions people ask

### Is there a Neon MCP server?
Yes. Neon runs a hosted MCP server at mcp.neon.tech/mcp over streamable HTTP, and it takes either an OAuth sign-in or a Neon API key as a bearer token. Neon describes the key as the option for headless and remote agents, which is the one Chickpea uses. It is also an official Claude connector, so Claude.ai and Claude Desktop list it without a custom URL. Chickpea connects to that same server, which is how a teammate in Slack uses it with no client installed.

### What MCP server should I use for Postgres?
If the database is on Neon, Neon's own. The servers that rank first for a Postgres MCP search are community projects you run yourself and point at a connection string, which means a process to host and a password to store. Neon's is hosted, takes an API key, and covers the platform as well as the SQL, so branches, computes, snapshots, and migrations are tools rather than something you script around.

### How do I get a Neon API key?
In the Neon console, from Account settings → API keys for a personal key, or Organization settings → API keys for an organization or project-scoped one. Neon shows the secret once, so copy it before you close the dialog. Keys do not expire, and you rotate one by creating its replacement and then revoking the old one. Project-scoped keys are the narrow choice: Neon gives them Editor access to a single project, which reads and changes that project but cannot delete it or manage who reaches it.

### Is it safe to point this at production?
Neon says no. Its own MCP guidance recommends MCP for development and testing only, asks that you never connect MCP agents to production databases, and asks that you avoid production or personal data and use anonymized data instead. The reason it gives is that the server grants broad database management, so a human should review and authorize what the model asks for. A Neon branch copies on write and costs nothing to make, so there is little reason to aim a Slack channel at the real database.

### Is the Neon MCP read only?
Not by default. Neon offers read-only mode as a URL parameter, ?readonly=true, which leaves SELECT queries and schema inspection working and switches off writes such as creating branches and running migrations. The Chickpea preset points at the plain server URL, so the levers here are different ones. Give the teammate a project-scoped key, and narrow its allowed tools, which is a ceiling that can be cut down later but never widened. If you want the parameter itself, add Neon as a custom MCP connection with ?readonly=true on the end of the URL.

### Does it use Neon's MCP server or the API?
The MCP server. Neon is a vendor MCP lane: the deployment connects to mcp.neon.tech/mcp over streamable HTTP and sends your API key as a bearer token. Chickpea writes no Neon endpoints of its own, and the connection cannot reach any other address.

### Can it run a migration, or delete a branch?
Yes, if the key allows it, and both ask first. Neon's SQL tools apply a schema change on a temporary branch before completing it on the real one, so the teammate can show you a clean run and then wait for a yes. Branch deletion is a branch tool and project deletion is a project tool, which is one more reason to hand it a project-scoped key, because Editor access cannot delete the project. Under the judgment sits a gate that never consults the model. During a Slack turn Chickpea refuses any MCP tool whose name does not start with an unambiguous read verb unless your message names that action, and thread history, retrieved content, and memory cannot authorize one.

### Can I use this from Claude Code or Cursor instead?
Yes, and Neon documents it. `npx neon@latest mcp` writes the client config for you, and `npx neon@latest plugins` installs a plugin that bundles the server with agent skills for the clients that take one. That puts the server in one person's editor, under that person's key, where only that person sees the answers. A teammate puts it in a channel, with a stored connection, saved instructions, schedules, and every query visible in the thread where someone asked for it. Teams often run both, usually against different projects.

### Does Neon have a Slack app?
Not a current one. Neon shipped an app for Slack in 2025 that reported compute, storage, and data transfer usage and told you when a project neared its plan limits. In November 2025 Neon marked that version deprecated and pointed people to its Discord. Neon also publishes a guide to building your own Slack assistant over a read replica with the Vercel AI SDK, which you host and maintain. A Chickpea teammate needs nothing hosted: it holds the Neon connection itself and answers in the channel through Neon's MCP server.

### Does everyone act as the same Neon account?
That is your choice when you connect. A team account is one API key that everyone with access to the teammate acts through, and Neon records the actions against that key. A personal account belongs to one member inside one teammate, so your key is used only for your requests. Either way the key sits on your deployment in a write-only field outside the teammate record. It never enters the model context, the tool arguments the model writes, or Slack. Disconnect the account and the stored secret is removed, after any schedule that depended on it is paused.

## Sources
- [Chickpea docs: connector catalog, the Neon preset, its lane and its bearer key](https://docs.chickpea.co/reference/connector-catalog/)
- [Chickpea docs: connections, team and personal accounts, the binding as a ceiling](https://docs.chickpea.co/agents/connections/)
- [Chickpea docs: authority and confirmation, including the read-verb gate](https://docs.chickpea.co/security/authority-and-confirmation/)
- [Chickpea docs: connect a service, the write-only credential field and custom MCP connections](https://docs.chickpea.co/agents/connect-a-service/)
- [Chickpea docs: schedules, time zones and what a paused schedule does](https://docs.chickpea.co/agents/schedules/)
- [Chickpea source: the Neon preset (server URL, transport, bearer key, the console link)](https://github.com/pejmanjohn/chickpea/blob/main/src/config/presets.ts)
- [Chickpea source: an MCP connection exposes approved tools that are still discovered](https://github.com/pejmanjohn/chickpea/blob/main/src/config/types.ts)
- [Neon docs: the MCP server, its URL, tool categories, read-only mode and the security guidance](https://neon.com/docs/ai/neon-mcp-server)
- [Neon docs: API keys, the three key types and what project-scoped Editor access covers](https://neon.com/docs/manage/api-keys)
- [Neon blog: the Slack usage app and its November 2025 deprecation note](https://neon.com/blog/monitor-your-neon-usage-via-slack-alerts)
- [Neon guides: building your own Slack data assistant on a read replica](https://neon.com/guides/ai-sdk-neon-data-assistant)
- [Chickpea source on GitHub](https://github.com/pejmanjohn/chickpea)

## More
- [Ahrefs MCP in Slack](https://chickpea.co/connectors/ahrefs.md)
- [Airtable MCP in Slack](https://chickpea.co/connectors/airtable.md)
- [Asana AI agent in Slack](https://chickpea.co/connectors/asana.md)
- [Jira and Confluence MCP in Slack](https://chickpea.co/connectors/atlassian.md)
- [BugSnag MCP in Slack](https://chickpea.co/connectors/bugsnag.md)
- [Cloudflare MCP in Slack](https://chickpea.co/connectors/cloudflare-api.md)
- [Exa MCP in Slack](https://chickpea.co/connectors/exa.md)
- [Firecrawl MCP in Slack](https://chickpea.co/connectors/firecrawl.md)
- [Fireflies MCP in Slack](https://chickpea.co/connectors/fireflies.md)
- [Gamma MCP in Slack](https://chickpea.co/connectors/gamma.md)
- [Gmail AI agent in Slack](https://chickpea.co/connectors/gmail.md)
- [Gong AI agent in Slack](https://chickpea.co/connectors/gong-managed.md)
- [Google Ads AI agent in Slack](https://chickpea.co/connectors/google-ads.md)
- [Google Analytics AI agent in Slack](https://chickpea.co/connectors/google-analytics.md)
- [Google Calendar AI agent in Slack](https://chickpea.co/connectors/google-calendar.md)
- [Google Docs AI agent in Slack](https://chickpea.co/connectors/google-docs.md)
- [Google Drive AI agent in Slack](https://chickpea.co/connectors/google-drive.md)
- [Google Search Console AI agent in Slack](https://chickpea.co/connectors/google-search-console.md)
- [Google Sheets AI agent in Slack](https://chickpea.co/connectors/google-sheets.md)
- [Google Slides AI agent in Slack](https://chickpea.co/connectors/google-slides.md)
- [Granola MCP in Slack](https://chickpea.co/connectors/granola.md)
- [HubSpot AI agent in Slack](https://chickpea.co/connectors/hubspot-managed.md)
- [Hugging Face MCP in Slack](https://chickpea.co/connectors/huggingface.md)
- [incident.io MCP in Slack](https://chickpea.co/connectors/incident-io.md)
- [Intercom MCP in Slack](https://chickpea.co/connectors/intercom.md)
- [Linear MCP in Slack](https://chickpea.co/connectors/linear.md)
- [LunarCrush MCP in Slack](https://chickpea.co/connectors/lunarcrush.md)
- [Meta Ads MCP in Slack](https://chickpea.co/connectors/meta-ads.md)
- [Monday.com MCP in Slack](https://chickpea.co/connectors/monday.md)
- [Notion Slack integration with an AI agent](https://chickpea.co/connectors/notion-managed.md)
- [PostHog MCP in Slack](https://chickpea.co/connectors/posthog.md)
- [Sentry MCP in Slack](https://chickpea.co/connectors/sentry.md)
- [Stripe MCP in Slack](https://chickpea.co/connectors/stripe.md)
- [Supabase MCP in Slack](https://chickpea.co/connectors/supabase.md)
- [YouTube AI agent in Slack](https://chickpea.co/connectors/youtube-managed.md)
- [Zendesk AI agent in Slack](https://chickpea.co/connectors/zendesk.md)
- [All connectors](https://chickpea.co/connectors.md)

## Try Chickpea
- Site: https://chickpea.co/
- Deploy to Cloudflare: https://deploy.workers.cloudflare.com/?url=https://github.com/pejmanjohn/chickpea
- Source, Apache 2.0: https://github.com/pejmanjohn/chickpea
- Docs: https://docs.chickpea.co
