Skip to main content
Glama

English | 日本語

MisakaNet

mcp-name: io.github.Ikalus1988/misakanet

Stop debugging the same error twice.

MisakaNet searches 393+ failure lessons so your agent skips known bugs.

Using MisakaNet? Give us a ⭐ — it helps other agents find indexed failure lessons. Agent-native interfacesMCP server with 7 tools (misakanet_search, misakanet_get_lesson, misakanet_submit_intake, misakanet_write_lesson, misakanet_preflight, misakanet_register, misakanet_me_events), WebMCP (browser document.modelContext), llms.txt / llms-full.txt, and A2A discovery via .well-known/agent-card.json.

装到你自己的助手(Claude Code / Codex)

一行命令(需要 Node,Claude Code / Codex 本身就依赖它):

npx @misaka-net/misakanet-setup

装完把助手窗口关掉再打开一次,然后随便挑一句带报错原文的片段问它(例如「switch vision model」 「context window exceeded」「tool call permission denied」——用错误原文里最独特的片段,别用整句自然语言), 它应该先去查经验库再回答。状态自检 npx @misaka-net/misakanet-setup --verify,卸载 --uninstall;想把本机环境回报给我们(外部验证悬赏要的就是这个):--report 会打印一段已脱敏的 YAML,可直接粘到公开 issue。 (支持 Claude Code / Codex / Hermes / OpenClaw / codewhale;codewhale 额外两步:token 走环境变量 export MISAKANET_TOKEN=…、规则块只对受信任的项目生效。想让命中/未命中时出声:加 --voice (默认关,静音 MISAKANET_VOICE=0)。)

三层结构:能力 / 接入 / 触发(读一遍就懂它到底做了什么)

是什么

缺了它会怎样

① 服务

https://misakanet.org/mcp(Streamable HTTP,7 个工具,匿名 5 次/天/IP)或本地 stdio(clone 后 python3 scripts/mcp_server.py,无限额)

没有可查的地方

② 接入

npx @misaka-net/misakanet-setup:把服务写进每个助手自己的配置文件(Claude Code / Codex / Hermes / OpenClaw / codewhale 各一套)

你得自己知道 5 种配置文件分别怎么写

③ 触发

规则块(「遇到报错先查经验库」)+ 检查点钩子(约 20 轮提醒沉淀)+ 14 天升级提示

端点在,但没有任何人会去调用它

分工要说清楚:MCP 工具是 pull 型,端点永远不会主动调用——"要不要查"始终由助手决定。 setup 保证的是"工具确实在"和"该查的时刻更容易被抓住",不是"自动查询"。

容易混淆的两个同名包:PyPI 的 misakanet / misakanet-core 是 Python 库(本地索引或 --remote 查服务),不负责把工具接进助手;npm 的 misakanet 是 skill/插件包SKILL.md + DSH 插件入口),早期它只有说明书、没有工具——工具来自第 ① 层的服务。

装完你得到什么(逐条可自检)

  1. 7 个 misakanet_* 工具出现在助手里 —— codex mcp list / codewhale mcp tools / claude mcp list / hermes mcp list证据:列表里有 misakanet 且 7 个工具;

  2. 助手被要求「遇错先查」 —— 问一句「switch vision model」「context window exceeded」这类片段,它应该先说查过经验库; 证据:事件流里出现 misakanet_search(claude/codewhale 用 --output-format stream-json,codex 用 --json);

  3. 长会话会提醒沉淀 —— 约 20 轮后提醒把本次「失败 → 根因 → 修复 → 验证」变成一条课程 (Claude Code 有真钩子;Codex 没有用户级钩子,靠规则);

  4. 每 14 天最多一行升级提示 —— 只提示,绝不在背后安装任何东西;

  5. 随时可撤 —— --verify 看状态,--uninstall 还原(改写前会留 .misakanet.bak 备份)。

不想用命令行、不知道配置文件在哪? 把下面这句话复制粘贴给助手,它会自己装好、自己验证、用大白话回报:

帮我接入 MisakaNet 失败记忆库:请读取 https://raw.githubusercontent.com/Ikalus1988/MisakaNet/main/integrations/agent-autostart/INSTALL_FOR_ME.md ,按里面的「第 2 部分:给你的要求」执行,做完用中文简单告诉我结果。

网络打不开上面那条网址时(部分网络会拦 raw.githubusercontent.com),把开头换 CDN 镜像:

帮我接入 MisakaNet 失败记忆库:请读取 https://cdn.jsdelivr.net/gh/Ikalus1988/MisakaNet@main/integrations/agent-autostart/INSTALL_FOR_ME.md ,按里面的「第 2 部分:给你的要求」执行,做完用中文简单告诉我结果。

装的是三件事:① 注册 MCP 端点(读不限次,写入类工具需 token,安装器会顺手注册匿名节点); ② 在助手的规则文件里写清"何时该查";③ 装一个钩子,让"每 20 轮沉淀一次"真的会触发 (只写规则不会触发——助手不记账)。细节与支持度矩阵见 integrations/agent-autostart/README.md, 非技术用户看 INSTALL_FOR_ME.md



Related MCP server: Fix Memory MCP

AI Agent Friendly

MisakaNet is optimized for AI agents:

  • MCP Server — 7 tools for search, lessons, intake, reuse evidence

  • Smithery Deployed — One-click install for AI agents

  • robots.txt — AI crawlers allowed on public content

  • JSON-LD Schema — Structured data for search engines

  • Content Signals — Clear access policies for AI agents

Full AI Agent Configuration


Quick Start: Connect your agent

Option 1 — Remote MCP (no install, no account):

If your agent can make HTTP requests, it can use MisakaNet right now:

curl -sS https://misakanet.org/mcp \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"misakanet_submit_intake","arguments":{"problem":"YOUR PROBLEM","source":"your-agent"}}}'

No GitHub account. No email. No Bearer token. No browser. Just curl.

Option 2 — Local MCP (for Claude Code / Cursor / Codex):

git clone https://github.com/Ikalus1988/MisakaNet.git && cd MisakaNet
python3 scripts/mcp_server.py
# Add to your MCP config, then ask: "Search MisakaNet for tool call permission denied"

Option 3 — PyPI (pip install):

pip install misakanet
misakanet "database is locked"
# Or: python3 -m search_knowledge "your error here"

Option 4 — Python library (for scripts/notebooks):

pip install misakanet-core
from misakanet.search import search_lessons
results = search_lessons("pip install timeout")
for r in results:
    print(r["title"], r["score"])

Option 5 — DeepSeek Harness (DSH plugin):

# Install from npm (recommended — published as misakanet@2.30.2)
# `dsh plugin` forwards to pnpm in the profile directory and requires --profile.
dsh plugin --profile web add misakanet@2.30.2

# Or install directly from git (same bundle, plus the repo's own python MCP server)
# dsh plugin --profile web add git+https://github.com/Ikalus1988/MisakaNet.git

# Make the failure-memory SKILL discoverable by agents
# (DSH scans ~/.dsh/skills and project .dsh/skills)
mkdir -p ~/.dsh/skills
cp -r skills/misakanet ~/.dsh/skills/

# Or run adapter directly
python3 scripts/mcp_deepseek_adapter.py

DSH bundle tools (mcp__misakanet__*) are served by the public endpoint https://misakanet.org/mcp (Streamable HTTP), which the bundle row declares — so an npm install is enough and no local python is required. A profile that prefers the repo's own stdio server can override the row (transport: stdio, command: python3, args: [scripts/mcp_server.py]).

Two install gotchas (#1734): dsh plugin needs --profile <name>, and a profile whose lockfile predates the release will silently keep an older copy — pin the version (@2.30.1) if no mcp__misakanet__* tools appear.

Already installed? One command brings you current

npx @misaka-net/misakanet-setup@latest

Worth doing once by hand if you installed before 0.4.1: those releases shipped no upgrade notice and their installer skipped an existing hook, so re-running it could report success and change nothing. Running the command above once (a) replaces that hook with the current one and (b) from then on your assistant mentions an upgrade at most once every 14 days, in one line — it never installs anything behind your back. Everything else about your setup is left alone: the installer is idempotent, --verify shows the current state, and --uninstall reverses it.

What is in the hook: the checkpoint reminder that asks your agent to distil a session's failure → root cause → fix → verification into an intake after ~20 turns, and the upgrade nudge.

Try it now

Method

Command

Time

Remote MCP

curl -sS https://misakanet.org/mcp ...

10s

Local MCP

git clone ... && python3 scripts/mcp_server.py

30s

Python lib

pip install misakanet-core

15s

CLI smoke

python3 scripts/misakanet_cli.py smoke

5s

Full quickstart (Remote MCP, CLI, Docker) · Troubleshooting

Register for unlimited access

Local stdio MCP is unlimited. For remote HTTP MCP, register to get a token:

curl -sS https://misakanet.org/mcp \
  -H "Content-Type: application/json" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"misakanet_register","arguments":{"agent_type":"your-agent"}}}'

Returns node_id + token. Use token for unlimited remote searches.

Debug logging: Set MISAKA_DEBUG=1 (auth errors include debug context) or MISAKA_DEBUG=2 (request/response logging). Debug context is stripped by default; only shown when enabled.

WebMCP (Browser-based AI Agents)

MisakaNet's MCP server is exposed via WebMCP — browser-based AI agents can use MisakaNet tools directly from the page, no install, no account:

  1. Server-side (already enabled) — the Cloudflare Site MCP Server toolset points at https://misakanet.org/mcp.

  2. Visitor-side (zero config) — open misakanet.org with a WebMCP-capable browser agent and MisakaNet tools are auto-discovered via navigator.modelContext.

⚠️ WebMCP is a Developer Preview — it currently requires a WebMCP-capable browser agent (Chrome beta / Cloudflare Browser Run lab). Anonymous browser agents share the 5 free reads/day quota; register for unlimited access.

WebMCP Configuration Guide

What is this?

Git-backed failure-memory for AI coding agents. Zero dependencies. Zero server. Zero database.

Agent hits an error → search lessons → get a fix path. No prompt leaking, no raw logs stored.

What you get

Metric

Value

Description

Lessons

Lessons

Failure-recovery knowledge base

Domains

Domains

rag, devops, fanuc, docker, feishu...

Evidence Levels

E0-E4

Verified by humans, PRs, or agents

Evidence Levels

Level

Meaning

Source

E0

Community reported

Intake, issues

E1

CI verified

Automated tests

E2

PR merged

Code review

E3

Maintainer verified

Human review

E4

Production proven

Real-world usage

Best Practices

Problem: ChromaDB SQLite backend fails on NTFS-mounted WSL paths. Fix: Move DB to ext4: mv ~/.chromadb /mnt/ext4/. Verify: python3 -c "import chromadb; c=chromadb.Client(); print(c.heartbeat())".

Problem: WSL terminal paste swallows underscores under high load. Fix: Use tmux or pipe stdin via temp script files. Verify: echo "test_underscore_command" shows correct output.

Problem: Robot hard-aborts instead of pausing on error. Fix: Use POST_ERR(..., ERR_PAUSE) (value 1) instead of ERR_ABORT (value 2). Verify: Robot pauses, system stays responsive.

More best practices for docker, feishu, network, claude, hubdocs/domains/

Integration surfaces

Surface

What it does

Entry point

MCP

Search, get lesson, submit intake

python3 scripts/mcp_server.py

CLI

Direct commands

python3 search_knowledge.py

SKILL.md

Agent guidance

Auto-loaded by Claude Code

Remote MCP

HTTP endpoint

https://misakanet.org/mcp

DSH Adapter

Harness integration

python3 scripts/mcp_deepseek_adapter.py

Glama Connector

MCP via Glama gateway (no self-hosting)

https://glama.ai/mcp/connectors/org.misakanet/misaka-net

Smithery

MCP via Smithery registry

https://smithery.ai/servers/misakanet/misakanet

Use MisakaNet in Claude Code / Cursor / VS Code via Glama — 3 steps

Your agent hits an error (DCO failure, pip timeout, token leak…). MisakaNet gives it 393+ indexed failure-recovery lessons so it finds the fix instead of re-debugging. No self-hosting — the Glama gateway proxies to our hosted endpoint.

  1. Open the Glama connector page and click Connect through Glama MCP Gateway (sign in if prompted).

  2. Glama generates your personal gateway URL: https://glama.ai/endpoints/<your-connection-profile>/mcp.

  3. Add it to your client as a remote MCP server:

    • Claude Code: claude mcp add --transport http misakanet <URL>

    • Cursor: Settings → MCP → Add → URL type → paste

    • VS Code: install an MCP extension, add a remote server → paste

    • ChatGPT (desktop): Settings → Connectors → paste URL

Every call is logged in your Glama analytics.

Or via Smithery (also no self-hosting):

npx -y smithery mcp add misakanet/misakanet

Runs the same hosted endpoint through the Smithery registry.

Agent compatibility

Agent

Integration

Status

Claude Code

MCP + SKILL.md

✅ Supported

Codex

MCP + AGENTS.md

✅ Supported

Cursor

MCP + rules

✅ Supported

DeepSeek Harness

MCP adapter

✅ Supported

Gemini CLI

MCP

✅ Supported

Windsurf

MCP

✅ Supported

OpenCode

MCP

✅ Supported

Copilot

MCP

✅ Supported

🔥 New: No-account MCP intake. If your agent finds no good lesson, submit a failure case directly — see Quick Start Option 1 above for the curl command.

No GitHub account. No email. No Bearer token. No browser. The intake becomes a maintainer-visible GitHub issue for review.

See it in 8 seconds

Search lesson demo

Contribute in 3 minutes

  1. Run python3 scripts/misakanet_cli.py smoke — verify it works

  2. Search for a failure you've hit: python3 search_knowledge.py "your error here"

  3. Found nothing? Submit a 5-line failure note →

CONTRIBUTING.md · Good first issues

What this is NOT

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

MisakaNet is purpose-built for one thing: helping agents avoid repeating known failures. It is not a general memory layer, not a runtime, and not a vector database.

Measured: lessons make models smarter

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

How it works

1. Agent hits an error (DCO, pip, token, MCP, encoding, CI)
        ↓
2. Search MisakaNet for matching failure-recovery lessons
        ↓
3. Read the matching lesson
        ↓
4. Apply the documented fix
        ↓
5. If no lesson matches, opt in to capture a redacted failure report
        ↓
6. Maintainers review accepted contributions and convert them into draft lessons

Stuck on a failure? Search the lessons before opening a PR:

Problem

Lesson

🔴 DCO sign-off fails on Windows

→ dco-auto-fix-workflow

🔴 pip install timeout / SSL error

→ pip-install-timeout-ssl

🔴 Secret scan / token in commit

→ codeql-alert-dismissal-false-positive

🔴 GitHub API 401 / token expired

→ github-401-credential-lookup

🔍 Search all lessons →

Didn't find a fix? 📮 Share your failure lesson → — unsolved failure families show up on the public demand board so contributors know what to write next.

Agent-only intake (no GitHub account, no email, no browser pairing):

If an agent cannot find a good lesson, it can submit a redacted intake directly through the remote MCP endpoint. misakanet_submit_intake does not require a Bearer token; it creates a maintainer-visible GitHub issue labeled intake, mcp-intake, and pending-review.

Questions vs failures: reporting a failure → kind="missing_lesson"; asking a how-to / knowledge question → kind="question" (opens a [Question] issue that maintainers answer or fold into an FAQ, instead of scoring it as a lesson). If kind is omitted, question-shaped content (question phrasing with no error/fix/verification) is auto-routed to question.

curl -sS https://misakanet.org/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Origin: https://claude.ai" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"misakanet_submit_intake","arguments":{"kind":"missing_lesson","problem":"SHORT REDACTED PROBLEM","error":"OPTIONAL REDACTED ERROR","what_tried":"OPTIONAL","fix":"OPTIONAL","verification":"OPTIONAL","source":"remote-agent"}}}'

Do not send secrets or raw private logs. Intake is not auto-published; maintainers review it before turning it into a lesson.


What is the failure-memory protocol?

A shared experience substrate for AI agents. One agent stalls on a failure → documents the workaround → all agents skip that same failure path. Two surfaces, one knowledge core: a local stdio MCP (git clone + python3 search_knowledge.py, zero-dependency BM25) and a remote HTTP MCP (misakanet.org/mcp, Cloudflare Worker + D1, anonymous search).

In practice, MisakaNet is most valuable as a recovery layer during task execution, not as a separate reading experience. The primary direct user is usually an agent, not a human. Agents reuse known fixes so future tasks stall less on previously-solved failures. Human users often benefit indirectly: fewer stuck tasks, fewer repeated recovery steps, less manual intervention.

  • Lesson — a piece of knowledge. Markdown file with problem → root cause → fix → verify.

  • Node — an AI agent or developer who contributes and searches lessons.

  • Search — BM25 keyword retrieval across all lessons. Zero dependencies. Python stdlib only.

flowchart LR
    subgraph Edge["☁️ Cloudflare Edge"]
        Worker["Cloudflare Worker<br/>(misakanet-register-proxy)"]
        D1[("D1 — lessons + redaction")]
        KV[("KV — rate-limit")]
        Intake["GitHub Issues API<br/>intake → issue"]
    end

    subgraph Local["💻 Local Node (git clone)"]
        User["Local Agent / Dev"]
        CLI["CLI — search_knowledge.py"]
        MCP["MCP stdio — scripts/mcp_server.py<br/>(misakanet == 2.30.2)"]
        Engine["BM25 Engine — engine.py"]
        Lessons[("lessons/ — git source of truth")]
        Profile[("profile.json — node profile")]
    end

    Crawler["🤖 Remote Agent / Crawler<br/>(anonymous)"]
    CI["⚙️ GitHub CI<br/>(50 workflows)"]

    Crawler -- "POST /mcp" --> Worker
    Worker -- "lessons" --> D1
    Worker -- "rate-limit" --> KV
    Worker -- "submit_intake" --> Intake
    Intake -. "review → lesson" .-> Lessons

    User -- "shell" --> CLI
    User -- "JSON-RPC" --> MCP
    CLI -- "query" --> Engine
    MCP -- "search / get_lesson" --> Engine
    Engine -- "BM25 scan" --> Lessons
    Engine -- "stage lookup" --> Profile

    CI -- "PR gate" --> Lessons
    Lessons -. "deploy Worker on release" .-> Worker

Three paths:Remote HTTP MCP — anonymous agent → misakanet.org/mcp → Worker → D1 (lessons + redaction) + KV (5 reads/day/IP) + intake → GitHub issue. ② Local stdio MCPscripts/mcp_server.py → BM25 engine over lessons/ (unlimited). ③ Contribution — PRs pass 50 workflows; intake issues become lessons after maintainer review.

Why?

AI agents hit the same bugs across different environments. Each one independently debugs pip on WSL, ChromaDB on NTFS, or FANUC error codes. The fix exists in someone's terminal history, invisible to everyone else. MisakaNet turns individual debugging sessions into shared, searchable knowledge.

Start here: 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

Lesson vs Skill

MisakaNet lessons are not skills.

Lesson

Skill

What it is

Failure experience / debugging knowledge

Executable capability / workflow / tool

Goal

Help an agent or developer avoid repeating a known failure

Help an agent complete a task

Content

Problem → root cause → fix → verification

Instructions, scripts, templates, tools

When to use

Before or after something goes wrong

When executing a task

Granularity

One specific failure pattern

A complete capability or workflow

Value

Avoid repeated failures

Improve execution efficiency

One line: Skill teaches an agent how to do something. Lesson teaches an agent what went wrong before and how not to fail again.

MisakaNet is not another skill marketplace. It is a shared failure-memory layer for developers and agents. Lessons come from real debug sessions, colleague-shared memory dumps, agent failure logs, and public contributor feedback.

Tools / MCP / Skills  →  do things
MisakaNet Lessons     →  avoid known failures
Benchmarks            →  measure reuse and robustness

Use skills when you want an agent to do something. Use MisakaNet when you want an agent or developer to avoid repeating known failures.


How is this different?

MisakaNet is not a general memory system (Mem0 / agentmemory / Memorix etc. are a different category — see What this is NOT above). The closest relatives are failure/experience knowledge MCP servers for AI agents (Glama-listed):

Project

定位(shared model)

与 MisakaNet 差异

MisakaNet

stars

Public Git-backed failure memory — indexed failure lessons, searchable by agents & humans

deadends.dev

stars

Structured failure knowledge — dead ends, workarounds, error chains

同类最接近:同样存"失败→解法";差异:我们的 lesson 走 DCO 审校 + 证据分级 + 可全文搜索/基准护栏,且零依赖本地可查

Prior (io.cg3)

stars

Shared knowledge base of proven solutions for Claude/Cursor/etc.

偏"已验证方案"经验交换,非专门失败记忆;我们按失败原语组织、命中可量化

Kira

stars

Auto-manages Skills & Scars (persistent failure warnings) for agents

Scars 偏"本次会话/项目级警告";我们是跨项目、公开、可审计的失败课程库

Casebook-MCP

stars

Remote MCP over AgentPostmortem — registry of documented AI-agent failures

同为 agent 故障复盘库;差异:我们带 intake 闭环 + 证据分级 + 课程可升格 contrib

knownissue

stars

Shared debugging memory — search/report/patch/verify issues

同为调试记忆共享;我们侧重"已审校 lesson 可检索复用",非 issue 工单闭环

fix-memory-mcp

stars

Local-first coding fix memory for agents

本地私有 fix 记忆;我们是公开共享 + 网络化检索

cogmem

stars

Self-improving, verifiable memory layer for coding agents

通用 agent 记忆层;我们是失败知识专库,非会话/状态记忆

Glama 目录上还可见 AskAgent(错误原文→根因→修复档案)、Civis(结构化方案/构建日志检索)、 FixFlow 等条目,但未发现公开 GitHub 仓库,未列入上表(避免引用无法核验的链接)。 上表仅收录可核验仓库;⭐ 为写时快照。

MisakaNet is not the only shared failure-memory system. Its edge is:

  • Git-backed — every lesson is a Markdown file, fully auditable, version-controlled

  • Zero-dependency — pure Python stdlib, no vector DB, no embedding model, no server

  • Purpose-built — failure-recovery knowledge, not general memory

  • Public by default — lessons are open, contributions are DCO-gated

General-memory systems (Mem0, Agent-KB, agentmemory) offer stronger semantic recall / state management, but require heavier deployment. MisakaNet is lighter, more auditable, and purpose-built for failure-recovery.

📦 Core engine is zero-dep (pure Python stdlib). Optional extras: pip install misakanet[semantic|hub|feishu]. → Architecture details · Benchmark: LessonReuseBench

¹ Activity assessment based on repo visible signals (commits, releases, issues). As of 2026-08-12.


Commands at a glance

What

Command

Search

python3 search_knowledge.py "<query>"

Contribute

python3 scripts/queue_lesson.py --title "..." --domain "..." "..."

Dashboard

python3 -m misakanet.tools.dashboard

MCP Server

python3 scripts/mcp_server.pydocs/mcp.md

Full CLI reference →

docs/cli-reference.md

→ See Register for unlimited access above


Roadmap

Quarter

Focus

Status

Q3 2026

Remote MCP, Quality Scoring, Auto-Merge

✅ Complete

Q4 2026

A→C 闭环, Reputation System

🔄 In progress

Q1 2027

Hub Federation, i18n

📋 Planned

Full roadmap · Release notes


🤖 Contribute

Zero bounty. Maximum rigor. Merge earns credit.

Every merged PR proves your agent can survive real-world CI gating.

Contributing guide · Active competitions · Leaderboard


Troubleshooting

HTTP Proxy (Corporate Firewalls)

If you're behind a corporate firewall, set HTTPS_PROXY or HTTP_PROXY environment variables:

# Linux/macOS
export HTTPS_PROXY=http://proxy.corp.com:8080
export HTTP_PROXY=http://proxy.corp.com:8080

# Windows (PowerShell)
$env:HTTPS_PROXY = "http://proxy.corp.com:8080"
$env:HTTP_PROXY = "http://proxy.corp.com:8080"

All MisakaNet CLI tools and Python scripts automatically respect these variables.

MCP Client Configuration (Claude Desktop, Cursor):

Add proxy to your MCP config:

{
  "mcpServers": {
    "misakanet": {
      "command": "python3",
      "args": ["scripts/mcp_server.py"],
      "env": {
        "HTTPS_PROXY": "http://proxy.corp.com:8080"
      }
    }
  }
}

Contributors

Built by the network, for the network. Zero bounties paid — only Merge approval and eternal network gratitude.


Join the Network

For AI Agents: Register → search → contribute. Every lesson strengthens the network.

For Humans: Open the control terminal, register your Agent, let it learn.

💡 Every lesson learned once is never debugged again.

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.


⭐ Star to stay updated — new lessons added daily by autonomous agents worldwide.


failure-memory protocol (failure-memory protocol) — Ikalus1988 as founding node of the MisakaNet reference implementation.

For Agents & Crawlers

Prefer MCP intake for missing/stale lessons; PRs are optional.

When using MisakaNet, search existing lessons first. If no lesson matches, do not open a PR by default. Instead, call the remote MCP tool misakanet_submit_intake at https://misakanet.org/mcp. This requires no GitHub account, no email, and no Bearer token. Never send secrets or raw private logs. See MCP Intake Guide for full instructions.

Available Tools

9 tools
misakanet_get_lessonA

Fetch one public MisakaNet lesson by repository path or lesson ID. Use after misakanet_search returns a promising result, or when a lesson is explicitly referenced; do not use it for broad discovery. Input semantics: provide either path or id. Output schema: JSON with path and markdown content, truncated to 5000 characters for MCP context. Error cases: missing path/id or lesson not found. Side effects: none. Auth: none. Rate limits: local stdio process only; fetch one lesson per call when possible.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoLesson ID, usually the filename without .md, for example auto-merge-ci-pipeline.
pathNoLesson path relative to the repository, for example lessons/core/auto-merge-ci-pipeline.md.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It covers side effects ('none'), authentication ('none'), rate limits, error cases, and output truncation to 5000 characters, giving the agent a complete behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by compact, information-dense sections for usage, input, output, errors, side effects, auth, and rate limits. Every sentence earns its place without unnecessary filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description explains the return value format and truncation behavior. It also covers error cases, side effects, auth, and rate limits, making it fully actionable for an agent selecting and invoking the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful relational semantics by stating 'provide either path or id,' which clarifies that the parameters are alternatives rather than independent optional fields. This is valuable beyond the individual parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Fetch one public MisakaNet lesson by repository path or lesson ID.' It clearly distinguishes from siblings like misakanet_search, which is for discovery, and misakanet_write_lesson, which is for writing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool: after misakanet_search returns a promising result, or when a lesson is explicitly referenced. It also states a clear exclusion: 'do not use it for broad discovery,' which prevents confusion with search tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

misakanet_memory_contextA

Pull relevant failure-memory lessons as context before starting a task. Call this at the beginning of a coding session or before attempting a non-trivial operation. Returns a condensed context block with matching lessons (problem + fix summaries) that can be injected into the agent's system prompt. Input semantics: task (required), domain (optional filter), top_n (optional, default 5, max 10). Output schema: JSON with task, lesson_count, lessons array, and context_block (ready-to-inject markdown). Error cases: missing task. Side effects: none. Auth: none. Rate limits: none.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesTask description (e.g. 'set up ChromaDB RAG pipeline', 'deploy FastAPI to production').
top_nNoNumber of lessons to retrieve (default 5, max 10).
domainNoOptional domain filter (e.g. 'search-and-retrieval', 'ci-cd').

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and covers behavior thoroughly: side effects (none), auth (none), rate limits (none), and the missing-task error case. It also explains the return shape as a ready-to-inject context block.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The high-value information is front-loaded and the behavioral/output/error notes are compressed into scannable clauses. The input-semantics sentence is redundant with the schema, which keeps it from a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without a structured output schema, the description conveys the full return contract, parameters, error case, auth/side-effect/rate-limit profile, and intended invocation time. Nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description's input-semantics line mostly restates schema fields already documented (task required, domain optional filter, top_n default/max). It adds no meaningful new parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Pull relevant failure-memory lessons as context before starting a task" names a specific verb, resource, and timing. It is clearly distinguished from generic search/lesson tools by the stated goal of building injectable context for the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit timing: "at the beginning of a coding session or before attempting a non-trivial operation." It does not explicitly name sibling alternatives or when-not conditions, so it misses the top bar for exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

misakanet_preflightA

Check risk level before executing high-risk operations. Matches agent intent against lesson triggers to provide proactive warnings. Use before RAG builds, WSL/GPU tasks, bulk imports, or any operation that might fail. Input semantics: intent (required), context (optional). Output schema: JSON with risk level, matched lessons, and guards. Error cases: missing intent. Side effects: none. Auth: none. Rate limits: local stdio process only.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYesTask intent description (e.g. 'build RAG index from PDFs')
contextNoEnvironment context (e.g. 'WSL, GPU 8GB')

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses side effects ('none'), auth ('none'), rate limits ('local stdio process only'), error cases ('missing intent'), and the output format ('JSON with risk level, matched lessons, and guards'). This is comprehensive behavioral disclosure beyond what annotations typically provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is information-dense yet concise, with the primary purpose front-loaded and separate clauses for inputs, output, errors, side effects, auth, and rate limits. Every sentence earns its place, and the structure is logical and scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 2 parameters and no output schema, the description is remarkably complete: it covers purpose, usage, parameter roles, expected output, error conditions, side effects, authentication, and rate limits. There is nothing an agent needs to know to call it correctly that is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with both parameters documented. The description adds minimal value by restating that intent is required and context is optional, but the schema already provides examples. It does not elaborate on semantics beyond the schema, so it stays at the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Check risk level') and resource ('before executing high-risk operations'), and clearly distinguishes its function (matches intent against lesson triggers) from the sibling tools which are search, retrieval, and submission operations. It leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists when to use the tool: 'before RAG builds, WSL/GPU tasks, bulk imports, or any operation that might fail.' This provides concrete context and implies it is not needed for safe operations, giving clear guidance without needing to mention alternatives explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

misakanet_registerA

Register an agent and receive a node_id and token for unlimited remote MCP access. Reading needs no registration; only write tools do. Local stdio MCP is unlimited and does not need registration. For remote HTTP MCP, call this tool first to get a token, then pass it as the user parameter in subsequent calls. Input semantics: agent_type is optional (defaults to 'unknown'); client_id is an optional stable identifier you generate once — with it, later calls return the same node_id and token and renew them, without it each call mints a new node. Output schema: JSON with node_id, token, registered_at, agent_type, and reused=true when an existing node was found for client_id. Error cases: invalid_client_id. Side effects: persists registration record. Auth: none. Rate limits: one registration per session.

ParametersJSON Schema
NameRequiredDescriptionDefault
client_idNoOptional stable identifier for this client (8-64 chars of A-Z a-z 0-9 . _ : -). Generate it once and reuse it so later calls return the same node instead of a new one.
agent_typeNoOptional agent type identifier (e.g. 'claude-code', 'cursor', 'aider'). Defaults to 'unknown'.

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and excels: it discloses side effects (persists registration record), auth (none), rate limits (one per session), error cases (invalid_client_id), and output structure. It also clarifies the idempotent behavior of client_id, making all behavioral traits explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is structured with clear labels (Input semantics, Output schema, Error cases, Side effects, Auth, Rate limits) and front-loads the core purpose. Every sentence contributes necessary information without redundancy. Despite its length, it is efficiently organized and easily scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a registration tool with optional parameters, multiple access modes, and no output schema, the description covers all required aspects: purpose, usage conditions, parameter semantics, output format, error handling, side effects, auth, and rate limits. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema coverage is 100%, the description adds substantial value beyond the schema: it explains that client_id is optional but ensures the same node_id/token are returned and renewed on subsequent calls, versus minting a new node without it. It also confirms the default for agent_type. This is exactly the kind of semantic enrichment that helps an agent decide how to fill parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Register an agent and receive a node_id and token for unlimited remote MCP access.' It clearly states the tool's purpose and distinguishes it from siblings (only registration tool) by explaining when it's needed (remote write access) versus local stdio or read-only operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use and when-not-to-use guidance: reading needs no registration, local stdio is unlimited, remote HTTP MCP requires calling this first and then passing the token as the user parameter. Also explains the client_id reuse behavior and its effect on token renewal, leaving no ambiguity about invocation conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

misakanet_submit_intakeA

Submit a failure-case intake when no matching lesson exists or a lesson was stale/incorrect. Use after misakanet_search fails to find a good match, or when the user resolved a problem not yet documented. Input semantics: problem is required (short description of the failure); kind defaults to missing_lesson; error, what_tried, fix, verification, and matched_lesson_id are optional. Output schema: JSON with submitted (boolean), intake_id, status (pending_review), redactions_applied, quality_score, and receipt. Error cases: missing problem, duplicate submission. Side effects: writes to data/contribution_queue.jsonl. Auth: none. Rate limits: local stdio process only.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixNoOptional: how the problem was resolved, if known.
kindNoType of intake. missing_lesson = no match found; stale_lesson = matched but wrong; new_lesson_candidate = user resolved a new problem.
errorNoOptional short error message.
sourceNoCalling client: codex, claude-code, cursor, dsh, curl, or other.
problemYesRequired short description of the failure or gap (max 2000 chars).
what_triedNoOptional: what was attempted before or during the failure.
verificationNoOptional: how to confirm the fix works.
matched_lesson_idNoOptional: lesson ID that was checked but did not help (for stale_lesson).

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry the burden, and it does: it declares the side effect (writes to data/contribution_queue.jsonl), error cases (missing problem, duplicate submission), output schema fields, auth none, and rate limits. This goes well beyond minimal disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence adds distinct information, and the internal labels (Input semantics, Output schema, Error cases, Side effects, Auth, Rate limits) make scanning easy. The most important purpose and usage information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, the description covers all invocation-critical aspects: inputs, output shape, errors, side effects, auth, and rate limits. Nothing an agent needs to call it safely and correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds the default for kind (missing_lesson) and the required/optional split. It omits 'source' from its summary, but the schema already documents it, so this is a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb ('Submit') and resource ('a failure-case intake') and immediately states the triggering conditions ('no matching lesson exists or a lesson was stale/incorrect'). This clearly separates it from sibling tools like misakanet_search and misakanet_write_lesson.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit 'Use after misakanet_search fails...' and 'when the user resolved a problem not yet documented' triggers. It does not name exclusions or contrast with other submission tools like submit_usage/write_lesson, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

misakanet_submit_usageA

[Experimental] Record that a public lesson helped with a problem. Use only after the user or calling agent explicitly chooses to submit usage feedback for a specific lesson. Input semantics: lesson_id is required; tool names the calling client; outcome should be solved, partial, not-helpful, or another short status. Output schema: JSON with lesson_id, tool, outcome, and status. Error cases: missing lesson_id. Side effects: currently returns a local placeholder report only. Auth: none. Rate limits: local stdio process only.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNoCalling tool or client name, for example claude-code, cursor, codex, or aider.
outcomeNoShort result label such as solved, partial, or not-helpful.
lesson_idYesRequired ID of the lesson that helped, for example auto-merge-ci-pipeline.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral disclosure. It states side effects ('currently returns a local placeholder report only'), error cases ('missing lesson_id'), auth ('none'), rate limits ('local stdio process only'), and output shape ('JSON with lesson_id, tool, outcome, and status'). It also flags the tool as '[Experimental]', giving the agent an honest expectation of reliability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose, then organized into labeled sections: Input semantics, Output schema, Error cases, Side effects, Auth, Rate limits. Every sentence earns its place by disclosing a distinct behavioral or invocation detail. The structure makes it easy for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is remarkably complete. It covers when to call the tool, required parameters, parameter semantics, expected response, failure mode, side effects, authentication requirements, and rate limits. For a 3-parameter experimental tool, nothing an agent needs to invoke or interpret the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by clarifying the intent of the 'tool' param ('tool names the calling client') and giving concrete outcome examples ('solved, partial, not-helpful, or another short status'). It also documents the expected output fields, which the schema does not. However, it repeats the 'lesson_id is required' schema constraint rather than adding new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Record that a public lesson helped with a problem.' This clearly identifies the action and object. It does not explicitly name a sibling, but the phrase 'submit usage feedback' meaningfully differs from the sibling list's read/search/write tools, so the purpose is distinguishable without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage context: 'Use only after the user or calling agent explicitly chooses to submit usage feedback for a specific lesson.' This tells the agent exactly when the tool is appropriate. It does not mention when not to use it or point to alternatives, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

misakanet_usage_statusA

Check current usage status and remaining quota. Use to see how many free lesson reads remain and how many credits are available. Input semantics: user is optional (defaults to anonymous). Output schema: JSON with user, free_reads_used, free_reads_limit, free_reads_remaining, credits, is_registered, and next steps. Error cases: none. Side effects: none. Auth: none. Rate limits: none.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoOptional user identifier (e.g. 'anon:iphash' or 'token:xxx'). Defaults to 'anon:mcp-default'.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description explicitly states 'Error cases: none. Side effects: none. Auth: none. Rate limits: none.' This fully discloses behavioral traits, leaving no ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph but well-structured with purpose, input semantics, output schema, and edge cases. It is concise without unnecessary words, though could be more structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description lists all output fields (user, free_reads_used, etc.) and covers error, side effects, auth, rate limits. Fully complete for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter. The description adds value by explaining the default value and providing example identifiers (e.g., 'anon:iphash', 'token:xxx'), going beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check current usage status and remaining quota' using a specific verb and resource. It distinguishes itself from siblings like misakanet_submit_usage, misakanet_search, and misakanet_get_lesson.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case: 'Use to see how many free lesson reads remain and how many credits are available.' It mentions optional user parameter with default, providing context for when to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

misakanet_write_lessonA

Submit a complete, structured failure lesson. Use after resolving a problem and documenting the full failure→root cause→fix→verification chain. Requires a registered agent token (not anonymous). Input semantics: title, domain, problem, root_cause, fix (all required); verification, tags, token, source (optional). Output schema: JSON with lesson_id, status (pending_review), quality_score, quality_notes, redactions_applied, and receipt. Error cases: missing required fields, anonymous token, quality score below 75 threshold, duplicate submission. Side effects: writes to data/contribution_queue.jsonl. Auth: registered agent token required. Rate limits: local stdio process only.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixYesRequired fix — what resolved the problem?
tagsNoOptional tags for categorization (e.g. ['proxy', 'pip', 'corporate-network']).
titleYesRequired lesson title — short, specific, kebab-case friendly (e.g. 'pip install timeout on corporate proxy').
tokenNoRegistered agent token (e.g. 'token:abc123'). Required for write_lesson.
domainYesRequired domain: devops, python, network, feishu, rag, fanuc, mcp, docker, git, etc.
sourceNoCalling client: codex, claude-code, cursor, dsh, or other.
problemYesRequired description of the failure (max 2000 chars).
root_causeYesRequired root cause analysis — why did it fail?
verificationNoOptional: how to confirm the fix works.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden, and it excels: it discloses the side effect (writes to data/contribution_queue.jsonl), auth requirements, error cases, the 75 quality threshold, duplicate-submission behavior, and the output shape. This is strong behavioral disclosure for a mutating tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but well organized: a front-loaded purpose sentence, a usage condition, then terse semicolon-separated sections for input semantics, output schema, errors, side effects, auth, and scope. Every clause carries distinct, valuable information without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a 9-parameter write operation with no annotations and no output schema, yet the description covers required/optional inputs, output fields, error conditions, side effects, auth, and process scope. It gives an agent everything needed to decide whether and how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters; the description's required/optional summary adds only marginal convenience. However, there is an inconsistency: it lists token as optional while also saying a registered token is required and the schema property notes it is required for write_lesson, which slightly undermines the added value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and object: 'Submit a complete, structured failure lesson.' It also defines the precise scope—lessons documenting the full failure→root cause→fix→verification chain—which clearly separates this from the search, get, usage, intake, preflight, and registration siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly states when to use the tool: 'after resolving a problem and documenting the full failure→root cause→fix→verification chain.' It also notes the auth prerequisite (registered agent token, not anonymous), but it does not explicitly mention alternatives or when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev2.30.2
    • Changedmisakanet_register1 field changed
      • addedInput schema / properties / client_id
        Added value: +{
        +  "description": "Optional stable identifier for this client (8-64 chars of A-Z a-z 0-9 . _ : -). Generate it once and reuse it so later calls return the same node instead of a new one.",
        +  "type": "string"
        +}
  2. 1 tool updatev2.28.0
    • Changedmisakanet_search2 fields changed
      • addedInput schema / properties / include_stale
        Added value: +{
        +  "description": "Include stale and superseded lessons in results. Default false — these are filtered out to avoid误导 agents with outdated information.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / kind
        Added value: +{
        +  "description": "Filter results by kind: 'lessons' returns only lesson files, 'evidence' returns results with evidence_refs or high evidence_level, 'related' returns cross-referenced/tag-overlap results. Default 'all' returns everything. Auto-detected from query intent when omitted (e.g. 'lesson about X' → lessons, 'evidence for X' → evidence).",
        +  "enum": [
        +    "all",
        +    "lessons",
        +    "evidence",
        +    "related"
        +  ],
        +  "type": "string"
        +}
  3. 1 tool updatev2.23.0
    • Changedmisakanet_search3 fields changed
      • addedInput schema / properties / baseline_weight
        Added value: +{
        +  "description": "Override baseline score weight (0-1). Higher values favor proven/popular lessons. Default: 0.15.",
        +  "type": "number"
        +}
      • addedInput schema / properties / bm25_weight
        Added value: +{
        +  "description": "Override BM25 keyword weight (0-1). Higher values favor exact keyword matches. Default: 0.65. All weights must sum to 1.0.",
        +  "type": "number"
        +}
      • addedInput schema / properties / metadata_weight
        Added value: +{
        +  "description": "Override metadata bonus weight (0-1). Higher values favor lessons with matching domain/tags. Default: 0.20.",
        +  "type": "number"
        +}
  4. 3 tool updatesv2.21.0
    • Addedmisakanet_memory_context
    • Changedmisakanet_search1 field changed
      • addedInput schema / properties / detail
        Added value: +{
        +  "description": "Progressive disclosure: compact (default, ~80 tok/lesson) shows id/title/problem/freshness; summary (~200 tok) adds domain/tags/fix; full returns complete lesson markdown. Use compact for broad scans, full only after narrowing results.",
        +  "enum": [
        +    "compact",
        +    "summary",
        +    "full"
        +  ],
        +  "type": "string"
        +}
    • Changedmisakanet_submit_intake1 field changed
      • changedInput schema / properties / error / description
        Previous value: -"Optional short error message (auto-redacted)."New value: +"Optional short error message."
  5. 2 tool updatesv2.18.0
    • Addedmisakanet_register
    • Addedmisakanet_write_lesson
  6. 3 tool updatesv2.17.1
    • Addedmisakanet_preflight
    • Changedmisakanet_search1 field changed
      • addedInput schema / properties / explain
        Added value: +{
        +  "description": "Include score evidence for each result; vector similarity is null when the optional backend is unavailable.",
        +  "type": "boolean"
        +}
    • Addedmisakanet_submit_intake
  7. 4 tool updatesv2.14.0
    • Changedmisakanet_get_lesson2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Lesson ID (filename without .md, e.g., auto-merge-ci-pipeline)"New value: +"Lesson ID, usually the filename without .md, for example auto-merge-ci-pipeline."
      • changedInput schema / properties / path / description
        Previous value: -"Lesson path (e.g., lessons/core/auto-merge-ci-pipeline.md)"New value: +"Lesson path relative to the repository, for example lessons/core/auto-merge-ci-pipeline.md."
    • Changedmisakanet_search3 fields changed
      • changedInput schema / properties / domain / description
        Previous value: -"Optional domain filter (devops, python, network, feishu, rag, fanuc, etc.)"New value: +"Optional domain filter such as devops, python, network, feishu, rag, fanuc, or mcp."
      • changedInput schema / properties / query / description
        Previous value: -"Search query — error message, keyword, or topic (e.g. 'pip install timeout', 'DCO sign-off failed')"New value: +"Required redacted error message, keyword, or topic (for example: 'pip install timeout' or 'DCO sign-off failed')."
      • changedInput schema / properties / top / description
        Previous value: -"Max results to return (default 5)"New value: +"Maximum ranked results to return. Defaults to 5; keep small for MCP context and latency."
    • Changedmisakanet_submit_usage3 fields changed
      • changedInput schema / properties / lesson_id / description
        Previous value: -"ID of the lesson that helped (e.g., auto-merge-ci-pipeline)"New value: +"Required ID of the lesson that helped, for example auto-merge-ci-pipeline."
      • changedInput schema / properties / outcome / description
        Previous value: -"Outcome: solved, partial, not-helpful"New value: +"Short result label such as solved, partial, or not-helpful."
      • changedInput schema / properties / tool / description
        Previous value: -"Your tool name (e.g., claude-code, cursor, aider)"New value: +"Calling tool or client name, for example claude-code, cursor, codex, or aider."
    • Addedmisakanet_usage_status
  8. 3 tool updatesv2.12.4
    • Changedmisakanet_get_lesson1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Lesson ID (filename without .md)"New value: +"Lesson ID (filename without .md, e.g., auto-merge-ci-pipeline)"
    • Addedmisakanet_search
    • Addedmisakanet_submit_usage
  9. 2 tool updatesv2.12.2
    • Removedmisakanet_search
    • Removedmisakanet_submit_usage
  10. 3 tool updatesv2.12.3
    • First observedmisakanet_get_lesson
    • First observedmisakanet_search
    • First observedmisakanet_submit_usage

TDQS

A4.4/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have distinct purposes: search/get for discovery, memory_context/preflight for proactive context, submit/write for contribution, and usage/register for account management. The main ambiguity is between search, memory_context, and preflight, which all match intent/text against the same lesson index in slightly different ways.

Naming Consistency3/5

All tools share the misakanet_ prefix and snake_case, but the action pattern is inconsistent: get_lesson, search, write_lesson, and submit_intake are verb-led, while memory_context, preflight, and usage_status are noun-like or ambiguous. register also omits a noun object.

Tool Count5/5

Nine tools is well-scoped for the domain of a failure-lesson knowledge base: discovery, retrieval, context injection, risk preflight, contribution, feedback, registration, and usage status. Each tool earns its place and the set is not bloated.

Completeness4/5

The core lifecycle is covered: search and get lessons, write and submit intakes, pull memory context, check preflight risk, track usage, and register. Minor gaps exist such as no explicit update/delete workflow for lessons teferred to review, but these are not critical for the intended agent-facing read/write surface.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers