Database MCP Server

Servidores MCP que fornecem acesso seguro e estruturado a bancos de dados SQL para clientes de IA. Um pacote instalável por mecanismo de banco de dados. Cada pacote expõe a mesma superfície mínima de duas ferramentas, execute_sql e search_objects, com proteções ativadas por padrão: modo somente leitura, limites de linhas e timeouts de instrução.

Documentação

database-mcp

CI License: MIT npm PyPI Node >= 20

Servidores MCP que oferecem a clientes de IA acesso seguro e estruturado a bancos de dados SQL.

Um pacote instalável por mecanismo de banco de dados, em TypeScript (npm) e Python (PyPI). Cada pacote expõe a mesma superfície mínima de duas ferramentas, execute_sql e search_objects, com proteções ativadas por padrão: modo somente leitura, limites de linhas e tempos limite de execução de instruções.

Pacotes

MecanismoTypeScript (npm)Python (PyPI)
SQLite@database-mcp/sqlite npmdatabase-mcp-sqlite PyPI
libSQL@database-mcp/libsql npmdatabase-mcp-libsql PyPI
MySQL@database-mcp/mysql npmdatabase-mcp-mysql PyPI
MariaDB@database-mcp/mariadb npmdatabase-mcp-mariadb PyPI
Postgres@database-mcp/postgres npmdatabase-mcp-postgres PyPI

Ambas as linhas são publicadas e passam na mesma suíte de conformidade agnóstica de linguagem contra bancos de dados reais em CI, portanto o comportamento é idêntico independentemente da linguagem. Cada mecanismo também está listado no MCP Registry com ambas as opções de instalação.

Implementações em Go e Rust estão planejadas.

Princípios de design

  • Duas ferramentas, nada mais. Uma superfície mínima de ferramentas mantém a janela de contexto do modelo limpa. search_objects revela progressivamente o esquema: chame sem argumentos para listar tabelas, com um nome de tabela para obter colunas, índices e chaves estrangeiras.
  • Seguro por padrão. O modo somente leitura é aplicado em duas camadas: um guarda SQL conservador, além de uma configuração de sessão somente leitura no próprio banco de dados. As linhas são limitadas (padrão 1000) e as instruções têm tempo limite (padrão 30s).
  • Configurado na inicialização, nunca via chat. Os detalhes de conexão vêm de flags, um arquivo de configuração YAML ou variáveis de ambiente. Credenciais nunca são aceitas por meio de uma chamada de ferramenta.
  • Segredos nunca aparecem em logs. Senhas vivem em tipos secretos não imprimíveis, DSNs são sanitizados antes do registro em log e um filtro de redação protege o limite do log.

Início rápido

Escolha o pacote do seu mecanismo; cada README tem a superfície completa de configuração. SQLite via npm:

{
  "mcpServers": {
    "sqlite": {
      "command": "npx",
      "args": ["-y", "@database-mcp/sqlite", "--dsn", "/absolute/path/to/database.db"]
    }
  }
}

Ou via PyPI: use "command": "uvx" e "args": ["database-mcp-sqlite", "--dsn", "/absolute/path/to/database.db"]. Flags, variáveis de ambiente e configuração YAML são idênticas em ambas as linhas.

Mecanismos de rede obtêm credenciais do ambiente (MYSQL_*, MARIADB_*, POSTGRES_*/DATABASE_URL, LIBSQL_URL/LIBSQL_AUTH_TOKEN), segredos montados via *_FILE ou um arquivo YAML via --config. Nunca de um prompt de chat.

Contribuindo

Veja CONTRIBUTING.md. A versão curta: a suíte de conformidade é a definição de pronto. Uma alteração só pode ser mesclada quando conformance/run.mjs passa contra todos os servidores afetados.

Licença

MIT