JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 18
  • Score
    100M100P100Q83355F
  • License MIT

Servidor MCP completo para Firebird Database com operações DDL, DML, DCL, monitoramento e auditoria

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (firebird-mcp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Firebird MCP Server

    Servidor MCP (Model Context Protocol) completo para Firebird Database com operações DDL, DML, DCL, monitoramento e auditoria.

    🚀 Características

    • Operações DDL: Criação, alteração e remoção de tabelas, índices, generators, triggers, procedures, functions, views e domains
    • Operações DML: SELECT, INSERT, UPDATE, DELETE com suporte a transações
    • Operações DCL: Gerenciamento de usuários, privilégios e roles
    • Monitoramento: Saúde do banco, performance, conexões ativas
    • Auditoria: Log de operações, detecção de atividades suspeitas
    • Segurança: Validação de queries, controle de acesso, criptografia
    • Múltiplas Conexões: Suporte a vários bancos Firebird
    • Backup/Restore: Operações de backup e restauração
    • CLI: Interface de linha de comando para administração

    📋 Pré-requisitos

    • Node.js 18.0.0 ou superior
    • Firebird Database 3.0 ou superior
    • Cliente Firebird instalado

    🛠️ Instalação

    1. Clone o repositório:
    git clone https://github.com/lrferr/firebird-node-mcp.git
    cd firebird-node-mcp
    1. Instale as dependências:
    npm install
    1. Configure o ambiente:
    npm run setup
    1. Configure as variáveis de ambiente:
    cp env.example .env
    # Edite o arquivo .env com suas configurações

    ⚙️ Configuração

    Variáveis de Ambiente

    Crie um arquivo .env com as seguintes variáveis:

    # Configuração da conexão principal
    FIREBIRD_HOST=localhost
    FIREBIRD_PORT=3050
    FIREBIRD_DATABASE=/path/to/your/database.fdb
    FIREBIRD_USER=SYSDBA
    FIREBIRD_PASSWORD=masterkey
    FIREBIRD_ROLE=RDB$ADMIN
    FIREBIRD_CHARSET=UTF8
    
    # Configuração do servidor MCP
    MCP_SERVER_NAME=firebird-monitor
    MCP_SERVER_VERSION=1.0.0
    
    # Configuração de logging
    LOG_LEVEL=info

    Múltiplas Conexões

    Configure múltiplas conexões no arquivo config/multi-connections.json:

    {
      "connections": [
        {
          "name": "default",
          "description": "Conexão padrão",
          "environment": "development",
          "host": "localhost",
          "port": 3050,
          "database": "/path/to/database.fdb",
          "user": "SYSDBA",
          "password": "masterkey",
          "role": "RDB$ADMIN",
          "charset": "UTF8"
        }
      ]
    }

    🚀 Uso

    Iniciar o Servidor MCP

    npm start

    CLI (Interface de Linha de Comando)

    # Testar conexão
    npm run test-connection
    
    # Verificar saúde do banco
    npx firebird-mcp health-check
    
    # Listar tabelas
    npx firebird-mcp list-tables
    
    # Executar query
    npx firebird-mcp query --query "SELECT * FROM USERS"
    
    # Backup do banco
    npx firebird-mcp backup --path ./backup.fbk
    
    # Validar banco
    npx firebird-mcp validate

    🔧 Ferramentas Disponíveis

    Monitoramento

    • check_database_health - Verifica a saúde geral do banco
    • get_database_info - Obtém informações gerais do banco
    • get_table_info - Informações detalhadas de tabelas
    • get_generators - Lista generators (equivalente a sequences)
    • get_domains - Lista domains (tipos customizados)
    • get_procedures - Lista stored procedures
    • get_functions - Lista funções
    • get_triggers - Lista triggers
    • get_views - Lista views

    Operações DDL

    • create_table - Criar tabelas
    • alter_table - Alterar tabelas
    • drop_table - Remover tabelas
    • create_index - Criar índices
    • create_generator - Criar generators
    • create_trigger - Criar triggers
    • create_procedure - Criar stored procedures
    • create_function - Criar funções
    • create_view - Criar views
    • create_domain - Criar domains

    Operações DML

    • select_data - Consultas SELECT
    • insert_data - Inserir dados
    • update_data - Atualizar dados
    • delete_data - Remover dados
    • execute_procedure - Executar stored procedures
    • execute_function - Executar funções

    Operações DCL

    • create_user - Criar usuários
    • alter_user - Alterar usuários
    • drop_user - Remover usuários
    • grant_privileges - Conceder privilégios
    • revoke_privileges - Revogar privilégios
    • create_role - Criar roles
    • grant_role - Conceder roles

    Backup e Restore

    • backup_database - Realizar backup
    • restore_database - Restaurar banco
    • validate_database - Validar integridade

    Auditoria e Segurança

    • generate_audit_report - Relatórios de auditoria
    • detect_suspicious_activity - Detectar atividades suspeitas
    • validate_migration_script - Validar scripts de migração

    📊 Exemplos de Uso

    Criar uma Tabela

    // Via MCP
    {
      "name": "create_table",
      "arguments": {
        "tableName": "USERS",
        "columns": [
          {
            "name": "ID",
            "type": "INTEGER",
            "notNull": true
          },
          {
            "name": "NAME",
            "type": "VARCHAR",
            "length": 100,
            "notNull": true
          },
          {
            "name": "EMAIL",
            "type": "VARCHAR",
            "length": 255,
            "notNull": true
          }
        ],
        "constraints": [
          {
            "name": "PK_USERS",
            "type": "PRIMARY KEY",
            "columns": ["ID"]
          }
        ]
      }
    }

    Inserir Dados

    // Via MCP
    {
      "name": "insert_data",
      "arguments": {
        "tableName": "USERS",
        "data": {
          "ID": 1,
          "NAME": "João Silva",
          "EMAIL": "joao@example.com"
        }
      }
    }

    Consultar Dados

    // Via MCP
    {
      "name": "select_data",
      "arguments": {
        "tableName": "USERS",
        "columns": ["ID", "NAME", "EMAIL"],
        "whereClause": "ID = 1",
        "limit": 10
      }
    }

    🔒 Segurança

    O servidor implementa várias medidas de segurança:

    • Validação de Queries: Apenas operações SELECT são permitidas em queries customizadas
    • Auditoria: Todas as operações são logadas
    • Controle de Acesso: Validação de usuários e privilégios
    • Detecção de Atividades Suspeitas: Monitoramento de padrões anômalos
    • Criptografia: Senhas e dados sensíveis são protegidos

    📝 Logs

    Os logs são armazenados no diretório logs/:

    • firebird-mcp.log - Log geral
    • error.log - Log de erros
    • audit.log - Log de auditoria
    • notifications.log - Log de notificações

    🧪 Testes

    # Executar todos os testes
    npm test
    
    # Testes unitários
    npm run test:unit
    
    # Testes de integração
    npm run test:integration
    
    # Testes de segurança
    npm run test:security
    
    # Testes de performance
    npm run test:performance

    📚 Documentação

    🤝 Contribuição

    1. Fork o projeto
    2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
    3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
    4. Push para a branch (git push origin feature/AmazingFeature)
    5. Abra um Pull Request

    📄 Licença

    Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

    🆘 Suporte

    🙏 Agradecimentos

    📈 Roadmap

    • Suporte a Firebird 4.0
    • Interface web para administração
    • Métricas em tempo real
    • Suporte a clusters
    • Integração com sistemas de monitoramento
    • API REST adicional

    Desenvolvido com ❤️ por Leandro Ferreira