Moth
Moth is a lightweight MCP server for project-local bug-fix analysis and verified fix memory.
What Moth Does
Moth receives error output through MCP, redacts likely secrets, normalizes the failure, detects the likely stack, checks project-local fix memory, and returns a structured fix brief.
Moth does not edit code, run shell commands, crawl repositories, require a backend, or maintain a global bug database.
Why Moth?
Bug-fix context is often local to a project: the command that failed, the framework in use, nearby configuration, and fixes that have already worked or failed in that repo.
Moth keeps that workflow small and explicit. It analyzes provided error context, suggests a best first fix, and records only verified fix outcomes in project-local memory.
Quick Start
Requires Node.js 18+.
Run directly:
npx -y @stfade/moth moth-mcpOr install globally:
npm install -g @stfade/moth
moth-mcpGeneric MCP config
{
"mcpServers": {
"moth": {
"command": "npx",
"args": ["-y", "@stfade/moth", "moth-mcp"]
}
}
}Usage Example
When using Moth with a supported AI agent, you can include a simple prompt like this along with your error:
"Use Moth to analyze this error before fixing it."
Supported Clients
Client | Status | Setup |
Codex | Local plugin-ready | |
Claude Code | Local plugin-ready | |
Cursor | Plugin scaffold | |
Gemini CLI | Extension scaffold | |
Gemini Antigravity | MCP config-ready | |
OpenCode | MCP config-ready | |
Generic MCP | Config-ready |
“Local plugin-ready” means the integration wrapper is included and can be tested locally. Marketplace submission and approval are not included yet.
Tools
Moth exposes exactly two MCP tools.
analyze_error
Analyzes provided error output before a fix is attempted.
Input fields:
error_outputcommand?cwd?package_context?relevant_files?environment?
Output fields:
analysis_idfingerprintstacklikely_causebest_first_fixverificationprior_project_fixesavoidconfidence
remember_fix_result
Records verified project-local fix memory.
Input fields:
analysis_idfingerprintstackfix_attemptedverification_commandverification_result: "passed" | "failed"notes?
The public worked input is rejected. worked is derived from verification_result.
Verified Memory Lifecycle
analyze_error
→ apply/attempt fix
→ run verification command
→ remember_fix_resultCall remember_fix_result only when:
a fix/change was actually attempted
the verification command actually ran
the result is clearly
passedorfailed
Do not call it for suggestions, skipped changes, missing verification, ambiguous results, or guesses.
Local Memory
Verified project-local fix memory is stored at:
.moth/fix-memory.jsonlMoth keeps a small Moth-owned analysis registry outside the project so remember_fix_result can map analysis_id back to the correct project path after an MCP server restart.
Skills
Moth includes concise skills for compatible agents:
moth-debug-first-fixmoth-source-backed-researchmoth-verify-fix
The MCP server itself does not perform live web research. Compatible agents may use their own search tools, guided by Moth skills, when external sources are needed.
Safety
read-only by default
no source edits
no shell execution
no repo-wide scan
no background watcher
no external service required
redacts likely secrets before analysis, responses, and memory writes
Development
pnpm install
pnpm test
pnpm build
pnpm dev
npm pack --dry-runLicense
MIT
Maintenance
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/stfade/moth'
If you have feedback or need assistance with the MCP directory API, please join our Discord server