knowledge_ingest
Add a knowledge atom (requires a confirmed schema mapping — see schemaconfirmmapping)
How to use it
Project documentation lists knowledge_ingest for the Willow MCP MCP server. Add the server to your MCP client (Claude Desktop, Cursor, Windsurf and others), then check which tools your installed version makes available. Tool availability can depend on configuration and credentials. A server handshake does not verify this tool’s behavior. See the full listing for setup details.
Install Willow MCP
.venv/bin/python3 -m willow_mcpOther tools in Willow MCP (39)
Record the result of a dispatched agent task
Route a task to a target agent, recording the decision
Create dispatch packet (meta.json + assignment.md)
Soft-delete a single gap by id — clear junk/test entries without disturbing real gaps. Reversible (archive-don't-delete)
List gaps, most-asked first — filter by topic and/or status (open/resolved/promoted)
Log or bump a "we don't know this yet" entry (fleet-wide backlog, SOIL-only, no Postgres needed) — see docs/design/gap-backlog.md
Turn a resolved gap into a knowledge atom. Requires answer, at least one source, and confirmedby; writes through the same schema-confirmation gate as knowledgeingest and closes the gap out
Soft-delete every gap under an exact topic in one call — bulk cleanup without the per-call rate limit. Promoted gaps (they point at a landed atom) are left intact; requires confirm=<topic>
Mark a gap as being worked or answered — bookkeeping only, does not write to the knowledge base
Fetch a single knowledge atom by ID
Add a journal-domain knowledge atom (requires a confirmed schema mapping)
Change an atom's domain (requires a confirmed schema mapping)
Fetch atoms tagged/domained for startup continuity
Attach an integrity flag to an existing atom (knowledgecurate; tags-based, idempotent)
Tombstone an atom in place — hidden from default search, still readable via kbat (knowledgecurate)
Multi-keyword search in the Postgres knowledge base
A one-page Markdown map of a Nest DB — the walled view (person names, the date timeline, and filenames suppressed). The full digest is a local-CLI affordance only, never returned over MCP
File a staged item: move the file to its predicted track's destination, or overridedest to correct it. An override feeds the correction counter
List open rule-delta flags — patterns overridden often enough that the classifier proposes a rules change (a human ratifies)
List the pending review queue with the track the classifier predicted for each file
Live drop-folder router: classify new files in a drop zone by filename into a track and stage a review queue. Non-destructive — nothing moves until nestintakefile
Skip a staged item — leave the file, record the decision
Promote a Nest's structure — counts, curated category names, redacted secret kinds, never content — into the knowledge base via the same core write as knowledgeingest. dryrun=True returns the atoms that would be promoted
Walk a drop folder, extract + classify its files by meaning, and write a canonical SQLite Nest DB. Returns counts only; dryrun=True (default) reports without writing — see docs/NEST.md
Counts for a seeded Nest DB — sources by status, fragments by type, topical categories by size. Structure only; filename-labels are walled and counted as uncategorised
Confirm (optionally correct) a table's column mapping, unlocking its write tools. preview=True dry-runs it and renders a sample row so you can see what each field actually resolves to before trusting a name match — see docs/design/schema-adaptation.md
List the SOIL collections you can see (narrowed to your storescope) — learn the collection names without running a search
Soft-delete a record by recordid
Read record by recordid
List all records in a collection
Bulk soft-delete every record in a collection (e.g. leftover test/scratch data). Reversible (archive-don't-delete — the store.db is kept); requires confirm=<collection name> and stays within your storescope
Write record (JSON object) to SQLite store
Multi-keyword AND search in a collection
Search across all collections
Per-collection live-record counts (within your storescope), largest first, plus store-wide totals — the numeric companion to storecollections for spotting a bloated or polluted collection
Update an existing record
List pending tasks
Check task status
Submit task to Kart queue