Skip to main content
Glama

harbor_revoke_learning

Destructive

Revoke a learning you previously recorded — use when the user corrects you ("no not that", "undo that rule", "actually scratch that"). Prefer the id (the lrn_xxxx harbor_record_learning returned). If it has scrolled out of context, pass contentMatch instead — never invent an id. It finds learnings you recorded in earlier sessions too (after a resume or a compaction), and rules you wrote, but never a teammate's. Idempotent: revoking an already-revoked row returns ok. A learning that is already live is removed from the team's shared memory, for everyone, when this session may publish knowledge there. If an admin approved it, or this session may not publish, it cannot be removed here: pass reason and it is marked disputed instead, so every agent is handed it flagged until an owner settles it with your words on /review.

Input Schema

NameRequiredDescriptionDefault
idNoThe sticky short id (e.g. "lrn_a3f1") harbor_record_learning returned. Use it whenever you have it.
reasonNoWhat is true instead, in one sentence (the user's correction). Used only when the learning cannot be removed here: it is then marked disputed, as an agent's flag, and an owner settles it with these words on /review.
contentMatchNoSubstring of the original content, when the id is gone. Ambiguous matches (2+ hits) refuse with a candidate list: pick by id and retry. To reach a learning from an earlier session it must be at least 12 characters and 2 words of it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Far beyond the annotations: it discloses idempotency, that the removal is team-wide and permanent, cross-session reach, the scope limit (never a teammate's rule), and the fallback path where the row is marked disputed instead of removed. The only gap is why the destructiveHint write can silently degrade to a non-destructive flag — the sequencing of that branch is dense but present.

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?

Front-loaded with purpose and when-to-use, and every sentence carries new information. However, heavy parenthetical nesting and stacked clauses make the later half slower to parse than necessary.

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?

Complete for a 3-parameter mutation tool with no output schema: outcomes are spelled out (ok on re-revoke, disputed on failure, candidate list on ambiguous match), so an agent knows what to expect from the response without a schema.

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%, and the description's parameter content largely restates it (id preferred, contentMatch when the id scrolled away). It adds one useful rule not obvious from the schema — never invent an id — but otherwise the schema carries the semantics.

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?

States a specific verb and resource ("Revoke a learning you previously recorded") and implicitly contrasts with harbor_record_learning, which it names as the producer of the id. An agent can distinguish this from the sibling write tool without opening either schema.

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?

Gives explicit trigger conditions with quoted user corrections, an ordered preference (use `id`, fall back to `contentMatch`, never invent an id), and the boundary case where revocation is impossible (admin-approved or no publish permission). Nothing about when to call it is left to inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources