Skip to main content
Glama

English | 日本語 | 简体中文

MisakaNet

mcp-name: io.github.Ikalus1988/misakanet

Stop debugging the same error twice. MisakaNet searches 402+ failure lessons so an agent skips the bugs someone already paid for, instead of rediscovering them one session at a time.

Agent-native interfaces: MCP server (7 tools), WebMCP (browser navigator.modelContext), llms.txt / llms-full.txt, and A2A discovery through .well-known/agent-card.json.


What is MisakaNet?

Git-backed failure memory for AI coding agents. An error shows up → the agent searches the lessons → it applies a fix somebody already verified → if nothing matches, an intake turns that dead end into a lesson for the next agent. Every lesson is a Markdown file in this repository: reviewed like code (each commit DCO-signed), graded by evidence level, retrieved with BM25 over the Python standard library. No vector database, no embedding model, no server unless you want one.

Lessons

failure-recovery knowledge base, open and auditable under lessons/

Domains

rag · devops · fanuc · docker · feishu · mcp · network · ci · wsl · windows …

Evidence levels

E0 intake → E1 CI → E2 merged PR → E3 maintainer → E4 production reuse

Registry listings (Glama, Smithery, MCP Toplist) proxy the hosted endpoint, which serves 402+ indexed failure-recovery lessonsindexed, never "verified": evidence level is what says how much a lesson has been proven.

MisakaNet is NOT

What it is instead

❌ A general-purpose memory system

✅ Failure-recovery knowledge layer

❌ An Agent runtime or framework

✅ Searchable lesson database

❌ A vector database or RAG system

✅ BM25 keyword search (zero deps)

❌ A cloud service requiring signup

git clone → search locally

❌ A skill marketplace

✅ Debugging knowledge from real sessions

Lesson vs Skill

A skill teaches an agent how to do something. A lesson records what went wrong before, and how not to fail again. MisakaNet is only the second thing: not a skill marketplace, not an agent runtime, not a general memory layer, not a vector database. → FAQ

Related MCP server: Fix Memory MCP

Benchmark: does lesson context actually help?

Weekly benchmark on real failure scenarios (Cloudflare Workers AI, 2026-08-30):

Model

Without lesson context

With lesson context

Gain

llama-3.2-3b (light)

21% hit

43% hit

2× — lesson context doubles a weak model

llama-3.3-70b (strong)

42% hit

73% hit

+31%

Lesson context is a RAG win across the board: injecting the matching failure-recovery lesson lifts answer quality for every model — the smaller the model, the bigger the relative gain. Details: benchmark-2026-08-30

Full changelog · Release notes

Beware of a single number. A benchmark is only as good as what it measures, so here is what these mean and where this design loses:

Metric

What it measures

Why it matters here

Hit rate

share of failure questions answered correctly

the only number that decides whether this corpus is worth a search

Gain (with − without)

lift from injecting the matching lesson

separates "retrieval works" from "the model got lucky"

Cost / latency

tokens and wall-clock per answer

the whole premise is cheaper than re-debugging, so it has to stay cheap

Where it loses on purpose: BM25 matches words, not meaning. A failure described in vocabulary the corpus has never seen is a miss, and no amount of tuning in the retriever fixes a corpus gap. That is why a miss returns no_match plus an intake call rather than an empty result — the honest answer is "we do not know this one yet", and it is also the signal that tells maintainers what to write next.

Why failure-memory?

Agents re-debug the same class of failures in isolation: pip timeouts behind a corporate proxy, DCO on Windows, SQLite on an NTFS mount, a GitHub 401 after a token rotation, FANUC error codes. The fix usually already exists in someone's terminal history, and is invisible to everyone else.

Three deliberate engineering choices, each of which trades something:

  • Git is the source of truth. A lesson is a file, so it diffs, reverts, forks and reviews like code. The cost is that search happens over a checkout (or a synced D1 mirror) rather than a live index.

  • Zero dependencies by default. The retriever is BM25 over the standard library, so the offline path runs on an air-gapped box and cannot rot with an embedding model. The cost is recall on paraphrases.

  • Evidence is graded, not asserted. E0–E4 lets an agent weigh a community intake differently from a production-proven fix. The cost is bookkeeping, and most lessons sit at E0–E2.

How to use it

Prerequisites: Node ≥ 18 for the installer (Claude Code and Codex already require Node) or Python ≥ 3.10 for the library and the stdio server. Nothing else.

Supported agents — and what "supported" means per group (evidence levels in docs/integrations/status.md):

Group

Agents

What you get

Installer-managed

Claude Code · Codex · Hermes · OpenClaw · codewhale · Cursor · Gemini CLI · Copilot CLI · OpenCode · Kiro

npx @misaka-net/misakanet-setup writes each client's own MCP config, a rules block where the client has one, and (Claude Code only) a turn-counting hook — the five JSON-file clients (Cursor, Gemini CLI, Copilot CLI, OpenCode, Kiro) get the MCP entry alone; --verify checks whatever was written

MCP by hand

Cursor · Gemini CLI · Windsurf · OpenCode · Copilot · DeepSeek Harness

the endpoint is standard MCP over HTTP; add the URL in that client's own config. Cursor also has a rules-file mode

Anything else that speaks MCP over HTTP

the endpoint is public, reads are anonymous and unmetered

Pick one channel — they are independent, and none of them needs an account:

I want…

Command

What it touches

my assistant to search the lessons

npx @misaka-net/misakanet-setup

writes the MCP endpoint into each assistant's own config; optionally a rules block and a hook

to call the endpoint myself

the curl below

nothing to install

the library in my own code

pip install misakanet-core

nothing

The two-package trap (this one cost a real install failure, #1849):

Looks like

Actually is

Use it for

@misaka-net/misakanet-setup (npm)

the installer — has bin, no plugin entry

teaching your assistant to search

misakanet (npm)

the DSH / Codex plugin (index.js, SKILL.md)

dsh plugin --profile web add misakanet

misakanet (PyPI)

ships the stdio MCP server

python3 -m misakanet.server

misakanet-core (PyPI)

the library (zero-dep BM25)

from misakanet.search import search_lessons

A marketplace error such as @misaka-net/misakanet-setup: entry file missing: index.js means the resolver picked the wrong package — the installer deliberately has no index.js.

One anonymous read — no account, no token, no browser:

curl -sS https://misakanet.org/mcp \
  -H 'Content-Type: application/json' -H 'Accept: application/json' \
  -H 'MCP-Protocol-Version: 2025-06-18' -H 'Origin: https://misakanet.org' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"misakanet_search","arguments":{"query":"database is locked","top":3}}}'

Reads are unlimited and anonymous — the only limit is a per-address burst window, which is a speed limit, not a quota. Registration is for writing, not for reading: it unlocks misakanet_write_lesson and misakanet_preflight and returns a token valid ~30 days (why).

Check the install with npx @misaka-net/misakanet-setup --verify, undo it with --uninstall, and print a redacted environment report with --report (paste it into a public issue — that is exactly what the external-validation bounty asks for).

Quickstart · Install guide · MCP docs · what the installer writes · WebMCP setup

Use it as a GitHub Action

The same corpus, wired to your CI: when a workflow fails, the action searches the lessons, comments the closest match on the pull request, and (optionally) reports the new error so someone turns it into a lesson. Published on GitHub Marketplace.

on:
  workflow_run:
    workflows: ["CI"]                # your CI workflow's name
    types: [completed]
permissions:
  actions: read                      # read the failing job's log (required)
  pull-requests: write               # post the comment
  issues: write                      # the comment endpoint is issues.createComment
jobs:
  intake:
    if: ${{ github.event.workflow_run.conclusion == 'failure' }}
    runs-on: ubuntu-latest
    steps:
      - uses: Ikalus1988/MisakaNet@v1
        with:
          mode: suggest-only         # or suggest-and-intake, to report new errors too
          source: ${{ github.repository }}

inputs and outputs · why actions: read is not optional

See it in 8 seconds

Search lesson demo

Documentation

Choose your journey — MisakaNet is useful in different ways depending on what you are trying to do:

I am...

Start with

🔴 Debugging a real failure

Search existing lessons before retrying

🤖 Building an AI agent / tool

Use lessons as failure-memory for your workflow

🧪 Using DeepSeekHarness

Connect the DeepSeekHarness MCP adapter as a recovery-memory plugin

🔧 Contributing a fix

Read CONTRIBUTING.md for code style + PR checklist, check related lessons, then open a small PR

📝 Sharing a failure case

Submit a 5-line failure note — no polished PR required

📊 Evaluating agent learning

Run the benchmarks and compare reuse behavior

💬 Reporting friction

MCP intake or journey report #510

❓ New to MisakaNet

Read the FAQ for installation, MCP pairing, troubleshooting, and contribution answers

👉 New here? Search failure lessons →

No GitHub account? Submit via MCP intake (no auth needed) → MCP Intake Guide

Understanding the system → Label system · Troubleshooting

The rest of the map:

Topic

Where

Open the network in a browser

https://misakanet.org/ · https://ikalus1988.github.io/MisakaNet/search/

Install, verify, uninstall

docs/quickstart.md · https://misakanet.org/install/

MCP: protocol, tool reference, transports

docs/mcp.md · API.md

CLI

docs/cli-reference.md · python3 search_knowledge.py "…"

Architecture and the three paths

ARCHITECTURE.md · docs/CONCEPTS.md

Submitting an intake (for agents and humans)

docs/mcp-intake-guide.md

What the labels mean

docs/label-system.md

Troubleshooting (error scene index)

docs/troubleshooting.md

Known limitations, stated plainly

docs/LIMITATIONS.md

Benchmarks

docs/benchmarks/ · docs/lesson-reuse-benchmark.md

Competitive landscape

docs/competitive-analysis.md

Domain samples (rag, devops, fanuc, …)

docs/domains/

AI crawler policy: robots, JSON-LD, WAF rules

docs/cloudflare-robots-txt.md · docs/json-ld-schema.md · docs/cloudflare-waf-rules.md

Roadmap

ROADMAP.md · CHANGELOG.md

Contributing

Zero bounty. Maximum rigor. Merge earns credit. Every merged PR proves your agent can survive real-world CI gating.

  1. Check the checkout works: python3 scripts/misakanet_cli.py smoke

  2. Search before writing: python3 search_knowledge.py "your error here"

  3. Found nothing? Share your failure lesson → — a five-line note is enough, no polished PR required. Unsolved failure families surface on the public demand board so contributors know what to write next.

CONTRIBUTING.md · good first issues · active competitions · code of conduct

Security

⚠️ Always sandbox your Agent before executing retrieved commands. Lessons are community-contributed — review before run.

CI scans all Markdown for dangerous patterns (rm -rf, curl | sh, backtick injection). See SECURITY.md.

See LIMITATIONS.md for known constraints and non-goals — we believe honest disclosure builds trust.

Troubleshooting

Most failures already have a documented answer — start from the index, not from this page:

Symptom

Where

DCO sign-off failed · token exposed · pip timeout · database locked · Windows/GBK crash · WSL permission denied · FANUC error codes

docs/troubleshooting.md — error scene index

Known limitations of the test suite

docs/known-issues.md

MCP returns 403/405, or a client shows no tools

docs/mcp.md · FAQ.md

Behind a corporate proxy (Claude Desktop, Cursor, CLI)

docs/troubleshooting.md

For Agents & Crawlers

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

Search existing lessons first. If no lesson matches, do not open a PR by default — call the remote MCP tool misakanet_submit_intake at https://misakanet.org/mcp. No GitHub account, no email, no Bearer token. Never send secrets or raw private logs. Full protocol: docs/mcp-intake-guide.md.


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

Contributors

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

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

License

Apache-2.0 — Copyright 2026 Ikalus1988. Lessons are contributed under the same license, and every commit carries a DCO Signed-off-by (see CONTRIBUTING.md).

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

Proactive half of the pair: call this BEFORE starting a task so failure-memory is in context from the first step; call misakanet_search once a specific error has actually appeared. How task is matched: lexical keyword/token overlap over lesson titles, summaries and tags (BM25 when the index is present, a plain scorer otherwise) — not embeddings — so pass the concrete nouns, tools and error words you are about to meet ('chromadb on an NTFS mount', 'docker multi-stage build OOM') rather than a goal ('make it faster'); intent-only phrasing retrieves nothing. How domain behaves: a hard filter over a closed vocabulary of the domains the lesson corpus declares (the repository's data/domains.json is the list; rag, devops, fanuc, python, ci, mcp are examples), and a value outside it returns zero lessons with no error — so leave it out unless you know the domain; an empty result with a domain set is usually the filter, not an empty corpus. How top_n behaves: silently clamped to 10 (larger values are accepted and reduced), and each lesson is trimmed to 200 characters per field inside context_block — past roughly five matches you spend prompt space faster than you gain information. Returns {task, lesson_count, lessons, context_block}; context_block is ready-to-inject markdown, and lesson_count 0 (voice='failure-warning') means the corpus has no match yet — retry with the raw error text or submit an intake, rather than reading it as a tool failure. No auth, no rate limit, no network: matching runs against the lessons/ directory of the checkout this server was started from, so results are only as current as that checkout. Local stdio server only — the hosted endpoint exposes misakanet_search and misakanet_get_lesson instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskYesWhat you are about to do, in the vocabulary of the tools, systems and errors involved (e.g. 'set up a ChromaDB RAG pipeline on WSL', 'deploy FastAPI behind a corporate proxy'). Matched lexically, so include the distinctive terms a lesson would use in its title or problem statement.
top_nNoHow many lessons to return (default 5). Values above 10 are accepted and silently clamped to 10. Each returned lesson is truncated to 200 characters per field in context_block, so ~5 is where extra matches start costing more prompt budget than they add.
domainNoOptional hard filter on the lesson's frontmatter domain, from a closed vocabulary (e.g. 'rag', 'devops', 'fanuc', 'python', 'ci', 'mcp'). It narrows and never widens: an unknown value yields zero lessons without an error, so omit it when unsure.

TDQS

A4.9/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 behavioral burden — and it delivers extensively: lexical/BM25 matching rather than embeddings, silent clamping of top_n to 10, 200-character field truncation, zero-lessons-with-no-error behavior for unknown domains, no auth/rate-limit/network dependency, and results bounded by checkout freshness. This is exactly the operational context an agent needs and far beyond what annotations would normally supply.

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 long, but every paragraph earns its place and the structure is navigable: a call-timing rule first, then a 'How X behaves' subsection per parameter, then return semantics, then environment constraints. It restates a couple of schema facts (clamping, 200-char truncation) but always adds the underlying rationale; it loses a point only because a strict editor could trim those redundancies.

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?

With no annotations and no output schema, the description covers the return shape ({task, lesson_count, lessons, context_block}), the ready-to-inject nature of context_block, the precise meaning of lesson_count 0, environment constraints (stdio-only, checkout-local data), and the failure semantics for bad domain values. Nothing an agent needs in order to call this correctly is left to inference.

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?

Schema coverage is 100%, so the baseline is 3, but the description adds substantial meaning: for task it gives negative examples ('make it faster' retrieves nothing) and the concrete-nouns/error-words rule; for domain it names the closed-vocabulary source (data/domains.json) and a diagnostic hint tying empty results to the filter; for top_n it adds a cost-benefit breakpoint (~5 matches). The description clearly exceeds what the schema alone communicates.

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 by positioning this as the 'proactive half of the pair' whose job is putting failure-memory into context before a task starts, and it explicitly differentiates itself from misakanet_search ('call misakanet_search once a specific error has actually appeared'). The retrieval function — matching a task against the lesson corpus — and its operational role are unmistakable, and sibling distinction is a stated feature, not something an agent must infer.

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 ('call this BEFORE starting a task'), explicit when-not-to-use (once a specific error has appeared, use misakanet_search), and additional routing detail ('Local stdio server only — the hosted endpoint exposes misakanet_search and misakanet_get_lesson'). It even instructs the agent on the empty-result case: retry with raw error text or submit an intake rather than reading it as a tool failure.

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.31.1
    • Changedmisakanet_memory_context3 fields changed
      • changedInput schema / properties / domain / description
        Previous value: -"Optional domain filter (e.g. 'search-and-retrieval', 'ci-cd')."New value: +"Optional hard filter on the lesson's frontmatter domain, from a closed vocabulary (e.g. 'rag', 'devops', 'fanuc', 'python', 'ci', 'mcp'). It narrows and never widens: an unknown value yields zero lessons without an error, so omit it when unsure."
      • changedInput schema / properties / task / description
        Previous value: -"Task description (e.g. 'set up ChromaDB RAG pipeline', 'deploy FastAPI to production')."New value: +"What you are about to do, in the vocabulary of the tools, systems and errors involved (e.g. 'set up a ChromaDB RAG pipeline on WSL', 'deploy FastAPI behind a corporate proxy'). Matched lexically, so include the distinctive terms a lesson would use in its title or problem statement."
      • changedInput schema / properties / top_n / description
        Previous value: -"Number of lessons to retrieve (default 5, max 10)."New value: +"How many lessons to return (default 5). Values above 10 are accepted and silently clamped to 10. Each returned lesson is truncated to 200 characters per field in context_block, so ~5 is where extra matches start costing more prompt budget than they add."
  2. 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"
        +}
  3. 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"
        +}
  4. 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"
        +}
  5. 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."
  6. 2 tool updatesv2.18.0
    • Addedmisakanet_register
    • Addedmisakanet_write_lesson
  7. 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
  8. 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
  9. 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
  10. 2 tool updatesv2.12.2
    • Removedmisakanet_search
    • Removedmisakanet_submit_usage
  11. 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

Disambiguation3/5

Several tools have overlapping retrieval purposes: misakanet_memory_context, misakanet_preflight, and misakanet_search all match text against the lesson corpus, with the proactive pair (memory_context vs preflight) differing mainly in task-start context vs risk-check emphasis. Similarly, misakanet_submit_intake and misakanet_write_lesson both write to the contribution queue, distinguished only by completeness. The long descriptions help, but an agent could still easily pick the wrong tool.

Naming Consistency4/5

All tools share the misakanet_ prefix and snake_case, with most using a verb_noun pattern (get_lesson, search, submit_intake, register). Two names deviate: memory_context and usage_status are noun phrases rather than imperatives, creating a minor inconsistency. Overall the convention is predictable and readable.

Tool Count5/5

Nine tools cover the domain well: retrieval (search, get_lesson), proactive context (memory_context, preflight), contribution (submit_intake, write_lesson), usage feedback, registration, and quota checking. The size feels appropriate for a failure-lesson server — neither thin nor bloated.

Completeness4/5

The core lifecycle is covered: discover lessons, fetch details, get proactive warnings, submit missing lessons/intakes, and manage registration/quota. The main gap is that the search tool references a closed vocabulary of domains from data/domains.json but provides no way to list those domains, which could leave agents guessing. No update/delete for lessons exists, but that is likely admin-side functionality.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Automatically provides AI agents with proven instructions and past failure warnings for common tasks like deployment, auth, and payments, enabling flawless execution without manual configuration.
    10
    44 npm
    3
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI agents to query live, cross-agent tool failure fingerprints and recovery outcomes before retrying, so they can act on collective evidence and avoid repeating proven-ineffective retries.
    4
    2
    MIT