Willow MCP
未认领Agent-neutral MCP server with persistent memory (SOIL + Postgres KB) and a sandboxed task queue. Manifest-based ACL; works with any stdio MCP client.
安装
.venv/bin/python3 -m willow_mcp更多Databases服务器
浏览完整目录安全概况
已认领和已认证的服务器每周接受一次静态扫描,显示代码能触及的范围(外部服务、环境变量、shell 命令、代理配置目录)以及带有已知公告的依赖。认领此列表即可获得。 安全概况的工作原理
40 个工具中显示 40 个
文档中列出的工具 (40)
内容来自项目文档。服务器握手不会验证每个工具的说明或行为。
agent_dispatch_result
Record the result of a dispatched agent task
agent_route
Route a task to a target agent, recording the decision
dispatch_send
Create dispatch packet (meta.json + assignment.md)
gap_delete
Soft-delete a single gap by id — clear junk/test entries without disturbing real gaps. Reversible (archive-don't-delete)
gap_list
List gaps, most-asked first — filter by topic and/or status (open/resolved/promoted)
gap_log
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
gap_promote
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
gap_purge_topic
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>
gap_resolve
Mark a gap as being worked or answered — bookkeeping only, does not write to the knowledge base
kb_at
Fetch a single knowledge atom by ID
kb_journal
Add a journal-domain knowledge atom (requires a confirmed schema mapping)
kb_promote
Change an atom's domain (requires a confirmed schema mapping)
kb_startup_continuity
Fetch atoms tagged/domained for startup continuity
knowledge_flag
Attach an integrity flag to an existing atom (knowledgecurate; tags-based, idempotent)
knowledge_ingest
Add a knowledge atom (requires a confirmed schema mapping — see schemaconfirmmapping)
knowledge_retract
Tombstone an atom in place — hidden from default search, still readable via kbat (knowledgecurate)
knowledge_search
Multi-keyword search in the Postgres knowledge base
nest_digest
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
nest_intake_file
File a staged item: move the file to its predicted track's destination, or overridedest to correct it. An override feeds the correction counter
nest_intake_flags
List open rule-delta flags — patterns overridden often enough that the classifier proposes a rules change (a human ratifies)
nest_intake_queue
List the pending review queue with the track the classifier predicted for each file
nest_intake_scan
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
nest_intake_skip
Skip a staged item — leave the file, record the decision
nest_promote
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
nest_scan
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
nest_status
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
schema_confirm_mapping
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
store_collections
List the SOIL collections you can see (narrowed to your storescope) — learn the collection names without running a search
store_delete
Soft-delete a record by recordid
store_get
Read record by recordid
store_list
List all records in a collection
store_purge_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
store_put
Write record (JSON object) to SQLite store
store_search
Multi-keyword AND search in a collection
store_search_all
Search across all collections
store_stats
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
store_update
Update an existing record
task_list
List pending tasks
task_status
Check task status
task_submit
Submit task to Kart queue