loading…
Search for a command to run...
loading…
An MCP server that enables AI assistants to execute SQL queries, list tables, and manage connections to external Firebird databases with automatic diagnostics a
An MCP server that enables AI assistants to execute SQL queries, list tables, and manage connections to external Firebird databases with automatic diagnostics and multilingual support.
Um servidor MCP (Model Context Protocol) completo para conectar a bancos de dados Firebird externos. Este servidor permite que assistentes de IA executem queries SQL, listem tabelas e gerenciem conexões com bancos Firebird de forma segura e eficiente.
O servidor suporta múltiplos idiomas através de arquivos JSON centralizados:
FIREBIRD_LANGUAGE ou LANGi18n/# Português
docker run -e FIREBIRD_LANGUAGE=pt_BR ...
# Inglês (padrão)
docker run -e FIREBIRD_LANGUAGE=en_US ...
# Automático via LANG
export LANG=pt_BR.UTF-8
O MCP Firebird inclui um sistema inovador que automaticamente aplica contexto expert ao iniciar as respostas caso o servidor MCP seja requisitado, sem necessidade de configuração manual e aprimorando o uso da ferramenta.
# Configuração Expert (padrão)
source .env
# Configurações alternativas:
export FIREBIRD_DEFAULT_PROMPT=firebird_performance # Foco em performance
export FIREBIRD_DEFAULT_PROMPT=firebird_architecture # Foco em administração
export FIREBIRD_DEFAULT_PROMPT_ENABLED=false # Desabilitar
Com Expert Mode (padrão):
🔥 **FIREBIRD EXPERT MODE ACTIVE**
**Environment:** localhost:3050 | DB: database.fdb | User: SYSDBA
**Expert Guidelines (intermediate level):**
✅ Provide Firebird-specific solutions
✅ Consider performance implications
✅ Include practical examples
✅ Answer language {lang}
---
📊 Query Results: {...}
Desabilitar temporariamente:
{"tool": "execute_query", "arguments": {"sql": "SELECT...", "disable_expert_mode": true}}
docker run -d \
--name mcp-firebird \
-e FIREBIRD_HOST=192.168.1.50 \
-e FIREBIRD_DATABASE=/dados/sistema.fdb \
-e FIREBIRD_USER=SYSDBA \
-e FIREBIRD_PASSWORD=masterkey \
ghcr.io/marcelofmatos/mcp-server-firebird:latest
# Ver logs do container
docker logs mcp-firebird
# Verificar se está rodando
docker ps | grep mcp-firebird
| Variável | Descrição | Padrão | Obrigatório |
|---|---|---|---|
FIREBIRD_HOST |
Endereço do servidor Firebird | localhost |
✅ |
FIREBIRD_PORT |
Porta do servidor Firebird | 3050 |
❌ |
FIREBIRD_DATABASE |
Caminho completo do banco | /path/to/database.fdb |
✅ |
FIREBIRD_USER |
Usuário do banco | SYSDBA |
❌ |
FIREBIRD_PASSWORD |
Senha do usuário | masterkey |
✅ |
FIREBIRD_CHARSET |
Charset da conexão | UTF8 |
❌ |
FIREBIRD_LANGUAGE |
Idioma das mensagens | en_US |
❌ |
MCP_SERVER_NAME |
Nome do servidor MCP | firebird-expert-server |
❌ |
MCP_SERVER_VERSION |
Versão do servidor | 1.0.0 |
❌ |
docker run -d \
--name mcp-firebird-local \
-e FIREBIRD_HOST=localhost \
-e FIREBIRD_DATABASE=/var/lib/firebird/employee.fdb \
-e FIREBIRD_PASSWORD=sua_senha \
-e FIREBIRD_LANGUAGE=pt_BR \
ghcr.io/marcelofmatos/mcp-server-firebird:latest
docker run -d \
--name mcp-firebird-corp \
-e FIREBIRD_HOST=firebird.empresa.com \
-e FIREBIRD_PORT=3050 \
-e FIREBIRD_DATABASE=/aplicacao/sistema.fdb \
-e FIREBIRD_USER=APP_USER \
-e FIREBIRD_PASSWORD=senha_segura \
-e FIREBIRD_CHARSET=ISO8859_1 \
ghcr.io/marcelofmatos/mcp-server-firebird:latest
docker run -d \
--name mcp-firebird-vps \
-e FIREBIRD_HOST=10.20.30.40 \
-e FIREBIRD_DATABASE=/home/dados/banco.fdb \
-e FIREBIRD_USER=USUARIO_DB \
-e FIREBIRD_PASSWORD=password123 \
ghcr.io/marcelofmatos/mcp-server-firebird:latest
Testa a conexão com o banco Firebird e fornece diagnósticos detalhados.
Uso:
{
"name": "test_connection"
}
Retorna:
Executa queries SQL no banco Firebird.
Uso:
{
"name": "execute_query",
"arguments": {
"sql": "SELECT * FROM CUSTOMERS WHERE CITY = ?",
"params": ["São Paulo"]
}
}
Suporta:
Lista todas as tabelas de usuário do banco.
Uso:
{
"name": "list_tables"
}
Retorna:
Mostra status completo do servidor MCP e bibliotecas.
Uso:
{
"name": "server_status"
}
Retorna:
O servidor inclui prompts especialistas dinâmicos:
Assistente especialista em Firebird com conhecimento profundo do SGBD.
Especialista em otimização e performance para Firebird.
Especialista em arquitetura e administração Firebird.
# Clonar repositório
git clone https://github.com/marcelofmatos/mcp-server-firebird
cd mcp-server-firebird
# Configurar ambiente completo
make setup-dev
# Ou manual:
./scripts/setup-dev.sh
O projeto possui uma suíte completa de testes:
# Todos os testes
make test-all
# Apenas testes unitários
make test-unit
# Testes de integração
make test-integration
# Testes de performance
make test-performance
# Execução rápida (sem testes lentos)
make test-fast
# Com relatório de cobertura HTML
make test-coverage
# Verificações de qualidade
make lint
# Corrigir problemas automaticamente
make lint-fix
# Formatação de código
make format
# Verificação de tipos
make type-check
# Verificação de segurança
make security-check
# Pre-commit hooks
make pre-commit
tests/
├── unit/ # Testes unitários
│ ├── test_firebird_server.py
│ ├── test_mcp_server.py
│ ├── test_i18n.py
│ └── test_performance.py
├── integration/ # Testes de integração
│ ├── test_firebird_integration.py
│ └── docker-compose-test.yml
├── conftest.py # Configurações compartilhadas
└── __init__.py
O projeto mantém cobertura de testes superior a 80%:
# Ambiente de desenvolvimento completo
make dev
# Executar servidor local (sem Docker)
make dev-server
# Monitorar mudanças
make watch
# Relatório de cobertura
make coverage-report
# Benchmark de performance
make benchmark
# Limpeza completa
make clean-all
O projeto inclui pipeline completo no GitHub Actions:
Sintomas:
docker logs mcp-firebird
# Erro: FDB library not available
Solução:
# Rebuildar/baixar imagem mais recente
docker pull ghcr.io/marcelofmatos/mcp-server-firebird:latest
docker run --rm -it ghcr.io/marcelofmatos/mcp-server-firebird:latest python3 -c "import fdb; print('OK')"
Sintomas:
❌ Connection failed: network error
💡 NETWORK ISSUE: Cannot reach 192.168.1.50:3050
Soluções:
# Do host Docker
telnet 192.168.1.50 3050
Sintomas:
❌ Connection failed: login error
💡 AUTHENTICATION ISSUE: Invalid credentials
Soluções:
docker run --rm \
-e FIREBIRD_HOST=seu.servidor \
-e FIREBIRD_PASSWORD=senha_correta \
ghcr.io/marcelofmatos/mcp-server-firebird:latest
Sintomas:
❌ Connection failed: database not found
💡 DATABASE ISSUE: Database file not found
Soluções:
# Caminho deve ser absoluto no servidor Firebird
-e FIREBIRD_DATABASE=/caminho/completo/banco.fdb
Sintomas:
❌ Connection failed: libtommath.so.0: cannot open shared object file
Soluções:
docker pull ghcr.io/marcelofmatos/mcp-server-firebird:latest
# Iniciar container
docker run -d \
--name firebird-test \
-e FIREBIRD_HOST=192.168.1.100 \
-e FIREBIRD_DATABASE=/dados/teste.fdb \
-e FIREBIRD_PASSWORD=123456 \
ghcr.io/marcelofmatos/mcp-server-firebird:latest
# Verificar logs
docker logs firebird-test
# Resultado esperado:
# [MCP-FIREBIRD] ✅ Database connection OK - Firebird 3.0.x
Use a ferramenta execute_query via MCP para:
-- Listar clientes
SELECT CUSTOMER_ID, COMPANY_NAME, CITY
FROM CUSTOMERS
WHERE COUNTRY = 'Brasil'
ORDER BY COMPANY_NAME
-- Contar registros
SELECT COUNT(*) as TOTAL_CUSTOMERS
FROM CUSTOMERS
-- Inserir dados
INSERT INTO CUSTOMERS (CUSTOMER_ID, COMPANY_NAME, CITY)
VALUES ('NEW01', 'Nova Empresa', 'São Paulo')
# Container com restart automático
docker run -d \
--name mcp-firebird-prod \
--restart unless-stopped \
--health-cmd="python3 -c 'import fdb; print(\"OK\")'" \
--health-interval=30s \
--health-timeout=10s \
--health-retries=3 \
-e FIREBIRD_HOST=prod.empresa.com \
-e FIREBIRD_DATABASE=/sistema/producao.fdb \
-e FIREBIRD_USER=SYS_USER \
-e FIREBIRD_PASSWORD="$PROD_PASSWORD" \
ghcr.io/marcelofmatos/mcp-server-firebird:latest
# Monitorar health
docker inspect mcp-firebird-prod | grep -A 5 Health
Exemplo de docker-compose.yml:
version: '3.8'
services:
mcp-firebird:
image: ghcr.io/marcelofmatos/mcp-server-firebird:latest
container_name: mcp-firebird-server
restart: unless-stopped
environment:
- FIREBIRD_HOST=firebird.empresa.com
- FIREBIRD_PORT=3050
- FIREBIRD_DATABASE=/aplicacao/sistema.fdb
- FIREBIRD_USER=APP_USER
- FIREBIRD_PASSWORD=senha_segura
- FIREBIRD_CHARSET=UTF8
- FIREBIRD_LANGUAGE=pt_BR
healthcheck:
test: ["CMD", "python3", "-c", "import fdb; print('OK')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
# Firebird para testes (opcional)
firebird-test:
image: jacobalberty/firebird:v4.0
container_name: firebird-test-db
environment:
- FIREBIRD_DATABASE=test.fdb
- FIREBIRD_USER=SYSDBA
- FIREBIRD_PASSWORD=test123
- ISC_PASSWORD=test123
ports:
- "3050:3050"
volumes:
- firebird_data:/firebird/data
profiles:
- testing
volumes:
firebird_data:
driver: local
Executar:
# Produção
docker-compose up -d
# Com Firebird de teste
docker-compose --profile testing up -d
# Logs
docker-compose logs -f mcp-firebird
# Clonar repositório
git clone https://github.com/marcelofmatos/mcp-server-firebird
cd mcp-server-firebird
# Build da imagem
make build
# Testar localmente
make dev
mcp-server-firebird/
├── server.py # Servidor MCP principal
├── requirements.txt # Dependências de produção
├── requirements-dev.txt # Dependências de desenvolvimento
├── pyproject.toml # Configuração do projeto
├── Dockerfile # Container de produção
├── docker-compose.yml # Orquestração
├── Makefile # Comandos de automação
├── .pre-commit-config.yaml # Hooks de qualidade
├── scripts/ # Scripts auxiliares
│ ├── run-tests.sh # Executor de testes
│ └── setup-dev.sh # Setup de desenvolvimento
├── tests/ # Testes abrangentes
│ ├── unit/ # Testes unitários
│ ├── integration/ # Testes de integração
│ └── conftest.py # Configurações de teste
├── i18n/ # Internacionalização
│ ├── en_US.json # Inglês (padrão)
│ └── pt_BR.json # Português brasileiro
├── .github/ # CI/CD
│ └── workflows/
│ ├── tests.yml # Pipeline de testes
│ └── docker-image.yml # Build e deploy
└── README.md # Esta documentação
# Ambiente
make setup-dev # Configuração completa de desenvolvimento
make install-deps # Instalar dependências
# Testes
make test-all # Todos os testes
make test-unit # Testes unitários
make test-integration # Testes de integração
make test-performance # Testes de performance
make test-fast # Execução rápida
make test-coverage # Com relatório HTML
# Qualidade
make lint # Verificações de código
make lint-fix # Corrigir automaticamente
make format # Formatação
make type-check # Verificação de tipos
make security-check # Verificação de segurança
make pre-commit # Pre-commit hooks
# Docker
make build # Build da imagem
make run # Executar container
make dev # Ambiente de desenvolvimento
make logs # Ver logs
# Utilitários
make clean-all # Limpeza completa
make coverage-report # Relatório de cobertura
make benchmark # Benchmark de performance
make health-check # Verificar saúde do sistema
Contribuições são bem-vindas! Por favor, siga nosso guia de contribuição:
git clone https://github.com/seu-usuario/mcp-server-firebird
cd mcp-server-firebird
make setup-dev
git checkout -b feature/nova-funcionalidade
# Desenvolvimento iterativo
make test-fast # Testes rápidos durante desenvolvimento
make lint-fix # Correções automáticas
make test-all # Teste completo antes de commit
git add .
git commit -m "feat: adicionar nova funcionalidade"
# Verificações antes do commit
make pre-commit
# Pipeline completo como no CI
make test-all
make lint
make build
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
latest - Versão mais recente estável1.0.0 - Versão específicamain - Versão de desenvolvimento# Usar versão específica
docker pull ghcr.io/marcelofmatos/mcp-server-firebird:1.0.0
# Usar versão de desenvolvimento
docker pull ghcr.io/marcelofmatos/mcp-server-firebird:main
Feito com ❤️ para a comunidade Firebird e MCP
Выполни в терминале:
claude mcp add mcp-server-firebird -- npx Query your database in natural language
автор: AnthropicRead-only database access with schema inspection.
автор: modelcontextprotocolInteract with Redis key-value stores.
автор: modelcontextprotocolDatabase interaction and business intelligence capabilities.
автор: modelcontextprotocolНе уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории data