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
- Clone o repositório:
git clone https://github.com/lrferr/firebird-node-mcp.git
cd firebird-node-mcp
- Instale as dependências:
npm install
- Configure o ambiente:
npm run setup
- 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 bancoget_database_info
- Obtém informações gerais do bancoget_table_info
- Informações detalhadas de tabelasget_generators
- Lista generators (equivalente a sequences)get_domains
- Lista domains (tipos customizados)get_procedures
- Lista stored proceduresget_functions
- Lista funçõesget_triggers
- Lista triggersget_views
- Lista views
Operações DDL
create_table
- Criar tabelasalter_table
- Alterar tabelasdrop_table
- Remover tabelascreate_index
- Criar índicescreate_generator
- Criar generatorscreate_trigger
- Criar triggerscreate_procedure
- Criar stored procedurescreate_function
- Criar funçõescreate_view
- Criar viewscreate_domain
- Criar domains
Operações DML
select_data
- Consultas SELECTinsert_data
- Inserir dadosupdate_data
- Atualizar dadosdelete_data
- Remover dadosexecute_procedure
- Executar stored proceduresexecute_function
- Executar funções
Operações DCL
create_user
- Criar usuáriosalter_user
- Alterar usuáriosdrop_user
- Remover usuáriosgrant_privileges
- Conceder privilégiosrevoke_privileges
- Revogar privilégioscreate_role
- Criar rolesgrant_role
- Conceder roles
Backup e Restore
backup_database
- Realizar backuprestore_database
- Restaurar bancovalidate_database
- Validar integridade
Auditoria e Segurança
generate_audit_report
- Relatórios de auditoriadetect_suspicious_activity
- Detectar atividades suspeitasvalidate_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 geralerror.log
- Log de errosaudit.log
- Log de auditorianotifications.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
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature
) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature'
) - Push para a branch (
git push origin feature/AmazingFeature
) - Abra um Pull Request
📄 Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
🆘 Suporte
- Issues: GitHub Issues
- Documentação: Wiki
- Email: lrferr@gmail.com
🙏 Agradecimentos
- Firebird Database - Banco de dados relacional
- node-firebird - Driver Node.js para Firebird
- Model Context Protocol - Protocolo MCP
📈 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