About Willow MCP
Willow MCP is an MCP server published by willow-memory in the RAG category: agent-neutral MCP server with persistent memory (SOIL + Postgres KB) and a sandboxed task queue. Manifest-based ACL; works with any stdio MCP client.
The repository has 3 stars and 0 forks, with the last commit 3 days ago. Recent commit activity is the strongest signal that reported issues will get attention.
Install
git clone https://github.com/willow-memory/willow-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Tools (84)
agent_clearClear specialist for next packet
Parameters not published.
agent_dispatch_resultRecord the result of a dispatched agent task
Parameters not published.
agent_routeRoute a task to a target agent, recording the decision
Parameters not published.
context_expireDelete a saved context before its TTL
Parameters not published.
context_getRead a saved context; `expired` (and purged) once its TTL passes
Parameters not published.
context_listList your saved context keys and expiry times (expired ones skipped)
Parameters not published.
context_saveSave ephemeral per-identity working state under a key, with an optional TTL (SOIL-backed, no Postgres)
Parameters not published.
diagnostic_summarySelf-check: store/Postgres/schema/manifest/bindings/worker/consent/egress-lease/env health, with a verdict and named fixes. Ungated — see below
Parameters not published.
dispatch_acceptSpecialist accepts packet (pending → working)
Parameters not published.
dispatch_listList dispatch packets
Parameters not published.
Show all 84 tools
dispatch_readRead dispatch assignment and status
Parameters not published.
dispatch_sendCreate dispatch packet (`meta.json` + `assignment.md`)
Parameters not published.
envelope_applyMatch an active constitutional grant and write its FRANK citation before returning authority
Parameters not published.
federation_callCall one tool on one ratified downstream MCP server — behind the fourth egress class, `mcp_federation` (own line), a per-downstream-tool namespaced grant, and the operator's ratification ceiling
Parameters not published.
federation_discoverShadow-IT scan: `.mcp.json` files not yet owned by the ratified registry. Read-only, never connects
Parameters not published.
federation_list_serversList every operator-ratified downstream MCP server: id, launch command, the environment-variable *names* it receives (never values)
Parameters not published.
fleet_healthTask queue counts by status, live worker heartbeats, and whether the queue is `stranded`
Parameters not published.
fleet_statusReturn the canonical charter `fleet.json` roster plus Postgres drift diagnostics
Parameters not published.
frank_appendAppend an established-shape FRANK event (separately gated)
Parameters not published.
gap_deleteSoft-delete a single gap by id — clear junk/test entries without disturbing real gaps. Reversible (archive-don't-delete)
Parameters not published.
gap_listList gaps, most-asked first — filter by `topic` and/or `status` (`open`/`resolved`/`promoted`)
Parameters not published.
gap_logLog or bump a "we don't know this yet" entry (fleet-wide backlog, SOIL-only, no Postgres needed) — see [docs/design/gap-backlog.md](docs/design/gap-backlog.md)
Parameters not published.
gap_promoteTurn a resolved gap into a knowledge atom. Requires `answer`, at least one `source`, and `confirmed_by`; writes through the same schema-confirmation gate as `knowledge_ingest` and closes the gap out
Parameters not published.
gap_purge_topicSoft-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>`
Parameters not published.
gap_resolveMark a gap as being worked or answered — bookkeeping only, does not write to the knowledge base
Parameters not published.
grove_ackAcknowledge a received message; clears `needs-reply`, marks it `read`
Parameters not published.
grove_agentsFleet agents by most-recent HEARTBEAT, newest first
Parameters not published.
grove_bus_receiveStructured bus messages addressed to an agent (or broadcast), priority-ordered
Parameters not published.
grove_bus_sendPost a structured, addressed, typed, prioritized bus message (`COMMAND`/`EVENT`/`HEARTBEAT`/…)
Parameters not published.
grove_flaggedMessages carrying a given flag (`needs-reply`/`starred`/`read`/`urgent`/`resolved`), across all channels or one
Parameters not published.
grove_fleet_statusPresence plus what each agent is doing — `ui_state`, a content peek, and whether it's blocked on a reply
Parameters not published.
grove_get_historyMessage history from a channel, with `since_id` polling and `limit` (max 200)
Parameters not published.
grove_get_identityYour own Grove identity — `app_id`, resolved `grove_sender`, registered role/display name
Parameters not published.
grove_get_threadA message plus its flags and all its replies
Parameters not published.
grove_heartbeatBroadcast "I am alive" to `#general`
Parameters not published.
grove_human_requiredThe human-required queue: work that pauses automation until a person acts, priority-first
Parameters not published.
grove_inboxFleet inbox: @mentions, bus messages addressed to you, and your dedicated `#<agent>` channel, merged and deduped
Parameters not published.
grove_list_channelsList active Grove channels (name, type, description)
Parameters not published.
grove_replyReply in a thread; clears the parent's `needs-reply` flag
Parameters not published.
grove_searchCase-insensitive substring search across Grove messages, optionally scoped to one channel
Parameters not published.
grove_send_messagePost to a channel (creates it if missing). `sender` defaults to your resolved `grove_sender`, never a literal "Auto"; posting as a different identity requires `grove_relay`
Parameters not published.
handoff_readRead handoff for a dispatch
Parameters not published.
handoff_write_v4Complete work — `handoff.json` + `closeout.md`
Parameters not published.
integration_callCall an external API through a registered adapter — behind the three-key egress gate, keyed on `integration_net` (own line, never implied by `task_net` or `full_access`)
Parameters not published.
integration_listThe integration ledger: every outbound adapter, live or **declared stub**, with credential *source* (never the value)
Parameters not published.
integration_statusOffline readiness readout for one adapter — live/stub, credential presence, and whether the egress gate would pass. No network call
Parameters not published.
kb_atFetch a single knowledge atom by ID
Parameters not published.
kb_journalAdd a journal-domain knowledge atom (requires a confirmed schema mapping)
Parameters not published.
kb_promoteChange an atom's domain (requires a confirmed schema mapping)
Parameters not published.
kb_startup_continuityFetch atoms tagged/domained for startup continuity
Parameters not published.
knowledge_flagAttach an integrity flag to an existing atom (`knowledge_curate`; tags-based, idempotent)
Parameters not published.
knowledge_ingestAdd a knowledge atom (requires a confirmed schema mapping — see `schema_confirm_mapping`)
Parameters not published.
knowledge_retractTombstone an atom in place — hidden from default search, still readable via `kb_at` (`knowledge_curate`)
Parameters not published.
knowledge_searchMulti-keyword search in the Postgres knowledge base
Parameters not published.
nest_digestA 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
Parameters not published.
nest_intake_fileFile a staged item: **move** the file to its predicted track's destination, or `override_dest` to correct it. An override feeds the correction counter
Parameters not published.
nest_intake_flagsList open rule-delta flags — patterns overridden often enough that the classifier proposes a rules change (a human ratifies)
Parameters not published.
nest_intake_queueList the pending review queue with the track the classifier predicted for each file
Parameters not published.
nest_intake_scanLive 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 `nest_intake_file`
Parameters not published.
nest_intake_skipSkip a staged item — leave the file, record the decision
Parameters not published.
nest_promotePromote a Nest's **structure** — counts, curated category names, redacted secret kinds, never content — into the knowledge base via the same core write as `knowledge_ingest`. `dry_run=True` returns the atoms that would be promoted
Parameters not published.
nest_scanWalk a drop folder, extract + classify its files by meaning, and write a canonical SQLite Nest DB. Returns counts only; `dry_run=True` (default) reports without writing — see [docs/NEST.md](docs/NEST.md)
Parameters not published.
nest_statusCounts 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`
Parameters not published.
receipts_tailRead your own most-recent tool-call receipts — a self-audit trail scoped to your `app_id`
Parameters not published.
schema_confirm_mappingConfirm (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](docs/design/schema-adaptation.md)
Parameters not published.
session_readRead thin session state file
Parameters not published.
store_collectionsList the SOIL collections you can see (narrowed to your `store_scope`) — learn the collection names without running a search
Parameters not published.
store_deleteSoft-delete a record by `record_id`
Parameters not published.
store_getRead record by `record_id`
Parameters not published.
store_listList all records in a collection
Parameters not published.
store_purge_collectionBulk 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 `store_scope`
Parameters not published.
store_putWrite record (JSON object) to SQLite store
Parameters not published.
store_searchMulti-keyword AND search in a collection
Parameters not published.
store_search_allSearch across all collections
Parameters not published.
store_statsPer-collection live-record counts (within your `store_scope`), largest first, plus store-wide totals — the numeric companion to `store_collections` for spotting a bloated or polluted collection
Parameters not published.
store_updateUpdate an existing record
Parameters not published.
task_listList pending tasks
Parameters not published.
task_statusCheck task status
Parameters not published.
task_submitSubmit task to Kart queue
Parameters not published.
verify_handoffOrchestrator verifies completion
Parameters not published.
whoamiReport your own identity and effective permissions — app_id, role, permission groups, the resolved set of tools you can call (minus `deny_tools`), and your `store_scope`. Ungated, like `diagnostic_summary`
Parameters not published.
willow_institutional_searchFan a query across jeles' registered institutional/academic collections (arXiv, PubMed, Crossref, OpenAlex, …) — citable sources rather than open web. Same `web_read` line as the two above, so one grant covers all three
Parameters not published.
willow_web_fetchFetch one URL through the destination guard: the host is **resolved** and every address tested (not just literals), every redirect hop re-checked, body scanned by external-guard and sandwich-wrapped. Returns the `redirects` chain actually followed
Parameters not published.
willow_web_searchOpen-web search with the results run through **external-guard** — the guarded replacement for a client's native web tool. `web_read` + `web_net` + `consent.internet` + a live lease
Parameters not published.
Ask AI
Ask AI about Willow MCP
Powered by Claude · Grounded in docs
Security checks
6 checks have not been run yet.