Anchor Debug
БесплатноНе проверенProvides structured access to Solana Anchor error data, enabling AI coding agents to parse logs, debug transactions, and look up error codes.
Описание
Provides structured access to Solana Anchor error data, enabling AI coding agents to parse logs, debug transactions, and look up error codes.
README
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: 0x7d2
With 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 here
Installation
npm install -g anchor-debug
# or use directly with npx
npx anchor-debug --help
Usage
Pipe anchor test output
anchor test 2>&1 | npx anchor-debug
anchor-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:8899
Fetches 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-build
Runs anchor test for you and prints the parsed error on failure.
Options
| Flag | Description |
|---|---|
--raw |
Also show raw log lines |
-v, --verbose |
Show all program log messages |
-c, --cluster <cluster> |
Cluster or RPC URL (tx command) |
--skip-build |
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 invocation - IDL resolver — reads
Anchor.tomlandtarget/idl/*.jsonto show program names instead of pubkeys
Supported error ranges
| Range | Source |
|---|---|
0x64–0x67 (100–103) |
Instruction errors |
0x3e8–0x3ea (1000–1002) |
IDL errors |
0x7d1–0x7f8 (2001–2040) |
Constraint errors (Anchor ≥ 0.24) |
0xbb8–0xbc1 (3000–3017) |
Account errors |
0xfa0–0xfa2 (4000–4002) |
State errors |
0x1770–0x1783 (6000–6019) |
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 |
|---|---|
parse_logs |
Takes raw log lines → structured error + CPI stack |
debug_transaction |
Takes signature + cluster → fetches and parses |
lookup_error |
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
Установка Anchor Debug
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/konradbachowski/anchor-debugFAQ
Anchor Debug MCP бесплатный?
Да, Anchor Debug MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Anchor Debug?
Нет, Anchor Debug работает без API-ключей и переменных окружения.
Anchor Debug — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Anchor Debug в Claude Desktop, Claude Code или Cursor?
Открой Anchor Debug на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
Fetch
Web content fetching and conversion for efficient LLM usage.
AWS KB Retrieval
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
автор: modelcontextprotocolSpring AI MCP Server
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
llm-analysis-assistant
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also
автор: xuzexin-hzCompare Anchor Debug with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории ai
