flamerobin-mcp-server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| Logging__LogLevel__Default | No | The server's startup log output is written to stdout, which Claude reads as part of the MCP handshake — any unexpected output causes Claude to fail to recognize the server. | None |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_triggersA | List all user-defined triggers, formatted as 'TRIGGER_NAME (on TABLE_NAME)'. To retrieve a trigger body, pass just the name (without the ' (on TABLE)' suffix) to get_trigger_source. |
| list_proceduresA | List all user-defined stored procedures. Returns procedure names. Call describe_procedure for parameter signatures, or get_procedure_source for the PSQL body. |
| list_objectsA | List user tables, views, or both in a Firebird database. Returns object names. For a richer starting point use get_schema_summary instead. Pass individual names to inspect_table, get_table_constraints, get_foreign_keys, or get_view_source. |
| execute_scriptA | Execute multiple SQL statements separated by semicolons. Each runs in its own transaction. A failure on one statement does NOT roll back previously committed statements — there is no global rollback. Returns one status line per statement: 'OK: ...' or 'ERROR: on: ...'. For a single statement prefer execute_ddl or execute_dml. |
| describe_tableA | Return column definitions for a table or view. Prefer inspect_table when you also need constraints or FK relationships. Brief mode returns [{name, type, nullable}]. Full mode adds length, precision, scale, default_src, description. If unsure about column names or types, call this before writing any query or DML — do not guess schema. |
| run_queryA | Execute a read-only SELECT query and return results as row objects. If unsure about column names or types, call describe_table or inspect_table first — do not guess schema. IMPORTANT Firebird SQL differences: use 'SELECT FIRST n' or 'ROWS n' to limit rows — 'LIMIT n' is invalid. String concatenation uses '||' not '+'. Returns [{column: value, ...}] per row. |
| list_generatorsA | List user-defined generators (sequences / auto-increment counters) with their current values. Returns [{name, value}]. |
| sample_tableA | Return a small sample of rows from a table without writing SQL. Use this to understand what real data looks like before writing queries or DML. Returns [{column: value, ...}] per row. |
| list_active_connectionsA | List active non-system connections to the database. Useful before running DDL or maintenance to check who is connected. Returns [{id, user, address, process, connected_at}]. |
| describe_procedureA | Return the input and output parameter signatures for a stored procedure without reading the full PSQL body. Use this to understand how to call a procedure. Call get_procedure_source only when you need the implementation. Returns {name, input_params:[{name,type}], output_params:[{name,type}]}. |
| get_table_constraintsA | Return constraints on a table: PRIMARY KEY, FOREIGN KEY, UNIQUE, and CHECK. Returns [{constraint, type, index}]. Prefer inspect_table to get constraints alongside columns and FKs. For full FK details (referenced columns, ON DELETE/UPDATE rules) use get_foreign_keys instead. |
| execute_ddlA | Execute a single DDL statement (CREATE/ALTER/DROP TABLE, CREATE INDEX, etc.) and auto-commit. Before altering or dropping an existing object, call inspect_table or list_objects first to confirm structure. WARNING: DDL is irreversible — dropped tables and columns cannot be recovered. For multiple statements use execute_script. Returns 'DDL executed and committed.' on success. |
| analyze_missing_indexesA | Report which columns on a table are covered by an active index (as the leading segment). Helps identify missing indexes on columns used in WHERE clauses or JOINs. Returns [{column, has_index, index, unique}]. |
| list_databasesA | List all Firebird servers and databases registered in FlameRobin. ALWAYS call this first — the 'key' in each result is required by every other tool's 'database' parameter. Returns [{key, host, port, path}]. |
| get_foreign_keysA | Return foreign key relationships involving a table, in one or both directions. Returns [{direction, from_table, from_column, to_table, to_column, on_update, on_delete}]. Prefer inspect_table to get FKs alongside column and index information in one call. direction='out': what other tables this table depends on. direction='in': what other tables reference this table. |
| inspect_tableA | Return full structural details for a single table or view in one call: column definitions, primary key, all indexes, and foreign keys in both directions. Prefer this over calling describe_table + get_table_constraints + get_foreign_keys separately. Returns {table, columns:[{name,type,nullable,default_src}], primary_key:[col], indexes:[{name,columns,unique}], foreign_keys_out:[{column,references,on_update,on_delete}], foreign_keys_in:[{from_table,from_column,on_column,on_update,on_delete}]}. |
| get_view_sourceA | Return the SELECT statement that defines a view. Returns the view source SQL, or an error message if the view is not found. |
| execute_dmlA | Execute a single INSERT, UPDATE, or DELETE statement and commit. If unsure about column names or constraints, call inspect_table first — do not guess schema. Throws and rolls back on error. For multiple statements use execute_script. Returns 'Done. Rows affected: N'. |
| get_distinct_valuesA | Return the distinct values of a column and how many rows contain each value, ordered by frequency. Use this to understand the range of values in a column before writing WHERE clauses or CHECK constraints. Returns [{value, count}] ordered by count descending. |
| get_procedure_sourceA | Return the full PSQL source body of a stored procedure. Call describe_procedure first if you only need to know parameters — not the implementation. Returns the raw PSQL text, or an error message if not found. |
| list_rolesA | List all roles defined in the database. Roles group privileges and are granted to users. |
| get_trigger_sourceA | Return the full PSQL source body of a trigger. Returns the raw PSQL text, or an error message if not found. |
| get_check_constraintsA | Return the CHECK constraint expressions defined on a table. GetTableConstraints only tells you a CHECK constraint exists — this tool returns the actual expression so you know what values are valid before writing INSERT or UPDATE statements. Returns [{constraint, expression}]. |
| get_execution_planA | Return the query execution plan for a SELECT — shows which indexes Firebird will use. The query is prepared but never executed, so it is safe on large tables. Use before run_query to detect accidental full-table scans. Returns a plan string such as 'PLAN (TABLE NATURAL)' or 'PLAN (TABLE INDEX (IDX_NAME))'. |
| search_schemaA | Search for tables or columns whose names match a pattern. Use this instead of listing all objects when you know part of a name — e.g. find every table containing 'ORDER', or every column named 'CUSTOMER_ID'. Returns {tables: ["NAME"], columns: [{table, column, type}]}. |
| get_database_infoA | Return physical metadata for a Firebird database file. Returns {path, ods_major, ods_minor, page_size, pages, sql_dialect, sweep_interval}. ods_major/ods_minor indicate the Firebird engine version. sql_dialect: 1=legacy, 3=standard. pages × page_size = approximate file size in bytes. |
| count_rowsA | Return the row count for a table, optionally filtered by a WHERE clause. Use before run_query to gauge table size and decide whether to add a row limit. Returns {table, where, count}. |
| get_next_generator_valueA | Advance a generator (sequence) by the given increment and return the new value. Use this to obtain a primary key value before inserting a row that uses a generator-based ID. WARNING: this permanently advances the generator — the consumed value cannot be reclaimed. Returns {generator, increment, value}. |
| get_schema_summaryA | Return a compact overview of every user table in the database: column names with types, primary key, and foreign key counts. Use this as the first step when exploring an unfamiliar database — it replaces calling list_objects + describe_table on every table. Returns [{table, columns: ["NAME:TYPE"], pk: ["COL"], fk_out, fk_in}]. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Michael2150/flamerobin-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server