Skip to main content
Glama

willow-mcp

与代理无关的 MCP 服务器。提供 SQLite 键值存储、Postgres 知识库和 Kart 任务队列。每次工具调用均需 SAP/1.0 授权。

pip install willow-mcp

工具

工具

描述

store_put

写入 SQLite 存储

store_get

读取 SQLite 存储

store_list

列出集合中的原子

store_search

在集合中进行全文搜索

store_delete

删除原子

store_search_all

在所有集合中搜索

knowledge_ingest

添加到 Postgres 知识库

knowledge_search

搜索 Postgres 知识库

task_submit

提交任务到 Kart 队列

task_status

检查任务状态

task_list

列出待处理任务

每个工具都需要一个 app_id 参数。授权通过 SAP/1.0 进行检查。

Related MCP server: astra-knowledge-base-mcp

OpenClaw 配置

{
  "mcp": {
    "servers": {
      "willow": {
        "command": "python3",
        "args": ["-m", "willow_mcp"],
        "env": {
          "WILLOW_PG_DB": "willow",
          "SAP_SAFE_ROOT": "~/.sap/Applications",
          "SAP_PGP_FINGERPRINT": "YOUR_KEY_FINGERPRINT"
        }
      }
    }
  }
}

配置

环境变量

默认值

描述

WILLOW_PG_DB

willow

Postgres 数据库名称

WILLOW_PG_USER

$USER

Postgres 用户 (Unix 套接字认证)

WILLOW_STORE_ROOT

~/.willow/store

SQLite 存储目录

SAP_SAFE_ROOT

~/.sap/Applications

SAFE 文件夹根目录

SAP_PGP_FINGERPRINT

(空)

固定的 GPG 指纹

授权

使用 openclaw-sap-gate (SAP/1.0)。为每个 app_id 设置一个 SAFE 文件夹:

sap-gate init my-app
# edit ~/.sap/Applications/my-app/safe-app-manifest.json
# sign it, then:
sap-gate verify my-app

许可证

MIT — Sean Campbell 2026

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 147 tool updatesv2.54.1
    • Removedagent_clear
    • Removedagent_dispatch_result
    • Removedagent_route
    • Removedagent_seed_mirror
    • Removedcode_graph_explain
    • Removedcode_graph_impact
    • Removedcode_graph_index
    • Removedcode_graph_search
    • Removedcode_graph_suggest
    • Removedcode_graph_walk
    • Removedcommitment_acknowledge
    • Removedcommitment_ingest
    • Removedcommitment_list
    • Removedcommitment_surface
    • Removedcontext_expire
    • Removedcontext_get
    • Removedcontext_list
    • Removedcontext_save
    • Removeddecision_propose
    • Removeddiagnostic_summary
    • Removeddispatch_accept
    • Removeddispatch_list
    • Removeddispatch_read
    • Removeddispatch_send
    • Removedenv_check
    • Removedenvelope_apply
    • Removedenvelope_list
    • Removedenvelope_pending_read
    • Removedenvelope_propose
    • Removedenvelope_ratify
    • Removedenvelope_read_discards
    • Removedenvelope_reject
    • Removedexposure_config_get
    • Removedexposure_slice
    • Removedfederation_call
    • Removedfederation_discover
    • Removedfederation_list_servers
    • Removedfleet_health
    • Removedfleet_status
    • Removedfork_create
    • Removedfork_delete
    • Removedfork_join
    • Removedfork_list
    • Removedfork_log
    • Removedfork_merge
    • Removedfork_status
    • Removedfrank_append
    • Removedfrank_read
    • Removedfrank_verify
    • Removedfriction_flags_list
    • Removedfriction_scan
    • Removedgap_delete
    • Removedgap_list
    • Removedgap_log
    • Removedgap_promote
    • Removedgap_purge_topic
    • Removedgap_resolve
    • Removedgit_pull_execute
    • Removedgit_push_execute
    • Removedgitsync_sweep
    • Removedgrove_ack
    • Removedgrove_agents
    • Removedgrove_bus_receive
    • Removedgrove_bus_send
    • Removedgrove_flag
    • Removedgrove_flagged
    • Removedgrove_fleet_status
    • Removedgrove_get_history
    • Removedgrove_get_identity
    • Removedgrove_get_thread
    • Removedgrove_heartbeat
    • Removedgrove_human_required
    • Removedgrove_inbox
    • Removedgrove_list_channels
    • Removedgrove_reply
    • Removedgrove_search
    • Removedgrove_send_message
    • Removedgrove_unflag
    • Removedgrove_watch
    • Removedgrove_watch_all
    • Removedhandoff_read
    • Removedhandoff_write_v4
    • Removedhuman_attestation_create
    • Removedhuman_attestation_list
    • Removedhuman_required_enqueue
    • Removedhuman_required_list
    • Removedhuman_required_resolve
    • Removedintegration_call
    • Removedintegration_list
    • Removedintegration_status
    • Removedkb_at
    • Removedkb_ingest
    • Removedkb_journal
    • Removedkb_journal_read
    • Removedkb_promote
    • Removedkb_startup_continuity
    • Removedknowledge_check
    • Removedknowledge_flag
    • Removedknowledge_ingest
    • Removedknowledge_retract
    • Removedknowledge_search
    • Removedknowledge_verify
    • Removedlineage_link
    • Removedlineage_list
    • Removedlineage_record
    • Removedlineage_why
    • Removednest_digest
    • Removednest_intake_file
    • Removednest_intake_flags
    • Removednest_intake_queue
    • Removednest_intake_scan
    • Removednest_intake_skip
    • Removednest_promote
    • Removednest_scan
    • Removednest_status
    • Removednestor_tool_pending
    • Removednestor_tool_route
    • Removednestor_tool_seal
    • Removedpr_open_execute
    • Removedreceipts_tail
    • Removedschema_confirm_mapping
    • Removedsession_bind
    • Removedsession_enter
    • Removedsession_handoff_write
    • Removedsession_read
    • Removedsession_reconcile
    • Removedsessions_read_unverifiable
    • Removedspecialist_get
    • Removedspecialist_list
    • Removedstore_collections
    • Removedstore_delete
    • Removedstore_get
    • Removedstore_list
    • Removedstore_purge_collection
    • Removedstore_put
    • Removedstore_search
    • Removedstore_search_all
    • Removedstore_stats
    • Removedstore_update
    • Removedtask_list
    • Removedtask_status
    • Removedtask_submit
    • Removedverify_handoff
    • Removedwhoami
    • Removedwillow_institutional_search
    • Removedwillow_web_fetch
    • Removedwillow_web_search
  2. 5 tool updatesv2.48.0
    • Addedgit_pull_execute
    • Changedgit_push_execute1 field changed
      • addedInput schema / properties / base
        Added value: +{
        +  "default": "",
        +  "title": "Base",
        +  "type": "string"
        +}
    • Addedgitsync_sweep
    • Addedpr_open_execute
    • Changedtask_submit1 field changed
      • addedInput schema / properties / anticipated_gates
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "title": "Anticipated Gates"
        +}
  3. 1 tool updatev2.36.0
    • Addeddecision_propose
  4. 1 tool updatev2.34.0
    • Addedgit_push_execute
  5. 2 tool updatesv2.27.0
    • Changeddispatch_send1 field changed
      • addedInput schema / properties / envelope_id
        Added value: +{
        +  "default": "",
        +  "title": "Envelope Id",
        +  "type": "string"
        +}
    • Changedenvelope_list1 field changed
      • addedInput schema / properties / include_revoked
        Added value: +{
        +  "default": false,
        +  "title": "Include Revoked",
        +  "type": "boolean"
        +}
  6. 1 tool updatev2.23.0
    • Addedkb_journal_read
  7. 8 tool updatesv2.19.0
    • Addedenvelope_list
    • Addedenvelope_pending_read
    • Addedenvelope_propose
    • Addedenvelope_ratify
    • Addedenvelope_read_discards
    • Addedenvelope_reject
    • Changedsession_enter3 fields changed
      • addedInput schema / properties / attested_at
        Added value: +{
        +  "default": "",
        +  "title": "Attested At",
        +  "type": "string"
        +}
      • addedInput schema / properties / seal_sig
        Added value: +{
        +  "default": "",
        +  "title": "Seal Sig",
        +  "type": "string"
        +}
      • addedInput schema / properties / verifier
        Added value: +{
        +  "default": "",
        +  "title": "Verifier",
        +  "type": "string"
        +}
    • Addedsessions_read_unverifiable

TDQS

B3.3/5.0

Scored across 147 tools

Disambiguation4/5

The tool set is enormous but organized into clear prefix families (store_*, grove_*, gap_*, knowledge_*, kb_*, dispatch_*, envelope_*, session_*, fork_*, etc.) with detailed descriptions. A few pairs could be confused (e.g., store_search vs store_search_all, grove_send_message vs grove_bus_send, handoff_write_v4 vs session_handoff_write) but their scopes are distinct enough that an agent reading descriptions would likely pick correctly.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun (or prefix_verb_noun) pattern. Prefixes denote the domain (store, grove, gap, knowledge, kb, dispatch, fork, envelope, session, human, etc.), and verbs are consistently descriptive. There are no mixed conventions like camelCase or abbreviated ambiguities.

Tool Count1/5

147 tools is extreme for any MCP server, even one covering a broad governance/fleet management domain. The sheer volume makes the surface area unwieldy and increases the risk of a tool being overlooked or mis-selected. Per the calibration, 50+ tools is a strong mismatch; 147 far exceeds that threshold.

Completeness5/5

The tool set provides comprehensive coverage across its apparent domains: store CRUD and search, messaging and fleet coordination, knowledge base lifecycle, gap/backlog management, task queueing, dispatch workflow, fork management, envelope governance, session binding/reconciliation, human-required queue, and attestations. Each domain has create/read/update/delete or lifecycle operations, leaving very few obvious gaps.

Maintenance

ActivityNo data
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers