Agent-neutral MCP server — SQLite store, Postgres knowledge base, Kart task queue
Project description
willow-mcp
Agent-neutral MCP server. SQLite store (aligned with willow-1.7 WillowStore schema), Postgres knowledge base, Kart task queue. SAP/1.0 authorization on every tool call.
pip install willow-mcp
v1.1.0 — Breaking changes
Store API now matches willow-1.7 sap_mcp.py exactly:
store_put: takesrecord(JSON object) + optionaldeviationfloat — notcontentstringstore_get/store_delete: userecord_idnotidstore_list: returns flat list, not{items: [...]}store_update: new toolstore_search: multi-keyword AND (all tokens must match)- Schema:
recordstable with JSON blob, soft delete, deviation scoring WILLOW_STORE_ROOTshares SQLite files with willow-1.7 when set to the same path
Tools
| Tool | Description |
|---|---|
store_put |
Write record (JSON object) to SQLite store |
store_get |
Read record by record_id |
store_list |
List all records in a collection |
store_update |
Update an existing record |
store_search |
Multi-keyword AND search in a collection |
store_delete |
Soft-delete a record by record_id |
store_search_all |
Search across all collections |
knowledge_ingest |
Add to Postgres knowledge base |
knowledge_search |
Multi-keyword search in Postgres knowledge base |
task_submit |
Submit task to Kart queue |
task_status |
Check task status |
task_list |
List pending tasks |
Every tool requires an app_id param. Authorization is checked via SAP/1.0.
MCP config
{
"mcpServers": {
"willow": {
"command": "python3",
"args": ["-m", "willow_mcp"]
}
}
}
On Sean's machine the global Claude Code config overrides this to willow-1.7/sap_mcp.py for full SAP access. The tool API is identical — apps work against both transparently.
Configuration
| Env var | Default | Description |
|---|---|---|
WILLOW_PG_DB |
willow |
Postgres database name |
WILLOW_PG_USER |
$USER |
Postgres user (Unix socket auth) |
WILLOW_STORE_ROOT |
~/.willow/store |
SQLite store directory — set to willow-1.7's store root to share data |
WILLOW_APP_ID |
willow-mcp |
Default app_id if not passed per-call |
SAP_SAFE_ROOT |
~/.sap/Applications |
SAFE folder root |
SAP_PGP_FINGERPRINT |
(empty) | Pinned GPG fingerprint |
Authorization
Uses openclaw-sap-gate (SAP/1.0). If openclaw-sap-gate is not installed, all calls are permitted (open mode).
License
MIT — Sean Campbell 2026
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file willow_mcp-1.2.0.tar.gz.
File metadata
- Download URL: willow_mcp-1.2.0.tar.gz
- Upload date:
- Size: 8.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d88a1a46ed6ec51750b2bf7711d3c1c9dcbeaf50183be37221b3d0d053bd847
|
|
| MD5 |
b32cd06fc83e3c070abf2af554dad332
|
|
| BLAKE2b-256 |
b4b9ccff6c83bfc995a1a5518eb6d3bc82a63a0fbf7ca97fb5c50949d1c1254f
|
File details
Details for the file willow_mcp-1.2.0-py3-none-any.whl.
File metadata
- Download URL: willow_mcp-1.2.0-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2fad11223bc383fe35a3c7a56953f5e72ab52756e6ef541744610d67b97e1b8e
|
|
| MD5 |
7695670ee63f601fe0b5b096005e50e6
|
|
| BLAKE2b-256 |
d054f25b08e19ee58dbb825340d770db437ee533e106cc16df633641ffde7113
|