Database Bridge MCP Server
Integrates with Google Cloud SQL databases through SSL/TLS connections, supporting client certificate authentication and secure database operations
Provides database connectivity and query execution capabilities for MySQL databases, including support for cloud deployments like AWS RDS with SSL/TLS, granular permissions control, and multi-database access
Enables database operations and query execution for PostgreSQL databases, with support for cloud platforms like Google Cloud SQL and Azure Database, SSL/TLS encryption, and schema-level permission management
Allows interaction with SQLite databases including both file-based and in-memory databases, providing query execution capabilities with read-only mode and permission controls
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
mcp-db-bridge
English
MCP (Model Context Protocol) server for MySQL, PostgreSQL & SQLite with granular permissions, multi-DB support, and cloud-ready SSL/TLS. Built with adapter pattern for extensibility.
Features
π Multi-Database: MySQL, PostgreSQL, SQLite
ποΈ Adapter Pattern: Clean and extensible architecture
βοΈ Cloud-Ready: SSL/TLS for AWS RDS, Google Cloud SQL, Azure Database
π Security First: Read-only mode + granular schema permissions
π Multi-DB Mode: Simultaneous access to multiple schemas/databases
π Transactions: Automatic BEGIN/COMMIT/ROLLBACK
π HTTP Mode: Optional remote HTTP server (Express)
Installation
npm install mcp-db-bridge
# or
pnpm add mcp-db-bridgeQuick Start
MySQL (Local)
# .env
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME=mydbPostgreSQL (Local)
# .env
DB_TYPE=postgresql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME=mydbSQLite (In-Memory)
# .env
DB_TYPE=sqlite
SQLITE_DB=:memory:Run
pnpm build
pnpm start
# or
node dist/index.jsConfiguration
Database Types
DB_TYPE=mysql # MySQL
DB_TYPE=postgresql # PostgreSQL
DB_TYPE=sqlite # SQLiteConnection Settings
Generic (All Databases)
DB_HOST=127.0.0.1
DB_PORT=3306 # MySQL: 3306, PostgreSQL: 5432
DB_USER=root
DB_PASS=password
DB_NAME=mydb # Leave empty for multi-DB mode
DB_CONNECTION_LIMIT=10MySQL-Specific (Backward Compatibility)
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASS=password
MYSQL_DB=mydb
MYSQL_SOCKET_PATH=/tmp/mysql.sock # Unix socket (priority over host/port)PostgreSQL-Specific
POSTGRESQL_HOST=127.0.0.1
POSTGRESQL_PORT=5432
POSTGRESQL_DB=mydbSQLite-Specific
SQLITE_DB=:memory: # In-memory database
SQLITE_DB=/var/lib/app/data.db # File-based databaseSecurity & Permissions
Read-Only Mode
Blocks all write operations at application level:
DB_READ_ONLY_MODE=trueGlobal Write Permissions
Fine-grained operation control by type (applied globally):
ALLOW_INSERT_OPERATION=true # Allow INSERT
ALLOW_UPDATE_OPERATION=true # Allow UPDATE
ALLOW_DELETE_OPERATION=false # Block DELETE
ALLOW_DDL_OPERATION=false # Block CREATE/ALTER/DROP/TRUNCATESchema-Specific Permissions
Override global permissions for specific schemas:
# Format: "schema1:true,schema2:false,schema3:true"
SCHEMA_INSERT_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_UPDATE_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_DELETE_PERMISSIONS=prod_db:false,test_db:false,staging_db:false
SCHEMA_DDL_PERMISSIONS=prod_db:false,test_db:true,staging_db:falseHow it works:
If schema has specific permission β use it
Otherwise β use global flag
Example:
# Global: INSERT blocked
ALLOW_INSERT_OPERATION=false
# test_db can insert, prod_db cannot
SCHEMA_INSERT_PERMISSIONS=test_db:true,prod_db:false
# Result:
# - INSERT on test_db: β
allowed (schema permission)
# - INSERT on prod_db: β blocked (schema permission)
# - INSERT on other_db: β blocked (global permission)Multi-DB Mode
Access multiple databases/schemas through a single connection.
Activation
Leave DB_NAME empty (MySQL/PostgreSQL only):
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME= # Empty = multi-DB modeWrite Protection
By default, multi-DB mode is read-only for security. To allow writes:
MULTI_DB_WRITE_MODE=true # β οΈ Use with caution!Recommendation: Use SCHEMA_*_PERMISSIONS for granular control instead of MULTI_DB_WRITE_MODE=true.
Complete Example
# Multi-DB with granular permissions
DB_TYPE=mysql
DB_NAME= # Multi-DB mode
ALLOW_INSERT_OPERATION=false # Global: blocked
SCHEMA_INSERT_PERMISSIONS=test_db:true # Exception: test_db can insert
SCHEMA_UPDATE_PERMISSIONS=test_db:true # Exception: test_db can update
SCHEMA_DELETE_PERMISSIONS=test_db:false # test_db: DELETE blocked
SCHEMA_DDL_PERMISSIONS=test_db:true # test_db: DDL allowedSSL/TLS for Cloud Databases
AWS RDS (MySQL/PostgreSQL)
DB_TYPE=mysql
DB_HOST=myinstance.123456789012.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
# Optional: DB_SSL_CA=/path/to/aws-rds-ca-cert.pemGoogle Cloud SQL (PostgreSQL)
DB_TYPE=postgresql
DB_HOST=34.123.45.67
DB_PORT=5432
DB_SSL=true
DB_SSL_CA=/path/to/server-ca.pem
DB_SSL_CERT=/path/to/client-cert.pem
DB_SSL_KEY=/path/to/client-key.pemAzure Database for MySQL
DB_TYPE=mysql
DB_HOST=myserver.mysql.database.azure.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=trueRemote MCP (HTTP Server)
Run MCP server via HTTP with authentication:
# .env
IS_REMOTE_MCP=true
REMOTE_SECRET_KEY=your-secret-key-here
PORT=3000Endpoint: POST http://localhost:3000/mcp
Header: Authorization: Bearer your-secret-key-here
Architecture
src/
βββ db/
β βββ adapters/
β β βββ types.ts # Interfaces and types
β β βββ factory.ts # Factory pattern
β β βββ mysql.adapter.ts # MySQL via mysql2
β β βββ postgresql.adapter.ts # PostgreSQL via pg
β β βββ sqlite.adapter.ts # SQLite via better-sqlite3
β βββ index.ts # Core query handlers
β βββ utils.ts # SQL parsing (node-sql-parser)
β βββ permissions.ts # Schema permission checks
βββ config/
β βββ index.ts # Environment configuration
βββ utils/
β βββ index.ts # Logging & utilities
βββ types/
βββ index.ts # Type definitionsAdapter Pattern
Each adapter implements the DatabaseAdapter interface:
export interface DatabaseAdapter {
readonly type: DatabaseType;
createPool(config: ConnectionConfig): Promise<DatabasePool>;
executeQuery<T>(pool: DatabasePool, sql: string, params?: any[]): Promise<T>;
setReadOnly(connection: DatabaseConnection): Promise<void>;
unsetReadOnly(connection: DatabaseConnection): Promise<void>;
normalizeResult(result: any): NormalizedResult;
supportsReadOnlyMode(): boolean;
}Transaction Flows
Read Operations:
BEGIN β SET TRANSACTION READ ONLY β QUERY β ROLLBACK β RESET TO READ WRITEWrite Operations:
BEGIN β QUERY β COMMIT (or ROLLBACK on error)Examples
MySQL with Unix Socket
DB_TYPE=mysql
MYSQL_SOCKET_PATH=/tmp/mysql.sock
DB_USER=root
DB_PASS=password
DB_NAME=mydbPostgreSQL Multi-DB with Permissions
DB_TYPE=postgresql
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME= # Multi-DB mode
SCHEMA_INSERT_PERMISSIONS=app_db:true # app_db can insert
SCHEMA_UPDATE_PERMISSIONS=app_db:true # app_db can update
SCHEMA_DELETE_PERMISSIONS=app_db:false # app_db: DELETE blockedSQLite Read-Only
DB_TYPE=sqlite
SQLITE_DB=/var/lib/data/production.db
DB_READ_ONLY_MODE=trueAWS RDS MySQL with SSL
DB_TYPE=mysql
DB_HOST=prod.abc123.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_USER=admin
DB_PASS=secure_password
DB_NAME=production
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=falseDevelopment
pnpm dev # Run in dev mode (tsx)
pnpm build # Compile TypeScript
pnpm watch # Watch mode
pnpm exec # Build + run with .envTesting
pnpm test # Run all tests (setup + vitest run)
pnpm test:watch # Watch mode
pnpm test:unit # Unit tests only
pnpm test:integration # Integration tests (MySQL, socket, permissions)
pnpm test:e2e # End-to-end tests
pnpm test:coverage # Coverage reportTest Structure:
tests/
βββ unit/ # Isolated functions (query parsing, utils)
βββ integration/ # Real database operations
βββ e2e/ # Complete MCP server workflowsPerformance Tuning
Connection Pool
DB_CONNECTION_LIMIT=20 # Default: 10Disable Read-Only Transactions (MySQL)
β οΈ Not recommended - reduces security:
MYSQL_DISABLE_READ_ONLY_TRANSACTIONS=trueEnvironment Variables Reference
Core Database Settings
Variable | Description | Default | Example |
| Database type |
|
|
| Database host |
|
|
| Database port |
|
|
| Database user |
|
|
| Database password |
|
|
| Database name |
|
|
| Pool size |
|
|
Security Settings
Variable | Description | Default | Values |
| Global read-only mode |
|
|
| Global INSERT permission |
|
|
| Global UPDATE permission |
|
|
| Global DELETE permission |
|
|
| Global DDL permission |
|
|
| Allow writes in multi-DB |
|
|
Schema Permissions
Variable | Format | Example |
|
|
|
|
|
|
|
|
|
|
|
|
SSL/TLS Settings
Variable | Description | Required | Example |
| Enable SSL/TLS | Cloud DBs |
|
| Strict SSL validation | Production |
|
| CA certificate path | Cloud SQL |
|
| Client certificate | Cloud SQL |
|
| Client key | Cloud SQL |
|
Remote MCP Settings
Variable | Description | Required | Example |
| Enable HTTP mode | No |
|
| Auth token | If remote |
|
| HTTP server port | No |
|
Troubleshooting
Connection Errors
MySQL socket not found:
# Check socket path
sudo mysql -u root -p -e "SELECT @@socket;"
# Set in .env
MYSQL_SOCKET_PATH=/var/run/mysqld/mysqld.sockPostgreSQL connection refused:
# Check if PostgreSQL is running
sudo systemctl status postgresql
# Check port
sudo netstat -tulpn | grep 5432Permission Errors
"Operation not allowed in read-only mode":
# Check global read-only mode
DB_READ_ONLY_MODE=false
# Check multi-DB mode
MULTI_DB_WRITE_MODE=true # If needed
# Or use schema permissions
SCHEMA_INSERT_PERMISSIONS=mydb:true"INSERT not allowed for schema 'mydb'":
# Check global permission
ALLOW_INSERT_OPERATION=true
# Or add schema exception
SCHEMA_INSERT_PERMISSIONS=mydb:trueLicense
MIT
Credits
mcp-server-mysql: @benborla
Related MCP server: Bollard MCP
PortuguΓͺs
Servidor MCP (Model Context Protocol) para MySQL, PostgreSQL e SQLite com permissΓ΅es granulares, suporte multi-DB e SSL/TLS pronto para nuvem. ConstruΓdo com adapter pattern para extensibilidade.
Funcionalidades
π Multi-Database: MySQL, PostgreSQL, SQLite
ποΈ Adapter Pattern: Arquitetura limpa e extensΓvel
βοΈ Cloud-Ready: SSL/TLS para AWS RDS, Google Cloud SQL, Azure Database
π Security First: Modo read-only + permissΓ΅es granulares por schema
π Multi-DB Mode: Acesso simultΓ’neo a mΓΊltiplos schemas/databases
π TransaΓ§Γ΅es: BEGIN/COMMIT/ROLLBACK automΓ‘tico
π Modo HTTP: Servidor HTTP remoto opcional (Express)
InstalaΓ§Γ£o
npm install mcp-db-bridge
# ou
pnpm add mcp-db-bridgeInΓcio RΓ‘pido
MySQL (Local)
# .env
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME=mydbPostgreSQL (Local)
# .env
DB_TYPE=postgresql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME=mydbSQLite (In-Memory)
# .env
DB_TYPE=sqlite
SQLITE_DB=:memory:Executar
pnpm build
pnpm start
# ou
node dist/index.jsConfiguraΓ§Γ£o
Tipos de Banco de Dados
DB_TYPE=mysql # MySQL
DB_TYPE=postgresql # PostgreSQL
DB_TYPE=sqlite # SQLiteConfiguraΓ§Γ΅es de ConexΓ£o
GenΓ©ricas (Todos os Bancos)
DB_HOST=127.0.0.1
DB_PORT=3306 # MySQL: 3306, PostgreSQL: 5432
DB_USER=root
DB_PASS=password
DB_NAME=mydb # Deixe vazio para modo multi-DB
DB_CONNECTION_LIMIT=10EspecΓficas do MySQL (Compatibilidade)
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASS=password
MYSQL_DB=mydb
MYSQL_SOCKET_PATH=/tmp/mysql.sock # Unix socket (prioridade sobre host/port)EspecΓficas do PostgreSQL
POSTGRESQL_HOST=127.0.0.1
POSTGRESQL_PORT=5432
POSTGRESQL_DB=mydbEspecΓficas do SQLite
SQLITE_DB=:memory: # Database em memΓ³ria
SQLITE_DB=/var/lib/app/data.db # Database em arquivoSeguranΓ§a & PermissΓ΅es
Modo Read-Only
Bloqueia todas as operaΓ§Γ΅es de escrita em nΓvel de aplicaΓ§Γ£o:
DB_READ_ONLY_MODE=truePermissΓ΅es Globais de Escrita
Controle fino de operaΓ§Γ΅es por tipo (aplicado globalmente):
ALLOW_INSERT_OPERATION=true # Permite INSERT
ALLOW_UPDATE_OPERATION=true # Permite UPDATE
ALLOW_DELETE_OPERATION=false # Bloqueia DELETE
ALLOW_DDL_OPERATION=false # Bloqueia CREATE/ALTER/DROP/TRUNCATEPermissΓ΅es EspecΓficas por Schema
Sobrescreve permissΓ΅es globais para schemas especΓficos:
# Formato: "schema1:true,schema2:false,schema3:true"
SCHEMA_INSERT_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_UPDATE_PERMISSIONS=prod_db:false,test_db:true,staging_db:true
SCHEMA_DELETE_PERMISSIONS=prod_db:false,test_db:false,staging_db:false
SCHEMA_DDL_PERMISSIONS=prod_db:false,test_db:true,staging_db:falseComo funciona:
Se schema tem permissΓ£o especΓfica β usa ela
Caso contrΓ‘rio β usa flag global
Exemplo:
# Global: INSERT bloqueado
ALLOW_INSERT_OPERATION=false
# test_db pode inserir, prod_db nΓ£o pode
SCHEMA_INSERT_PERMISSIONS=test_db:true,prod_db:false
# Resultado:
# - INSERT em test_db: β
permitido (permissΓ£o do schema)
# - INSERT em prod_db: β bloqueado (permissΓ£o do schema)
# - INSERT em other_db: β bloqueado (permissΓ£o global)Modo Multi-DB
Acessa mΓΊltiplos databases/schemas atravΓ©s de uma ΓΊnica conexΓ£o.
AtivaΓ§Γ£o
Deixe DB_NAME vazio (MySQL/PostgreSQL apenas):
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASS=password
DB_NAME= # Vazio = modo multi-DBProteΓ§Γ£o de Escrita
Por padrΓ£o, modo multi-DB Γ© read-only por seguranΓ§a. Para permitir escritas:
MULTI_DB_WRITE_MODE=true # β οΈ Use com cautela!RecomendaΓ§Γ£o: Use SCHEMA_*_PERMISSIONS para controle granular ao invΓ©s de MULTI_DB_WRITE_MODE=true.
Exemplo Completo
# Multi-DB com permissΓ΅es granulares
DB_TYPE=mysql
DB_NAME= # Modo multi-DB
ALLOW_INSERT_OPERATION=false # Global: bloqueado
SCHEMA_INSERT_PERMISSIONS=test_db:true # ExceΓ§Γ£o: test_db pode inserir
SCHEMA_UPDATE_PERMISSIONS=test_db:true # ExceΓ§Γ£o: test_db pode atualizar
SCHEMA_DELETE_PERMISSIONS=test_db:false # test_db: DELETE bloqueado
SCHEMA_DDL_PERMISSIONS=test_db:true # test_db: DDL permitidoSSL/TLS para Bancos na Nuvem
AWS RDS (MySQL/PostgreSQL)
DB_TYPE=mysql
DB_HOST=myinstance.123456789012.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
# Opcional: DB_SSL_CA=/path/to/aws-rds-ca-cert.pemGoogle Cloud SQL (PostgreSQL)
DB_TYPE=postgresql
DB_HOST=34.123.45.67
DB_PORT=5432
DB_SSL=true
DB_SSL_CA=/path/to/server-ca.pem
DB_SSL_CERT=/path/to/client-cert.pem
DB_SSL_KEY=/path/to/client-key.pemAzure Database for MySQL
DB_TYPE=mysql
DB_HOST=myserver.mysql.database.azure.com
DB_PORT=3306
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=trueMCP Remoto (Servidor HTTP)
Execute o servidor MCP via HTTP com autenticaΓ§Γ£o:
# .env
IS_REMOTE_MCP=true
REMOTE_SECRET_KEY=your-secret-key-here
PORT=3000Endpoint: POST http://localhost:3000/mcp
Header: Authorization: Bearer your-secret-key-here
Arquitetura
src/
βββ db/
β βββ adapters/
β β βββ types.ts # Interfaces e tipos
β β βββ factory.ts # Factory pattern
β β βββ mysql.adapter.ts # MySQL via mysql2
β β βββ postgresql.adapter.ts # PostgreSQL via pg
β β βββ sqlite.adapter.ts # SQLite via better-sqlite3
β βββ index.ts # Core query handlers
β βββ utils.ts # SQL parsing (node-sql-parser)
β βββ permissions.ts # Schema permission checks
βββ config/
β βββ index.ts # ConfiguraΓ§Γ£o de ambiente
βββ utils/
β βββ index.ts # Logging & utilitΓ‘rios
βββ types/
βββ index.ts # DefiniΓ§Γ΅es de tiposAdapter Pattern
Cada adapter implementa a interface DatabaseAdapter:
export interface DatabaseAdapter {
readonly type: DatabaseType;
createPool(config: ConnectionConfig): Promise<DatabasePool>;
executeQuery<T>(pool: DatabasePool, sql: string, params?: any[]): Promise<T>;
setReadOnly(connection: DatabaseConnection): Promise<void>;
unsetReadOnly(connection: DatabaseConnection): Promise<void>;
normalizeResult(result: any): NormalizedResult;
supportsReadOnlyMode(): boolean;
}Fluxos de TransaΓ§Γ£o
OperaΓ§Γ΅es de Leitura:
BEGIN β SET TRANSACTION READ ONLY β QUERY β ROLLBACK β RESET TO READ WRITEOperaΓ§Γ΅es de Escrita:
BEGIN β QUERY β COMMIT (ou ROLLBACK em caso de erro)Exemplos
MySQL com Unix Socket
DB_TYPE=mysql
MYSQL_SOCKET_PATH=/tmp/mysql.sock
DB_USER=root
DB_PASS=password
DB_NAME=mydbPostgreSQL Multi-DB com PermissΓ΅es
DB_TYPE=postgresql
DB_HOST=localhost
DB_PORT=5432
DB_USER=postgres
DB_PASS=password
DB_NAME= # Modo multi-DB
SCHEMA_INSERT_PERMISSIONS=app_db:true # app_db pode inserir
SCHEMA_UPDATE_PERMISSIONS=app_db:true # app_db pode atualizar
SCHEMA_DELETE_PERMISSIONS=app_db:false # app_db: DELETE bloqueadoSQLite Read-Only
DB_TYPE=sqlite
SQLITE_DB=/var/lib/data/production.db
DB_READ_ONLY_MODE=trueAWS RDS MySQL com SSL
DB_TYPE=mysql
DB_HOST=prod.abc123.us-east-1.rds.amazonaws.com
DB_PORT=3306
DB_USER=admin
DB_PASS=secure_password
DB_NAME=production
DB_SSL=true
DB_SSL_REJECT_UNAUTHORIZED=true
ALLOW_INSERT_OPERATION=false
ALLOW_UPDATE_OPERATION=false
ALLOW_DELETE_OPERATION=false
ALLOW_DDL_OPERATION=falseDesenvolvimento
pnpm dev # Executar em modo dev (tsx)
pnpm build # Compilar TypeScript
pnpm watch # Modo watch
pnpm exec # Build + executar com .envTestes
pnpm test # Executar todos os testes (setup + vitest run)
pnpm test:watch # Modo watch
pnpm test:unit # Apenas testes unitΓ‘rios
pnpm test:integration # Testes de integraΓ§Γ£o (MySQL, socket, permissΓ΅es)
pnpm test:e2e # Testes end-to-end
pnpm test:coverage # RelatΓ³rio de coberturaEstrutura de Testes:
tests/
βββ unit/ # FunΓ§Γ΅es isoladas (parsing de queries, utils)
βββ integration/ # OperaΓ§Γ΅es reais de banco de dados
βββ e2e/ # Fluxos completos do servidor MCPAjustes de Performance
Connection Pool
DB_CONNECTION_LIMIT=20 # PadrΓ£o: 10Desabilitar TransaΓ§Γ΅es Read-Only (MySQL)
β οΈ NΓ£o recomendado - reduz seguranΓ§a:
MYSQL_DISABLE_READ_ONLY_TRANSACTIONS=trueReferΓͺncia de VariΓ‘veis de Ambiente
ConfiguraΓ§Γ΅es Principais do Banco
VariΓ‘vel | DescriΓ§Γ£o | PadrΓ£o | Exemplo |
| Tipo de banco |
|
|
| Host do banco |
|
|
| Porta do banco |
|
|
| UsuΓ‘rio do banco |
|
|
| Senha do banco |
|
|
| Nome do banco |
|
|
| Tamanho do pool |
|
|
ConfiguraΓ§Γ΅es de SeguranΓ§a
VariΓ‘vel | DescriΓ§Γ£o | PadrΓ£o | Valores |
| Modo global read-only |
|
|
| PermissΓ£o global de INSERT |
|
|
| PermissΓ£o global de UPDATE |
|
|
| PermissΓ£o global de DELETE |
|
|
| PermissΓ£o global de DDL |
|
|
| Permitir escritas em multi-DB |
|
|
PermissΓ΅es por Schema
VariΓ‘vel | Formato | Exemplo |
|
|
|
|
|
|
|
|
|
|
|
|
ConfiguraΓ§Γ΅es SSL/TLS
VariΓ‘vel | DescriΓ§Γ£o | NecessΓ‘ria | Exemplo |
| Habilitar SSL/TLS | Bancos Cloud |
|
| ValidaΓ§Γ£o SSL estrita | ProduΓ§Γ£o |
|
| Caminho do certificado CA | Cloud SQL |
|
| Certificado do cliente | Cloud SQL |
|
| Chave do cliente | Cloud SQL |
|
ConfiguraΓ§Γ΅es MCP Remoto
VariΓ‘vel | DescriΓ§Γ£o | NecessΓ‘ria | Exemplo |
| Habilitar modo HTTP | NΓ£o |
|
| Token de autenticaΓ§Γ£o | Se remoto |
|
| Porta do servidor HTTP | NΓ£o |
|
SoluΓ§Γ£o de Problemas
Erros de ConexΓ£o
Socket MySQL nΓ£o encontrado:
# Verificar caminho do socket
sudo mysql -u root -p -e "SELECT @@socket;"
# Configurar no .env
MYSQL_SOCKET_PATH=/var/run/mysqld/mysqld.sockConexΓ£o PostgreSQL recusada:
# Verificar se PostgreSQL estΓ‘ rodando
sudo systemctl status postgresql
# Verificar porta
sudo netstat -tulpn | grep 5432Erros de PermissΓ£o
"Operation not allowed in read-only mode":
# Verificar modo global read-only
DB_READ_ONLY_MODE=false
# Verificar modo multi-DB
MULTI_DB_WRITE_MODE=true # Se necessΓ‘rio
# Ou usar permissΓ΅es de schema
SCHEMA_INSERT_PERMISSIONS=mydb:true"INSERT not allowed for schema 'mydb'":
# Verificar permissΓ£o global
ALLOW_INSERT_OPERATION=true
# Ou adicionar exceΓ§Γ£o de schema
SCHEMA_INSERT_PERMISSIONS=mydb:trueLicenΓ§a
MIT
CrΓ©ditos
mcp-server-mysql: @benborla
This server cannot be deployed
Maintenance
Related MCP Connectors
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Query 40 databases from Claude, ChatGPT, or Cursor β on any device. Read-only, encrypted, audited.
Read, write, and combine connected apps and databases with shared code and per-person permissions.
PostgreSQL, MySQL, OpenAPI/Swagger, and shared Agent Memory with scoped access.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables secure interaction with multiple SQL database engines (MySQL, PostgreSQL, SQLite, SQL Server) through a standardized interface. Supports schema inspection, safe query execution, and controlled write operations with built-in security restrictions.5MIT

Bollard MCPofficial
AlicenseAqualityDmaintenanceEnables safe, AI-driven database interactions with schema discovery, intent validation, and session memory, supporting multiple databases.142AGPL 3.0- AlicenseNot gradedqualityDmaintenanceEnables AI agents to securely interact with multiple databases (MySQL, PostgreSQL) via natural language queries, with cross-database querying and enterprise-grade security.9 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with multiple databases (MySQL, PostgreSQL, SQLite, Supabase) through a unified interface with security features like SQL injection detection and rate limiting.101 npmMIT