knowl
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| knowl_queryA | Use this first for specific project questions, before each new subtask, and when switching areas during multi-step work. Use every word that names the subject and none that does not: one more on-subject term retrieves better, one off-subject term retrieves worse, so never pad a query to reach a length and never drop a real term to stay under one. Skip only for directly relevant active lifecycle context, a same-request query, or relevant memory returned by knowl_task_start. If results contain a relevant active item, answer from Knowl without inspecting repository files. Inspect files only on miss, conflict, stale or low-confidence results, or explicit verification requests -- and on a miss, re-run once with different words first, because a first-pass miss is usually vocabulary rather than absence. |
| knowl_storeA | Store one concise structured knowledge atom directly, not raw chat transcripts. Use immediately after discovering durable project knowledge or completing each subtask, not only at the end. This is deterministic and does not require Knowl AI configuration. When this atom corrects or replaces knowledge a query already returned, pass that item id as |
| knowl_updateA | Update the metadata, status, or content of an existing knowledge item. Use immediately when execution reveals stale or contradicted memory instead of adding duplicates. To retire an outdated item in favour of one you just stored, call this with |
| knowl_recentA | Get compact recent session context only when lifecycle bootstrap is unavailable (including manual mode) or an explicit refresh is needed. |
| knowl_stateA | Get the full current active state of the project. Use for broad project-memory summaries, status checks, or full-state requests; prefer knowl_query for specific factual questions. |
| knowl_decideA | Record a confirmed project decision -- what was chosen, why, and what was rejected. Use this rather than knowl_store when the reasoning and the alternatives are the point; reasoning is required here and optional there. Record only settled decisions, not options still under discussion. Needs no Knowl AI configuration. When this decision reverses or replaces an earlier one, pass that item id as |
| knowl_contextA | Fill an explicit token budget with diversified project context. Use only when you have a budget to fill -- briefing a subagent, or packing a fixed-size prompt. For a specific question use knowl_query instead: this spreads across categories to fill the budget rather than ranking for one subject, so it is deliberately broader and less precise. |
| knowl_ingestB | Process explicitly supplied raw source text through the configured Knowl AI pipeline. Use only for an explicit ingestion request; never silently ingest the current conversation or prompt. |
| knowl_ingest_atomsA | Store pre-extracted structured knowledge atoms from an MCP client. Do not store raw chat transcripts; extract durable facts, decisions, constraints, architecture, state, skills, and batch store implementation summaries during execution or after each completed subtask. This is the preferred MCP ingestion path and does not require Knowl AI configuration. When an atom corrects or replaces knowledge a query already returned, set |
| knowl_timelineA | Read one item's immutable assertion history: what it claimed, when, and what superseded it. Use when memory looks contradictory or you need to know whether a fact changed -- knowl_query answers what it says now, this answers how it got there. |
| knowl_conflictsA | List contradictions among active items: declared exclusive conflict keys, and detected polarity pairs (the same title asserted both ways, which the write path deliberately keeps side by side rather than letting either retire the other). Use when a write reports an overlapping item left active, or when memory gives contradictory answers. A write that reports a possible REVERSAL is telling you something this command does not list -- act on it there. Resolve with knowl_update, never by storing a third item. |
| knowl_synthesizeA | Create or refresh one deterministic evidence-backed project understanding. Use only for a scope the user explicitly asked to have synthesised -- never as background tidy-up, and never to summarise a session. This never runs automatically on normal writes. |
| knowl_evidence_listA | List the evidence linked to one knowledge item. Use before relying on an item that is low-confidence, contested, or old enough that its support matters more than its claim. |
| knowl_feedbackA | Record append-only usefulness feedback only after a retrieved item was actually used, rejected, or caused a correction. |
| knowl_session_finishA | Finish and optionally promote a manual memory session you explicitly own. Never call this for a hook-owned session: when verified lifecycle hooks are active they finalize it themselves, and finishing it here closes a session out from under them. |
| knowl_gc_previewA | Preview knowledge garbage collection recommendations without changing the database. Use to find duplicate, stale, or cold memory before applying GC. Returns |
| knowl_task_startA | Start one manual work loop for multi-command or resumable work when verified lifecycle hooks are unavailable. Returns relevant memory and a taskId. Never use for a hook-owned session. |
| knowl_task_checkpointA | Checkpoint meaningful progress or a blocker in a manual work loop using the taskId from knowl_task_start. Never use for a hook-owned session or routine command noise. |
| knowl_task_finishA | Finish one manual work loop exactly once after verification using the taskId from knowl_task_start. Never use for a hook-owned session. |
| knowl_gc_applyA | Apply knowledge garbage collection only after knowl_gc_preview and explicit user approval; this may purge, archive, or compress records. Purge is the one action with no undo, so it deletes nothing unless |
| knowl_skill_listA | List learned file-backed skills from |
| knowl_skill_readA | Read one learned skill package from |
| knowl_skill_createA | Create and index a learned file-backed skill only when the user explicitly requested a reusable workflow to be codified. |
| knowl_skill_runA | Run an approved learned-skill entrypoint. A skill must be approved by the user with |
| knowl_handoffA | Park the current workstream so the next session in this project picks it up. Delivered once, then archived - this is a pass, not a durable note. Store anything worth keeping with knowl_store. |
| knowl_parkA | Park a workstream the user means to return to. Mints a short key and returns a line to hand them verbatim. Unlike knowl_handoff, this is not consumed by resuming and works from any directory, any number of sessions later. |
| knowl_resumeA | Resume a parked workstream from its key. Call this as soon as a user supplies something that looks like a resume key. With no key, lists what is parked in this project. |
| knowl_driftA | Which stored knowledge this branch may have invalidated: atoms whose cited files the diff since |
| knowl_fleetA | The other live agent sessions on this machine (Claude Code, Codex, Cursor and any other host with Knowl hooks): what each is working on, the files it is editing this turn, the problem it has claimed, and whether it can be messaged. Use before fixing an error that may be shared, before changing hooks, config, migrations or the knowl install, or when the user asks who else is running. A session marked messageable is reachable with SendMessage(to:name); SendMessage(to:name, notify_when_idle:true) waits for it to finish. Raise the rest with the user instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| park | Park a workstream the user means to return to. Mints a short key and returns a line to hand them verbatim. Unlike knowl_handoff, this is not consumed by resuming and works from any directory, any number of sessions later. |
| resume | Resume a parked workstream from its key. Call this as soon as a user supplies something that looks like a resume key. With no key, lists what is parked in this project. |
| handoff | Park the current workstream so the next session in this project picks it up. Delivered once, then archived - this is a pass, not a durable note. Store anything worth keeping with knowl_store. |
| drift | Which stored knowledge this branch may have invalidated: atoms whose cited files the diff since `since` deleted or moved away, plus symbol evidence that no longer resolves. Use before opening a pull request, before knowl_task_finish on work that touched code, and when the user asks what a change breaks. An atom whose file was merely edited is deliberately NOT reported — that was two thirds of all matches and made the signal unreadable — so an empty result means nothing it cites went away, not that nothing changed. Previews by default; `apply` marks the matches as needing review so the next session sees them flagged rather than trusting them. Reads git, so it needs a repository and a base ref that exists locally. |
| state | Get the full current active state of the project. Use for broad project-memory summaries, status checks, or full-state requests; prefer knowl_query for specific factual questions. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Project Brain State | A markdown document summarizing the full active goals, constraints, architecture, decisions, and tasks. |
| Recent Session Context | Compact recent context only when lifecycle bootstrap is unavailable (including manual mode) or an explicit refresh is needed. |
TDQS
Scored across 29 tools
Most tools have clearly distinct purposes, with detailed descriptions that separate query, store, state, context, and lifecycle operations. A few pairs (knowl_store vs knowl_ingest_atoms, knowl_handoff vs knowl_park) are conceptually close but differentiated by consumption semantics and use case.
All tools share the knowl_ prefix and snake_case, but the pattern is mixed: some are bare verbs (knowl_query, knowl_store), some bare nouns (knowl_state, knowl_fleet), some noun_verb (knowl_skill_read, knowl_task_start), and one verb_noun (knowl_ingest_atoms). It is readable but not a coherent convention.
At 29 tools, the surface exceeds the 25+ threshold that signals bloat. While the server covers many subdomains (skills, tasks, GC, fleet, drift), this many entry points places a heavy burden on agent selection and tool discovery.
The tool surface covers the memory lifecycle thoroughly: store, query, update, retire/supersede, evidence, conflicts, timeline, ingest, synthesize, sessions, tasks, GC, skills, handoff/park/resume, and fleet awareness. No significant operation appears missing for knowledge management.