Tool Catalog (generated)
Machine-generated signature index for the Leif MCP tools, built from the live FastMCP tool schemas. The exhaustive companion to the curated per-namespace reference pages.
This page is generated from the live FastMCP tool schemas — the parameters and defaults are exactly what the server accepts. It is the exhaustive, never-stale signature index; the curated namespace pages remain the readable guides with prose, gotchas, and worked examples.
cwa_* — ConnectWise Automate (RMM)
Find managed computers, run scripts/commands, read history. Note: only saved-script execution (cwa_execute / cwa_run_powershell) returns real stdout; cwa_run_command type 2 always returns Output: “ERR”.
Curated guide: ConnectWise Automate (RMM).
cwa_await_callback
Wait for a pending CWA PowerShell callback result. Use this after cwa_run_powershell returns status: Timeout with a callback_token. The shim script was successfully queued — it just hasn’t run yet because the CWA agent scheduler tick (~80-130s) hadn’t fired within the first call’s poll window. This tool polls the local SQLite store (cheap — no CWA API calls) for the token until the managed PC POSTs its output or the token expires. Args: token: The callback_token from a previou…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
token | string | yes | — | |
poll_interval | number | no | 5 | |
poll_attempts | integer | no | 60 |
cwa_execute
Run a script on a computer.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
computer_id | integer | yes | — | |
script_id | integer | yes | — | |
parameters | object|null | no | — |
cwa_get
Get or list ConnectWise Automate records.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | integer|null | no | — | |
condition | string|null | no | — | |
page | integer | no | 1 | |
page_size | integer | no | 50 |
cwa_probe_command_endpoint
Probe candidate CWA command endpoint paths to find the working one. Tries POST against all known path variants and reports HTTP status codes. 200/202 = working; 405 = path exists, wrong method; 404 = not found. Also caches the winner so subsequent cwa_run_command calls use it. Args: computer_id: A valid computer ID to use in path substitution.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
computer_id | integer | yes | — |
cwa_raw_request
Make a raw authenticated CWA API request and return the full response. Unlike other tools, this never raises on 4xx/5xx — it returns the raw status_code, headers, and body_text so you can diagnose schema mismatches or explore endpoints. Args: method: HTTP method (GET, POST, PUT, DELETE). path: API path beginning with / (e.g. /Commands). body: Optional JSON body for the request. params: Optional query parameters.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
method | string | yes | — | |
path | string | yes | — | |
body | object|null | no | — | |
params | object|null | no | — |
cwa_run_command
Queue a command on a CWA-managed computer. Verified live against POST /Computers/{id}/CommandExecute. IMPORTANT — output capture is limited by CWA itself: - command_type="2" (“Execute Command”) is fire-and-forget. The agent ALWAYS returns Output: "ERR" regardless of the actual stdout. Status reflects launch success only. To get real stdout, run a saved CWA script via cwa_execute / cwa_run_powershell (which use the /Batch/ScriptExecute “run now” endpoint and read output…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
computer_id | integer | yes | — | |
command | string|null | no | — | |
command_type | string | no | 2 | |
parameters | array|null | no | — | |
shell | string | no | cmd | |
fastalk | boolean | no | true | |
auto_encode | boolean | no | true | |
force_encode | boolean | no | false | |
auto_salt_on_duplicate | boolean | no | true | |
poll | boolean | no | true | |
poll_interval | number | no | 2 | |
poll_attempts | integer | no | 20 |
cwa_run_powershell
Run an ad-hoc PowerShell script via the CWA shim and return stdout. This is the only path in CWA that returns real script output. Command type 2 (“Execute Command”) always returns Output: "ERR" regardless of stdout — this tool exists to work around that. Callback mode (default when CWA_CALLBACK_BASE_URL is set): Instead of relying on CWA’s DiagnosticMessage field (which is truncated to ~80 chars), the user’s script is wrapped in a PowerShell snippet that captures all stdout/st…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
computer_id | integer | yes | — | |
script | string | yes | — | |
shim_script_id | integer | yes | — | |
poll_interval | number | no | 3 | |
poll_attempts | integer | no | 15 | |
nudge | boolean | no | false | |
use_callback | boolean | no | true |
cwa_script_history
Fetch recent script-run history for a CWA computer. Each record includes DiagnosticMessage — the full execution log with captured variable values (when the script has @ScriptEngineEnableLogger@ set to True). This is the primary stdout-capture surface in CWA. Important: The list endpoint truncates DiagnosticMessage to ~80 characters. To get complete output for a specific run, pass history_id (the history_id returned by cwa_run_powershell after a Timeout or compl…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
computer_id | integer | yes | — | |
script_id | integer|null | no | — | |
limit | integer | no | 10 | |
history_id | integer|null | no | — | |
full_output | boolean | no | false |
cwa_search
Search ConnectWise Automate computers.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string|null | no | — | |
condition | string|null | no | — | |
page | integer | no | 1 | |
page_size | integer | no | 50 |
cwa_search_scripts
Search the CWA script library by name or OData condition. Use this BEFORE writing your own diagnostic logic — there is almost certainly already a “Get Eventlog Last 24h” or similar script in the library. Pass the discovered Id to cwa_execute to run it on a target computer; that is the only path that returns real stdout from CWA. Args: name: Substring matched as Name like '%<name>%'. condition: Raw condition string. Overrides name. page: 1-indexed page number. page_size: Items…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string|null | no | — | |
condition | string|null | no | — | |
page | integer | no | 1 | |
page_size | integer | no | 50 |
cwa_status
Get a quick ConnectWise Automate health overview.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
include_alerts | boolean | no | true | |
include_offline | boolean | no | true | |
offline_limit | integer | no | 10 |
hudu_* — Hudu (IT Documentation)
IT documentation system of record — companies, assets, articles, passwords, and their relationships. Entity-typed CRUD scoped by company_id; ‘delete’ is usually an archive via hudu_update (action=archive), and hudu_lookup bridges an external integration’s identifier to a Hudu resource and back.
Curated guide: Hudu (IT Documentation).
hudu_create
Create a Hudu record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
name | string | yes | — | |
company_id | integer|null | no | — | |
data | object|null | no | — |
hudu_delete
Delete a Hudu record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | integer | yes | — |
hudu_get
Get or list Hudu records by entity type.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | integer|null | no | — | |
company_id | integer|null | no | — | |
name | string|null | no | — | |
page | integer | no | 1 | |
page_size | integer | no | 25 | |
data | object|null | no | — | |
integration_id | string|null | no | — |
hudu_lookup
Perform a special Hudu lookup.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
lookup_type | string | yes | — | |
integration_slug | string|null | no | — | |
integration_id | string|null | no | — | |
integration_identifier | string|null | no | — | |
company_id | integer|null | no | — | |
resource_id | integer|null | no | — | |
resource_type | string|null | no | — | |
user_id | integer|null | no | — | |
page | integer | no | 1 |
hudu_search
Search across Hudu entities.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — |
hudu_update
Update, archive, or unarchive a Hudu record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | integer | yes | — | |
action | string | no | update | |
company_id | integer|null | no | — | |
data | object|null | no | — |
repairshopr_* — RepairShopr
System of record for tickets, customers, invoices. Entity-typed CRUD plus comments and search.
Curated guide: RepairShopr.
repairshopr_comment
Add a comment to a RepairShopr ticket.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
ticket_id | integer | yes | — | |
comment | string | yes | — | |
hidden | boolean | no | false | |
do_not_email | boolean | no | false |
repairshopr_create
Create a RepairShopr record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
data | object | yes | — |
repairshopr_delete
Delete a RepairShopr record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | integer | yes | — |
repairshopr_export
Slim paged export of tickets, customers, invoices, or POs for sync pipelines. Returns summary fields only, so responses stay far below the MCP output cap. Tickets filter server-side via since_updated_at; customers walk updated_at DESC pages and stop once records are older than since_updated_at (RS has no since filter for customers).
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
since_updated_at | string|null | no | — | |
status | string|null | no | — | |
created_after | string|null | no | — | |
start_page | integer | no | 1 | |
max_pages | integer | no | 5 |
repairshopr_get
Get or list RepairShopr records.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | integer|null | no | — | |
filters | object|null | no | — |
repairshopr_search
Search across RepairShopr entities.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
search_type | string | no | all |
repairshopr_update
Update a RepairShopr record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | integer | yes | — | |
data | object | yes | — |
quickbooks_* — QuickBooks Online
Accounting. quickbooks_query is the SQL-like read workhorse; mutations use QBO’s SyncToken concurrency model. IDs are strings.
Curated guide: QuickBooks Online.
quickbooks_create
Create a QuickBooks record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
data | object | yes | — |
quickbooks_delete
Delete a QuickBooks record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | string | yes | — | |
sync_token | string|null | no | — |
quickbooks_export
Export QuickBooks records to CSV with pagination.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
filters | object|null | no | — | |
max_records | integer | no | 1000 |
quickbooks_get
Get a single QuickBooks record or list records.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | string|null | no | — | |
filters | object|null | no | — |
quickbooks_invoice_class_detail
Return invoice class attribution for an exact QuickBooks invoice number. Exposes transaction- and line-level ClassRef values in a compact shape so callers can audit upstream location/class mappings without parsing the full QBO invoice payload.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
doc_number | string | yes | — |
quickbooks_query
Run a raw QuickBooks SQL-like query.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
start_position | integer|null | no | — | |
max_results | integer|null | no | — |
quickbooks_reconcile_invoice_classes
Bulk-audit expected class against actual QBO invoice line classes. Input rows require doc_number and expected_class; arbitrary caller context (for example RS invoice id, technician, or RS location) is echoed back. This tool is read-only and never changes QuickBooks.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
invoices | array[object] | yes | — |
quickbooks_report
Run a standard QuickBooks financial report.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
report_type | string | yes | — | |
report_name | string|null | no | — | |
start_date | string|null | no | — | |
end_date | string|null | no | — | |
date | string|null | no | — | |
accounting_method | string|null | no | — | |
summarize_column_by | string|null | no | — | |
params | object|null | no | — |
quickbooks_update
Update a QuickBooks record.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | string | yes | — | |
data | object | yes | — | |
sync_token | string|null | no | — | |
sparse | boolean | no | true |
cf_* — Cloudflare
Zones, DNS, SSL mode, settings, cache. IMPORTANT: most cf_* tools take their args inside a nested params object (shown below as the inner fields). DNS updates are full replacements.
Curated guide: Cloudflare.
cf_create_dns_record
Create a new DNS record in a Cloudflare zone. Args: params.zone_id: Cloudflare zone ID params.record_type: Record type (A, AAAA, CNAME, MX, TXT, SRV, etc.) params.name: Record name (e.g. ‘www’, ‘mail’, or ’@’ for root) params.content: Record value (IP, hostname, or text content) params.ttl: TTL in seconds; 1 = automatic (default) params.proxied: Route through Cloudflare proxy (default False) params.priority: Priority for MX/SRV records Returns: str: JSON with the created record details includ…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_delete_dns_record
Delete a DNS record from a Cloudflare zone. This is a destructive operation and cannot be undone. Use cf_list_dns_records to find the record_id before deleting. Args: params.zone_id: Cloudflare zone ID params.record_id: ID of the DNS record to delete Returns: str: JSON confirming deletion with the deleted record ID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_get_ssl_mode
Get the SSL/TLS encryption mode for a Cloudflare zone. Modes: off, flexible, full, strict. ‘flexible’ is the most common cause of WordPress redirect loops. Args: params.zone_id: Cloudflare zone ID (get from cf_get_zone or cf_list_zones) Returns: str: JSON with the current ssl setting id, value, and editable flag.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_get_zone
Look up a Cloudflare zone by domain name and return its details including zone ID. Args: params.domain: The exact domain name to look up (e.g. ‘sanbornpropane.com’) Returns: str: JSON with zone id, name, status, plan, name_servers, and paused flag.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_get_zone_settings
Get all settings for a Cloudflare zone. Returns all configurable settings (SSL, security level, caching, minification, always_use_https, WAF, etc.) as a list of {id, value, editable} objects. Args: params.zone_id: Cloudflare zone ID Returns: str: JSON with list of all zone settings.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_list_dns_records
List DNS records for a Cloudflare zone. Args: params.zone_id: Cloudflare zone ID params.record_type: Optional filter by type (A, CNAME, MX, TXT, etc.) params.name: Optional filter by record name Returns: str: JSON with list of DNS records including id, type, name, content, ttl, proxied.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_list_zones
List all Cloudflare zones (domains) on the account. Returns a list of zones with id, name, status, name_servers, and plan. Use zone IDs from this list as input to other cf_* tools. Returns: str: JSON with success bool and result list of zone objects.
Parameters not in the seed catalog — see the namespace reference page.
cf_purge_cache
Purge cached assets for a Cloudflare zone. Either purge_everything=True (clears all cached files) or provide a list of specific file URLs to purge selectively. Args: params.zone_id: Cloudflare zone ID params.purge_everything: If True, purge all cached assets params.files: List of specific URLs to purge (alternative to purge_everything) Returns: str: JSON confirming the purge operation.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_set_ssl_mode
Set the SSL/TLS encryption mode for a Cloudflare zone. Valid modes: off - No SSL (HTTP only) flexible - SSL between visitor and Cloudflare; HTTP to origin full - SSL end-to-end; origin cert can be self-signed strict - SSL end-to-end; origin cert must be valid/trusted Use ‘full’ or ‘strict’ to fix WordPress/origin redirect loops caused by ‘flexible’. Args: params.zone_id: Cloudflare zone ID params.mode: One of: off, flexible, full, strict Returns: str: JSON with the updated ssl setting.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_set_zone_setting
Set a specific zone setting for a Cloudflare zone. Common setting IDs and example values: always_use_https -> “on” or “off” security_level -> “off” | “essentially_off” | “low” | “medium” | “high” | “under_attack” browser_cache_ttl -> integer (seconds) cache_level -> “aggressive” | “basic” | “simplified” development_mode -> “on” or “off” email_obfuscation -> “on” or “off” minify -> {“css”: “on”, “html”: “on”, “js”: “on”} rocket_loader -> “on” or “off” automatic_https_rewrites -> “on” or “off”…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
cf_update_dns_record
Update (replace) an existing DNS record in a Cloudflare zone. All fields are required as this is a full replacement (PUT), not a partial update. Use cf_list_dns_records to find the record_id. Args: params.zone_id: Cloudflare zone ID params.record_id: ID of the DNS record to update params.record_type: Record type (A, AAAA, CNAME, MX, TXT, etc.) params.name: Record name params.content: New record value params.ttl: TTL in seconds; 1 = automatic params.proxied: Route through Cloudflare proxy para…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
pve_* — Proxmox Virtual Environment
Node/storage/template inventory, LXC & VM lifecycle, in-guest exec, async task polling. Most tools take node + vmid; lifecycle ops are async and return a task UPID.
Curated guide: Proxmox Virtual Environment.
pve_lxc_create
Create an LXC container on a Proxmox node. Required inputs: node, vmid, hostname, ostemplate, storage, rootfs_size_gb, cores, memory_mb. Optional inputs: swap_mb, password, ssh_public_keys, net0, unprivileged, features, start. If the container will run Docker, set features=“nesting=1”. Without that, Docker-in-LXC will fail. Returns the async task UPID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
vmid | integer | yes | — | |
hostname | string | yes | — | |
ostemplate | string | yes | — | |
storage | string | yes | — | |
rootfs_size_gb | integer | yes | — | |
cores | integer | yes | — | |
memory_mb | integer | yes | — | |
swap_mb | integer | no | 512 | |
password | string|null | no | — | |
ssh_public_keys | string|null | no | — | |
net0 | string | no | name=eth0,bridge=vmbr0,ip=dhcp | |
unprivileged | integer | no | 1 | |
features | string|null | no | — | |
start | boolean | no | false |
pve_lxc_destroy
Destroy an LXC container. This permanently deletes the container, so force=true is required.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
vmid | integer | yes | — | |
force | boolean | no | false |
pve_lxc_exec
Run a shell command inside an LXC using pct exec over SSH to the Proxmox host. Returns stdout, stderr, and return_code.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
vmid | integer | yes | — | |
command | string | yes | — |
pve_lxc_list
List LXC containers with vmid, name, status, CPU, memory, and disk usage. If node is omitted, includes all nodes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string|null | no | — |
pve_lxc_shutdown
Gracefully shut down an LXC container and return the Proxmox task UPID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
vmid | integer | yes | — |
pve_lxc_start
Start an LXC container and return the Proxmox task UPID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
vmid | integer | yes | — |
pve_lxc_stop
Hard-stop an LXC container. This is abrupt power-off behavior, so force=true is required.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
vmid | integer | yes | — | |
force | boolean | no | false |
pve_node_status
Get CPU, memory, disk, uptime, and load data for each Proxmox node.
Parameters not in the seed catalog — see the namespace reference page.
pve_storage_list
List Proxmox storage pools with type, used, total, available, and content types. If node is omitted, lists storage on all nodes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string|null | no | — |
pve_task_status
Get the status of an async Proxmox task by node and UPID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
upid | string | yes | — |
pve_template_list
List available LXC templates on a node and storage. Use this to find the exact Debian 12 template name before pve_lxc_create.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
storage | string | no | local |
pve_vm_exec
Run a shell command inside a QEMU VM via the QEMU Guest Agent. Requires qemu-guest-agent installed and running inside the VM (and the VM’s config must have agent: 1). Returns stdout, stderr, and return_code. If the agent is unavailable, return_code will be non-zero and stderr will carry the host-side error message.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
vmid | integer | yes | — | |
command | string | yes | — |
pve_vm_list
List QEMU VMs with vmid, name, status, CPU, memory, and disk usage. If node is omitted, includes all nodes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string|null | no | — |
growably_* — Growably / LeadConnector CRM
Contacts, opportunities, conversations, tags, messaging, workflows. Discover IDs via growably_get; use growably_manage_tags (not growably_update) for tags; confirm before send_message / trigger_workflow.
Curated guide: Growably / LeadConnector CRM.
growably_add_note
Add a note to a Growably contact.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
contact_id | string | yes | — | |
body | string | yes | — |
growably_create_opportunity
Create a new opportunity in a Growably pipeline. Use growably_get entity_type=pipeline to discover pipeline/stage IDs. status: open, won, lost, abandoned (default: open)
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | yes | — | |
pipeline_id | string | yes | — | |
stage_id | string | yes | — | |
contact_id | string | yes | — | |
monetary_value | number|null | no | — | |
status | string | no | open |
growably_get
Get or list Growably/LeadConnector records. entity_type options: contact — list contacts or get by id opportunity — list opportunities or get by id pipeline — list all pipelines calendar — list calendars calendar_event — list events (filter: calendar_id, start_time, end_time) conversation — list conversations or get by id (filter: contact_id) conversation_messages — get messages for a conversation (requires: id) workflow — list workflows tag — list all tags custom_field — list custom fields l…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | string|null | no | — | |
query | string|null | no | — | |
pipeline_id | string|null | no | — | |
stage_id | string|null | no | — | |
contact_id | string|null | no | — | |
calendar_id | string|null | no | — | |
conversation_id | string|null | no | — | |
start_time | string|null | no | — | |
end_time | string|null | no | — | |
limit | integer | no | 20 | |
start_after | string|null | no | — | |
start_after_id | string|null | no | — |
growably_manage_tags
Add or remove tags on a Growably contact. action: “add” or “remove” tags: List of tag strings Uses dedicated tag endpoints (not PUT contact) to avoid overwriting existing tags.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
contact_id | string | yes | — | |
action | string | yes | — | |
tags | array[string] | yes | — |
growably_send_message
Send a message to a Growably contact via SMS or Email. IMPORTANT: Always confirm the recipient, message content, and channel with Wayne before calling this tool. Once sent, messages cannot be recalled. type: SMS (default), Email, GMB, WhatsApp, IG, FB, Custom subject: Required when type=Email email_from: Optional sender address override for Email
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
contact_id | string | yes | — | |
message | string | yes | — | |
type | string | no | SMS | |
subject | string|null | no | — | |
email_from | string|null | no | — |
growably_trigger_workflow
Trigger a Growably workflow on a contact. Use growably_get entity_type=workflow to discover workflow IDs. IMPORTANT: Confirm with Wayne before triggering workflows that send communications to customers.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
contact_id | string | yes | — | |
workflow_id | string | yes | — |
growably_update
Update a Growably record. entity_type: contact, opportunity id: Record ID to update data: Fields to update (dict). For contacts, avoid updating tags directly here — use growably_manage_tags instead to prevent tag overwrites.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
id | string | yes | — | |
data | object | yes | — |
growably_upsert_contact
Create or update a Growably contact (matched by email/phone). If a contact with the same email or phone already exists it will be updated; otherwise a new contact is created. custom_fields format: [{“id”: “<field_id>”, “value”: "
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
first_name | string | yes | — | |
last_name | string|null | no | — | |
email | string|null | no | — | |
phone | string|null | no | — | |
tags | array|null | no | — | |
source | string|null | no | — | |
custom_fields | array|null | no | — |
gmail_* — Gmail (lowercase)
Search with Gmail query syntax, read, send, draft, attachments, labels. Use lowercase gmail_* (not capital-G Gmail:*). For customer-facing sends, use gmail_stage_send → gmail_confirm_send instead of sending directly.
Curated guide: Gmail (lowercase).
gmail_confirm_send
Confirm and deliver a staged email. Retrieves the staged send created by gmail_stage_send, sends it via Gmail, and removes it from the staging store.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
send_id | string | yes | — |
gmail_create_draft
Create a Gmail draft. attachments is an optional list of absolute file paths on the Leif server, under the uploads folder (by default /home/superht/data/uploads), at most 10 files and 17 MB in total. A refused path creates no draft.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
to | array[string] | yes | — | |
subject | string | yes | — | |
body | string | yes | — | |
html | boolean | no | false | |
attachments | array|null | no | — |
gmail_discard_staged_send
Discard a staged email without sending it.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
send_id | string | yes | — |
gmail_get_attachment
Download a Gmail attachment.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
message_id | string | yes | — | |
attachment_id | string | yes | — | |
output_path | string|null | no | — |
gmail_get_labels
List Gmail labels.
Parameters not in the seed catalog — see the namespace reference page.
gmail_get_message
Get a single Gmail message.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
message_id | string | yes | — | |
include_body | boolean | no | true |
gmail_get_recent_emails
Get recent Gmail messages with optional unread filtering.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
days | integer | no | 7 | |
max_results | integer | no | 20 | |
unread_only | boolean | no | false | |
page_token | string|null | no | — |
gmail_list_staged_sends
List all pending staged email sends awaiting confirmation.
Parameters not in the seed catalog — see the namespace reference page.
gmail_mark_as_read
Mark a Gmail message as read.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
message_id | string | yes | — |
gmail_search_emails
Search Gmail messages using query syntax.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
max_results | integer | no | 10 | |
include_body | boolean | no | true | |
page_token | string|null | no | — |
gmail_search_emails_batch
Search Gmail messages with pagination until the requested limit.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
total_limit | integer | no | 100 | |
include_body | boolean | no | true |
gmail_send_email
Send a Gmail message. attachments is an optional list of absolute file paths on the Leif server. Files must be under the uploads folder (by default /home/superht/data/uploads, where gmail_get_attachment saves), at most 10 files and 17 MB in total. A refused path sends nothing.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
to | array[string] | yes | — | |
subject | string | yes | — | |
body | string | yes | — | |
html | boolean | no | false | |
cc | array|null | no | — | |
bcc | array|null | no | — | |
reply_to_id | string|null | no | — | |
attachments | array|null | no | — |
gmail_stage_send
Stage an outbound email for review before it is sent. Use this instead of gmail_send_email for customer-facing messages. Returns a send_id. Call gmail_confirm_send with that id to actually deliver it, or gmail_discard_staged_send to cancel. Staged sends are stored locally and never leave the server until confirmed — the Gmail API is not contacted at this step. attachments is an optional list of absolute file paths on the Leif server, under the uploads folder (by default “…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
to | array[string] | yes | — | |
subject | string | yes | — | |
body | string | yes | — | |
html | boolean | no | false | |
cc | array|null | no | — | |
bcc | array|null | no | — | |
reply_to_id | string|null | no | — | |
attachments | array|null | no | — |
sheets_* — Google Sheets
Read, write, and manage Google Sheets. sheets_read and sheets_write take a spreadsheet_id plus sheet/range; sheets_manage handles structural operations (add sheet, resize, format).
Curated guide: Google Sheets.
sheets_manage
Create spreadsheets, inspect metadata, or add sheets.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
action | string | yes | — | |
spreadsheet_id | string|null | no | — | |
title | string|null | no | — | |
sheet_names | array|null | no | — | |
sheet_properties | object|null | no | — |
sheets_read
Read values from a spreadsheet.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
spreadsheet_id | string | yes | — | |
range | string|null | no | — | |
value_render_option | string | no | FORMATTED_VALUE |
sheets_write
Write, append, clear, or find/replace values in a spreadsheet.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
spreadsheet_id | string | yes | — | |
range | string|null | no | — | |
mode | string | no | write | |
values | array|null | no | — | |
find | string|null | no | — | |
replace | string|null | no | — | |
value_input_option | string | no | USER_ENTERED |
add_* — add
add_email_filter
Create an email filter.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
sender_email | string|null | no | — | |
sender_domain | string|null | no | — | |
subject_pattern | string|null | no | — | |
subject_match | string | no | contains | |
description | string | no | “ |
agent_* — agent
agent_dispatch
Start a scoped subagent run on the Leif host and return immediately. Edit agents (“edit”, “edit-probe”) are restricted to the principals in their allowed_callers. An “edit” run makes one change to the Leif repo in an ATC lane at an immutable base, checks every changed path against scope, runs the landing gate from main, and pushes atc/
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
agent | string | yes | — | |
task | string | yes | — | |
model | string|null | no | — | |
effort | string|null | no | — | |
max_turns | integer|null | no | — | |
context | string|null | no | — | |
scope | array|null | no | — | |
base | string|null | no | — | |
patch | string|null | no | — | |
expected_tree | string|null | no | — | |
idempotency_key | string|null | no | — |
agent_list
List dispatchable Leif subagents with model ceilings, caps and cost hints. Call this before agent_dispatch to pick the right agent. Every agent runs read-only under its own scoped Leif principal; the model can only be lowered from the default, never raised above the ceiling.
Parameters not in the seed catalog — see the namespace reference page.
agent_result
Final report plus subtype, stop reason, cost, usage, note id, and status.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
run_id | string | yes | — | |
max_chars | integer | no | 20000 |
agent_runs
List recent dispatched runs, newest first (run_id, agent, status, cost, note_id). Use this to recover a lost run_id or to see what is queued/running before dispatching more. Compact rows only; call agent_result for a specific run’s report. Args: limit: Max rows (1-200, default 20). status: Optional exact filter: queued|running|done|failed|timeout|lost.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
limit | integer | no | 20 | |
status | string|null | no | — |
agent_status
Run status; cost, turns, and usage normally appear only after termination.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
run_id | string | yes | — |
agent_wait
Wait server-side until a run is terminal or max_wait_s passes; one call, not a poll loop. Returns the run’s status either way, so dispatch + agent_wait replaces dispatch + N agent_status polls. Bounded: max_wait_s is capped (default cap 90s, under the MCP edge’s request timeout) and the call never blocks past it. If terminal is false, call agent_wait again. Args: run_id: The dispatched run to wait on. max_wait_s: Seconds to wait before returning the current status.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
run_id | string | yes | — | |
max_wait_s | number | no | 60 |
append_* — append
append_to_excel
Append rows to an existing Excel workbook.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
data | array[object] | yes | — | |
sheet_name | string|null | no | — |
apt_* — apt
apt_install
Install packages with APT on the local host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
packages | array[string] | yes | — | |
update_cache | boolean | no | true |
apt_search
Search available APT packages on the local host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
search_term | string | yes | — |
backfill_* — backfill
backfill_event_log
Backfill historical conversation turns into the event log. source_format is claude_export, slack_canvas, or reconstruction_from_notes. raw_data_or_path is a file path, a JSON string, or (for slack_canvas) raw transcript text. Turns are appended with source="backfill" and a per-source confidence so reconstructed history is weighted differently from real-time turns. Optionally restrict to conversation_date_range [start_iso, end_iso].
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
source_format | string | yes | — | |
raw_data_or_path | string | yes | — | |
conversation_date_range | array|null | no | — | |
confidence | number|null | no | — |
bootstrap_* — bootstrap
bootstrap_context
Load scope-based living docs and the latest handoff for session bootstrap.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
scope | string | no | shtops | |
include_content | boolean | no | true |
break_* — break
break_down_task
Create subtasks under a parent task.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
parent_task | string | yes | — | |
subtasks | array[string] | yes | — |
calendar_* — Google Calendar
Curated guide: Google Calendar.
calendar_create_event
Create a calendar event.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
summary | string | yes | — | |
start_time | string | yes | — | |
end_time | string | yes | — | |
calendar_id | string | no | primary | |
description | string|null | no | — | |
location | string|null | no | — | |
attendees | array|null | no | — | |
timezone | string | no | UTC |
calendar_delete_event
Delete a calendar event.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
event_id | string | yes | — | |
calendar_id | string | no | primary |
calendar_get_events
List events in a calendar.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
calendar_id | string | no | primary | |
time_min | string|null | no | — | |
time_max | string|null | no | — | |
max_results | integer | no | 10 | |
query | string|null | no | — |
calendar_get_free_busy
Get free/busy information for one or more calendars.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
calendar_ids | array[string] | yes | — | |
time_min | string | yes | — | |
time_max | string | yes | — |
calendar_list_calendars
List all accessible calendars.
Parameters not in the seed catalog — see the namespace reference page.
calendar_update_event
Update a calendar event.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
event_id | string | yes | — | |
calendar_id | string | no | primary | |
summary | string|null | no | — | |
start_time | string|null | no | — | |
end_time | string|null | no | — | |
description | string|null | no | — | |
location | string|null | no | — | |
timezone | string | no | UTC |
capture_* — capture
capture_action_items
Turn a conversation’s outcome into tracked work. Sort the conversation’s results into two buckets and submit once: - action_items: committed to-dos. Each becomes a task grouped under a single parent task named topic and linked to this conversation, so the whole list stays cohesive and traceable back to the chat. Each item is a dict with a required title and optional priority, category, due_date, due_time, description. - ideas: tentative thoughts not yet wor…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
topic | string | yes | — | |
action_items | array|null | no | — | |
ideas | array|null | no | — | |
conversation_id | string|null | no | — | |
project_id | string|null | no | — | |
category | string|null | no | — | |
priority | string | no | medium |
capture_deadline
Record a deadline or a deadline-less item to track. Pass due_date (ISO YYYY-MM-DD) for a hard deadline — it gets bucketed by the health check. Omit it to track important work that has no forced date; the stasis detector then watches it and surfaces it if it goes quiet for 3+ weeks. Capture high-confidence items only; if a date is ambiguous, confirm with Wayne first rather than guessing.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
item | string | yes | — | |
due_date | string|null | no | — | |
context | string|null | no | — | |
confidence | number | no | 1 |
capture_task
Quick-capture a task from natural language with optional overrides. Severity: when priority is omitted, a P0/P1/P2 severity marker in the content can escalate the priority (issue #36, Finding 3) — P0/outage/incident → urgent, P1/blocker → high, P2 → medium — on top of the service’s existing urgency-keyword inference. An explicit priority always wins, and a marker never downgrades a stronger signal already detected. Category is intentionally not a parameter: server-side inf…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
content | string | yes | — | |
priority | null | no | — | |
tags | array|null | no | — | |
due_date | string|null | no | — | |
due_time | string|null | no | — | |
project_id | string|null | no | — | |
conversation_id | string|null | no | — | |
source | string | no | quick_capture | |
parent_task | string|null | no | — |
cleanup_* — cleanup
cleanup_old_checkpoints
Delete stale progress checkpoints.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
user_id | string|null | no | — | |
max_age_days | integer | no | 7 |
commit_* — commit
commit_bill_entry_batch
Commit one exact financial batch after separate durable approval.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
operation_id | string | yes | — | |
batch_id | string | yes | — | |
expected_revision | integer | yes | — | |
decisions | array|null | no | — |
commit_check_deposit_batch
Commit one exact financial batch after separate durable approval.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
operation_id | string | yes | — | |
batch_id | string | yes | — | |
expected_revision | integer | yes | — | |
decisions | array|null | no | — |
complete_* — complete
complete_checkpoint
Mark a progress checkpoint complete.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
user_id | string | yes | — | |
task_id | string | yes | — | |
completion_message | string|null | no | — |
complete_leif_task
Deprecated compatibility alias for complete_tracked_task.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
task | string | yes | — | |
force | boolean | no | false |
complete_task
Deprecated compatibility alias for complete_checkpoint.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
user_id | string | yes | — | |
task_id | string | yes | — | |
completion_message | string|null | no | — |
complete_tracked_task
Mark an actionable tracked task as done.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
task | string | yes | — | |
force | boolean | no | false |
conversation_* — conversation
conversation_analytics
Analyze Leif conversation history across all stored sessions.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
analysis_type | string | yes | — | |
date_range | string|null | no | — |
convert_* — convert
convert_excel_to_csv
Convert an Excel sheet to CSV.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
excel_path | string | yes | — | |
csv_path | string|null | no | — | |
sheet_name | string|integer|null | no | 0 |
council_* — council
council_result
Read this principal’s paged Council result; follow each seat next_offset. Optional seat: claude/codex/xai; offset >=0, limit 1-1000 characters. Default returns the first page of all seats, never an opaque output cap.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
submission_id | string | yes | — | |
seat | string|null | no | — | |
offset | integer | no | 0 | |
limit | integer | no | 1000 |
council_status
Read only the current authenticated principal’s Council receipt and status.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
submission_id | string | yes | — |
council_submit
Submit project text to all three advisory Council seats; return durable receipt. This sends artifact content to external model providers. authorization_scope carries the user’s existing explicit instruction and content-specific scope; it is attribution, never approval or a policy override. Respect platform review and sensitive-data restrictions. Do not ask again solely because this is a write. Retry identical requests with the same key; changed content fails. Fetch status and result; never re…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
project_id | string | yes | — | |
path | string | yes | — | |
authorization_scope | string | yes | — | |
request_key | string | yes | — |
create_* — create
create_directory
Create a local directory.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
create_file
Create or overwrite a local file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
content | string | yes | — |
create_project
Create a new project context.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | yes | — | |
description | string | no | “ | |
system_instructions | string | no | “ | |
project_id | string|null | no | — | |
metadata | object|null | no | — |
create_task
Create a task with explicit fields. priority accepts None (or omission) and falls back to TaskPriority.MEDIUM. Tolerating null keeps MCP clients that emit an explicit priority: null from hitting a validation loop. Category is intentionally not a parameter: server-side inference (TaskService._auto_categorize) assigns it from the title and description at creation. To force a different category, use update_task afterwards.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
title | string | yes | — | |
description | string | no | “ | |
priority | null | no | — | |
tags | array|null | no | — | |
due_date | string|null | no | — | |
due_time | string|null | no | — | |
project_id | string|null | no | — | |
source | string | no | manual | |
metadata | object|null | no | — | |
parent_task | string|null | no | — | |
conversation_id | string|null | no | — |
create_task_from_ticket
Create a new task from a RepairShopr ticket.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
ticket | string | yes | — |
create_upload_link
Create a one-tap web link for the current user to upload files to Leif. Returns a URL the user opens in any browser (works on mobile) to drop one or more files. Uploaded files are tagged to the calling user and can then be used by other tools (for example, wp_create_post_draft images, or image edits) by referencing their upload_id. The link expires after a short window. After the user uploads, call list_recent_uploads to get the ids.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
purpose | string | no | “ |
deadline_* — deadline
deadline_status
Current deadline + stasis status: overdue, due soon (≤7d), due later (≤30d), and stuck deadline-less items. Read-only snapshot for surfacing what’s approaching or has gone quiet.
Parameters not in the seed catalog — see the namespace reference page.
delete_* — delete
delete_file
Delete a local file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
discover_* — discover
discover_services
Discover existing services, clients, and scripts in the codebase.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | no | “ |
drive_* — Google Drive
Curated guide: Google Drive.
drive_create_folder
Create a new folder in Google Drive.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | yes | — | |
parent_folder_id | string|null | no | — |
drive_create_google_doc
Create a new Google Doc with optional initial content.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
title | string | yes | — | |
content | string|null | no | — | |
parent_folder_id | string|null | no | — |
drive_get_file_metadata
Get metadata for a Google Drive file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_id | string | yes | — |
drive_list_files
List Google Drive files.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
page_size | integer | no | 20 | |
query | string|null | no | — | |
order_by | string | no | modifiedTime desc |
drive_move_file
Move a file or folder to a different Google Drive folder.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_id | string | yes | — | |
folder_id | string | yes | — |
drive_read_google_doc
Read the text content from a Google Doc.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
document_id | string | yes | — |
drive_search_files
Search Google Drive files by filename.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name_contains | string | yes | — | |
mime_type | string|null | no | — | |
page_size | integer | no | 20 |
drive_update_google_doc
Write content to an existing Google Doc. mode=‘append’ adds to the end; mode=‘replace’ overwrites all content.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
document_id | string | yes | — | |
content | string | yes | — | |
mode | string | no | append |
email_* — email
email_intelligence_coverage
Inspect nonsecret stored coverage without ingestion or task creation.
Parameters not in the seed catalog — see the namespace reference page.
email_intelligence_search
Search cited records without Gmail, model calls, or writes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
limit | integer | no | 8 |
esa_* — esa
esa_discovery_dry_run
Run the ESA discovery engine in READ-ONLY dry-run mode on nvrbackup. Executes esa_watchlist.discovery_report (the report/dry-run twin of the discovery cron) against the live pricing DB and returns the parsed JSON summary. It writes NOTHING: no esa_discovery_log rows, no Google Sheet append, no watchlist_items changes — safe to run any time. A CSV of every qualified per-(SKU, state) row is written to csv_path on the target host (pull it with transfer_file if you need the fi…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
deploy_path | string | no | /home/superht/pricing | |
csv_path | string | no | /tmp/esa_dryrun.csv | |
timeout | integer | no | 180 | |
full | boolean | no | false |
esa_portal_orders_reconcile
Reconcile stored portal order history against local ESA orders. Compares only each successfully synced state’s latest portal snapshot with esa_orders (email-driven intake), joined on (state, normalized line item ID) so identical IDs in different portals cannot collide. Reports: missing_order (active on the portal, never became a local order), unfulfilled_order (active but not fully fulfilled locally), cancelled_but_fulfilled (portal cancelled/refunded while fulfilled locally — refund exposure…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
state | string|null | no | — | |
max_rows | integer | no | 25 |
esa_portal_orders_search
Search the stored ESA portal order history and contact info. query matches customer name, email, line item ID, portal order ID, and offer name. Filter with state (e.g. “TX”), status (exact portal status such as “Pending” or “Shipped”), or sku (substring). active_only restricts results to nonterminal lines present in each state’s latest successful snapshot; otherwise both current and historical lines are returned with is_current. Results are newest-synced first with full shipping contact detai…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string|null | no | — | |
state | string|null | no | — | |
status | string|null | no | — | |
sku | string|null | no | — | |
active_only | boolean | no | false | |
limit | integer | no | 25 | |
offset | integer | no | 0 |
esa_portal_orders_status
Show ESA portal orders ingest health per state. For each known state portal: effective credential/base-URL status, total historical lines, lines in the current snapshot, active current lines, and latest successful sync metadata. Empty successful snapshots retain their sync timestamp and report zero current/export rows.
Parameters not in the seed catalog — see the namespace reference page.
esa_portal_orders_sync
Sync ESA portal orders.csv exports into the local history table. With no arguments, downloads the full orders CSV live from every state portal with configured credentials (OD_
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
state | string|null | no | — | |
csv_path | string|null | no | — | |
upload_id | string|null | no | — | |
dry_run | boolean | no | false |
events_* — events
events_since
Return episodic events logged since a given timestamp. since is an ISO-8601 timestamp (e.g. 2026-06-10T08:00:00Z). Defaults to the last 24 hours when omitted. Use this to answer “what did Leif do autonomously since my last session?” — covers scheduled job runs, notifications sent, retries, webhook firings, and any other event recorded with log_event. Filter by event_type to narrow results (e.g. job_run, notification, error). Set success_only=true to hide failures.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
since | string|null | no | — | |
event_type | string|null | no | — | |
limit | integer | no | 200 | |
success_only | boolean | no | false |
execute_* — execute
execute_python
Execute Python code in the configured runtime.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
code | string | yes | — | |
timeout | integer|null | no | — | |
clear_namespace | boolean | no | false |
extract_* — extract
extract_pdf_tables
Extract tables from a PDF file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_path | string | yes | — | |
page | integer|null | no | — |
fetch_* — fetch
fetch_rss
Fetch and parse an RSS or Atom feed.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
feed_url | string | yes | — | |
max_items | integer | no | 10 |
fetch_url
Fetch a URL and return response content or parsed HTML.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
url | string | yes | — | |
method | string | no | GET | |
headers | object|null | no | — | |
params | object|null | no | — | |
json_data | object|null | no | — | |
parse_html | boolean | no | false | |
max_bytes | integer|null | no | — |
finance_* — Finance
Curated guide: Finance.
finance_app_execute_command
Execute a shell command from the remote finance app root directory.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
command | string | yes | — | |
timeout | integer | no | 30 |
finance_app_file_exists
Check whether a file exists in the remote finance app source tree.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
finance_app_list_directory
List files in the remote finance app source tree.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | no | . |
finance_app_read_file
Read a file from the remote finance app source tree.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
finance_app_write_file
Write a file in the remote finance app source tree.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
content | string | yes | — |
finance_get_portfolio
Get the current finance project portfolio summary.
Parameters not in the seed catalog — see the namespace reference page.
finance_get_quote
Get the latest quote for a symbol.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
symbol | string | yes | — |
finance_get_risk_limits
Get finance project risk limits.
Parameters not in the seed catalog — see the namespace reference page.
finance_get_risk_status
Get finance project risk status.
Parameters not in the seed catalog — see the namespace reference page.
finance_get_signals
Get recent finance project signals.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
asset_type | string | no | equity | |
symbol | string|null | no | — | |
signal_type | string|null | no | — | |
min_quality | number|null | no | — | |
limit | integer | no | 50 | |
recent | boolean | no | true |
finance_health_check
Check the finance project health endpoint.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
detailed | boolean | no | false |
finance_list_positions
List open positions from the finance project.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
symbol | string|null | no | — |
finance_list_watchlists
List finance project watchlists.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
asset_type | string|null | no | — |
finance_search_symbols
Search the finance project for symbols.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
market | string | no | all | |
limit | integer | no | 10 |
ga_* — Google Analytics
Curated guide: Google Analytics.
ga_conversion_overview
List top key events/conversions from GA4.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 10 | |
property | string|null | no | — |
ga_devices
List device-category performance from GA4.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 10 | |
property | string|null | no | — |
ga_geo_overview
List top countries/regions from GA4.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 10 | |
property | string|null | no | — |
ga_landing_pages
List top landing pages from GA4.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 10 | |
property | string|null | no | — |
ga_list_properties
List the configured Google Analytics property aliases available to MCP tools.
Parameters not in the seed catalog — see the namespace reference page.
ga_marketing_overview
Return a marketing-oriented GA4 summary for business lead pages.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 30daysAgo | |
end_date | string | no | today | |
business_page_prefixes | array|null | no | — | |
conversion_event_names | array|null | no | — | |
limit | integer | no | 25 | |
property | string|null | no | — |
ga_realtime_overview
Get a minimal realtime GA4 snapshot.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
property | string|null | no | — |
ga_run_report
Run a generic GA4 report for arbitrary dimensions and metrics.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
dimensions | array[string] | yes | — | |
metrics | array[string] | yes | — | |
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 25 | |
property | string|null | no | — |
ga_search_terms
List top site search terms from GA4.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 10 | |
property | string|null | no | — |
ga_top_pages
List top pages from GA4.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 10 | |
property | string|null | no | — |
ga_traffic_sources
List top traffic sources from GA4.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 7daysAgo | |
end_date | string | no | today | |
limit | integer | no | 10 | |
property | string|null | no | — |
gads_* — Google Ads
Curated guide: Google Ads.
gads_account_overview
Return an account-level Google Ads performance summary for the date range.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
date_range | string | no | LAST_30_DAYS | |
start_date | string|null | no | — | |
end_date | string|null | no | — | |
customer | string|null | no | — |
gads_ad_group_performance
List ad-group-level performance metrics.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
date_range | string | no | LAST_30_DAYS | |
start_date | string|null | no | — | |
end_date | string|null | no | — | |
limit | integer | no | 25 | |
customer | string|null | no | — |
gads_campaign_performance
List campaign-level performance metrics (cost, clicks, conversions).
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
date_range | string | no | LAST_30_DAYS | |
start_date | string|null | no | — | |
end_date | string|null | no | — | |
limit | integer | no | 25 | |
customer | string|null | no | — |
gads_keyword_performance
List keyword-level performance metrics.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
date_range | string | no | LAST_30_DAYS | |
start_date | string|null | no | — | |
end_date | string|null | no | — | |
limit | integer | no | 25 | |
customer | string|null | no | — |
gads_list_accessible_customers
List every Google Ads account the configured credentials can access.
Parameters not in the seed catalog — see the namespace reference page.
gads_list_customers
List the configured Google Ads customer aliases available to MCP tools.
Parameters not in the seed catalog — see the namespace reference page.
gads_run_query
Run an arbitrary GAQL (Google Ads Query Language) query for a customer.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
customer | string|null | no | — |
gads_search_terms
List the search terms that triggered ads, with performance metrics.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
date_range | string | no | LAST_30_DAYS | |
start_date | string|null | no | — | |
end_date | string|null | no | — | |
limit | integer | no | 25 | |
customer | string|null | no | — |
gads_update_ad_group_bid
Set an ad group’s maximum CPC bid (cpc_bid in dollars, e.g. 2.50). Set validate_only=true to dry-run the change without applying it.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
ad_group_id | string | yes | — | |
cpc_bid | number | yes | — | |
customer | string|null | no | — | |
validate_only | boolean | no | false |
gads_update_ad_group_status
Pause, enable, or remove an ad group (status: ENABLED, PAUSED, REMOVED). Set validate_only=true to dry-run the change without applying it.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
ad_group_id | string | yes | — | |
status | string | yes | — | |
customer | string|null | no | — | |
validate_only | boolean | no | false |
gads_update_ad_status
Pause, enable, or remove a single ad (status: ENABLED, PAUSED, REMOVED). Set validate_only=true to dry-run the change without applying it.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
ad_group_id | string | yes | — | |
ad_id | string | yes | — | |
status | string | yes | — | |
customer | string|null | no | — | |
validate_only | boolean | no | false |
gads_update_campaign_status
Pause, enable, or remove a campaign (status: ENABLED, PAUSED, REMOVED). Set validate_only=true to dry-run the change without applying it.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
campaign_id | string | yes | — | |
status | string | yes | — | |
customer | string|null | no | — | |
validate_only | boolean | no | false |
gbp_* — Google Business Profile
Curated guide: Google Business Profile.
gbp_get_location
Fetch a single Google Business Profile location.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
location_name | string | yes | — |
gbp_list_accounts
List accessible Google Business Profile accounts.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
page_size | integer | no | 20 |
gbp_list_locations
List locations for a Google Business Profile account.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
account_name | string | no | “ | |
limit | integer | no | 100 | |
filter_expression | string | no | “ | |
order_by | string | no | title |
gbp_local_overview
Aggregate local performance across all accessible GBP locations.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | yes | — | |
end_date | string | yes | — | |
account_name | string | no | “ | |
daily_metrics | array[string] | no | BUSINESS_IMPRESSIONS_DESKTOP_MAPS,BUSINESS_IMPRESSIONS_DESKTOP_SEARCH,BUSINESS_IMPRESSIONS_MOBILE_MAPS,BUSINESS_IMPRESSIONS_MOBILE_SEARCH,BUSINESS_DIRECTION_REQUESTS,CALL_CLICKS,WEBSITE_CLICKS |
gbp_location_performance
Fetch local performance metrics for one Google Business Profile location.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
location_name | string | yes | — | |
start_date | string | no | 30daysAgo | |
end_date | string | no | today | |
daily_metrics | array[string] | no | BUSINESS_IMPRESSIONS_DESKTOP_MAPS,BUSINESS_IMPRESSIONS_DESKTOP_SEARCH,BUSINESS_IMPRESSIONS_MOBILE_MAPS,BUSINESS_IMPRESSIONS_MOBILE_SEARCH,BUSINESS_DIRECTION_REQUESTS,CALL_CLICKS,WEBSITE_CLICKS |
gbp_multi_location_summary
Aggregate GBP performance across multiple locations.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
account_name | string | no | “ | |
location_names | array|null | no | — | |
start_date | string | no | 30daysAgo | |
end_date | string | no | today | |
daily_metrics | array[string] | no | BUSINESS_IMPRESSIONS_DESKTOP_MAPS,BUSINESS_IMPRESSIONS_DESKTOP_SEARCH,BUSINESS_IMPRESSIONS_MOBILE_MAPS,BUSINESS_IMPRESSIONS_MOBILE_SEARCH,BUSINESS_DIRECTION_REQUESTS,CALL_CLICKS,WEBSITE_CLICKS | |
page_size | integer | no | 100 |
get_* — get
get_bill_entry_batch
Return durable bill-entry status without external reads or writes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
batch_id | string | yes | — |
get_check_deposit_batch
Return durable check-deposit status without external reads or writes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
batch_id | string | yes | — |
get_daily_review
Return a prioritized daily task review.
Parameters not in the seed catalog — see the namespace reference page.
get_excel_info
Get workbook sheet metadata.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
get_location
Get the user’s current location information.
Parameters not in the seed catalog — see the namespace reference page.
get_note
Fetch a single note’s full content by its ID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
note_id | string | yes | — |
get_pdf_info
Get metadata and information about a PDF file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_path | string | yes | — |
get_person_summary
Summarize the relationship history with a specific person.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
person_name | string | yes | — | |
limit | integer | no | 20 |
get_project
Return a single project by ID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
project_id | string | yes | — |
get_project_context
Read a project’s combined context file contents.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
project_id | string|null | no | — |
get_project_status
Return context quality information for a project.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
project_id | string|null | no | — |
get_python_namespace
Show variables currently defined in the Python execution namespace.
Parameters not in the seed catalog — see the namespace reference page.
get_recent_notes
Return the most recent notes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
limit | integer | no | 10 | |
category | string|null | no | — |
get_time
Get the current time in Wayne’s timezone (US/Central) with day-of-week and time-of-day bucket. Returns a JSON object with: - iso: ISO 8601 timestamp in CT - human: human-friendly formatted time - day_of_week: full day name (e.g., ‘Tuesday’) - hour_24: hour of day (0-23) in CT - bucket: time-of-day bucket per leif_self.md — one of: late_night, morning, midday, maintenance_window, evening - is_maintenance_window: True if 14
<= hour < 16 CT - is_weekend: True for Saturday/SundayParameters not in the seed catalog — see the namespace reference page.
get_topic_overview
Summarize discussion history for a topic.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
topic | string | yes | — | |
limit | integer | no | 20 |
get_weather
Get a weather forecast for a location.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
location | string|null | no | — | |
days | integer | no | 3 |
github_* — GitHub
Curated guide: GitHub.
github_batch_move_files
Move multiple files in GitHub.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
operations | array[object] | yes | — | |
commit_message | string | yes | — | |
branch | string | no | main | |
owner | string|null | no | — | |
repo | string|null | no | — |
github_create_issue
Create a GitHub issue.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
title | string | yes | — | |
body | string | yes | — | |
labels | array|null | no | — | |
assignees | array|null | no | — | |
owner | string|null | no | — | |
repo | string|null | no | — |
github_create_or_update_file
Create or update a file in GitHub.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_path | string | yes | — | |
content | string | yes | — | |
commit_message | string | yes | — | |
branch | string | no | main | |
owner | string|null | no | — | |
repo | string|null | no | — |
github_get_file
Fetch a file from a GitHub repository.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_path | string | yes | — | |
ref | string | no | main | |
owner | string|null | no | — | |
repo | string|null | no | — |
github_list_issues
List issues from a GitHub repository.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
state | string | no | open | |
labels | array|null | no | — | |
limit | integer | no | 20 | |
owner | string|null | no | — | |
repo | string|null | no | — |
github_search_code
Search code in a GitHub repository.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
max_results | integer | no | 10 | |
owner | string|null | no | — | |
repo | string|null | no | — |
gsc_* — Google Search Console
Curated guide: Google Search Console.
gsc_local_visibility
Return a local-intent visibility view from Search Console.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 30daysAgo | |
end_date | string | no | today | |
site_url | string | no | “ | |
keywords | array|null | no | — | |
page_filters | array|null | no | — | |
row_limit | integer | no | 25 | |
country | string | no | “ | |
device | string | no | “ | |
search_type | string | no | web |
gsc_run_query
Run a generic Search Console query.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
dimensions | array[string] | yes | — | |
start_date | string | no | 30daysAgo | |
end_date | string | no | today | |
site_url | string | no | “ | |
row_limit | integer | no | 25 | |
page | string | no | “ | |
query | string | no | “ | |
country | string | no | “ | |
device | string | no | “ | |
search_type | string | no | web | |
dimension_filter_groups | array|null | no | — |
gsc_top_pages
List top Search Console pages.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 30daysAgo | |
end_date | string | no | today | |
site_url | string | no | “ | |
row_limit | integer | no | 25 | |
query_regex | string | no | “ | |
country | string | no | “ | |
device | string | no | “ | |
search_type | string | no | web |
gsc_top_queries
List top Search Console queries.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | no | 30daysAgo | |
end_date | string | no | today | |
site_url | string | no | “ | |
row_limit | integer | no | 25 | |
page | string | no | “ | |
country | string | no | “ | |
device | string | no | “ | |
search_type | string | no | web | |
query_regex | string | no | “ |
install_* — install
install_python_package
Install a Python package with pip.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
package | string | yes | — |
job_* — job
job_health
Return a health summary for all known scheduled jobs. Flags jobs whose last heartbeat is older than max_stale_minutes or older than 1.5× their derived cron interval (whichever is looser), as well as any job whose last run returned a non-zero exit code. Covers registry jobs plus external producers explicitly declared in the tracked monitoring policy. Registered jobs awaiting their first run are separated from overdue heartbeat_missing jobs; heartbeat-only IDs remain unregistered an…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
max_stale_minutes | integer | no | 120 |
link_* — link
link_repairshopr
Link a task to a RepairShopr ticket.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
task | string | yes | — | |
ticket | string | yes | — |
link_tasks
Create a dependency or hierarchy relationship between tasks.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
source_task | string | yes | — | |
target_task | string | yes | — | |
relationship | any | yes | — |
list_* — list
list_active_tasks
List active checkpoints for a user.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
user_id | string | yes | — |
list_directory
List the contents of a local directory.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | no | . |
list_email_filters
List email filters.
Parameters not in the seed catalog — see the namespace reference page.
list_projects
List known projects.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
include_archived | boolean | no | false | |
status | string|null | no | — |
list_python_packages
List installed Python packages.
Parameters not in the seed catalog — see the namespace reference page.
list_recent_uploads
List the current user’s recently uploaded files. Returns upload_id, filename, content_type, size, and age for each, newest first. Use an upload_id with a consuming tool (e.g. wp_create_post_draft).
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
limit | integer | no | 10 |
list_scheduled_jobs
List all registered scheduled jobs.
Parameters not in the seed catalog — see the namespace reference page.
list_tasks
List tasks for dashboard-style views.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
filter | string | no | all | |
category | null | no | — | |
limit | integer | no | 10 | |
offset | integer | no | 0 | |
include_completed | boolean | no | false | |
include_archived | boolean | no | false | |
project_id | string|null | no | — |
load_* — load
load_progress
Load a specific checkpoint by task ID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
user_id | string | yes | — | |
task_id | string | yes | — |
local_* — Local shell and files
Curated guide: Local shell and files.
local_execute_command
Execute a shell command on the local host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
command | string | yes | — | |
timeout | integer | no | 10 |
local_get_system_info
Return basic local system information.
Parameters not in the seed catalog — see the namespace reference page.
local_restart_deploy
Queue an explicitly operator-approved exact-commit Leif deployment. Requires a separately installed broker and root-owned approval matching this ID. Preparation is not deployment authorization. Restarts both Leif services independently; poll local_restart_deploy_status with the same ID after reconnecting. Never retry with a new ID when the outcome is unknown.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
approval_id | string | yes | — |
local_restart_deploy_status
Read a durable deployment report by approval ID without restarting.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
approval_id | string | yes | — |
local_restart_service
Restart a local systemd service.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
service_name | string | yes | — |
log_* — log
log_event
Append a typed event to the episodic event log. Call this at the conclusion of any autonomous action so that events_since can reconstruct what Leif did between sessions. Common event_type values: job_run, notification, webhook, retry, tool_call, error, info.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
event_type | string | yes | — | |
summary | string | yes | — | |
details | object|null | no | — | |
source | string|null | no | — | |
success | boolean | no | true |
magica_* — magica
magica_clone_voice
Clone a reusable voice from a speech sample (MiniMax). Pass either a public audio_url or a local_path on this host, which is uploaded first. The sample must be 10 seconds to 5 minutes of clear single-speaker speech (MP3, M4A, or WAV, max 20 MB); a dry unprocessed recording clones better than a limited one. Returns the voice_id to hand to magica_speak. Register a separate voice per delivery register rather than expecting one clone to cover both warm and neutral reads.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
voice_name | string | yes | — | |
audio_url | string|null | no | — | |
local_path | string|null | no | — | |
wait | boolean | no | true | |
max_wait | number | no | 300 |
magica_generate
Start a Magica image run and return its run_id. Use image_urls (publicly fetchable, e.g. from magica_upload) for edits, or set text_to_image=True for a fresh image. model accepts an alias (pro, fast, gpt, flux) or a raw node type. Poll the returned run_id with magica_get_run.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
prompt | string | yes | — | |
model | string | no | pro | |
image_urls | array|null | no | — | |
sub_model_id | string|null | no | — | |
text_to_image | boolean | no | false |
magica_get_run
Poll a Magica generation run for status and output image URLs.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
run_id | string | yes | — |
magica_list_models
List the image models available on the Magica (galaxy.ai) account.
Parameters not in the seed catalog — see the namespace reference page.
magica_run_node
Run ANY Magica node with an explicit input dict. The escape hatch for node types without a dedicated tool: ai_transcription, elevenlabs_v3_tts, elevenlabs_sfx, elevenlabs_music, elevenlabs_dubbing, fal_demucs, the video nodes, and so on. Get exact field names from the node’s schema first; magica_list_models lists every available nodeType. With wait=False poll the run_id via magica_get_run.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
node | string | yes | — | |
run_input | object | yes | — | |
sub_model_id | string|null | no | — | |
wait | boolean | no | false | |
max_wait | number | no | 300 |
magica_speak
Synthesize speech with a MiniMax voice and return the audio URL. voice_id comes from magica_clone_voice. Levers, in order of how much likeness they cost: punctuation and sentence length in the text itself (free), speed (0.5-2.0), intensity (-100 to 100, energy), then emotion (auto, happy, sad, angry, fearful, disgusted, surprised, neutral) which pushes affect hardest but also fights the clone. Set english_normalization=True when the text is number-heavy. Do NOT reach f…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
text | string | yes | — | |
voice_id | string | yes | — | |
emotion | string|null | no | — | |
speed | number|null | no | — | |
volume | number|null | no | — | |
voice_pitch | number|null | no | — | |
intensity | number|null | no | — | |
pronunciation | array|null | no | — | |
english_normalization | boolean|null | no | — | |
audio_format | string|null | no | — | |
sample_rate | integer|null | no | — | |
bitrate | integer|null | no | — | |
wait | boolean | no | true | |
max_wait | number | no | 300 |
magica_upload
Upload a local file and return a public URL Magica can fetch. Works for any file type, not just images: pass an image path for magica_generate(image_urls=...) edits, or an audio path (MP3, M4A, WAV) for magica_clone_voice and the transcription nodes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
marketing_* — Marketing
Curated guide: Marketing.
marketing_lead_snapshot
Return a GA4 lead-focused marketing snapshot.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | yes | — | |
end_date | string | yes | — | |
limit | integer | no | 10 |
marketing_local_snapshot
Return a Google Business Profile local snapshot.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | yes | — | |
end_date | string | yes | — | |
account_name | string | no | “ |
marketing_seo_snapshot
Return a Search Console SEO snapshot.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | yes | — | |
end_date | string | yes | — | |
site_url | string | no | “ | |
limit | integer | no | 10 |
marketing_snapshot
Return a combined marketing snapshot across GA4, Search Console, and GBP.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | yes | — | |
end_date | string | yes | — | |
site_url | string | no | “ | |
account_name | string | no | “ | |
limit | integer | no | 10 |
prepare_* — prepare
prepare_bill_entry_batch
Read QBO and persist a proposed bill batch; make no financial writes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
ap_account | object | yes | — | |
source_documents | array[object] | yes | — | |
bills | array[object] | yes | — | |
decisions | array|null | no | — |
prepare_check_deposit_batch
Read live systems and persist a proposed batch; make no financial writes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
deposit_date | string | yes | — | |
deposit_account | object | yes | — | |
source_documents | array[object] | yes | — | |
checks | array|null | no | — | |
existing_deposit_id | string|null | no | — |
pricing_* — Pricing App
Curated guide: Pricing App.
pricing_app_create_esa_catalog_item
Create/update an ESA catalog item in Pricing App and RepairShopr. OD_SKU is generated when omitted. The RepairShopr UPC Code mapping is written to repairshopr_upc_field (default: upc_code), with short_description and long_description carried alongside it for the ESA portal copy sync. inventory_policy (‘allow_oversell’ or ‘hard_limit’) is REQUIRED by the Pricing App whenever this call newly assigns an od_sku. It has no default: an ESA item with no fulfillment settings row reads bac…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | yes | — | |
short_description | string | yes | — | |
long_description | string | yes | — | |
source_sku | string|null | no | — | |
od_sku | string|null | no | — | |
brand | string|null | no | — | |
category | string|null | no | — | |
condition | string|null | no | — | |
price_cost | number|null | no | — | |
price_retail | number|null | no | — | |
quantity | integer|null | no | — | |
image_urls | array|string|null | no | — | |
repairshopr_product_id | integer|null | no | — | |
repairshopr_category_id | integer|null | no | — | |
repairshopr_upc_field | string|null | no | — | |
inventory_policy | string|null | no | — | |
fulfillment_method | string|null | no | — | |
safety_stock | integer|null | no | — | |
pricing_app_extra_fields | object|null | no | — | |
repairshopr_extra_fields | object|null | no | — | |
queue_esa_deployment | boolean | no | true | |
esa_portals | array|null | no | — | |
dry_run | boolean | no | false | |
requested_by | string|null | no | — |
pricing_app_create_file_import
Create a file-based Pricing App import from a vendor spreadsheet. file_path is a path on the Leif host (e.g. /home/superht/import/foo.xlsx). Do NOT transfer the file to the Pricing App host first: this tool reads the file locally, normalizes xlsx/xls to CSV when needed, and uploads it to the Pricing App API over HTTPS. openpyxl is optional — if it is missing the raw workbook is uploaded and parsed server-side. You do not need to inspect the workbook locally (no unzipping XML); use “g…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
vendor_name | string | yes | — | |
file_path | string | yes | — | |
use_generic_parser | boolean | no | false |
pricing_app_create_live_import
Create a live Pricing App import from a distributor API. For looking up a specific product (e.g. cross-vendor cost comparison), pass vendor_item_id (manufacturer part number / MPN) or upc for an exact match. Prefer these over term: fuzzy term matching pulls wrong records (e.g. “Lenovo 500e Chromebook” -> warranty SKUs, “MacBook Air M5” -> a 2015 A1466). MPN/UPC is also the only reliable cross-vendor join key, since vendor SKUs differ and some vendors 404 on other vendors’ SKUs.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
vendor_name | string | yes | — | |
manufacturer | string|null | no | — | |
term | string|null | no | — | |
category | string|null | no | — | |
product_type | string|null | no | — | |
vendor_item_id | string|null | no | — | |
upc | string|null | no | — | |
limit | integer | no | 100 | |
page | integer | no | 1 | |
max_pages | integer|null | no | — | |
min_qty | integer | no | 1 | |
allow_missing_qty | boolean | no | false |
pricing_app_generate_od_sku
Generate the OD_SKU used by Odyssey/ESA portal catalog logic.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
source_sku | string|null | no | — | |
name | string|null | no | — | |
brand | string|null | no | — | |
prefix | string|null | no | — | |
max_length | integer | no | 32 |
pricing_app_get_cheaper_than_amazon
Find products cheaper than Amazon.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
min_savings_pct | number|null | no | — | |
min_savings | number|null | no | — | |
brand | string|null | no | — | |
category | string|null | no | — | |
vendor | string|null | no | — | |
exclude_vendors | array|null | no | — | |
import_id | string|null | no | — | |
has_rank | boolean|null | no | — | |
max_rank | integer|null | no | — | |
days | integer | no | 30 | |
limit | integer | no | 100 | |
sort | string | no | savings_pct | |
page | integer | no | 1 | |
min_amazon_price | number|null | no | — |
pricing_app_get_esa_margins
List every active ESA/Odyssey portal listing with its live margin. This is the tool for margin checks and margin watchdogs: it returns the deployed portal price, known vendor cost, estimated shipping, landed cost and margin % for every active ESA/Odyssey listing, per state, straight from the Pricing App’s live catalog and pricing state — not a snapshot you have to reconstruct from separate product and portal-sync calls. cost_source “none” means no vendor cost is known for that listing, so…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
state | string|null | no | — | |
max_margin_pct | number|null | no | — | |
include_missing_cost | boolean|null | no | — | |
limit | integer | no | 150 | |
compact | boolean | no | true |
pricing_app_get_esa_portal_categories
List valid Odyssey/ESA portal categories from Pricing App validation.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
state | string|null | no | — | |
category | string|null | no | — |
pricing_app_get_import_status
Get the current status of a Pricing App import.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
import_id | string | yes | — |
pricing_app_get_product_details
Get Pricing App product details by SKU.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
sku | string | yes | — | |
include_related | boolean | no | true |
pricing_app_health_check
Check the Pricing App API health.
Parameters not in the seed catalog — see the namespace reference page.
pricing_app_list_imports
List recent Pricing App imports.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
vendor | string|null | no | — | |
status | string|null | no | — | |
limit | integer | no | 50 | |
days | integer | no | 7 |
pricing_app_list_products
Search and filter Pricing App products.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
q | string|null | no | — | |
category | string|null | no | — | |
brand | string|null | no | — | |
active | boolean|null | no | — | |
condition | string|null | no | — | |
min_deal_score | number|null | no | — | |
min_buy_confidence | number|null | no | — | |
max_risk | string|null | no | — | |
sales_trend | string|null | no | — | |
has_asin | boolean|null | no | — | |
has_forecast | boolean|null | no | — | |
newegg_status | string|null | no | — | |
sort | string|null | no | — | |
order | string|null | no | — | |
page | integer | no | 1 | |
limit | integer | no | 25 | |
include_related | boolean | no | false |
pricing_app_match_candidates
List Pricing App inventory-match candidates (review queue). Thin pass-through to the Pricing App matcher. Each candidate pairs a RepairShopr item with scored product suggestions. Page forward by passing the prior response’s next_cursor as cursor. band defaults to the medium review band; pass low/none/all to widen.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
status | string | no | pending | |
limit | integer | no | 50 | |
cursor | integer|null | no | — | |
band | string|null | no | — |
pricing_app_match_resolve
Resolve a Pricing App inventory-match candidate. action is one of confirm, reject, or import_new. product_id is required for confirm unless the candidate has a top suggestion to default to. Pass decided_by (e.g. the portal username) for the audit trail.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
candidate_id | integer | yes | — | |
action | string | yes | — | |
product_id | integer|null | no | — | |
decided_by | string|null | no | — |
pricing_app_match_stats
Get Pricing App inventory-match stats (matched/pending/rs_only/total_rs). Counts read 0 until the matcher has run in the Pricing App.
Parameters not in the seed catalog — see the namespace reference page.
pricing_app_monitor_import
Monitor a Pricing App import until completion or timeout.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
import_id | string | yes | — | |
poll_interval | integer | no | 5 | |
max_wait | integer | no | 600 |
pricing_app_parse_price_list
Parse pasted vendor pricing text into a CSV file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
vendor_name | string | yes | — | |
raw_text | string|null | no | — | |
output_path | string|null | no | — | |
gmail_message_id | string|null | no | — |
pricing_app_queue_esa_deployment
Queue one or more OD_SKUs for ESA portal deployment.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
sku | string|null | no | — | |
skus | array|null | no | — | |
portals | array|null | no | — | |
dry_run | boolean | no | false | |
requested_by | string|null | no | — | |
metadata | object|null | no | — |
pricing_app_refresh_keepa
Trigger a Keepa refresh for one or more Pricing App products.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
sku | string|null | no | — | |
skus | array|null | no | — | |
max_concurrency | integer | no | 5 |
pricing_app_secondary_market_compare
Compare cheapest secondary-market open-box/refurb offers for an Apple model. Read-only; does not import or write to the DB. Returns the cheapest cross-vendor offers for a single Apple model number (e.g. MTL73LL/A) across iPower, QuickShip, and the tracked eBay seller stores, reading the same DB the Apple Open-Box board uses. The server applies iPower’s effective-price discount and filters out parts/accessory listings that share a device’s model number. Pass condition to filter by conditio…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
model | string | yes | — | |
condition | string|null | no | — | |
in_stock | boolean|null | no | — | |
limit_per_vendor | integer|null | no | — |
pricing_app_sync_esa_copy_from_repairshopr
Sync ESA product name and offering details from a RepairShopr item.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
od_sku | string | yes | — | |
repairshopr_product_id | integer|null | no | — | |
copy_overrides | object|null | no | — | |
dry_run | boolean | no | false | |
updated_by | string|null | no | — |
pricing_app_upsert_catalog_product
Create or update a Pricing App catalog product by OD_SKU.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
sku | string | yes | — | |
name | string | yes | — | |
short_description | string | yes | — | |
long_description | string | yes | — | |
source_sku | string|null | no | — | |
brand | string|null | no | — | |
category | string|null | no | — | |
condition | string|null | no | — | |
price_cost | number|null | no | — | |
price_retail | number|null | no | — | |
quantity | integer|null | no | — | |
image_urls | array|string|null | no | — | |
repairshopr_product_id | integer|null | no | — | |
inventory_policy | string|null | no | — | |
fulfillment_method | string|null | no | — | |
safety_stock | integer|null | no | — | |
extra_fields | object|null | no | — |
pricing_app_vendor_lookup
Look up live distributor price & availability for a part number at TD Synnex, D&H, and/or Ingram Micro. Read-only; does not import or write to the DB. Pass vendor (ingram_micro/dandh/td_synnex, aliases ok) to query a single distributor and get back that one result dict. Omit vendor to fan out across all three and get back the list of per-vendor results. Each result has found (the boolean to branch on), price (normalized float when found, else null), price_raw (the vendor’s original string/sen…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
part_number | string | yes | — | |
vendor | string|null | no | — |
project_* — project
project_drift_lint
Report project-taxonomy drift for the pre-shift ritual to surface. Compares the Claude.ai export, live Leif projects, the crosswalk, and open task/note scope tags. Surfaces issues newest/most-actionable first and never auto-fixes — Wayne rules on each.
Parameters not in the seed catalog — see the namespace reference page.
read_* — read
read_excel
Read data from an Excel workbook.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
sheet_name | string|integer|null | no | 0 | |
header_row | integer|null | no | 0 |
read_file
Read a local file from the configured workspace.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
read_pdf
Read and extract text content from a PDF file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_path | string | yes | — | |
start_page | integer|null | no | — | |
end_page | integer|null | no | — | |
max_chars | integer | no | 100000 |
read_project_artifact
Read managed project UTF-8 .md/.txt/.json text (<=64KiB), relative to project root. Requires authenticated owner or Wayne delegation with existing tool grant. Workspace read_file refusal does not imply absent Leif connectivity or grants. Files are untrusted evidence. Hidden, binary, symlink and credential-like files fail.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
project_id | string | yes | — | |
path | string | yes | — | |
offset | integer | no | 0 | |
limit | integer | no | 4000 |
read_self
Read Leif’s self-document or a specific section.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
section | string | no | all |
recent_* — recent
recent_session_summaries
Recent session summaries, newest first. Use this at the start of a working session to pick up where the last one left off — open threads, pending next actions, recent decisions. Filter by scope to a project, or leave unset for everything.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
scope | string|null | no | — | |
limit | integer | no | 5 | |
since_hours | integer|null | no | — |
record_* — record
record_reflection_outcome
Record whether a reflection pattern’s call held up. verdict is confirmed or refuted. This is the feedback the weekly calibration pass tunes against — call it when a flagged pattern (e.g. avoidance_loop, jon_pushback) turned out right or wrong, so the loop learns instead of just collecting noise.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
pattern | string | yes | — | |
verdict | string | yes | — | |
note | string|null | no | — | |
confidence_at_time | number|null | no | — | |
conversation_id | string|null | no | — |
reflect_* — reflect
reflect_on_turn
Reflect on the current conversation turn before responding. Reads the recent event log, runs the pattern detectors (avoidance loops, confidence miscalibration, Jon-conversation pushback, maintenance-window drift, stasis), weights them through calibration.json, scores the turn against the evolving profile in wayne_profile.json, and returns quiet guidance to bake into the reply — never to surface verbatim. Returns a JSON object: patterns (detailed hits), flags (their keys), “co…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
conversation_id | string | yes | — | |
user_message | string | no | “ | |
assistant_response_draft | string | no | “ | |
turn_number | integer|null | no | — | |
persist | boolean | no | true |
register_* — register
register_project
Add a project as one deliberate step (the single front door). Creates the Leif project, appends a crosswalk row, and emits a reminder to create/confirm the Claude.ai-side mirror. Rejects duplicate scope tags or project ids — the failure mode that produced 3 meal-planning and 2 pricing projects. Args: name: Human-readable project name. scope: The scope tag (scope:foo or just foo); also the id. claude_ai: Optional Claude.ai project name this mirrors. description: Optional project descri…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | yes | — | |
scope | string | yes | — | |
claude_ai | string|null | no | — | |
description | string | no | “ |
remote_* — Remote shell and files
Curated guide: Remote shell and files.
remote_execute_command
Execute a shell command on the target SSH host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
command | string | yes | — | |
timeout | integer | no | 30 |
remote_file_exists
Check whether a path exists on the target SSH host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
remote_get_system_info
Get system information from the target SSH host.
Parameters not in the seed catalog — see the namespace reference page.
remote_list_directory
List a directory on the target SSH host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
remote_read_file
Read a file from the target SSH host. For inspecting text/config files only. To COPY a file to another host, do NOT read it here and write it elsewhere — that round-trips the bytes through the model context (slow, token-heavy, truncates large/binary files). Use transfer_file instead; it scp’s host-to-host directly.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
remote_write_file
Write generated/new content to a file on the target SSH host. Uses base64 piping + sha256 verification — no shell arg-length limits and no quote corruption on binary-safe or large content. Use this for content you are CREATING. To copy an EXISTING file from another host, do not read it into context and write it here — use transfer_file (direct scp, no size limit, sha256-verified).
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
content | string | yes | — |
remove_* — remove
remove_email_filter
Remove an email filter.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
filter_id | string | yes | — |
remove_scheduled_job
Remove a scheduled job by its ID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
job_id | string | yes | — |
request_* — request
request_bill_entry_commit_approval
Create a separate exact-argument review; make no financial writes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
operation_id | string | yes | — | |
batch_id | string | yes | — | |
expected_revision | integer | yes | — | |
decisions | array|null | no | — |
request_check_deposit_commit_approval
Create a separate exact-argument review; make no financial writes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
operation_id | string | yes | — | |
batch_id | string | yes | — | |
expected_revision | integer | yes | — | |
decisions | array|null | no | — |
run_* — run
run_calibration_pass
Audit the last week of reflection outcomes and tune pattern confidence. With apply=false (default) this is a dry run: it returns the proposed confidence changes and review suggestions without writing. apply=true writes calibration.json and logs to calibration_history.json (guarded to once per week unless force=true). The scheduler runs this automatically; use the tool to preview or force a pass on demand.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
apply | boolean | no | false | |
window_days | integer | no | 7 | |
force | boolean | no | false |
runpod_* — RunPod
Curated guide: RunPod.
runpod_execute_command
Execute a shell command on the RunPod GPU instance.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
command | string | yes | — | |
timeout | integer | no | 60 |
runpod_get_system_info
Get system information from the RunPod GPU instance (GPU, CPU, memory, disk).
Parameters not in the seed catalog — see the namespace reference page.
runpod_list_directory
List a directory on the RunPod GPU instance.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
runpod_read_file
Read a file from the RunPod GPU instance.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
runpod_write_file
Write generated/new content to a file on the RunPod GPU instance. To copy an existing file to/from RunPod, use transfer_file (scp, sha256-verified) rather than reading it into context and writing it out.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
content | string | yes | — |
save_* — save
save_note
Persist a note or context snippet.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
content | string | yes | — | |
category | string | no | reference | |
tags | array|null | no | — | |
source | string | no | ai_generated | |
user_id | string | no | AI | |
channel_id | string | no | context | |
project_id | string|null | no | — | |
metadata | object|null | no | — |
save_progress
Save a progress checkpoint for later resumption.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
user_id | string | yes | — | |
original_request | string | yes | — | |
task_id | string|null | no | — | |
progress_percent | integer | no | 0 | |
current_step | integer | no | 0 | |
total_steps | integer | no | 0 | |
task_plan | string|null | no | — | |
completed_steps | array|null | no | — | |
pending_steps | array|null | no | — | |
next_action | string|null | no | — | |
context_summary | string|null | no | — | |
files_modified | array|null | no | — | |
files_pending | array|null | no | — | |
tools_executed | integer | no | 0 | |
estimated_total_tools | integer | no | 0 | |
is_complete | boolean | no | false | |
completion_message | string|null | no | — | |
model_used | string|null | no | — | |
max_tokens_used | integer|null | no | — | |
task_complexity | string|null | no | — | |
tool_results_summary | string|null | no | — | |
key_findings | array|null | no | — | |
raw_messages | array|null | no | — | |
channel | string | no | mcp | |
session_count | integer | no | 1 |
schedule_* — Scheduling
Curated guide: Scheduling.
schedule_job
Create or update a scheduled job in the Leif registry. Owner/admin (or explicitly scoped) callers only. env_allowlist is required: declare the job’s environment explicitly ([] = no env). principal_id is attribution metadata exported as LEIF_JOB_PRINCIPAL, not runtime identity enforcement or a bound security context.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | yes | — | |
command | string | yes | — | |
schedule | string | yes | — | |
enabled | boolean | no | true | |
principal_id | string|null | no | — | |
env_allowlist | array|null | no | — |
scratchpad_* — scratchpad
scratchpad_append
Append an idea to the scratch pad so it is not forgotten. This is the capture path. When an idea comes up in conversation that is not yet a committed task, drop it here. It shows up in the widget immediately and can be promoted to a task later.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
text | string | yes | — |
scratchpad_get
Read the freeform scratch pad — the single place loose ideas live.
Parameters not in the seed catalog — see the namespace reference page.
scratchpad_set
Replace the entire scratch pad. Use to clean up or reorganize it.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
content | string | yes | — |
search_* — search
search_console_list_sitemaps
List sitemaps submitted to Search Console for a property.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
site_url | string | no | “ |
search_console_list_sites
List Search Console properties visible to the configured credentials.
Parameters not in the seed catalog — see the namespace reference page.
search_console_page_queries
List queries for a specific page in Search Console.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
page | string | yes | — | |
start_date | string | yes | — | |
end_date | string | yes | — | |
site_url | string | no | “ | |
limit | integer | no | 25 | |
country | string | no | “ | |
device | string | no | “ | |
search_type | string | no | web |
search_console_top_pages
List top organic pages for a Search Console property.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | yes | — | |
end_date | string | yes | — | |
site_url | string | no | “ | |
limit | integer | no | 25 | |
query | string | no | “ | |
country | string | no | “ | |
device | string | no | “ | |
search_type | string | no | web |
search_console_top_queries
List top organic queries for a Search Console property.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_date | string | yes | — | |
end_date | string | yes | — | |
site_url | string | no | “ | |
limit | integer | no | 25 | |
page | string | no | “ | |
country | string | no | “ | |
device | string | no | “ | |
search_type | string | no | web |
search_excel
Search for text across workbook cells.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
search_term | string | yes | — | |
sheet_name | string|integer|null | no | — | |
case_sensitive | boolean | no | false |
search_news
Search recent news articles.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
max_results | integer | no | 10 |
search_notes
Search stored notes and saved context.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
limit | integer | no | 5 | |
category | string|null | no | — | |
source | string|null | no | — | |
user_id | string|null | no | — | |
channel_id | string|null | no | — | |
tags | array|null | no | — | |
offset | integer | no | 0 |
search_past_conversations
Search imported conversations for historical context.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
person | string|null | no | — | |
sentiment | string|null | no | — | |
date_range | string|null | no | — | |
limit | integer | no | 5 |
search_pdf
Search for text within a PDF file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_path | string | yes | — | |
search_term | string | yes | — | |
case_sensitive | boolean | no | false | |
max_results | integer | no | 50 |
search_tasks
Search tasks with structured filters.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string|null | no | — | |
category | null | no | — | |
categories | array|null | no | — | |
priority | null | no | — | |
status | null | no | — | |
statuses | array|null | no | — | |
tags | array|null | no | — | |
project_id | string|null | no | — | |
include_archived | boolean | no | false | |
include_completed | boolean | no | false | |
limit | integer | no | 50 | |
offset | integer | no | 0 |
semantic_* — semantic
semantic_search
Semantic search across notes, project_notes, conversations, memories. Args: query: Search query. scopes: Subset of {“conversations”,“memories”,“notes”,“project_notes”}. Defaults to all four. k: Max results to return overall. project_id: When set, filters project_notes by project.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
scopes | array|null | no | — | |
k | integer | no | 10 | |
project_id | string|null | no | — |
send_* — send
send_slack_notification
Send a Slack notification — DM to Wayne by default, or to a channel. Pass channel as a channel name (e.g. #ops-alerts) or channel ID to post there instead of a direct message. Useful for ops alerts that Zach and Rick should also see.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
message | string | yes | — | |
priority | string | no | normal | |
title | string|null | no | — | |
channel | string|null | no | — |
service_* — service
service_health
Report per-service configuration/health and per-tool call metrics.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
include_metrics | boolean | no | true |
session_* — session
session_bootstrap
Read-only probe of connectivity, authenticated identity and effective read/write access.
Parameters not in the seed catalog — see the namespace reference page.
set_* — set
set_active_project
Set the active project explicitly.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
project_id | string | yes | — |
shipstation_* — ShipStation
Curated guide: ShipStation.
shipstation_create_order
Create a ShipStation order.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
order_number | string | yes | — | |
ship_to | object | yes | — | |
items | array[object] | yes | — | |
order_date | string|null | no | — | |
bill_to | object|null | no | — | |
customer_email | string|null | no | — | |
order_status | string | no | awaiting_shipment | |
carrier_code | string|null | no | — | |
service_code | string|null | no | — | |
store_id | integer|null | no | — |
shipstation_create_shipments
Create one or more ShipStation shipments.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
shipments | array[object] | yes | — |
shipstation_get_order
Get a ShipStation order by ShipStation order ID.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
order_id | string | yes | — |
shipstation_get_shipment
Get a ShipStation shipment by ShipStation shipment ID. Not available: this client speaks V1, which has no GET /shipments/{id}.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
shipment_id | string | yes | — |
shipstation_get_shipment_by_external_id
Get a ShipStation shipment by external shipment ID. Not available: external_shipment_id is a V2-only concept.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
external_shipment_id | string | yes | — |
shipstation_search_orders
Search ShipStation orders with optional filters.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
order_number | string|null | no | — | |
order_status | string|null | no | — | |
customer_name | string|null | no | — | |
item_keyword | string|null | no | — | |
create_date_start | string|null | no | — | |
create_date_end | string|null | no | — | |
sort_by | string|null | no | — | |
sort_dir | string|null | no | — | |
store_id | integer|null | no | — | |
page | integer | no | 1 | |
page_size | integer | no | 25 |
shipstation_search_shipments
Search ShipStation shipments (V1 API). Date filters accept YYYY-MM-DD or ISO timestamps. ship_date_start / ship_date_end filter on when the label shipped; created_at_* filter on when the shipment record was created. Set include_shipment_items=True to get line items back. Each shipment carries its billed weight, which is what carrier induction actually recorded. Filters with no V1 equivalent (shipment_status, batch_id, pickup_id, modified_at_*, “item_keywor…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
tracking_number | string|null | no | — | |
order_number | string|null | no | — | |
sales_order_id | string|null | no | — | |
store_id | string|null | no | — | |
ship_to_name | string|null | no | — | |
created_at_start | string|null | no | — | |
created_at_end | string|null | no | — | |
ship_date_start | string|null | no | — | |
ship_date_end | string|null | no | — | |
include_shipment_items | boolean | no | false | |
sort_by | string|null | no | — | |
sort_dir | string|null | no | — | |
page | integer | no | 1 | |
page_size | integer | no | 100 | |
shipment_status | string|null | no | — | |
batch_id | string|null | no | — | |
pickup_id | string|null | no | — | |
modified_at_start | string|null | no | — | |
modified_at_end | string|null | no | — | |
item_keyword | string|null | no | — | |
payment_date_start | string|null | no | — | |
payment_date_end | string|null | no | — | |
shipment_number | string|null | no | — | |
external_shipment_id | string|null | no | — |
sht_* — sht
sht_brand_card
Generate a SuperHiTech-branded marketing card from a headline. Composes a branded prompt and runs text-to-image. With wait=True it polls to completion and returns the output image URL; otherwise it returns the run_id to poll with magica_get_run.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
headline | string | yes | — | |
subtitle | string|null | no | — | |
style | string|null | no | — | |
model | string | no | pro | |
wait | boolean | no | true |
shtops_* — SHTops
Curated guide: SHTops.
shtops_bootstrap
Compatibility alias for bootstrap_context(scope=‘shtops’).
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
include_content | boolean | no | true |
shtops_check_service
Check the status of a systemd service on the SHTops host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
service_name | string | yes | — |
shtops_execute_command
Execute a shell command on the SHTops host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
command | string | yes | — | |
timeout | integer | no | 30 |
shtops_get_status
Get SHTops status information.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
mode | string | no | compact |
shtops_get_system_info
Get system information from the SHTops host.
Parameters not in the seed catalog — see the namespace reference page.
shtops_list_processes
List high-memory processes on the SHTops host.
Parameters not in the seed catalog — see the namespace reference page.
shtops_list_tasks
List supported automation tasks on the SHTops host.
Parameters not in the seed catalog — see the namespace reference page.
shtops_restart_service
Restart a systemd service on the SHTops host.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
service_name | string | yes | — |
skill_* — skill
skill_get
Fetch a skill’s SKILL.md (or a referenced resource) and follow it. name and expected_digest come from the same skill_search result: use that item’s manifest_digest exactly as returned (sha256:...). Never reuse a digest from an earlier turn. If the reply is error_code: digest_mismatch, the skill was updated; its current digest is returned in identifier - call skill_get again with that value. resource_path defaults to SKILL.md; only pass another path if t…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
name | string | yes | — | |
expected_digest | string | yes | — | |
resource_path | string | no | SKILL.md |
skill_search
Find the operational runbook (skill) for a SuperHiTech task. Call this ONCE before acting on a recurring operational task: ESA or Odyssey portal listings and orders, Bambu dropship, vendor price imports, Stripe reconciliation, check deposits, bill entry, RS inventory or reservations, TN portal, scheduled jobs, Leif tooling. query is 2-4 topic keywords (e.g. “oversold on order”, “bambu cart stuck”); do not paste skill names or whole sentences. Each result has name, description and…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
limit | integer | no | 10 |
social_* — Social
Curated guide: Social.
social_approve_draft
Approve or unapprove a normalized social post draft.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
draft_id | string | yes | — | |
provider | string | no | meta | |
approved | boolean | no | true |
social_create_post_draft
Create a social post draft for review and approval. Returns a preview of the composed post and a review_url where you can approve, reject, or request revisions before the post is published.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
profile_id | string | yes | — | |
text | string | no | “ | |
provider | string | no | meta | |
title | string | no | “ | |
body | string | no | “ | |
link_url | string | no | “ | |
call_to_action | string | no | “ | |
hashtags | array|null | no | — | |
media_urls | array|null | no | — | |
scheduled_for | string | no | “ | |
approval_required | boolean | no | true |
social_get_draft
Fetch a normalized social post draft.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
draft_id | string | yes | — | |
provider | string | no | meta |
social_get_post_metrics
Return normalized metrics for a social post.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
post_id | string | yes | — | |
provider | string | no | meta |
social_list_accounts
List connected social accounts for a provider.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
provider | string | no | meta |
social_list_comments
List normalized comments for a social post.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
post_id | string | yes | — | |
provider | string | no | meta | |
limit | integer | no | 25 |
social_list_posts
List recent social posts for a provider/profile.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
provider | string | no | meta | |
profile_id | string | no | “ | |
limit | integer | no | 10 | |
status | string | no | “ |
social_list_profiles
List publishable social profiles for a provider account.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
provider | string | no | meta | |
account_id | string | no | “ |
social_publish_post
Publish a social post immediately.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
provider | string | no | meta | |
draft_id | string | no | “ | |
profile_id | string | no | “ | |
text | string | no | “ | |
title | string | no | “ | |
body | string | no | “ | |
link_url | string | no | “ | |
call_to_action | string | no | “ | |
hashtags | array|null | no | — | |
media_urls | array|null | no | — | |
approved | boolean | no | false |
social_reply_to_comment
Reply to a social comment through the normalized interface.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
comment_id | string | yes | — | |
message | string | yes | — | |
provider | string | no | meta |
social_schedule_post
Schedule a social post for future publishing.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
publish_at | string | yes | — | |
provider | string | no | meta | |
draft_id | string | no | “ | |
profile_id | string | no | “ | |
text | string | no | “ | |
title | string | no | “ | |
body | string | no | “ | |
link_url | string | no | “ | |
call_to_action | string | no | “ | |
hashtags | array|null | no | — | |
media_urls | array|null | no | — | |
approved | boolean | no | false |
social_snapshot
Return a cross-platform social snapshot.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
provider | string | no | meta | |
profile_id | string | no | “ | |
limit | integer | no | 5 |
sonicwall_* — SonicWall
Curated guide: SonicWall.
sonicwall_list_sources
List the configured SonicWall log sources (firewalls). Every other SonicWall tool targets one of these by source name (or serial, or raw source_ip). Use this to discover which customer firewalls are onboarded and which one is the default when source is omitted. Sources with a serial set are scoped to that serial within their source_ip stream. Returns: str: JSON with success bool and a result containing default (the default source name) and sources (each with name, source_ip, seria…
Parameters not in the seed catalog — see the namespace reference page.
sonicwall_log_query
Structured search of the SonicWall syslog by named fields. Supply any combination of serial, user, src, dst, code, category, action, rule. They are ANDed. Each field becomes an anchored LogQL regex line-filter, so values match whole tokens: code=“16” hits m=16 and not the category c=16, and src won’t bleed into srcMac. Returns newest-first events with parsed key=value fields plus the raw line. Examples: user=“superht”, action=“mgmt” admin-UI activity code=“526” all web-management requests src…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
sonicwall_log_search
Freeform search of the SonicWall syslog with parsed results. Filter a source firewall’s log by a plain substring (contains) and/or an RE2 regex, over a lookback window. Each match is returned both as the raw line and as parsed key=value fields, newest first. Examples: contains=“src=203.” to find traffic from a subnet; regex=“m=(177|178)” for specific message IDs; contains=“Dropped”. Returns: str: JSON with success bool and result containing events (each with parsed dict + line) and…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
sonicwall_log_summary
Triage view: what is this firewall talking about? Scans the source firewall’s log over a window and tallies the top message IDs (with a representative msg text), categories, source IPs, usernames, and a drop/deny count. Good for spotting noise (e.g. a runaway message ID) and getting a quick health read. Returns: str: JSON with success bool and result containing top-N tallies.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
sonicwall_vpn_activity
Who’s on the VPN and how the tunnels are behaving. Two structured views of a source firewall’s VPN, over a time window: * control_plane - VPN/IKE category (c=16) events: IKE negotiation, IPsec SA add/delete, DPD, IKEv2. This is the tunnel lifecycle / rekey / failure signal. Sparse; returned newest-first. * sessions - distinct VPN users seen on L2TP / SSL-VPN session lines, collapsed to one row per (user, source IP, session type) with a hit count and first/last seen. The underlying per-connect…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
specialist_* — specialist
specialist_complete
Send one prompt to the specialized worker model, return its text. Use when a subtask needs the specialized model (e.g. uncensored or domain-tuned generation) instead of the main orchestrator. The worker does not call tools; it just returns a completion.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
prompt | string | yes | — | |
system | string | no | “ | |
max_tokens | integer | no | 1024 | |
temperature | number | no | 0.7 |
ted_* — ted
ted_intelligence_coverage
Count business records; opt in to synthetic diagnostics, never mailbox completeness.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
include_synthetic | boolean | no | false |
ted_intelligence_record
Save Ted’s dated, cited assertion; retry with the same key and payload. Payload: statement, epistemic_status (reported_fact or inference), observed_at (timezone-aware), sources (source_type, source_id or url/message_id/thread_id, optional source_at, message_id/thread_id), optional price (vendor, sku, amount decimal string, currency; optional variant/specification/condition/quantity/unit/terms/warranty). Optional product (sku; optional vendor/variant/specification/condition/quantity/ unit/term…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
payload | object | yes | — | |
request_key | string | yes | — |
ted_intelligence_search
Search submitted assertions, optionally by exact SKU; preserve variant and terms. Default excludes synthetic and superseded records. include_synthetic is a diagnostic opt-in; source_type matches an exact citation type. Limit: 1–50 (default 20). Product SKU lookup does not require a complete price. This reads only Ted records, never Gmail or existing email-awareness bodies. Prices are dated evidence, not comparable/current quotes or verified facts.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | no | “ | |
sku | string|null | no | — | |
include_superseded | boolean | no | false | |
include_synthetic | boolean | no | false | |
source_type | string|null | no | — | |
limit | integer | no | 20 |
touch_* — touch
touch_job_heartbeat
Record that a scheduled job just ran. Call this at the end of any cron or scheduled script — including external crons not managed by the Leif scheduler (RS sync, tn_tracking_sync, etc.) — so job_health can detect stale jobs without SSH log-tailing. job_id must be a stable slug (e.g. rs-ticket-sync). It does not have to exist in the scheduler registry; heartbeats are tracked separately. exit_code 0 preserves the legacy success contract. Callers may also provide result (succ…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
job_id | string | yes | — | |
exit_code | integer | no | 0 | |
duration_s | number|null | no | — | |
note | string|null | no | — | |
result | string|null | no | — | |
error_code | string|null | no | — |
transfer_* — transfer
transfer_file
Copy a file between hosts via scp with sha256 verification. ALWAYS prefer this over reading a file into context and writing it back out somewhere else: it scp’s the bytes host-to-host without routing them through the model, has no size limit, and verifies the sha256 on both ends. All local hosts have keys installed, so every direction works. source_host and dest_host are host aliases. leif is the local Leif server (10.10.0.25, the default source); the remote aliases are target…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
source_path | string | yes | — | |
dest_host | string | yes | — | |
dest_path | string | yes | — | |
source_host | string | no | leif | |
timeout | integer | no | 120 |
uisp_* — uisp
uisp_authorize
Authorize a pending UISP device and assign it to a site (WRITE). Calls POST /devices/{device_id}/authorize with {“siteId”: site_id} — the same action as clicking “Authorize” in the UISP UI. Authorization and site assignment are atomic; siteId is required by the API. Safety: * Pre-flight: the site_id must resolve, and the device must currently be UNAUTHORIZED. An already-authorized device is refused with no write, so re-runs can’t silently re-home a live device. * Post-flight: the device is r…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
uisp_connect
Onboard discovered UBNT device(s) by pushing the UISP Key (WRITE). Calls POST /discovery/connect/ubnt — the proper adoption path for devices in the discovery queue (status ‘discovered’). UISP logs into each device with the provided admin credentials and pushes the UISP Key so it becomes managed. ASYNCHRONOUS: this starts the connect process. Devices transition (discovered -> connecting -> unauthorized/active) over the next few minutes; the immediate post-flight will usually still show ‘dis…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
uisp_create_site
Create a new UISP infrastructure site (WRITE). Confirmed contract: POST /sites with {“name”: …} — name is the only required field; type defaults to “site”. Stand up a site here, then assign devices to it with uisp_authorize. Safety: * Duplicate-name guard: UISP permits two sites with the same name (a footgun). If a site with this name already exists, this returns that site (created=False) and does NOT create a twin. * Post-flight: re-reads the site list and returns the created site’s id/na…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
uisp_get
Fetch UISP entities: sites, devices, or a single device. entity_type: sites — all sites (optionally filtered by name substring) devices — all devices, slimmed (optionally filtered by site name) device — one full device record; requires device_id discovered — the discovery/adoption queue: devices found on the network but not yet managed (optionally filtered by name/ip substring via the site arg) Args: params.entity_type: ‘sites’ | ‘devices’ | ‘device’ params.site: optional case-insensitive…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
uisp_search
Search UISP devices and sites by a free-text substring. Matches (case-insensitive) against device name, model, IP, and MAC, and against site name. Returns slim device and site records. Args: params.query: e.g. ‘rocket’ to find airMax Rocket radios. Returns: str: JSON with matching devices and sites.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
params | any | yes | — |
uisp_status
Fleet rollup for the UISP controller (airMax / EdgeRouter / etc.). Returns site count, device count, a device-type breakdown, and a full count-by-status breakdown plus the derived online (active) device count. The online count comes from the overview.status field; the complete count_by_status map is included so the distribution can be verified directly. Returns: str: JSON with totals, device_types, count_by_status, active_devices.
Parameters not in the seed catalog — see the namespace reference page.
unifi_* — UniFi
Curated guide: UniFi.
unifi_get
Get UniFi data from the SHTops caches. entity_type options: sites — list all sites with metadata (both sources) devices — device inventory (both sources) hosts — UniFi consoles / network-servers (cloud source only) health — health subsystem data per site (local source only) wlans — SSID/WLAN configs per site (local source only) networks — LAN/VLAN configs per site (local source only) site: optional case-insensitive substring filter — matches site name, site_id, or host name. Omit for all site…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
entity_type | string | yes | — | |
site | string|null | no | — | |
source | string | no | all |
unifi_search
Search UniFi hosts, sites, and devices across both caches. Searches across: - Local controller: site names/descriptions, device names/models/IPs/MACs - Cloud (Site Manager API): host hostnames/locations, site descriptions, device names/models/IPs/MACs Use this to find a customer by name when you don’t know whether they’re on the hosted controller or on their own Cloud Key (e.g. JElectric). source: “local” | “cloud” | “all” (default).
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
source | string | no | all |
unifi_status
Get a summary of all UniFi sites and hosts managed by SHTops. Returns cache freshness, site/device counts, fleet-wide rollup, and any sites with zero devices (potential connectivity issues). source: “local” (unifi.super-ht.com only), “cloud” (Site Manager API hosts only — JElectric etc.), or “all” (default, both).
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
source | string | no | all |
unlink_* — unlink
unlink_tasks
Remove a dependency or hierarchy relationship between tasks.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
source_task | string | yes | — | |
target_task | string | yes | — | |
relationship | any | yes | — |
update_* — update
update_bootstrap_context
Compatibility entrypoint for updating scope-backed living docs or handoffs.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
scope | string | no | shtops | |
content | string | no | “ | |
document_path | string|null | no | — | |
mode | string | no | append | |
target | string | no | docs | |
section | string|null | no | — | |
importance | string | no | normal |
update_bootstrap_context_tool
Update a scope-backed living doc or handoff in a uniform way.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
scope | string | no | shtops | |
content | string | no | “ | |
document_path | string|null | no | — | |
mode | string | no | append | |
target | string | no | docs | |
section | string|null | no | — | |
importance | string | no | normal |
update_deadline_status
Update a tracked item’s status. new_status is one of: not_started, in_progress, blocked, completed, deferred. Updating also resets the stasis clock (the item counts as mentioned). Use this when progress is made, an item is blocked, or it’s consciously closed/deferred.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
item_id | string | yes | — | |
new_status | string | yes | — | |
note | string|null | no | — |
update_note
Update an existing note in place. Only the fields you supply are changed; omitted fields are left untouched. tags and metadata replace the stored values wholesale rather than merging. Resolve note_id first with search_notes or get_recent_notes.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
note_id | string | yes | — | |
content | string|null | no | — | |
category | string|null | no | — | |
tags | array|null | no | — | |
metadata | object|null | no | — |
update_project_context
Append an update to a project’s _notes.md context file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
section | string | yes | — | |
content | string | yes | — | |
project_id | string|null | no | — | |
importance | string | no | normal |
update_task
Update a task’s fields.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
task | string | yes | — | |
updates | object | yes | — | |
force | boolean | no | false |
validate_* — validate
validate_script
Validate a Python script for syntax and common issues.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
file_path | string | yes | — | |
run_checks | boolean | no | true |
web_* — web
web_search
Search the web using DuckDuckGo.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
query | string | yes | — | |
max_results | integer | no | 5 |
web_traverse
Traverse links from a starting URL breadth-first.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
start_url | string | yes | — | |
max_pages | integer | no | 5 | |
max_depth | integer | no | 1 | |
same_domain | boolean | no | true | |
max_links_per_page | integer | no | 30 | |
delay_seconds | number | no | 0 |
website_* — Website shell and files
Curated guide: Website shell and files.
website_create_directory
Create a website directory relative to the configured site roots.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
website_delete_file
Delete a website file relative to the configured site roots.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
website_execute_command
Execute a shell command from one allowed website root without allowing cd or .. traversal.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
command | string | yes | — | |
timeout | integer | no | 30 | |
root | string|null | no | — |
website_file_exists
Check whether a website path exists relative to the configured site roots.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
website_get_system_info
Get SSH system information from the website host.
Parameters not in the seed catalog — see the namespace reference page.
website_list_directory
List the contents of a website directory relative to the configured site roots.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | no | . |
website_list_roots
List the allowed website root aliases exposed by the website MCP tools.
Parameters not in the seed catalog — see the namespace reference page.
website_read_file
Read a website file relative to the configured site roots.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — |
website_write_file
Write a website file relative to the configured site roots.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
content | string | yes | — |
wp_* — wp
wp_create_post_draft
Create a WordPress DRAFT post from markdown on a managed WordPress site. Converts markdown into native Gutenberg blocks: ## headings become H2 (### becomes H3, etc.), text become links,  become image blocks, plus bold/italic/bullet lists. Uploads the featured image and any inline images into the WordPress media library, sets the author, and saves the post as a DRAFT. Status is ALWAYS draft; this tool never publishes. Image sources may be public URLs or paths already on the w…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
title | string | yes | — | |
body_markdown | string | yes | — | |
author | string | no | “ | |
featured_image | string | no | “ | |
images | array|null | no | — | |
root | string | no | super-ht.com |
write_* — write
write_excel
Create a new Excel workbook.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
data | array[object] | yes | — | |
sheet_name | string | no | Sheet1 |
write_file
Create or overwrite a local file.
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
path | string | yes | — | |
content | string | yes | — |
write_session_summary
Persist a structured summary at the end of a working session. Call this when a session naturally wraps (Wayne signs off, or the thread clearly lands): the decisions made, threads opened/closed, anything that needs Wayne’s attention (escalations), and concrete next_actions. scope matches the project scopes (e.g. personal, msp, esa, pricing). Summaries surface in the morning brief and via recent_session_summaries so the next session starts warm instead of cold. Skip chit-chat se…
| Param | Type | Required | Default | Notes |
|---|---|---|---|---|
scope | string | yes | — | |
one_line_summary | string | yes | — | |
decisions | array|null | no | — | |
threads_opened | array|null | no | — | |
threads_closed | array|null | no | — | |
escalations | array|null | no | — | |
next_actions | array|null | no | — | |
notable_artifacts | array|null | no | — | |
conversation_id | string|null | no | — | |
duration_minutes | integer|null | no | — | |
supersedes | array|null | no | — |
Related pages
- Tools — the curated catalog overview and routing rules
- Cloudflare Pages Deploys — how a regenerated page reaches production