MCP Firebird: encuentra y arregla los problemas de tu base de datos hablando con tu IA
🇬🇧 English • 🇮🇹 Italiano • 🇩🇪 Deutsch • 🇧🇷 Português
MCP Firebird es un servidor MCP que permite a tu asistente de IA diagnosticar de verdad una base de datos Firebird: planes de ejecución, consejos sobre índices, auditoría del esquema, salud de las transacciones. La versión 0.2.4 ya está fuera, gratuita para uso interno, probada de Firebird 2.5 a 5.0.
Una consulta va lenta. El plan dice CUSTOMERS NATURAL, y sobre la columna filtrada hay un índice. ¿Ves la trampa?
El índice está INACTIVE. En este punto casi todos los consejos, humanos o de IA, te dicen que crees un índice nuevo. Síguelos y acabas con dos índices sobre la misma columna, ambos escritos en cada INSERT, uno de los dos muerto. El arreglo real estaba a un ALTER INDEX ... ACTIVE de distancia, y nadie te lo había dicho.
MCP Firebird te lo dice. Es un servidor MCP que permite a tu asistente de IA (Claude, Gemini CLI, Cursor, cualquier cosa que hable MCP) diagnosticar de verdad una base de datos Firebird: leer el esquema, explicar un plan de ejecución, proponer un índice, negarse a proponer uno que ya existe, y medir después si un objetivo se cumplió. Hoy he publicado la versión 0.2.4.
En resumen
- Qué es: un servidor MCP sobre stdio, un único ejecutable Windows escrito en Delphi, que convierte a tu asistente de IA en un DBA de Firebird operativo.
- Para quién: cualquiera que tenga en producción Firebird 2.5, 3.0, 4.0 o 5.0 y quiera respuestas sobre planes, índices y salud del esquema en lugar de suposiciones.
- Funciona con: Claude Desktop, Claude Code, Gemini CLI, OpenCode, Cursor y cualquier cliente MCP.
- Instalación: descomprime, copia
.env.examplea.env, apúntalo a tu base de datos, registra el exe como servidor stdio.- Licencia: PolyForm Internal Use, gratuita para las operaciones internas de tu empresa a cualquier escala. Código fuente en GitHub.
Qué hace
Nueve herramientas, todas de solo lectura: fb_info, fb_list_tables, fb_generate_documentation, fb_analyze_query, fb_suggest_indexes, fb_suggest_index_drops, fb_audit_table, fb_evaluate_goal, fb_monitor_transactions. Cada hallazgo lleva un remedio ejecutable y una forma de verificar que el remedio funcionó de verdad, porque un informe sobre el que no puedes actuar es solo una manera más larga de decir “la base de datos va lenta”.
Dos decisiones de diseño importan más que la lista de funciones.
Está probado en Firebird 2.5, 3.0, 4.0 y 5.0, no solo en la última versión. La suite completa corre sobre los cuatro motores antes de cada versión. Las versiones se comportan de forma distinta: valores por defecto distintos, funciones distintas. Una herramienta probada solo en 5.0 da respuestas equivocadas en un servidor 2.5, y muchas empresas todavía tienen un 2.5 en producción.
No se inventa las respuestas. Si tu SQL contiene un error, recibes el mensaje de error del motor, no un informe vacío que parece un visto bueno. Y cuando no puede medir algo, te lo dice: así siempre sabes si “sin problemas” significa que la base de datos está bien o que la herramienta no pudo mirar.
Cómo es una sesión de trabajo
Una sesión real contra la base de datos de prueba de la suite, motor Firebird 5.0.4. Así se ve en Claude Desktop:
La captura de arriba es un único momento de esa sesión. Abajo la recorremos entera, pregunta tras pregunta, desde el primer vistazo a la base de datos hasta el arreglo verificado.
IDX_CUST_CITY sobre la columna CITY está INACTIVE. Existe, pero el motor no puede usarlo. El informe de fb_generate_documentation:CUSTOMERS
Clave primaria: CUSTOMER_ID
| Columna | Tipo | Admite NULL |
| CUSTOMER_ID | INTEGER | no |
| NAME | VARCHAR(400) | no |
| CITY | VARCHAR(240) | sí |
| STATUS | CHAR(4) | sí |
Índices:
- IDX_CUST_CITY (CITY), INACTIVE
- IDX_CUST_NAME (NAME)
- IDX_CUST_NAME_CITY (NAME, CITY)
- IDX_CUST_STATUS (STATUS)
- RDB$PRIMARY1 (CUSTOMER_ID) [CLAVE PRIMARIA]
SELECT * FROM CUSTOMERS WHERE CITY = 'Rome'fb_analyze_query es PLAN (CUSTOMERS NATURAL): ningún índice se usa para el filtro sobre CITY.IDX_CUST_CITY; solo está desactivado. Crear un segundo duplicaría el coste de escritura en cada INSERT para nada. Reactiva el que tienes con ALTER INDEX IDX_CUST_CITY ACTIVE; y luego vuelve a comprobar el plan. El hallazgo de fb_suggest_indexes dice exactamente esto:ALTER INDEX IDX_CUST_CITY ACTIVE;
📝 Esta es la respuesta en la que la mayoría de los consejos se equivoca, humanos o de IA: te habrían dicho que crearas un segundo índice.
IDX_CUST_CITY. Las dos medidas de fb_evaluate_goal:antes: objetivo no cumplido plan: PLAN (CUSTOMERS NATURAL)
después: objetivo cumplido plan: PLAN (CUSTOMERS INDEX (IDX_CUST_CITY))
fb_evaluate_goal mide 1.85 milisegundos contra tus 50.SET STATISTICS INDEX. Transacciones y sweep están bien. Los informes:DROP INDEX IDX_ORDERS_CUSTOMER_DUP;
SET STATISTICS INDEX IDX_CUST_NAME;
SET STATISTICS INDEX IDX_CUST_STATUS;
Instalación en dos minutos
Nada corre como servicio y nada escucha en un puerto: tu agente arranca el ejecutable y le habla por stdin/stdout.
- Descomprime la última versión estable donde quieras.
- Copia
.env.examplea.envjunto al exe y rellena host, base de datos, credenciales. - Apunta
firebird.client_liba lafbclient.dllde tu instalación de Firebird. No se incluye ninguna librería cliente, a propósito: solo tú sabes con qué servidor estás hablando. - Registra
MCPFirebird.exeen tu agente como servidor MCP stdio. El README tiene la receta exacta para cada cliente, en inglés, italiano, español y alemán.
La edición Enterprise
La edición gratuita se conecta a tu base de datos con una conexión SQL normal. Ve lo que la base de datos sabe de sí misma: esquema, planes de ejecución, índices, transacciones. Ya es útil, pero se queda dentro de la base de datos.
La edición Enterprise es un producto de pago: se usa solo con una licencia, siempre, también en la empresa para uso interno. No existe un nivel gratuito de la Enterprise. Se conecta además al servidor Firebird como administrador, a través del Services Manager. Así ve lo que solo el servidor conoce: los ficheros de configuración (firebird.conf y databases.conf), el log del servidor (firebird.log), la estructura física del fichero, el hardware en el que corre y la carga de trabajo real. A la edición gratuita no se le quitó nada: las herramientas Enterprise siguen en su lista, y si el asistente llama a una recibe un mensaje que explica cómo obtenerla.
Con este acceso el asistente responde preguntas que antes no podía. fb_diagnose es el punto de partida cuando algo va mal y no sabes por dónde empezar. fb_analyze_config revisa cada parámetro de firebird.conf contra tu versión del motor y tu arquitectura, porque los valores por defecto cambian entre versiones. fb_parse_log lee firebird.log y encuentra corrupción, bugchecks, sweeps que nunca corrieron. fb_analyze_storage muestra la estructura física: profundidad de los índices, llenado de las páginas, cadenas de versiones de registro. fb_analyze_host compara el hardware con la configuración: RAM contra la caché configurada, núcleos contra workers paralelos. fb_capture_trace graba 60 segundos de carga real y clasifica las consultas más caras; fb_trace_start, fb_trace_status y fb_trace_stop hacen lo mismo hasta dos horas, en segundo plano.
Por qué merece pagarse: la documentación de Firebird no dice qué valor usar para la mayoría de los parámetros, porque el valor correcto depende de tu carga de trabajo. La edición Enterprise trabaja midiendo. Graba el rendimiento bajo carga real, cambias un solo parámetro, mide otra vez y te dice si mejoró. Si no mejoró, vuelves atrás.
Free vs Enterprise
| Free | Enterprise | |
|---|---|---|
Versión, arquitectura y capacidades del motor (fb_info) |
✅ | ✅ |
Lista de las tablas (fb_list_tables) |
✅ | ✅ |
Documentación del esquema: columnas, claves, índices (fb_generate_documentation) |
✅ | ✅ |
Análisis del plan de ejecución de una consulta (fb_analyze_query) |
✅ | ✅ |
Consejos sobre índices a crear o reactivar (fb_suggest_indexes) |
✅ | ✅ |
Índices duplicados o inútiles a eliminar (fb_suggest_index_drops) |
✅ | ✅ |
Revisión de una tabla: claves ausentes, estadísticas viejas, índices de más (fb_audit_table) |
✅ | ✅ |
Verificación de un objetivo: plan sin escaneos completos, o tiempo máximo (fb_evaluate_goal) |
✅ | ✅ |
Estado de transacciones y sweep (fb_monitor_transactions) |
✅ | ✅ |
Ruta de diagnóstico guiada (fb_diagnose) |
❌ | ✅ |
Revisión de firebird.conf y databases.conf para tu versión y arquitectura (fb_analyze_config) |
❌ | ✅ |
Estructura física: profundidad de índices, llenado de páginas, cadenas de versiones (fb_analyze_storage) |
❌ | ✅ |
Lectura de firebird.log: corrupción, bugchecks, sweeps que nunca corrieron (fb_parse_log) |
❌ | ✅ |
Grabación de la carga real: 60 segundos (fb_capture_trace) o hasta 2 horas en segundo plano (fb_trace_start/status/stop) |
❌ | ✅ |
Hardware contra configuración: RAM contra caché, núcleos contra workers paralelos (fb_analyze_host) |
❌ | ✅ |
| Medidas antes/después de un cambio, con veredicto | ❌ | ✅ |
Licencias Enterprise y soporte: professionals@bittime.it.
Cuándo necesitas comprar una licencia, y cuándo no
La edición gratuita sale bajo la licencia PolyForm Internal Use: código fuente disponible, gratuita para las operaciones internas tuyas y de tu empresa, a cualquier escala, en cualquier sector, consultoría incluida. Toda la regla cabe en una frase: pregúntate dónde acaba el software, nunca qué hiciste con él. Mientras cada copia siga en tus manos, no debes nada a nadie, dondequiera que el software corra y sea cual sea la base de datos que examine. Necesitas la licencia comercial en el momento en que una copia se queda con otra persona: la dejas instalada en un cliente al terminar el encargo, la metes dentro de un producto que vendes, o la ofreces como servicio.
| Tu situación | ¿Necesitas licencia? |
|---|---|
| Tu DBA lo lanza contra la base de datos de producción cada mañana | No. |
| Cuarenta desarrolladores lo usan cada uno en local | No. Sin conteo de puestos, sin registro. |
| Eres consultor, lo usas desde tu portátil contra la base de datos del cliente y facturas tu tiempo | No. Es tu herramienta, y tuya se queda. |
| Dejas una copia instalada en el servidor del cliente al terminar el encargo | Sí. El software salió de tus manos. |
| Lo metes dentro de tu ERP para que tus clientes tengan el “tuning de base de datos con IA” | Sí. Eso es integrarlo en un producto. |
| Les das a los clientes de tu hosting un botón que lo ejecuta por ellos | Sí. Eso es ofrecerlo como servicio. |
| Escribes un post, una charla o un curso sobre él | No. Léelo, cítalo, enséñalo. |
Una aclaración que merece hacerse bien: la licencia comercial de redistribución y la edición Enterprise son dos productos distintos. Una permite que las copias de MCP Firebird salgan de tus manos; la otra añade las herramientas de administración del servidor de las que leíste arriba, y es siempre de pago, con su propia licencia, para cualquiera y para cualquier uso. Comprar una no incluye la otra.
Licencias comerciales: professionals@bittime.it.
Pruébalo
Descarga la última versión estable, apúntala a una copia de tu base de datos y pregúntale a tu asistente por qué tu consulta más lenta va lenta.
¿Cuál es la primera pregunta que le harías a tu base de datos?
Comments
comments powered by Disqus