MisakaNet

Searchable store of past coding-agent failures and their fixes, looked up by error text

By Ikalus1988 (individual) Python Remote (hosted) · Streamable HTTPLocal · stdio Knowledge and memoryDeveloper tools

67 popularity score ★ 555 ↓ 2.1k/wk

Connect your client

Remote (hosted)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude Codeterminal
claude mcp add --transport http misakanet https://misakanet.org/mcp
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "misakanet": {
      "url": "https://misakanet.org/mcp"
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.misakanet]
url = "https://misakanet.org/mcp"
Local (PyPI)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

FirstTerminal
pip install misakanet
Claude CodeTerminal
claude mcp add misakanet -- python3 -m misakanet.server
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "misakanet": {
      "command": "python3",
      "args": [
        "-m",
        "misakanet.server"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "misakanet": {
      "command": "python3",
      "args": [
        "-m",
        "misakanet.server"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "misakanet": {
      "type": "stdio",
      "command": "python3",
      "args": [
        "-m",
        "misakanet.server"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.misakanet]
command = "python3"
args = ["-m", "misakanet.server"]
Gemini CLITerminal
gemini mcp add --scope user misakanet python3 -- -m misakanet.server
Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
git clone https://github.com/Ikalus1988/MisakaNet.git
cd MisakaNet
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements.txt
Claude CodeTerminal
claude mcp add misakanet -- '<ABSOLUTE_PATH_TO_CLONE>/.venv/bin/python3' '<ABSOLUTE_PATH_TO_CLONE>/scripts/mcp_server.py'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "misakanet": {
      "command": "<ABSOLUTE_PATH_TO_CLONE>/.venv/bin/python3",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/scripts/mcp_server.py"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "misakanet": {
      "command": "<ABSOLUTE_PATH_TO_CLONE>/.venv/bin/python3",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/scripts/mcp_server.py"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "misakanet": {
      "type": "stdio",
      "command": "<ABSOLUTE_PATH_TO_CLONE>/.venv/bin/python3",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/scripts/mcp_server.py"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.misakanet]
command = "<ABSOLUTE_PATH_TO_CLONE>/.venv/bin/python3"
args = ["<ABSOLUTE_PATH_TO_CLONE>/scripts/mcp_server.py"]
Gemini CLITerminal
gemini mcp add --scope user misakanet '<ABSOLUTE_PATH_TO_CLONE>/.venv/bin/python3' -- '<ABSOLUTE_PATH_TO_CLONE>/scripts/mcp_server.py'

Settings 2

MISAKANET_GAP_LOG Optional: File where searches with no match are logged. Default data/search_gaps.jsonl under the install root. For misakanet_search.
MISAKANET_USAGE_DISABLE_REMOTE Optional: Set to 1 to keep usage reports from being sent to the project. For misakanet_submit_usage.

What it does

MisakaNet keeps a corpus of failure lessons. Each is a Markdown file in its GitHub repository that records an error, why it happened, the fix and how the fix was checked, and each carries an evidence level from E0 (an intake nobody has reviewed) up to E4 (seen reused by two or more separate clients). An agent that hits an error sends the error text and gets back the closest lessons, ranked by BM25 keyword scoring. On the hosted endpoint a semantic fallback with embeddings kicks in only when BM25 finds nothing. If there is still no match, the reply is no_match plus an intake the agent can file so the gap turns into a lesson later.

You can reach it two ways. The hosted endpoint at https://misakanet.org/mcp takes reads without an account and offers 8 tools. The local stdio server comes from PyPI (`python3 -m misakanet.server`) or a clone (`scripts/mcp_server.py`) and registers 11 tools, five misaka:// resources and three prompts. The three extra tools are misakanet_submit_usage, misakanet_usage_status and misakanet_memory_context, and they work against the local checkout. Write tools hand an intake or a full lesson over for review instead of publishing it, and misakanet_me_inbox lets the agent come back later to see whether anyone answered.

Most of the install routes the README lists don't install this server at all. The npm package called misakanet is a plugin for DeepSeek Harness and Codex. Claude Code can add the repository as a plugin marketplace, and Cindy has its own plugin with the id misakanet. The npm installer @misaka-net/misakanet-setup writes the hosted endpoint into each client's config, and for DeepSeek Harness it writes only the rules file, so the plugin still has to be added by hand. Per the comments in pyproject.toml, the PyPI package's search engine reads `lessons/` from a repository checkout and the package has no way to fetch the corpus remotely.

What it needs

To run it yourselfPython 3.11+
Runs onmacOS, Windows, Linux
Also
  • A git clone of the repository for a local lesson corpus

Hosted: any MCP client that speaks streamable HTTP, with no account needed to read. Local: the PyPI package brings the code but no lessons, so clone the repository for its lessons/ folder. Writing lessons through misakanet_write_lesson needs a token from misakanet_register.

Limits

  • Not covered Knows only the failures already indexed. It is not general knowledge or a store for your own project notes.
  • Limit Local search is lexical keyword matching only, so a query phrased as a goal without concrete error words finds little there.
  • Not covered The hosted endpoint answers tools/list and tools/call only, so resources and prompts work on the local server alone.
  • Limit A pip install without a checkout has no lessons: search then returns an 'index not built' error.
  • Limit Lessons are community-written and marked indexed, not verified. The evidence level says how far each is proven.
  • Early release misakanet_submit_usage is marked experimental in its own tool description.
  • Rate limit Hosted reads have a per-address burst limit.

It only knows the failures that have been indexed. Local search is BM25 keyword matching, so a query phrased as a goal rather than with concrete error words finds little. The hosted endpoint adds an embedding fallback only when BM25 returns nothing. The hosted endpoint answers tools/list and tools/call only, so resources and prompts are local-only (docs/mcp.md). A pip install without a checkout has no lessons to search: per pyproject.toml the engine reads `lessons/` from a checkout, and without an index the search tool returns an 'index not built' error. Lessons are community-contributed and marked indexed, not verified. Hosted reads have a per-address burst limit.

Who it suits

Suits developers running coding agents who keep hitting the same environment and tooling errors (Docker, WSL, CI, pip, MCP setup) and want the agent to check known fixes first. The hosted endpoint is the quick route, with nothing to install and no sign-in for reads. Pick the local clone if you want resources, prompts and the memory-context tool, or to search offline. It is a poor fit for storing your own project notes or general cross-session memory, which its makers say it is not built for, and for teams that cannot run community-written commands without review.

Tools 11

7 only read, 4 change things. A ? marks an optional parameter.

misakanet_search
Finds lessons matching error text, a keyword or a topic; 5 results by default, set with topquery: stringdomain?: stringtop?: integerexplain?: booleandetail?: enumkind?: enumbm25_weight?: numbermetadata_weight?: numberbaseline_weight?: numberinclude_stale?: boolean
misakanet_get_lesson
Returns one lesson by its repository path or lesson IDpath?: stringid?: string
misakanet_submit_usage changes
Experimental: reports whether a lesson helped (local only)lesson_id: stringtool?: stringoutcome?: string
misakanet_submit_intake changes
Files a short failure report when no lesson matched or one was wrong; it is reviewed before it becomes a lessonkind?: enumproblem: stringerror?: stringwhat_tried?: stringfix?: stringverification?: stringmatched_lesson_id?: stringsource?: string
misakanet_write_lesson changes
Submits a complete structured lesson for review; needs a registered tokentitle: stringdomain: stringproblem: stringroot_cause: stringfix: stringverification?: stringtags?: arraytoken?: stringsource?: string
misakanet_preflight
Rates the risk of a planned operation against known lesson triggers before it startsintent: stringcontext?: string
misakanet_usage_status
Shows current usage and remaining quota (local only)user?: string
misakanet_register changes
Registers an agent and returns a node ID and token for write toolsagent_type?: stringclient_id?: string
misakanet_memory_context
Pulls lessons relevant to a task before work begins (local only)task: stringdomain?: stringtop_n?: integer
misakanet_me_events
Shows reuse evidence for a lesson, such as distinct-client retrievals, helpful votes and benchmark citationslesson_id?: stringlesson_path?: string
misakanet_me_inbox
Checks for maintainer answers or a lesson conversion on an intake you filedintake_id?: stringdedup_key?: string

Resources 5

misaka://lessons/index
List of all published core and contrib lessons
misaka://protocol/overview
Protocol settings: trust tiers, rings and scoring
misaka://docs/readme
Project overview and quick start
misaka://docs/faq
Troubleshooting FAQ
misaka://docs/changelog
Latest release notes

Prompts 3

search_lesson
Guided lesson search from a query and optional domain
triage_failure
Structured triage of an error with optional context
release_audit
Release readiness check for a given version

Similar servers