
MCP Debug Recorder
io.github.oaslananka由 GitHub 账号 oaslananka 发布v1.1.3更新于 Oct 24, 2026
Record debug sessions, commands, failed attempts, and successful fixes in local SQLite storage.
概览
本地优先的调试记忆服务器,让助手把调试会话、命令和修复记录到 SQLite,并检索过往问题。
- 可以做什么
- 创建、更新、关闭和删除调试会话,删除需显式确认;记录失败或成功的修复尝试,以及带输出和退出码的终端命令并关联到会话。用全文检索加模糊重排搜索历史,查找相似的历史错误,获取完整会话详情或便于 AI 使用的会话摘要。浏览和筛选会话,汇总调试历史统计。保存、列出和删除可复用的搜索预设。将会话导出为完整 JSON 备份或轻量摘要清单,并导入经过校验的导出数据。返回经过脱敏的运行时、数据库结构、包与健康状态诊断快照。
- 适用场景
- 适合希望助手或 IDE 在本地长期保存调试过程,并能回答某个错误以前是否修过这类问题的场景。更适合开发者本机的桌面 MCP 客户端,而非共享或公开部署。
- 运行要求
- 通过 stdio 在本地运行,通常用 npx 启动,需要 Node.js 22 或 24 LTS 以及 npm 10 以上。数据保存在本地 SQLite 数据库,默认位于用户主目录下;Node 版本变化后可能需要重新编译 better-sqlite3 原生模块。可选的 Streamable HTTP 模式使用 HOST、PORT,非回环绑定时还需 DEBUG_RECORDER_HTTP_TOKEN 以及主机和来源白名单。
安装
在 SourceWeft 中
- 打开 控制台中的 MCP Debug Recorder,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
debug-recorder-mcp
Local-first debug memory for MCP clients.
Record incidents, commands, failed attempts, successful fixes, diagnostics, and searchable debugging history in SQLite.
[npm version] [npm downloads] [CI] [Release] [Docs] [CodeQL] [License: MIT] [Sponsor]
Published docs · Usage · Client recipes · Security · Release flow
Why this exists
Debugging knowledge usually disappears into chat windows, terminals, and commit history. debug-recorder-mcp gives MCP-enabled agents and IDEs a durable local memory so they can answer:
“Have I fixed this before?”
It stores each debugging session, error, command, attempted fix, working fix, tags, and context in a local SQLite database. Search combines SQLite FTS5 with fuzzy reranking, reusable presets, pagination metadata, related-session groups, and optional Markdown exports.
Highlights
- Local-first storage: no external database or hosted service required.
- MCP-native tools: stdio server for desktop MCP clients plus optional Streamable HTTP mode.
- Search that survives messy errors: FTS5 + Fuse.js reranking for stack traces, typos, Unicode, and punctuation-heavy logs.
- Reusable search presets: save common filters and limits for recurring incident patterns.
- Safe operations: redaction-before-store option, explicit destructive confirmations, local HTTP host/origin/auth/body-limit hardening.
- Diagnostics:
get_diagnosticsreturns redacted runtime, schema, package, and health signals for support without leaking raw paths, tokens, stack traces, or command output. - Release-grade packaging: audit, coverage, fuzzing, package-size gates, SBOM/VEX policy, install-script approvals, provenance-ready release workflow, and MCP Registry readiness checks.
Quick start
Requires Node.js 22 LTS or 24 LTS and npm 10+.
Default database path:
Use a custom database path:
MCP client setup
Desktop MCP clients
VS Code / GitHub Copilot
Create or update .vscode/mcp.json:
More setup examples are in Client setup recipes.
Available MCP tools
Real usage examples
Have I seen this before?
Ask your MCP client:
I am getting
TypeError: Cannot read properties of undefined. Have I seen this before?
The client can call find_similar_errors, then inspect the best match with get_session_context.
Record an active incident
- Call
start_debug_sessionwith the problem title and error details. - Add terminal commands with
record_command. - Add each attempted fix with
add_fix. - Improve title, notes, or tags with
update_session. - Close the incident with
close_session.
Back up or migrate history
- Call
export_sessionswithformat: "json". The response is marked withformat: "json"and contains the fullsessions,fixes, andcommandsarrays. - Store the returned object in your backup system.
- Restore later by passing that object as
import_sessions.payload.
For a lightweight inventory, call export_sessions with format: "summary".
Summary responses are marked with format: "summary", include aggregate
stats and abbreviated session rows, and are not restore payloads.
HTTP transport
The package also supports local Streamable HTTP:
Useful routes:
GET /healthGET /version- MCP endpoint:
POST /mcp
HTTP mode is local-first by default. It binds to 127.0.0.1, creates an isolated stateless MCP server/transport per request, validates Host, validates browser Origin when present, and enforces a JSON body-size limit before the MCP transport receives the request.
For deliberate non-loopback exposure, set all of these:
Wildcard origins are rejected for remote mode. The static bearer token is private/shared-secret mode: every caller shares one identity, one authority level, and one SQLite dataset. It is suitable for loopback, an encrypted trusted network, or a private authenticating proxy, but it is not OAuth and does not provide per-user scopes or revocation.
Public multi-user HTTP is not supported by the current release. The accepted target architecture uses an external authorization server and MCP-aware gateway with protected-resource discovery, audience-bound tokens, scopes, rate limits, audit events, and subject-aware storage. See Public HTTP authorization and ADR-0006.
Configuration
Boolean configuration also accepts false, 0, and no; values are
case-insensitive, whitespace is ignored, and unsupported values fail fast.
Diagnostics reports the resolved effective values rather than re-reading changed
environment strings.
Data and privacy
- Database: local SQLite via
better-sqlite3. - Search index: SQLite FTS5 virtual table.
- Default path:
~/.debug-recorder-mcp/sessions.db. - Redaction: optional before-store redaction plus diagnostics redaction.
- Deletion: destructive operations require explicit confirmation.
- Maintenance: see Storage retention and maintenance.
better-sqlite3uses a native addon. If Node versions change and bindings fail, runnpm rebuild better-sqlite3.
Docker
The image installs with npm ci, preserves reviewed native install scripts, prunes development dependencies, and runs as the non-root node user.
Documentation
Published documentation is generated by npm run docs:site and published to GitHub Pages:
Important docs:
- Usage
- Client setup recipes
- Configuration
- Architecture
- Security
- Public HTTP authorization
- Operations
- Troubleshooting
- Storage retention
- Testing
- Release flow
- Install-script policy
- SBOM/VEX policy
- Architecture decision records
Development
Full local gate:
Release readiness:
Release and npm publishing
The normal release workflow uses Release Please, builds release assets, generates SBOM/checksums, attests the tarball, uploads GitHub Release assets, and publishes to npm with provenance.
For the first npm package creation, use the manual Initial npm Token Publish workflow with repository secret NPM_TOKEN. After the package exists and npm trusted publishing is configured, the regular Release workflow can publish through GitHub OIDC. Details are in Release flow.
License
Released under the MIT License. package.json also declares "license": "MIT", and the npm package includes LICENSE.
Funding
If this project saves you debugging time, support development here:
- Buy Me a Coffee: https://www.buymeacoffee.com/oaslananka
- GitHub Sponsors: https://github.com/sponsors/oaslananka
Funding metadata is available in both .github/FUNDING.yml and package.json.
Agent plugin and runtime configuration
This repository owns the product-level agent plugin, MCP runtime configuration, and product-specific skills for debug-recorder-mcp. The central agent-tools repository should catalog this plugin, but the manifest and workflow instructions live here so they stay synchronized with the actual MCP server package.
Validate plugin packaging locally:
来源:README.md,提交 74abd4e
工具
0版本历史
1- v1.1.3最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分