Agents
Introduction
Agents work from your real tables and columns for more accurate results, and they never receive the database password.
The MCP URL is:
https://nthbouncer.com/mcpThere is no token to paste. You can copy the same URL from Settings →
Connected agents, which also walks through each client. Self-hosted
installs use /mcp on your own host.
You need an nthbouncer account. You do not need a pool first. On the authorization screen, check All pools so the assistant can use pools you create later. This agent may create pools and This agent may move origin keys onto pools are on for owners and admins unless you untick them. Create admits an origin URL. Onboard lets the assistant POST a key the project already has, or give you a paste page. It will never ask you to type the secret in chat.
Pick your agent
Cursor
Create .cursor/mcp.json in the project, or ~/.cursor/mcp.json for every
project:
{
"mcpServers": {
"nthbouncer": {
"type": "http",
"url": "https://nthbouncer.com/mcp"
}
}
}Save the file. Cursor opens a browser for authorization. Do not add a token or
an Authorization header.
You can also paste the URL under Cursor Settings → Tools & MCP.
Claude Code
claude mcp add --transport http nthbouncer https://nthbouncer.com/mcpThe first tool call opens the authorization screen.
Visual Studio Code
Create .vscode/mcp.json in the workspace. VS Code uses servers, not
mcpServers:
{
"servers": {
"nthbouncer": {
"type": "http",
"url": "https://nthbouncer.com/mcp"
}
}
}Save, then start the server from the CodeLens and finish authorization in the browser.
Codex
codex mcp add nthbouncer --url https://nthbouncer.com/mcpThe first tool call opens the authorization screen.
Other clients
Add a custom connector (Claude.ai) or a remote MCP server and paste
https://nthbouncer.com/mcp. Any client that speaks streamable HTTP MCP and
OAuth 2.1 will work.
Approve the grant
Your browser opens nthbouncer. Choose:
- All pools. Every current and future pool in this organization. On HTTP
pools, check Allow writes if the assistant may send methods other than
GET,HEAD, andOPTIONS. You can approve this with no pools yet. - Specific pools. Only the pools you pick. The write opt-in appears per HTTP pool.
- This agent may create pools. Owners and admins only. On by default. Untick it to refuse. Creates a durable HTTP pool that uses a plan slot, then onboards the origin key. The assistant passes the origin URL it already calls. It is never asked to type the secret in chat.
- This agent may move origin keys onto pools. Owners and admins only. On by default with create. Untick it to refuse origin-key write. The assistant may POST a key the project already has, or give you a paste page. It will never ask you to type the secret in chat.
A session grant can also create webhook destinations and attach them to a granted pool (and turn async on if that pool is still sync). That uses the same owner or admin permission as the dashboard. There is no extra checkbox.
Database pools have no separate write gate. Writes stay blocked on HTTP unless you allow them. Prefer leaving writes off unless the work must change data at the origin.
Click Allow access. Review or disconnect later under Settings → Connected agents. Disconnecting takes effect immediately.
One connector authorizes one organization. To connect a second organization, add the URL as a second connector. Re-adding a connector always shows the consent screen, so you can widen or narrow the grant without disconnecting first.
After you connect
The assistant can list the pools you granted, start and end session keys on
them, and (on a database pool) run the query tools those keys allow. If you
ticked create, it can also admit an origin with create_pool. If you ticked
adopt, it can prepare managed auth with adopt_connection and POST the
project's existing key to a one-shot intake — never as an MCP argument.
Session keys default to one hour and to read-only methods.
Try: list the pools I granted, reuse one if it fits, start a session, and call through the pool URL instead of the origin.
On a managed pool, the origin credential is attached at our edge. The assistant gets a URL and a timer, never the secret. Prefer managed custody for anything an assistant touches.
See MCP server for the tools and how session keys work.
If a script or a committed skill should call a pool without MCP, mint a pool key and see Reuse one pool across agent runs.
Next steps
- MCP server
- Database pools
- Give a data team Claude access to Postgres
- Reuse one pool across agent runs
- Control API (CI and scripts, not assistants)