anchor-debug
Provides tools for debugging Solana Anchor program failures, including parsing logs, fetching transaction details, and looking up error codes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@anchor-debugparse logs from my failed anchor test"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
anchor-debug
CLI tool that makes Anchor program failures understandable.
When your Anchor test fails with custom program error: 0x1770, anchor-debug tells you exactly what broke, where, and why.
Before vs After
Without anchor-debug:
Error: failed to send transaction: Transaction simulation failed: Error processing Instruction 0: custom program error: 0x7d2With anchor-debug:
✗ Transaction failed
Error: ConstraintHasOne
Code: 0x7d2 (2002)
Msg: A has_one constraint was violated — account field does not match expected value
Program: my_program (9uvbWC...)
CPI call stack:
└─ ✗ my_program (9uvbWC...) ← failed here
Error: A has_one constraint was violated — account field does not match expected value
└─ ✓ TokenkegQfeZy... (Token Program)
└─ ✗ my_program::validate_authority ← failed hereRelated MCP server: Pentagonal
Installation
npm install -g anchor-debug
# or use directly with npx
npx anchor-debug --helpUsage
Pipe anchor test output
anchor test 2>&1 | npx anchor-debuganchor-debug reads stdin, finds the failure, and prints a human-readable error. If the test succeeds, output is passed through unchanged.
Debug a transaction by signature
npx anchor-debug tx <SIGNATURE> --cluster devnet
npx anchor-debug tx <SIGNATURE> --cluster mainnet-beta
npx anchor-debug tx <SIGNATURE> --cluster http://localhost:8899Fetches the transaction from the RPC, extracts its logs, and formats the error.
Run tests with automatic error formatting
npx anchor-debug test
npx anchor-debug test --skip-buildRuns anchor test for you and prints the parsed error on failure.
Options
Flag | Description |
| Also show raw log lines |
| Show all program log messages |
| Cluster or RPC URL (tx command) |
| Pass --skip-build to anchor test |
How it works
Log parser — reads Solana program logs line-by-line using a regex state machine
Error database — 60+ Anchor framework errors mapped by hex code (both new 0x7d0+ and legacy 0x1770+ ranges)
CPI tracer — rebuilds the full
Program invoke [N]call tree and marks the innermost failing invocationIDL resolver — reads
Anchor.tomlandtarget/idl/*.jsonto show program names instead of pubkeys
Supported error ranges
Range | Source |
| Instruction errors |
| IDL errors |
| Constraint errors (Anchor ≥ 0.24) |
| Account errors |
| State errors |
| Legacy constraint errors (Anchor < 0.24) |
MCP Server (for AI agents)
anchor-debug works as an MCP server, giving AI coding agents (Claude Code, Cursor, etc.) structured access to Solana error data.
Add to .mcp.json in your project:
{
"mcpServers": {
"anchor-debug": {
"command": "npx",
"args": ["anchor-debug", "mcp"]
}
}
}Or globally in ~/.claude/mcp.json.
Available tools:
Tool | What it does |
| Takes raw log lines → structured error + CPI stack |
| Takes signature + cluster → fetches and parses |
| Takes hex code → error name + message |
Example agent response after calling parse_logs:
{
"failed": true,
"error": {
"name": "ConstraintHasOne",
"code": 2002,
"hex": "0x7d2",
"message": "A has_one constraint was violated — account field does not match expected value",
"category": "constraint"
},
"failedProgram": "my_program",
"failedNode": {
"program": "my_program",
"depth": 2,
"errorMessage": "A has_one constraint was violated"
},
"cpiStack": [...]
}Instead of reasoning about 0x1770, the agent immediately knows what failed and can fix it in one shot.
Programmatic API
import { parseLogsFromString, formatResult } from "anchor-debug";
const logs = [
"Program MyProg invoke [1]",
"Program MyProg failed: custom program error: 0x7d2",
];
const parsed = parseLogsFromString(logs.join("\n"));
console.log(formatResult(parsed));Milestones
M1 — npm package, log parser, Anchor error database
M2 — CPI call stack visualizer, IDL integration
M3 — VS Code extension (inline hints)
License
MIT
This server cannot be installed
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/konradbachowski/anchor-debug'
If you have feedback or need assistance with the MCP directory API, please join our Discord server