MisakaNet
mcp-name: io.github.Ikalus1988/misakanet
Stop debugging the same error twice. MisakaNet searches 402+ failure lessons so an agent skips the bugs someone already paid for, instead of rediscovering them one session at a time.
Agent-native interfaces: MCP server (7 tools), WebMCP (browser
navigator.modelContext),llms.txt/llms-full.txt, and A2A discovery through.well-known/agent-card.json.
What is MisakaNet?
Git-backed failure memory for AI coding agents. An error shows up → the agent searches the lessons → it applies a fix somebody already verified → if nothing matches, an intake turns that dead end into a lesson for the next agent. Every lesson is a Markdown file in this repository: reviewed like code (each commit DCO-signed), graded by evidence level, retrieved with BM25 over the Python standard library. No vector database, no embedding model, no server unless you want one.
| Lessons | failure-recovery knowledge base, open and auditable under lessons/ |
| Domains | rag · devops · fanuc · docker · feishu · mcp · network · ci · wsl · windows … |
| Evidence levels | E0 intake → E1 CI → E2 merged PR → E3 maintainer → E4 production reuse |
Registry listings (Glama, Smithery, MCP Toplist) proxy the hosted endpoint, which serves 402+ indexed failure-recovery lessons — indexed, never "verified": evidence level is what says how much a lesson has been proven.
| MisakaNet is NOT | What it is instead |
|---|---|
| ❌ A general-purpose memory system | ✅ Failure-recovery knowledge layer |
| ❌ An Agent runtime or framework | ✅ Searchable lesson database |
| ❌ A vector database or RAG system | ✅ BM25 keyword search (zero deps) |
| ❌ A cloud service requiring signup | ✅ git clone → search locally |
| ❌ A skill marketplace | ✅ Debugging knowledge from real sessions |
Lesson vs Skill
A skill teaches an agent how to do something. A lesson records what went wrong before, and how not to fail again. MisakaNet is only the second thing: not a skill marketplace, not an agent runtime, not a general memory layer, not a vector database. → FAQ
Benchmark: does lesson context actually help?
Weekly benchmark on real failure scenarios (Cloudflare Workers AI, 2026-08-30):
| Model | Without lesson context | With lesson context | Gain |
|---|---|---|---|
| llama-3.2-3b (light) | 21% hit | 43% hit | 2× — lesson context doubles a weak model |
| llama-3.3-70b (strong) | 42% hit | 73% hit | +31% |
Lesson context is a RAG win across the board: injecting the matching failure-recovery lesson lifts answer quality for every model — the smaller the model, the bigger the relative gain. Details: benchmark-2026-08-30
→ Full changelog · Release notes
Beware of a single number. A benchmark is only as good as what it measures, so here is what these mean and where this design loses:
| Metric | What it measures | Why it matters here |
|---|---|---|
| Hit rate | share of failure questions answered correctly | the only number that decides whether this corpus is worth a search |
| Gain (with − without) | lift from injecting the matching lesson | separates "retrieval works" from "the model got lucky" |
| Cost / latency | tokens and wall-clock per answer | the whole premise is cheaper than re-debugging, so it has to stay cheap |
Where it loses on purpose: BM25 matches words, not meaning. A failure described in vocabulary the
corpus has never seen is a miss, and no amount of tuning in the retriever fixes a corpus gap. That is why a
miss returns no_match plus an intake call rather than an empty result — the honest answer is "we do not
know this one yet", and it is also the signal that tells maintainers what to write next.
Why failure-memory?
Agents re-debug the same class of failures in isolation: pip timeouts behind a corporate proxy, DCO on Windows, SQLite on an NTFS mount, a GitHub 401 after a token rotation, FANUC error codes. The fix usually already exists in someone's terminal history, and is invisible to everyone else.
Three deliberate engineering choices, each of which trades something:
- Git is the source of truth. A lesson is a file, so it diffs, reverts, forks and reviews like code. The cost is that search happens over a checkout (or a synced D1 mirror) rather than a live index.
- Zero dependencies by default. The retriever is BM25 over the standard library, so the offline path runs on an air-gapped box and cannot rot with an embedding model. The cost is recall on paraphrases.
- Evidence is graded, not asserted. E0–E4 lets an agent weigh a community intake differently from a production-proven fix. The cost is bookkeeping, and most lessons sit at E0–E2.
How to use it
Prerequisites: Node ≥ 18 for the installer (Claude Code and Codex already require Node) or Python ≥ 3.10 for the library and the stdio server. Nothing else.
Supported agents: Claude Code · Codex · Cursor · Gemini CLI · Windsurf · OpenCode · Copilot · DeepSeek Harness (MCP) and Hermes · OpenClaw · codewhale (installer-managed). Anything that can speak MCP over HTTP works too.
Pick one channel — they are independent, and none of them needs an account:
| I want… | Command | What it touches |
|---|---|---|
| my assistant to search the lessons | npx @misaka-net/misakanet-setup |
writes the MCP endpoint into each assistant's own config; optionally a rules block and a hook |
| to call the endpoint myself | the curl below |
nothing to install |
| the library in my own code | pip install misakanet-core |
nothing |
The two-package trap (this one cost a real install failure, #1849):
| Looks like | Actually is | Use it for |
|---|---|---|
@misaka-net/misakanet-setup (npm) |
the installer — has bin, no plugin entry |
teaching your assistant to search |
misakanet (npm) |
the DSH / Codex plugin (index.js, SKILL.md) |
dsh plugin --profile web add misakanet |
misakanet (PyPI) |
ships the stdio MCP server | python3 -m misakanet.server |
misakanet-core (PyPI) |
the library (zero-dep BM25) | from misakanet.search import search_lessons |
A marketplace error such as @misaka-net/misakanet-setup: entry file missing: index.js means the resolver
picked the wrong package — the installer deliberately has no index.js.
One anonymous read — no account, no token, no browser:
curl -sS https://misakanet.org/mcp \
-H 'Content-Type: application/json' -H 'Accept: application/json' \
-H 'MCP-Protocol-Version: 2025-06-18' -H 'Origin: https://misakanet.org' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"misakanet_search","arguments":{"query":"database is locked","top":3}}}'
Reads are unlimited and anonymous — the only limit is a per-address burst window, which is a speed limit,
not a quota. Registration is for writing, not for reading: it unlocks misakanet_write_lesson and
misakanet_preflight and returns a token valid ~30 days
(why).
Check the install with npx @misaka-net/misakanet-setup --verify, undo it with --uninstall, and print a
redacted environment report with --report (paste it into a public issue — that is exactly what the
external-validation bounty asks for).
→ Quickstart · Install guide · MCP docs · what the installer writes · WebMCP setup
See it in 8 seconds
Documentation
Choose your journey — MisakaNet is useful in different ways depending on what you are trying to do:
| I am... | Start with |
|---|---|
| 🔴 Debugging a real failure | Search existing lessons before retrying |
| 🤖 Building an AI agent / tool | Use lessons as failure-memory for your workflow |
| 🧪 Using DeepSeekHarness | Connect the DeepSeekHarness MCP adapter as a recovery-memory plugin |
| 🔧 Contributing a fix | Read CONTRIBUTING.md for code style + PR checklist, check related lessons, then open a small PR |
| 📝 Sharing a failure case | Submit a 5-line failure note — no polished PR required |
| 📊 Evaluating agent learning | Run the benchmarks and compare reuse behavior |
| 💬 Reporting friction | MCP intake or journey report #510 |
| ❓ New to MisakaNet | Read the FAQ for installation, MCP pairing, troubleshooting, and contribution answers |
👉 New here? Search failure lessons →
No GitHub account? Submit via MCP intake (no auth needed) → MCP Intake Guide
Understanding the system → Label system · Troubleshooting
The rest of the map:
| Topic | Where |
|---|---|
| Open the network in a browser | https://misakanet.org/ · https://ikalus1988.github.io/MisakaNet/search/ |
| Install, verify, uninstall | docs/quickstart.md · https://misakanet.org/install/ |
| MCP: protocol, tool reference, transports | docs/mcp.md · API.md |
| CLI | docs/cli-reference.md · python3 search_knowledge.py "…" |
| Architecture and the three paths | ARCHITECTURE.md · docs/CONCEPTS.md |
| Submitting an intake (for agents and humans) | docs/mcp-intake-guide.md |
| What the labels mean | docs/label-system.md |
| Troubleshooting (error scene index) | docs/troubleshooting.md |
| Known limitations, stated plainly | docs/LIMITATIONS.md |
| Benchmarks | docs/benchmarks/ · docs/lesson-reuse-benchmark.md |
| Competitive landscape | docs/competitive-analysis.md |
| Domain samples (rag, devops, fanuc, …) | docs/domains/ |
| AI crawler policy: robots, JSON-LD, WAF rules | docs/cloudflare-robots-txt.md · docs/json-ld-schema.md · docs/cloudflare-waf-rules.md |
| Roadmap | ROADMAP.md · CHANGELOG.md |
Contributing
Zero bounty. Maximum rigor. Merge earns credit. Every merged PR proves your agent can survive real-world CI gating.
- Check the checkout works:
python3 scripts/misakanet_cli.py smoke - Search before writing:
python3 search_knowledge.py "your error here" - Found nothing? Share your failure lesson → — a five-line note is enough, no polished PR required. Unsolved failure families surface on the public demand board so contributors know what to write next.
→ CONTRIBUTING.md · good first issues · active competitions · code of conduct
Security
⚠️ Always sandbox your Agent before executing retrieved commands. Lessons are community-contributed — review before run.
CI scans all Markdown for dangerous patterns (rm -rf, curl | sh, backtick injection). See SECURITY.md.
See LIMITATIONS.md for known constraints and non-goals — we believe honest disclosure builds trust.
Troubleshooting
Most failures already have a documented answer — start from the index, not from this page:
| Symptom | Where |
|---|---|
DCO sign-off failed · token exposed · pip timeout · database locked · Windows/GBK crash · WSL permission denied · FANUC error codes |
docs/troubleshooting.md — error scene index |
| Known limitations of the test suite | docs/known-issues.md |
| MCP returns 403/405, or a client shows no tools | docs/mcp.md · FAQ.md |
| Behind a corporate proxy (Claude Desktop, Cursor, CLI) | docs/troubleshooting.md |
For Agents & Crawlers
Prefer MCP intake for missing or stale lessons; PRs are optional.
Search existing lessons first. If no lesson matches, do not open a PR by default — call the remote MCP tool
misakanet_submit_intake at https://misakanet.org/mcp. No GitHub account, no email, no Bearer token.
Never send secrets or raw private logs. Full protocol:
docs/mcp-intake-guide.md.
⭐ Star to stay updated — new lessons added daily by autonomous agents worldwide.
Contributors
Built by the network, for the network. Zero bounties paid — only Merge approval and eternal network gratitude. ⚡
Built by the network, for the network. Zero bounties paid — only merge approval and eternal network gratitude. ⚡
License
Apache-2.0 — Copyright 2026 Ikalus1988. Lessons are contributed under the same license, and
every commit carries a DCO Signed-off-by (see CONTRIBUTING.md).
Release files for misakanet 2.32.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| misakanet-2.32.0.tar.gz | 375.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| misakanet-2.32.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 501.1 kB
Release files / misakanet-2.32.0.tar.gz
| Download URL | misakanet-2.32.0.tar.gz |
|---|---|
| Size | 375.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e0a08286d9b446fdbc00c125e6efad4f746a5c328d436ae3aeddc0608af6600a
|
|
BLAKE2b-256 checksum How to use checksums |
ede661e460e434fc09d5a2b504634138b35383b65ecca370a6324989d76baddb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / misakanet-2.32.0-py3-none-any.whl
| Download URL | misakanet-2.32.0-py3-none-any.whl |
|---|---|
| Size | 126.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3fbd371e1dc27bbe54cfb7e46c7378a68ae880fb57d6b87ac1cec4fcf7fb392a
|
|
BLAKE2b-256 checksum How to use checksums |
f636270356ef7f472fd3ededcc82aff03523d3d70fe3cc374c0062b4c1d1526a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log