FlameRobin now includes a built-in Model Context Protocol (MCP) server written in C++. This allows AI assistants (like Claude, Gemini, Antigravity, and others) to safely connect to and interact with your registered Firebird databases to query schemas, inspect metadata, and execute queries.
Ensure that you have compiled FlameRobin in Debug or Release mode:
# Build using Visual Studio MSBuild (Windows)
& "C:\Program Files\Microsoft Visual Studio\18\Community\MSBuild\Current\Bin\MSBuild.exe" build/flamerobin.vcxproj /p:Configuration=Debug /p:Platform=x64Run FlameRobin from the terminal with the --mcp flag:
build/Debug/flamerobin.exe --mcpThe server runs on standard input/output (stdio) and outputs debugging logs to standard error (stderr).
To integrate FlameRobin MCP with Claude Desktop, add it to your claude_desktop_config.json file:
- Windows:
{ "mcpServers": { "flamerobin": { "command": "C:\\Work\\flamerobin\\build\\Debug\\flamerobin.exe", "args": ["--mcp"] } } } - macOS / Linux:
{ "mcpServers": { "flamerobin": { "command": "/path/to/flamerobin/build/flamerobin", "args": ["--mcp"] } } }
The server exposes the following JSON-RPC tools:
Lists all registered databases in FlameRobin's fr_databases.conf configuration file.
- Arguments: None
- Response: List of databases, including names, hostnames, usernames, roles, and dialects.
Fetches all user tables, views, and columns/datatypes from the specified database.
- Arguments:
database_name(string, required): The registered name of the database.password(string, optional): Connection password if not saved.
- Response: Database schema JSON object.
Executes an arbitrary SQL statement against the specified database and returns the results.
- Arguments:
database_name(string, required): The registered name of the database.sql(string, required): The SQL query (e.g.SELECT,INSERT,UPDATE).password(string, optional): Connection password if not saved.
- Response: List of JSON rows, column count, and affected rows count.
Retrieves the complete SQL Data Definition Language (DDL) string used to create/define any database metadata object (table, view, trigger, procedure, generator, domain, role, exception, package).
- Arguments:
database_name(string, required): The registered name of the database.object_name(string, required): The name of the metadata object.password(string, optional): Connection password if not saved.
- Response: Object definition DDL string.
Retrieves detailed operational and transaction information from the database (ODS version, page size, total pages, sweeps, transaction statistics, and active transactions list).
- Arguments:
database_name(string, required): The registered name of the database.password(string, optional): Connection password if not saved.
- Response: Database diagnostic details.
- Check stderr logs:
The MCP server writes status logs (e.g.
[McpServer] Starting FlameRobin MCP server...) to standard error (stderr). If your client is failing to connect, inspect your client's logs to see the output of stderr. - Authentication:
If a database requires a password and it is not saved in FlameRobin's credentials vault, you must supply the
passwordargument when callingget_schemaorexecute_query.