MCP Server
Connect Claude Desktop to your database
Claude Desktop can read your real data over the Model Context Protocol without ever holding a database password. Point it at a DBShifts Agent Gateway instead: you choose the tables and columns it may read, PII is masked before results leave the server, results are row-capped and rate-limited, and every single query is logged.
Claude Desktop MCP configuration
Config file: claude_desktop_config.json — macOS: ~/Library/Application Support/Claude/ · Windows: %APPDATA%\Claude\
{
"mcpServers": {
"dbshifts": {
"url": "https://dbshifts.com/api/v1/agent-gateways/mcp",
"headers": { "Authorization": "Bearer agt_your_token_here" }
}
}
}Claude Desktop must be fully quit and reopened after editing the config — reloading the window is not enough. The server shows up under the tools icon once it connects.
Where the token lives in Claude Desktop
A gateway token is a credential. Each client stores it somewhere different, and that changes what it should be scoped to.
One config, every conversation
The config is per-install, not per-project, so the token is in scope for anything you ask in Claude Desktop. There is no workspace boundary to fall back on — scope the token to the narrowest set of tables you actually want reachable, because whatever it allows is reachable from any chat.
The token sits in a plaintext file in your profile
claude_desktop_config.json is readable by anything running as your user, including other tools you install. Treat it as a credential on disk: issue a token per machine so one can be revoked without touching the others, and revoke it when the machine changes hands.
A full quit is what applies a revocation locally
Since reloading the window is not enough to pick up config changes, editing the token out of the file does not end a running session. Revoke server-side in the gateway — that takes effect on the next call regardless of what the client still has cached.
How it works
Register the database
Connect it once with read-only credentials. The schema is introspected and scanned for PII automatically — you see what's sensitive before anything is exposed.
Set the policy
Pick the tables and columns agents may read. Set PII masking, a row cap, a rate limit, and daily/monthly usage budgets. Default is deny.
Issue a scoped token
One agt_ token per agent, revocable independently, optionally IP-bound and time-windowed. Never your database password.
Point the agent at it
Drop the endpoint and token into your client's MCP config. Every call is policy-checked, masked, capped and logged.
Tools the agent gets
Exactly the 26 tools the MCP server exposes — no raw SQL is accepted from the agent on any of them. What each one does.
Frequently asked questions
Do I have to give Claude Desktop my database password?
No — that's the entire point. The agent authenticates with a scoped agt_ token issued by the gateway. The database credentials stay on the server and are never sent to the agent, the model provider, or the client machine. Revoke a token and that agent loses access immediately, without touching any other agent or rotating your database password.
Can the agent read columns I haven't allowed?
No. The policy is default-deny: an agent sees only the tables and columns you explicitly allow. Denied columns are not returned, and PII columns are masked server-side before results ever leave the gateway — including inside aggregates, so a masked column can't be grouped or filtered back into visibility.
Can the agent modify or delete data?
Reads are read-only by construction. Writes exist only as named, parameterized actions you define in advance — the agent can propose one, but a human approves it (in-app or from Slack) before anything executes. Approved writes are audited and carry a one-click undo, plus a version-controlled history of the affected table.
What stops an agent from pulling the entire database?
Layered limits: a per-query row cap, a per-minute rate limit, and cumulative usage budgets (daily queries, daily rows, monthly rows) per token and gateway-wide. Tokens can also be IP-bound and time-windowed, so a leaked token is useless outside your network or outside working hours.
How do I see what the agent actually did?
Every call is logged: which token, which tool, which table, which columns were masked, how many rows came back, and what was denied. You can replay any logged read to see exactly what the agent saw at the time.
Databases you can connect
Ship agents without betting the database on them.
Free to start — no card. Read-only, masked, rate-limited, fully audited.
Get started