analyze-missing-indexes
Analyzes a SQL query to identify missing indexes that could improve performance
Query a Firebird database, read its stored code, and have it push events at your agent when rows change.
LABSCO SUMMARY
Most database servers stop at tables and queries; this one reads triggers, procedures, functions and packages back with their source, which is where the business logic in a long-lived Firebird database actually lives. The event subscription is the other distinctive piece — an agent can wait on a POST_EVENT the database already fires instead of re-running a query on a timer.
A Firebird SQL server covering three jobs: running queries, reading the database's own metadata and source code, and subscribing to Firebird's native POST_EVENT notifications.
A reachable Firebird database and its credentials, set through FIREBIRD_HOST, FIREBIRD_PORT, FIREBIRD_DATABASE, FIREBIRD_USER and FIREBIRD_PASSWORD, or the equivalent command-line flags. Published on npm as mcp-firebird. Two transports: stdio for a local client, or Streamable HTTP with TRANSPORT_TYPE=sse and SSE_PORT for remote clients such as n8n. FIREBIRD_API_KEY turns on Enterprise Managed Authorization, where the client sends a bearer token and the real database password stays on the server. Wire encryption needs the native driver, which must be installed globally alongside the server — npx cannot reach globally installed modules — and WireCrypt has to be set in firebird.conf on the server first.
One command plus credentials — npx -y mcp-firebird --database=<YOUR_PATH_TO_DATABASE>, then supply credentials
USE CASES
List the tables, pull schemas for a batch of them at once, and read the stored field descriptions the original team left behind.
Read the execution plan, time the query over repeated runs, and get the missing indexes that would change it.
List the triggers, procedures and functions, then read the source of the ones involved in the behaviour you are chasing.
List the events the triggers already post, subscribe to the one you care about, and let the notification arrive.
Pull a filtered, ordered page of a table, or write the SQL yourself when the question needs a join.
Read the database and server details, run the health check, and confirm whether the link is wire-encrypted.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
analyze-missing-indexesAnalyzes a SQL query to identify missing indexes that could improve performance
analyze-query-performanceAnalyzes the performance of a SQL query by executing it multiple times and measuring execution time
analyze-table-statisticsAnalyzes statistical information about a table including row count, column statistics, and data distribution.
describe-batch-tablesGets the detailed schema of multiple tables in parallel for improved performance.
describe-functionObtiene información detallada sobre una función específica incluyendo su código fuente (si es PSQL function)
describe-packageObtiene información detallada sobre un paquete específico incluyendo su header y body source
describe-procedureObtiene información detallada sobre un procedimiento almacenado específico incluyendo su código fuente y parámetros
describe-tableGets the detailed schema (columns, types, etc.) of a specific table.
describe-triggerObtiene información detallada sobre un trigger específico incluyendo su código fuente, tipo, secuencia y estado
execute-batch-queriesExecutes multiple SQL queries in parallel for improved performance.
execute-queryExecutes a SQL query in the Firebird database. Uses FIRST/ROWS for pagination.
get-database-infoRetrieves general information about the connected Firebird database.
get-execution-planGets the execution plan for a SQL query to understand how the database will execute it
get-field-descriptionsGets the stored descriptions for fields of a specific table (if they exist).
get-server-infoObtiene información sobre el servidor MCP Firebird y las herramientas disponibles
get-table-dataRetrieves data from a specific table with optional filtering, pagination, and ordering.
get-tool-helpObtiene información detallada sobre una herramienta específica
list-available-eventsLista los eventos nativos (POST_EVENT) disponibles en los triggers y procedimientos de la base de datos
list-available-toolsLista todas las herramientas disponibles en el servidor MCP
list-functionsLista todas las funciones en la base de datos (UDFs y PSQL functions)
list-packagesLista todos los paquetes en la base de datos (disponible en Firebird 3.0+)
list-proceduresLista todos los procedimientos almacenados en la base de datos con información sobre parámetros de entrada/salida
list-tablesLists all user tables in the current Firebird database.
list-triggersLista todos los triggers en la base de datos con información sobre tabla asociada, tipo de trigger y estado
subscribe_to_eventSubscribe to a Firebird event (POST_EVENT) to receive proactive notifications
system-health-checkVerifica el estado de salud del sistema y la conectividad de la base de datos
verify-wire-encryptionVerifies if the current database connection is using wire encryption (requires native driver).
BEFORE YOU INSTALL
27 tools when we connected; the project documents 30. backup-database, restore-database and validate-database need the Firebird client tools installed. ping, echo, get-methods and describe-method in the tool docs appear outdated; the server offers list-available-tools and get-tool-help instead.
INSTALLATION
npx -y mcp-firebird --database=<YOUR_PATH_TO_DATABASE>{
"mcpServers": {
"mcp-firebird": {
"command": "npx",
"args": [
"-y",
"mcp-firebird",
"--database",
"<YOUR_PATH_TO_DATABASE>",
"--host",
"localhost",
"--port",
"3050",
"--user",
"SYSDBA",
"--password",
"masterkey"
]
}
}
}On the machine that can reach your database, start the server over HTTP. masterkey in the block is a sample database password; yours is your Firebird database password. <YOUR_FIREBIRD_API_KEY> is a token you choose — it is the bearer n8n sends below:
npm install -g mcp-firebird
export TRANSPORT_TYPE=sse
export SSE_PORT=3003
export FIREBIRD_PASSWORD=masterkey
export FIREBIRD_API_KEY=<YOUR_FIREBIRD_API_KEY>
mcp-firebird --database <YOUR_PATH_TO_DATABASE> --user SYSDBAThen in n8n: add a new MCP Server Connection, choose HTTP / SSE as the transport type, set the Server URL to http://YOUR_SERVER_IP:3003/mcp, and under Headers add Key: Authorization, Value: Bearer <YOUR_FIREBIRD_API_KEY>.