An MCP server that lets an AI assistant diagnose a Firebird database: read its schema, explain a query plan, propose and refute indexes, and measure whether a goal was actually met.
Tested against Firebird 2.5, 3.0, 4.0 and 5.0, not just the newest. A version-blind answer passes 5.0 and lies to a 2.5 DBA.
Install
- Unzip anywhere. The exe,
.env.exampleandloggerpro.stdio.jsonsit together in that folder; there is nobin\subfolder in the download. - Copy
.env.exampleto.env, beside the exe, and fill it in. (It starts with a dot, so Explorer andlshide it unless you ask for hidden files. It is in the zip.) firebird.client_libmust point at thefbclient.dllof YOUR Firebird installation. No client library is bundled on purpose: a mismatched one fails in ways that are hard to read, and only you know which server you are talking to.- Install it into your AI agent: register
MCPFirebird.exeas a stdio MCP server. The agent starts the executable itself and talks to it over stdin/stdout. Nothing runs as a service, nothing listens on a port. The README has the exact recipe for Claude Desktop, Claude Code, Gemini CLI, OpenCode and Cursor. Pass--env <directory>if the.envlives elsewhere: a directory, not a file.
stdout carries JSON-RPC and nothing else; logging goes to a file, per loggerpro.stdio.json.
The tools
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, plus prompts and resources.
fb_diagnose, fb_analyze_config, fb_analyze_host, fb_parse_log, fb_analyze_storage, fb_capture_trace, fb_trace_start, fb_trace_status and fb_trace_stop are the Enterprise edition's, and this build tells you so rather than pretending they do nothing.
Since 0.2.3
The Enterprise catalogue your assistant can see grew from five to nine. fb_diagnose is the entry point: start there when something is wrong and you do not know why, and it names the ordered route to run next. fb_trace_start, fb_trace_status and fb_trace_stop are the long window: up to two hours of Trace API capture drained in the background, where fb_capture_trace is capped at sixty seconds. All four appear in tools/list in this edition too, and calling one tells you how to get it instead of failing silently. The comparison tables in all four READMEs now list all nine.
A finding with no runnable remedy no longer ships an empty SQL fence. Not every advisory has a command behind it: the answer to "your page cache commits more RAM than this machine has" is a configuration change and a restart, not a statement. Those findings used to end in an empty code block, which reads as a tool that meant to say something and failed to. The fence now appears only when there is something runnable inside it.
The README header said v0.1.0. The server identity line at the top of all four READMEs had been stale since 0.2.0. It now states the version you actually downloaded.
.env.example now holds placeholders, not one machine's paths. It used to carry the maintainer's own port and file paths; copy it and the server pointed at folders that exist on exactly one computer in the world. It now shows the default port 3050 and paths that are obviously yours to fill in.
Notes
Windows x64. The exe is a Release build; the compliance suite was run against this binary, not against a debug twin of it.