O MCP-PostgreSQL-Ops é uma ferramenta profissional de operações e monitoramento projetada para bancos de dados PostgreSQL. Ela permite que modelos de linguagem grande (LLMs) ou agentes de IA interajam com o banco de dados por meio de um servidor MCP (Model Context Protocol) seguro. O recurso mais importante dessa ferramenta é que todas as operações são somente de leitura, o que garante que as análises de desempenho, as verificações de configuração e a navegação estrutural sejam realizadas sem causar modificações não intencionais no banco de dados on-line, garantindo a segurança absoluta dos dados. O projeto aproveita as vantagens do pg_stat_statements responder cantando pg_stat_monitor Plug-in de extensão que fornece insights profundos sobre o desempenho para ajudar os administradores de banco de dados (DBAs) e desenvolvedores a localizar rapidamente consultas lentas, analisar a eficiência do uso de índices e gerenciar a capacidade do banco de dados. Os usuários podem fazer perguntas em linguagem natural para executar vários comandos de operação e manutenção, como "consultar os 10 SQL mais lentos" ou "verificar o número de conexões com o banco de dados", tornando o gerenciamento complexo do banco de dados mais fácil e intuitivo.

Lista de funções
- Informações e status do servidor:
get_server_infoObtenha informações sobre a versão do servidor PostgreSQL, o status operacional e os plug-ins de extensões instalados.get_active_connectionsConexões ativas: Visualize o número de conexões ativas e os detalhes da sessão do banco de dados atual.get_postgresql_configPesquisa e obtenção de parâmetros de configuração do PostgreSQL com base em palavras-chave.
- Visualização da estrutura do banco de dados:
get_database_listBanco de dados: lista todos os bancos de dados e seus tamanhos.get_table_listTabela: Exibe informações sobre todas as tabelas do banco de dados especificado e seus tamanhos.get_user_listUsuário: Lista todos os usuários do banco de dados e suas permissões.
- Monitoramento e análise de desempenho:
get_pg_stat_statements_top_queriesAnálise e identificação de consultas de execução lenta (consultas lentas) com base em estatísticas de desempenho.get_pg_stat_monitor_recent_queriesMonitoramento em tempo real de consultas executadas recentemente.get_index_usage_statsAnálise da frequência e da eficiência do uso de índices para ajudar a identificar índices não utilizados ou ineficientes.
- gerenciamento de capacidade:
get_database_size_infoAnálise e exibição do tamanho da capacidade de cada banco de dados: Analise e mostre o tamanho da capacidade de cada banco de dados.get_table_size_infoAnálise e exibição do tamanho das tabelas de dados e índicesget_vacuum_analyze_statsExibir a tabela do banco de dadosVACUUM(coleta de lixo) eANALYZE(Atualização de informações estatísticas) status e histórico.
Usando a Ajuda
O processo de instalação e uso do MCP-PostgreSQL-Ops é muito simples e está dividido em três etapas principais: preparação do ambiente, instalação de dependências e inicialização do serviço.
Etapa 1: Preparação e configuração do ambiente
Antes de começar, você precisa se certificar de que seu sistema tenha instalado oPython 3.11ou superior, euvEssa ferramenta de gerenciamento de pacotes Python.
- Download do código do projeto
Primeiro, clone o projeto do GitHub em seu computador local.git clone https://github.com/call518/MCP-PostgreSQL-Ops.git cd MCP-PostgreSQL-Ops - Configuração de conexões de banco de dados
O projeto contém um arquivo chamado.env.exampledo modelo do arquivo de configuração. Você precisa copiar esse arquivo e renomeá-lo.enve, em seguida, modifique as informações de conexão do banco de dados de acordo com sua situação real.cp .env.example .envEm seguida, use um editor de texto para abrir o arquivo
.envpreencha as informações do seu banco de dados PostgreSQL:# 数据库服务器的主机名或IP地址 POSTGRES_HOST=localhost # 数据库服务器的端口 POSTGRES_PORT=5432 # 连接数据库的用户名 POSTGRES_USER=postgres # 连接数据库的密码 POSTGRES_PASSWORD=your-secret-password # 默认连接的数据库名称 POSTGRES_DB=postgres
Etapa 2: Instale as extensões necessárias do PostgreSQL
Para usar o recurso completo de monitoramento de desempenho, seu banco de dados PostgreSQL deve ter a opçãopg_stat_statementsExtensão. Essa é uma extensão oficial que geralmente é instalada por padrão, mas não é ativada.
- modificações
postgresql.conf
Localizar seu arquivo de configuração do PostgreSQLpostgresql.confemshared_preload_librariesItem de configuração para adicionar opg_stat_statements.shared_preload_libraries = 'pg_stat_statements'Se você também quiser usar o recurso de monitoramento de consultas em tempo real, poderá adicioná-lo junto com a opção
pg_stat_monitor.shared_preload_libraries = 'pg_stat_statements,pg_stat_monitor' - Reiniciar os serviços de banco de dados
Após modificar a configuração, o serviço PostgreSQL deve ser reiniciado para que as alterações tenham efeito. - Criação de extensões no banco de dados
Usando um cliente de banco de dados (como opsql) Conecte-se ao seu banco de dados e execute o seguinte comando SQL para criar a extensão.CREATE EXTENSION IF NOT EXISTS pg_stat_statements; -- 如果需要,也创建pg_stat_monitor CREATE EXTENSION IF NOT EXISTS pg_stat_monitor;Você pode fazer isso por meio do
get_server_infopara verificar se a extensão foi instalada com êxito.
Etapa 3: Instale as dependências do Python e inicie o serviço
- Criação de um ambiente virtual e instalação de dependências
Recomendado para projetosuvpara gerenciar o ambiente e as dependências do Python, que podem ser instalados rapidamente.# 创建一个基于Python 3.11的虚拟环境 uv venv --python 3.11 # 激活虚拟环境 (在Linux/macOS下) source .venv/bin/activate # 安装所有依赖 uv sync - Início do serviço MCP
O projeto oferece várias maneiras de começar, sendo a mais comum o modo de desenvolver e testar localmente.- Modelo de desenvolvimento (recomendado)
Executando scripts diretamente, esse modo inicia um inspetor MCP local, facilitando a interação direta com a ferramenta../scripts/run-mcp-inspector-local.sh - modo de depuração
Se precisar ver uma saída de registro mais detalhada, você pode iniciá-lo diretamente com o comando Python e definir o nível de registro comoDEBUG.python -m src.mcp_postgresql_ops.mcp_main --log-level DEBUG - Modelo de serviço HTTP
Você também pode executar o serviço como um servidor HTTP para que outros aplicativos possam invocar sua funcionalidade por meio de solicitações de rede.python -m src.mcp_postgresql_ops.mcp_main \ --type streamable-http \ --host 127.0.0.1 \ --port 8080 \ --log-level DEBUGDepois que o serviço for iniciado, você poderá interagir com ele por meio do agente de IA ou de outros clientes MCP, enviando comandos de linguagem natural para gerenciar e monitorar seu banco de dados. Por exemplo, você pode solicitar: "Mostrar as 10 consultas mais lentas" ou "Verificar todos os tamanhos de banco de dados".
- Modelo de desenvolvimento (recomendado)
cenário do aplicativo
- Localização do gargalo de desempenho do banco de dados
Quando um aplicativo on-line demora a responder, os DBAs ou desenvolvedores podem usar imediatamente essa ferramenta para consultar o status atual do desempenho do banco de dados. Ao perguntar "Analyse the most resource-intensive SQL queries" ou "Show the most recent slow queries", é possível identificar rapidamente as instruções SQL específicas que estão causando o problema de desempenho, para que você possa otimizá-las sem se preocupar com a possibilidade de qualquer erro afetar o ambiente de produção. - Patrulhas diárias de saúde do banco de dados
Os DBAs podem usar essa ferramenta para realizar verificações de rotina diariamente. Ao consultar "Quantas conexões ativas existem?", "Verificar o tamanho de todos os bancos de dados" e "Quais tabelas precisam de VACUUM? Ao consultar "How active connections there", "Check the size of all databases" e "Which tables need to perform VACUUM?", você pode ter uma compreensão abrangente do status operacional do banco de dados, do uso da capacidade e das necessidades de manutenção, para obter operação e manutenção proativas e evitar problemas antes que eles ocorram. - Integração de agentes de IA e operações automatizadas
Essa ferramenta pode ser integrada ao agente de IA ou ao processo automatizado de operação e manutenção. Por exemplo, defina uma tarefa automatizada para permitir que o agente de IA consulte regularmente todos os dias para "verificar se há índices não utilizados" e, se encontrar índices inúteis, ele gerará automaticamente relatórios ou alertas para ajudar os DBAs a otimizar continuamente a estrutura do banco de dados e reduzir os custos de manutenção. - Arquitetura de dados e planejamento de recursos
Ao projetar a arquitetura do sistema ou o planejamento de capacidade, as equipes de desenvolvimento e manutenção de operações podem usar essa ferramenta para entender a estrutura do banco de dados existente e o uso de recursos. Consultas como "List size of all tables and indexes" (Listar o tamanho de todas as tabelas e índices) e "View user privilege list" (Exibir lista de privilégios do usuário) podem fornecer dados precisos para apoiar o desenvolvimento de novos recursos e futuras compras de recursos de servidor.
QA
- Essa ferramenta modificará meu banco de dados?
Um dos princípios de design mais importantes do MCP-PostgreSQL-Ops é a segurança. Todas as operações são somente leitura. Ele consulta apenas o catálogo do sistema e as exibições de estatísticas de desempenho do banco de dados e não executa nenhuma operação.UPDATEeDELETEtalvezINSERTe outras operações de gravação, e pode ser usado em ambientes de produção com confiança. - O que preciso fazer para preparar meu banco de dados antes de usar essa ferramenta?
Você precisa se certificar de que a versão do banco de dados seja PostgreSQL 12 ou superior. A preparação mais importante é habilitar a funçãopg_stat_statementspois ela é a base do recurso de análise de desempenho. Para ativá-la, é necessário modificar o arquivopostgresql.confe reinicie o serviço de banco de dados, conforme descrito em detalhes na seção Ajuda. - O que é MCP e como essa ferramenta é diferente?
O MCP (Model Context Protocol) é um protocolo que permite que os modelos de IA interajam de forma segura com ferramentas externas, como bancos de dados. Ele define um conjunto de regras que permite que a IA saiba quais funções a ferramenta tem e como invocá-las. Ao contrário de outras ferramentas que podem permitir que a IA execute consultas SQL diretamente, essa ferramenta encapsula todas as operações em funções seguras e predefinidas somente para leitura, que só podem ser invocadas pela IA e não executam código arbitrário, evitando, assim, riscos de segurança como a injeção de SQL. - Posso usar essa ferramenta em vários servidores de banco de dados?
É possível. Você só precisa modificar o.envAs informações de conexão do banco de dados no arquivo de configuração apontam para um servidor de banco de dados diferente e, em seguida, basta reiniciar o serviço. Se desejar monitorar vários servidores ao mesmo tempo, você poderá iniciar uma instância separada do serviço MCP-PostgreSQL-Ops para cada servidor.
































