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.
- SQL execution with Firebird's own FIRST/ROWS pagination, plus a batch call that runs several queries in parallel
- Table listing, detailed schemas, stored field descriptions, and filtered, ordered, paginated reads of table data
- Schemas for many tables at once, and per-table statistics covering row count, column stats and data distribution
- Stored code read back with its source: triggers with their table and state, stored procedures with their parameters, PSQL and UDF functions, and packages with header and body
- Query tuning without leaving the conversation: the execution plan, a timing run that repeats the query, and an analysis of which missing indexes would help
- Event subscription over Firebird's POST_EVENT, so the agent is notified when a trigger fires instead of polling
- Housekeeping reads: database and server information, a health check on the connection, the available events, and per-tool help
- A wire-encryption check on the live connection, when running on the native driver
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 a key — npx -y mcp-firebird --database=/path/to/database.fdb, then supply credentials
