Text-to-SQL access control: returns only the tables the calling principal may read, for Postgres, Oracle, MySQL and SQL Server.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add schemagate --env SCHEMAGATE_DATABASE_URL='<SCHEMAGATE_DATABASE_URL>' -- uvx schemagate~/.codex/config.toml
[mcp_servers.schemagate]
command = "uvx"
args = ["schemagate"]
env = { SCHEMAGATE_DATABASE_URL = "<SCHEMAGATE_DATABASE_URL>" }
# codex mcp add schemagate --env SCHEMAGATE_DATABASE_URL='<SCHEMAGATE_DATABASE_URL>' -- uvx schemagate~/.cursor/mcp.json
{
"mcpServers": {
"schemagate": {
"command": "uvx",
"args": [
"schemagate"
],
"env": {
"SCHEMAGATE_DATABASE_URL": "<SCHEMAGATE_DATABASE_URL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"schemagate": {
"type": "stdio",
"command": "uvx",
"args": [
"schemagate"
],
"env": {
"SCHEMAGATE_DATABASE_URL": "<SCHEMAGATE_DATABASE_URL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"schemagate": {
"command": "uvx",
"args": [
"schemagate"
],
"env": {
"SCHEMAGATE_DATABASE_URL": "<SCHEMAGATE_DATABASE_URL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"schemagate": {
"command": "uvx",
"args": [
"schemagate"
],
"env": {
"SCHEMAGATE_DATABASE_URL": "<SCHEMAGATE_DATABASE_URL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"schemagate": {
"command": "uvx",
"args": [
"schemagate"
],
"env": {
"SCHEMAGATE_DATABASE_URL": "<SCHEMAGATE_DATABASE_URL>"
}
}
}
}Environment variables
SCHEMAGATE_DATABASE_URL
Replace the placeholders with your own credentials and keep them out of version control.