MisakaNet
This server provides access to MisakaNet's shared failure-lesson knowledge base (244+ indexed lessons), allowing you to:
Search failure lessons (
misakanet_search): Query using error messages, keywords, or topics. Results are ranked by relevance (BM25 + RRF) and include title, domain, score, and match explanation. Supports optional domain filtering (devops, python, network, feishu, rag, fanuc, etc.) and configurable result count.Fetch a specific lesson (
misakanet_get_lesson): Retrieve the full markdown content of a lesson by itsidor filepath. Returns metadata (title, domain, tags) plus problem description, root cause, fix steps, and verification instructions.Report lesson usage (
misakanet_submit_usage) (Experimental): Log whether a lesson was helpful (solved,partial,not-helpful) along with your tool name. Writes to a local usage log only — no data is sent externally.
Allows searching and retrieving failure-recovery lessons related to GitHub API errors, token issues, workflow failures, and DCO sign-off problems.
Allows searching and retrieving failure-recovery lessons related to pip package installation errors, timeouts, SSL issues, and other PyPI-related failures.
MisakaNet
Stop debugging the same error twice.
MisakaNet searches 310+ failure lessons so your agent skips known bugs.
Using MisakaNet? Give us a ⭐ — it helps other agents find verified failure lessons. Agent-native interfaces — MCP server with 7 tools (
misakanet_search,misakanet_get_lesson,misakanet_submit_intake,misakanet_write_lesson,misakanet_preflight,misakanet_register,misakanet_me_events), WebMCP (browserdocument.modelContext),llms.txt/llms-full.txt, and A2A discovery via.well-known/agent-card.json.
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
Related MCP server: cogmem
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 pip install timeout"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-corefrom 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.23.0)
dsh plugin add misakanet
# Or install directly from git (same bundle)
# dsh plugin 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.pyDSH bundle tools (
mcp__misakanet__*) are served by the repo's python MCP server, which ships only with a git+ install (the npm bundle provides the skill/CLI surfaces only). For live tools from an npm install, either switch to git+ (above) or point adsh-mcp-clientrow at the remote endpointhttps://misakanet.org/mcp— example patch:docs/maintenance.md→ dsh bundle.
Try it now
Method | Command | Time |
Remote MCP |
| 10s |
Local MCP |
| 30s |
Python lib |
| 15s |
CLI 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:
Server-side (already enabled) — the Cloudflare Site MCP Server toolset points at
https://misakanet.org/mcp.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.
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 | Failure-recovery knowledge base | |
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,hub→docs/domains/
Integration surfaces
Surface | What it does | Entry point |
MCP | Search, get lesson, submit intake |
|
CLI | Direct commands |
|
SKILL.md | Agent guidance | Auto-loaded by Claude Code |
Remote MCP | HTTP endpoint | |
DSH Adapter | Harness integration |
|
Glama Connector | MCP via Glama gateway (no self-hosting) | |
Smithery | MCP via Smithery registry |
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 385+ verified failure-recovery lessons so it finds the fix instead of re-debugging. No self-hosting — the Glama gateway proxies to our hosted endpoint.
Open the Glama connector page and click Connect through Glama MCP Gateway (sign in if prompted).
Glama generates your personal gateway URL:
https://glama.ai/endpoints/<your-connection-profile>/mcp.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/misakanetRuns 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

Contribute in 3 minutes
Run
python3 scripts/misakanet_cli.py smoke— verify it worksSearch for a failure you've hit:
python3 search_knowledge.py "your error here"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 | ✅ |
❌ 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 lessonsStuck on a failure? Search the lessons before opening a PR:
Problem | Lesson |
🔴 DCO sign-off fails on Windows | |
🔴 pip install timeout / SSL error | |
🔴 Secret scan / token in commit | |
🔴 GitHub API 401 / token expired |
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.23.0)"]
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" .-> WorkerThree paths: ① Remote HTTP MCP — anonymous agent →
misakanet.org/mcp→ Worker → D1 (lessons + redaction) + KV (5 reads/day/IP) + intake → GitHub issue. ② Local stdio MCP —scripts/mcp_server.py→ BM25 engine overlessons/(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 | |
❓ 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 robustnessUse 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?
Project | ⭐ | Active | Sharing model | Infrastructure | Entry cost |
MisakaNet | ✅ Active | Public Git-backed failure-memory |
|
| |
✅ Active | Local/team memory depending on backend | Python + SQLite |
| ||
✅ Active | MCP shared memory | Python |
| ||
✅ Active | Cloud / app-level shared memory | Infra-backed | Docker | ||
🟡 Warm | Personal memory | Python |
| ||
🟡 Warm | Runtime federation | Python |
| ||
🔬 Research | Shared experience pool / research prototype | Docker + PostgreSQL | Docker (~15min) | ||
🟡 Warm | Personal memory | Python |
| ||
✅ Active | Local / app-level memory | TypeScript + Bun/SQLite |
|
MisakaNet is not the only shared 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
Other 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 |
|
Contribute |
|
Dashboard |
|
MCP Server |
|
Full CLI reference → |
→ 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.
Available Tools
9 toolsmisakanet_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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Lesson ID, usually the filename without .md, for example auto-merge-ci-pipeline. | |
| path | No | Lesson path relative to the repository, for example lessons/core/auto-merge-ci-pipeline.md. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Task description (e.g. 'set up ChromaDB RAG pipeline', 'deploy FastAPI to production'). | |
| top_n | No | Number of lessons to retrieve (default 5, max 10). | |
| domain | No | Optional domain filter (e.g. 'search-and-retrieval', 'ci-cd'). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | Yes | Task intent description (e.g. 'build RAG index from PDFs') | |
| context | No | Environment context (e.g. 'WSL, GPU 8GB') |
TDQS
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.
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.
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.
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.
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.
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. 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'). Output schema: JSON with node_id, token, registered_at, and agent_type. Error cases: none. Side effects: persists registration record. Auth: none. Rate limits: one registration per session.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_type | No | Optional agent type identifier (e.g. 'claude-code', 'cursor', 'aider'). Defaults to 'unknown'. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations present, the description fully discloses side effects ('persists registration record'), error behavior ('Error cases: none'), authentication requirements ('Auth: none'), rate limits ('one registration per session'), and return fields. It also clarifies the token's role in subsequent calls, so the agent knows the consequence of invoking this tool. This goes well beyond minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact but information-dense: each sentence covers one distinct fact (purpose, local vs remote, token usage, input, output, errors, side effects, auth, rate limits). The main outcome is front-loaded in the first sentence, with operational details following in a logical order. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-optional-parameter tool with schema coverage at 100%, the description covers all needed decision factors: when to call, what to pass, what to expect back, and constraints (rate limit). It even provides output field names despite no formal output schema. An agent could invoke this with no further lookups.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents agent_type with examples and the default, and schema coverage is 100%, so the baseline is 3. The description's restatement that agent_type is optional and defaults to 'unknown' adds no new information. It does tie the parameter to the returned output, but that is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise action ('Register an agent') and the concrete outcome (node_id and token for remote MCP access). It immediately contrasts with local stdio MCP, distinguishing this tool from non-registration siblings. The purpose is unambiguous and does not require 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when registration is needed ('For remote HTTP MCP, call this tool first') and when it is not ('Local stdio MCP ... does not need registration'). It also gives the follow-up step (pass token as user parameter), clarifying the operational context. This is more concrete than typical usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
misakanet_searchA
Search MisakaNet's public failure-lesson index by error text, keyword, or topic. Use when you need to discover relevant lessons and do not already know a lesson ID. Input semantics: query is required; domain optionally filters by lesson domain; top limits ranked results and defaults to 5. Set explain=true to return matched terms, TF-IDF, entity matches, vector similarity, and hybrid score components. detail controls progressive disclosure: compact (default, ~80 tok/lesson) for broad scans, summary (~200 tok) with domain/tags/fix, full for complete lesson markdown. Output schema: JSON with results[] and source; each result is a ranked lesson summary. Error cases: missing query, unavailable search index, or no matches (empty results). Side effects: none. Auth: none. Rate limits: local stdio process only; callers should keep result counts small. Do not use for private log collection; search only with redacted snippets. Use misakanet_get_lesson for full content.
| Name | Required | Description | Default |
|---|---|---|---|
| top | No | Maximum ranked results to return. Defaults to 5; keep small for MCP context and latency. | |
| query | Yes | Required redacted error message, keyword, or topic (for example: 'pip install timeout' or 'DCO sign-off failed'). | |
| detail | No | 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. | |
| domain | No | Optional domain filter such as devops, python, network, feishu, rag, fanuc, or mcp. | |
| explain | No | Include score evidence for each result; vector similarity is null when the optional backend is unavailable. | |
| bm25_weight | No | Override BM25 keyword weight (0-1). Higher values favor exact keyword matches. Default: 0.65. All weights must sum to 1.0. | |
| baseline_weight | No | Override baseline score weight (0-1). Higher values favor proven/popular lessons. Default: 0.15. | |
| metadata_weight | No | Override metadata bonus weight (0-1). Higher values favor lessons with matching domain/tags. Default: 0.20. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden, and it does so thoroughly. It declares 'Side effects: none,' 'Auth: none,' rate limits, error cases (missing query, unavailable index, no matches), and explains the progressive disclosure behavior controlled by the detail parameter. This goes well beyond minimal and gives an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and usage, then organized into labeled segments (Input semantics, Output schema, Error cases, Side effects, Auth, Rate limits, exclusions). Despite covering 8 parameters, every sentence carries actionable information, and the length is justified by the tool's complexity and lack of annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 8 parameters, no output schema, and no annotations, the description covers all essential decision factors: output shape, error handling, side effects, auth, rate limits, and route to the sibling for full content. It even sets expectations for the optional vector backend and redaction requirements. Nothing an agent needs to call it safely and effectively is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description adds meaningful semantics: it clarifies query is required, explains top's default and result-count caution, describes detail's token sizes and use cases ('compact for broad scans, full only after narrowing results'), and explains explain's scoring components. This enriches the schema rather than merely repeating it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Search MisakaNet's public failure-lesson index by error text, keyword, or topic.' It immediately differentiates itself from siblings by stating 'Use when you need to discover relevant lessons and do not already know a lesson ID' and pointing to misakanet_get_lesson for full content, making the tool's role unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool ('Use when you need to discover relevant lessons and do not already know a lesson ID') and names the alternative (misakanet_get_lesson for full content). It also warns against private log collection and instructs callers to use redacted snippets, providing clear selection and safety guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fix | No | Optional: how the problem was resolved, if known. | |
| kind | No | Type of intake. missing_lesson = no match found; stale_lesson = matched but wrong; new_lesson_candidate = user resolved a new problem. | |
| error | No | Optional short error message. | |
| source | No | Calling client: codex, claude-code, cursor, dsh, curl, or other. | |
| problem | Yes | Required short description of the failure or gap (max 2000 chars). | |
| what_tried | No | Optional: what was attempted before or during the failure. | |
| verification | No | Optional: how to confirm the fix works. | |
| matched_lesson_id | No | Optional: lesson ID that was checked but did not help (for stale_lesson). |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tool | No | Calling tool or client name, for example claude-code, cursor, codex, or aider. | |
| outcome | No | Short result label such as solved, partial, or not-helpful. | |
| lesson_id | Yes | Required ID of the lesson that helped, for example auto-merge-ci-pipeline. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | No | Optional user identifier (e.g. 'anon:iphash' or 'token:xxx'). Defaults to 'anon:mcp-default'. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fix | Yes | Required fix — what resolved the problem? | |
| tags | No | Optional tags for categorization (e.g. ['proxy', 'pip', 'corporate-network']). | |
| title | Yes | Required lesson title — short, specific, kebab-case friendly (e.g. 'pip install timeout on corporate proxy'). | |
| token | No | Registered agent token (e.g. 'token:abc123'). Required for write_lesson. | |
| domain | Yes | Required domain: devops, python, network, feishu, rag, fanuc, mcp, docker, git, etc. | |
| source | No | Calling client: codex, claude-code, cursor, dsh, or other. | |
| problem | Yes | Required description of the failure (max 2000 chars). | |
| root_cause | Yes | Required root cause analysis — why did it fail? | |
| verification | No | Optional: how to confirm the fix works. |
TDQS
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.
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.
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.
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.
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.
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. Dates show when Glama detected each change.
1 tool update
v2.23.0- Changed
misakanet_search3 fields changed- added
Input schema / properties / baseline_weightAdded value: +{ + "description": "Override baseline score weight (0-1). Higher values favor proven/popular lessons. Default: 0.15.", + "type": "number" +} - added
Input schema / properties / bm25_weightAdded 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" +} - added
Input schema / properties / metadata_weightAdded value: +{ + "description": "Override metadata bonus weight (0-1). Higher values favor lessons with matching domain/tags. Default: 0.20.", + "type": "number" +}
3 tool updates
v2.21.0- Added
misakanet_memory_context - Changed
misakanet_search1 field changed- added
Input schema / properties / detailAdded 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" +}
- Changed
misakanet_submit_intake1 field changed- changed
Input schema / properties / error / descriptionPrevious value: -"Optional short error message (auto-redacted)."New value: +"Optional short error message."
2 tool updates
v2.18.0- Added
misakanet_register - Added
misakanet_write_lesson
3 tool updates
v2.17.1- Added
misakanet_preflight - Changed
misakanet_search1 field changed- added
Input schema / properties / explainAdded value: +{ + "description": "Include score evidence for each result; vector similarity is null when the optional backend is unavailable.", + "type": "boolean" +}
- Added
misakanet_submit_intake
4 tool updates
v2.14.0- Changed
misakanet_get_lesson2 fields changed- changed
Input schema / properties / id / descriptionPrevious 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." - changed
Input schema / properties / path / descriptionPrevious 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."
- Changed
misakanet_search3 fields changed- changed
Input schema / properties / domain / descriptionPrevious 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." - changed
Input schema / properties / query / descriptionPrevious 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')." - changed
Input schema / properties / top / descriptionPrevious value: -"Max results to return (default 5)"New value: +"Maximum ranked results to return. Defaults to 5; keep small for MCP context and latency."
- Changed
misakanet_submit_usage3 fields changed- changed
Input schema / properties / lesson_id / descriptionPrevious 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." - changed
Input schema / properties / outcome / descriptionPrevious value: -"Outcome: solved, partial, not-helpful"New value: +"Short result label such as solved, partial, or not-helpful." - changed
Input schema / properties / tool / descriptionPrevious 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."
- Added
misakanet_usage_status
3 tool updates
v2.12.4- Changed
misakanet_get_lesson1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"Lesson ID (filename without .md)"New value: +"Lesson ID (filename without .md, e.g., auto-merge-ci-pipeline)"
- Added
misakanet_search - Added
misakanet_submit_usage
2 tool updates
v2.12.2- Removed
misakanet_search - Removed
misakanet_submit_usage
3 tool updates
v2.12.3- First observed
misakanet_get_lesson - First observed
misakanet_search - First observed
misakanet_submit_usage
TDQS
Each tool has a clear, distinct purpose: search vs. get vs. submit usage vs. intake vs. write vs. preflight vs. register. The only slight overlap is between submit_usage and submit_intent, but their descriptions clearly delineate usage feedback from new lesson intake.
All tools follow a consistent 'misakanet_<verb>_<noun>' pattern: search, get_lesson, submit_usage, submit_intake, write_lesson, preflight, register. This makes the API predictable and easy to navigate.
With 8 tools, the server is well-scoped for a lesson repository and authoring workflow. It feels comprehensive without being bloated, though the inclusion of both submit_intake and write_lesson adds slight complexity that could confuse new users.
The server covers the full lifecycle: discover (search), read (get_lesson), create (write_lesson/intake), and auxiliary operations (usage, preflight, register). Minor gaps include lack of update/delete functionality for lessons, but for this domain (public, immutable failure lessons), this seems acceptable.
Maintenance
Related MCP Connectors
Never let your agent repeat a bug or linger on a known issue. Search 385+ failure lessons to skip known errors instantly.
Shared debugging memory for AI coding agents
Collective memory for AI agents. One agent solves a bug — every agent gets the fix instantly.
Structured knowledge base for AI agent solutions. Search, explore, and retrieve build logs.
Related MCP Servers
- AlicenseAqualityAmaintenanceAutomatically provides AI agents with proven instructions and past failure warnings for common tasks like deployment, auth, and payments, enabling flawless execution without manual configuration.1081MIT
- AlicenseAqualityAmaintenanceSelf-improving, verifiable memory for AI coding agents. Learns how you work, stops repeating mistakes, models each project, recalls the right lesson at the right moment. Every memory is signed and tamper-evident. Local-first.82Apache 2.0
- AlicenseCqualityAmaintenanceLocal-first error memory for AI coding agents, enabling them to search past fixes before attempting new repairs and save verified cases as Markdown.3MIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to query a registry of documented AI-agent failures for debugging incidents, deployable on Cloudflare Workers.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ikalus1988/MisakaNet'
If you have feedback or need assistance with the MCP directory API, please join our Discord server