MCP PostgreSQL Server

Um servidor que permite que modelos de IA interajam com bancos de dados PostgreSQL por meio de uma interface padronizada.

Documentação

MCP PostgreSQL Server

Um servidor Model Context Protocol que fornece operações de banco de dados PostgreSQL. Este servidor permite que modelos de IA interajam com bancos de dados PostgreSQL através de uma interface padronizada.

Instalação

Instalação Manual

npm install mcp-postgres-server

Ou execute diretamente com:

npx mcp-postgres-server

Configuração

O servidor requer as seguintes variáveis de ambiente:

{
  "mcpServers": {
    "postgres": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "mcp-postgres-server"],
      "env": {
        "PG_HOST": "your_host",
        "PG_PORT": "5432",
        "PG_USER": "your_user",
        "PG_PASSWORD": "your_password",
        "PG_DATABASE": "your_database"
      }
    }
  }
}

Ferramentas Disponíveis

1. connect_db

Estabelece conexão com o banco de dados PostgreSQL usando as credenciais fornecidas.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "connect_db",
  arguments: {
    host: "localhost",
    port: 5432,
    user: "your_user",
    password: "your_password",
    database: "your_database"
  }
});

2. query

Executa consultas SELECT com parâmetros opcionais de prepared statement. Suporta tanto placeholders de parâmetros no estilo PostgreSQL ($1, $2) quanto no estilo MySQL (?).

use_mcp_tool({
  server_name: "postgres",
  tool_name: "query",
  arguments: {
    sql: "SELECT * FROM users WHERE id = $1",
    params: [1]
  }
});

3. execute

Executa consultas INSERT, UPDATE ou DELETE com parâmetros opcionais de prepared statement. Suporta tanto placeholders de parâmetros no estilo PostgreSQL ($1, $2) quanto no estilo MySQL (?).

use_mcp_tool({
  server_name: "postgres",
  tool_name: "execute",
  arguments: {
    sql: "INSERT INTO users (name, email) VALUES ($1, $2)",
    params: ["John Doe", "john@example.com"]
  }
});

4. list_schemas

Lista todos os schemas no banco de dados conectado.

use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_schemas",
  arguments: {}
});

5. list_tables

Lista tabelas no banco de dados conectado. Aceita um parâmetro de schema opcional (padrão: 'public').

// List tables in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_tables",
  arguments: {}
});

// List tables in a specific schema
use_mcp_tool({
  server_name: "postgres",
  tool_name: "list_tables",
  arguments: {
    schema: "my_schema"
  }
});

6. describe_table

Obtém a estrutura de uma tabela específica. Aceita um parâmetro de schema opcional (padrão: 'public').

// Describe a table in the 'public' schema (default)
use_mcp_tool({
  server_name: "postgres",
  tool_name: "describe_table",
  arguments: {
    table: "users"
  }
});

// Describe a table in a specific schema
use_mcp_tool({
  server_name: "postgres",
  tool_name: "describe_table",
  arguments: {
    table: "users",
    schema: "my_schema"
  }
});

Recursos

  • Gerenciamento seguro de conexão com limpeza automática
  • Suporte a prepared statements para parâmetros de consulta
  • Suporte a placeholders de parâmetros no estilo PostgreSQL ($1, $2) e no estilo MySQL (?)
  • Tratamento abrangente de erros e validação
  • Suporte a TypeScript
  • Gerenciamento automático de conexão
  • Suporte a sintaxe e recursos específicos do PostgreSQL
  • Suporte a múltiplos schemas para operações de banco de dados

Segurança

  • Usa prepared statements para prevenir injeção de SQL
  • Suporta tratamento seguro de senhas através de variáveis de ambiente
  • Valida consultas antes da execução
  • Fecha conexões automaticamente quando concluído

Tratamento de Erros

O servidor fornece mensagens de erro detalhadas para problemas comuns:

  • Falhas de conexão
  • Consultas inválidas
  • Parâmetros ausentes
  • Erros de banco de dados

Licença

MIT