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

컬렉션 내 원자(atom) 목록 나열

store_search

컬렉션 내 전체 텍스트 검색

store_delete

원자(atom) 삭제

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