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