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