Bug Ledger MCP
Never fix the same bug twice. A local-first MCP server that gives AI coding agents (Claude Code, Cursor, any MCP client) a permanent memory of fixed bugs. Record a bug at fix time; every future session checks the ledger before writing code.
Everything runs on your machine: one SQLite file in ~/.bugledger/. No login, no cloud, no telemetry, no network calls.
Install
Requires uv.
claude mcp add bugledger -- uvx bugledger-mcp
Restart Claude Code. The tools and the /mcp__bugledger__logbug prompt appear.
Cursor, or a whole team via a committed .mcp.json / .cursor/mcp.json:
{ "mcpServers": { "bugledger": { "command": "uvx", "args": ["bugledger-mcp"] } } }
Tools
| Tool | The agent calls it… | What it does |
|---|---|---|
get_patterns(feature_area, project) |
before planning or coding in an area | Newest past bugs for that area, one line each, capped at 30 lines |
search_bugs(query) |
while debugging | Full-text search over symptoms and root causes; paste the error as is |
record_bug(...) |
after a fix, once you confirm | Stores symptom, root cause, feature area, project, stack, severity, and the fix diff |
list_areas() |
before naming things | Existing feature areas and projects with counts |
resolve_bug(id, project) |
once a project has a guardrail | Hides that bug from get_patterns for that project only |
update_bug / delete_bug |
to correct mistakes | Edit or remove a record |
get_guardrails(stack) |
at project setup | Starter pack of Semgrep rules for classic AI-coding mistakes, plus the CI workflow |
/logbug is an MCP prompt: the agent checks the session really contained a bug fix, drafts the record, shows it to you, and calls record_bug only after you confirm.
The server sends standing instructions to the agent on connect, so it works without extra setup. To make it a hard rule, add to CLAUDE.md or .cursorrules:
Before implementing anything in a feature area, call bugledger get_patterns with that area and this project's name, and account for every returned bug. After fixing a bug, run /mcp__bugledger__logbug.
Data and privacy
- Ledger:
~/.bugledger/ledger.db. Override the folder withBUGLEDGER_HOME. record_bugrunsgit show <fix_ref>in the server's working directory to store the fix diff locally. It is never sent anywhere.
Source, issues, and the rule pack: https://github.com/xajeel/bugledger-mcp
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bugledger_mcp-0.1.0.tar.gz.
File metadata
- Download URL: bugledger_mcp-0.1.0.tar.gz
- Upload date:
- Size: 31.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f958169779bd49be475b78698cb64786428c35aa47d13aef7225632483a89e9
|
|
| MD5 |
027f6eba66d1d4f37c1b061ffafc4c39
|
|
| BLAKE2b-256 |
331aefc4cffb25f407b29cd768a0abbec2a0b3843aade19b8ae3715cdc52f9b2
|
File details
Details for the file bugledger_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bugledger_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 44.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.10.7 {"installer":{"name":"uv","version":"0.10.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87a072c208a6771e7f58a55f521b326dd408cb5657a4107a1bb91acf09537aed
|
|
| MD5 |
05fdf14abdb590b0c4adcd316ace0e5d
|
|
| BLAKE2b-256 |
1fb9a817e2760be4ed38f08c1777cd2f74da3e10de8f00e429393fdd6f73f767
|