firedbg-mcp
README.md
# firedbg-mcp
A small, repository-scoped MCP server for [FireDBG](https://firedbg.sea-ql.org/). It lets an agent discover Rust targets, run them under FireDBG, index traces, and inspect the complete SQLite trace without granting access to other workspaces.
## Prerequisites
- Node.js 22 or newer
- A Rust Cargo workspace
- `firedbg` and `firedbg-indexer` installed and available on `PATH`
FireDBG provides installation instructions in its upstream repository. This server checks the base installation with `firedbg_status`; it does not replace the global FireDBG CLI, indexer, or bundled LLDB runtime.
If upstream does not publish a precompiled debugger for the active compiler, call `firedbg_prepare_compatible`. The tool installs the exact matching Rustup toolchain, builds only `firedbg-debugger` from a pinned upstream revision, smoke-tests it, and activates it under `<workspace>/.firedbg-mcp/firedbg/<rust-major.minor>/`. It reuses the installed FireDBG LLDB runtime and does not replace global FireDBG binaries.
## Setup
```sh
npm install
npm run build
```
Configure an MCP client to launch the compiled server with its repository root:
```json
{
"mcpServers": {
"firedbg": {
"command": "node",
"args": ["/absolute/path/to/firedbg-mcp/dist/index.js", "--workspace-root", "/absolute/path/to/rust-workspace"]
}
}
}
```
`--workspace-root` defaults to the server process's initial working directory. `FIREDBG_BIN` and `FIREDBG_INDEXER_BIN` may select non-default executable paths.
Every attempted tool call is appended to `<workspace>/.firedbg-mcp/actions.jsonl`. Raw target arguments, program output, SQL, and query parameters are excluded from the audit record; hashes are retained for correlation. In Git worktrees the directory is added to `.git/info/exclude` automatically.
## Tools
- `firedbg_status`
- `firedbg_prepare_compatible`
- `firedbg_list_targets`
- `firedbg_run`
- `firedbg_list_runs`
- `firedbg_index_run`
- `firedbg_trace_schema`
- `firedbg_query_trace`
Trace queries accept one parameterized `SELECT` or `WITH` statement. The database is opened read-only and responses are capped at 1,000 rows and 1 MiB. Use `offset` and `limit` for pagination.
## Development
```sh
npm test
npm run typecheck
npm run build
npm run inspect -- --workspace-root /path/to/cargo/workspace
```
Debug runs are synchronous in v1. Background execution would require persisted job state, status and cancellation tools, process-tree cleanup, and restart recovery; that is intentionally outside this server's KISS-oriented scope.
Compatible-debugger builds use `<workspace>/.firedbg-mcp/build` only while compiling and remove that directory after success or failure. The resulting debugger is repository-local; future runs automatically pass its home to the FireDBG CLI when its embedded Rust minor version matches the workspace's active compiler.
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues