# Michael2150/flamerobin-mcp-server [Health: Active]

**Category:** 🗄️ Databases  
**Repository:** https://github.com/Michael2150/flamerobin-mcp-server  
**GitHub Stars:** 2  
**Views:** 1  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/michael2150-flamerobin-mcp-server

## Description
⃣ 🏠 🪟 - Firebird database MCP server that reads connection details from FlameRobin's config — no credential setup required. Access all locally registered databases in one session with full schema introspection, DDL/DML execution, execution plans, and missing index analysis.

## Tools
Capabilities this server exposes over MCP:

- **ListDatabases** — List all servers/databases registered in FlameRobin
- **ListObjects** — List tables, views, or both — with optional regex filter
- **ListProcedures** — List stored procedures — with optional regex filter
- **ListTriggers** — List triggers — with optional regex filter
- **ListGenerators** — List generators/sequences with current values
- **ListRoles** — List roles — with optional regex filter
- **DescribeTable** — Column definitions — supports `brief` mode and column filter
- **GetForeignKeys** — FK relationships for a table (`in`, `out`, or `all` directions)
- **GetTableConstraints** — PK, FK, UNIQUE, CHECK constraints for a table
- **GetProcedureSource** — PSQL source of a stored procedure
- **GetTriggerSource** — PSQL source of a trigger
- **GetViewSource** — SQL source of a view
- **GetExecutionPlan** — Execution plan for a SELECT — shows index usage
- **AnalyzeMissingIndexes** — Which columns lack indexes; optionally scoped to filter columns
- **GetDatabaseInfo** — ODS version, page size, dialect, etc.
- **ListActiveConnections** — Active connections to the database
- **RunQuery** — Execute a SELECT — supports `maxRows` and `columns` projection
- **ExecuteDdl** — Execute CREATE/ALTER/DROP and commit
- **ExecuteDml** — Execute INSERT/UPDATE/DELETE and commit
- **ExecuteScript** — Execute multiple semicolon-separated statements

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "flamerobin-mcp-server": {
    "command": "npx",
    "args": ["-y","michael2150-flamerobin-mcp-server"],
    "env": {
      "LOGGING__LOGLEVEL__DEFAULT": ""
    }
  }
}
```

**Requires environment variables:** `LOGGING__LOGLEVEL__DEFAULT` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation & README

# flamerobin-mcp-server

A Model Context Protocol (MCP) server for Firebird databases intended for **local use**. It reads connection details from [FlameRobin's](http://www.flamerobin.org/) `fr_databases.conf` so no extra configuration is needed — if you have FlameRobin set up with your Firebird databases, this server works out of the box.

## Compared to [mcpFirebird](https://github.com/PuroDelphi/mcpFirebird)

| | This project | mcpFirebird |
|---|---|---|
| **Credentials** | Read automatically from FlameRobin's config — no setup required | Must pass `--user`, `--password`, `--host`, `--database` on every launch |
| **Multi-database** | All FlameRobin-registered databases available in one session | Single database per server instance |
| **Wire encryption** | Supported (native Firebird .NET driver) | Not supported — requires `WireCrypt = Disabled` on the server |
| **Runtime** | .NET 9 self-contained executable | Node.js / npm |
| **Schema introspection** | Tables, views, procedures, triggers, generators, roles, FK/PK/constraints, execution plans, missing index analysis | Tables and basic schema |
| **DDL / DML / scripts** | Yes — `ExecuteDdl`, `ExecuteDml`, `ExecuteScript` | SQL execution only |
| **Deployment** | Local only — runs on your PC alongside FlameRobin | Cloud-deployable via Smithery, SSE/HTTP transports |

## Building

```
dotnet build FirebirdMcp.csproj
```

## Publishing a single self-contained executable

```
dotnet publish FirebirdMcp.csproj -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -o publish-single
```

The output is `publish-single\FirebirdMcp.exe`. The `publish-single\` folder is gitignored.

## Claude Desktop configuration

Add to `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "firebird": {
      "command": "C:\\path\\to\\publish-single\\FirebirdMcp.exe",
      "env": {
        "Logging__LogLevel__Default": "None"
      }
    }
  }
}
```

> **Important:** The `Logging__LogLevel__Default=None` env var is required. 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.

## Tools

| Tool | Description |
|------|-------------|
| `ListDatabases` | List all servers/databases registered in FlameRobin |
| `ListObjects` | List tables, views, or both — with optional regex filter |
| `ListProcedures` | List stored procedures — with optional regex filter |
| `ListTriggers` | List triggers — with optional regex filter |
| `ListGenerators` | List generators/sequences with current values |
| `ListRoles` | List roles — with optional regex filter |
| `DescribeTable` | Column definitions — supports `brief` mode and column filter |
| `GetForeignKeys` | FK relationships for a table (`in`, `out`, or `all` directions) |
| `GetTableConstraints` | PK, FK, UNIQUE, CHECK constraints for a table |
| `GetProcedureSource` | PSQL source of a stored procedure |
| `GetTriggerSource` | PSQL source of a trigger |
| `GetViewSource` | SQL source of a view |
| `GetExecutionPlan` | Execution plan for a SELECT — shows index usage |
| `AnalyzeMissingIndexes` | Which columns lack indexes; optionally scoped to filter columns |
| `GetDatabaseInfo` | ODS version, page size, dialect, etc. |
| `ListActiveConnections` | Active connections to the database |
| `RunQuery` | Execute a SELECT — supports `maxRows` and `columns` projection |
| `ExecuteDdl` | Execute CREATE/ALTER/DROP and commit |
| `ExecuteDml` | Execute INSERT/UPDATE/DELETE and commit |
| `ExecuteScript` | Execute multiple semicolon-separated statements |

