Tools

The Leif MCP tool catalog — organized by namespace, with what each one is for.

Leif exposes 270+ tools across roughly a dozen namespaces. This page is the high-level map; the per-namespace reference pages below carry exact signatures, parameters, and the per-tool gotchas. For anything not yet covered there, the FastMCP server itself is the source of truth — call the tool directly, or read the implementation in superhitech/leif:src/mcp/tools/.

Namespace reference pages

Detailed, signature-level reference for a namespace. Generated from the live tool schemas, so the parameters and defaults match what the server actually accepts. The IT-operations, business-systems, and pricing namespaces are done; the rest follow the same template.

IT services & operations

  • cwa_* — ConnectWise Automate (RMM): search computers, run scripts/commands, and the output-capture quirks
  • Shell & file toolslocal_* / remote_* / website_* / runpod_* and the Leif-workspace file tools: which host each hits
  • shtops_* — SHTops ops host: service control, status, processes, tasks
  • pve_* — Proxmox: node/storage/template inventory, LXC & VM lifecycle, in-guest exec, async tasks
  • cf_* — Cloudflare: zones, DNS, SSL mode, settings, cache purge (note the nested params wrapper)
  • unifi_* — UniFi (read-only, via SHTops cache): the local-vs-cloud source split
  • sonicwall_* — SonicWall firewall logs (read-only, Loki-backed): search, triage, VPN activity

Customer & business systems

  • repairshopr_* — RepairShopr: the ticket/customer system of record (entity-typed CRUD, comments, search)
  • quickbooks_* — QuickBooks Online: the query workhorse, sync-token mutations, reports, CSV export
  • hudu_* — Hudu IT documentation: company-scoped CRUD, archive/unarchive, integration lookup
  • growably_* — Growably / LeadConnector CRM: contacts, opportunities, tags, messaging, and the confirm-before-send rules
  • shipstation_* — ShipStation: orders and shipments

Pricing & sales

  • pricing_app_* — Pricing App: imports, monitoring, catalog search, parsing, Keepa, cheaper-than-Amazon
  • finance_* / finance_app_* — the finance/trading project: live data API vs. source-tree access

Communication & documents

  • gmail_* — Gmail (lowercase): search syntax, read, send, draft, attachments, labels
  • sheets_* — Google Sheets: read, the multi-mode write, and structure management (read-vs-manage rule)
  • drive_* — Google Drive: files, Docs read/write, folders (Sheets values live in sheets_*, not here)
  • calendar_* — Google Calendar: events, free/busy, and the timezone gotcha
  • social_* — cross-platform posting: the draft → approve → publish flow, metrics, comment replies

Marketing & analytics

Knowledge, tasks & memory

Files, code & web

  • github_* — repository reads/writes (the mechanism that edits this site)
  • Web accessfetch_url, web_search, web_traverse, news, RSS
  • Data & runtime — PDF / Excel extraction, the persistent Python runtime, APT
  • Shell & file tools — host-scoped shell + file families (listed under IT operations above)

Scheduling & misc

The generated catalog

The curated pages above are the readable guides — prose, gotchas, worked examples. Alongside them, /tools/catalog/ is generated from the live FastMCP tool schemas, so its parameters and defaults are exactly what the server accepts. The pipeline splits in two:

  1. Introspection (Leif side). A scheduled Leif job — a sibling of leif-docs-plans-sync — introspects the running FastMCP server and writes scripts/tools-catalog.json in this repo (the contract is documented at the top of scripts/generate-tool-catalog.mjs).
  2. Generation (this repo). npm run gen:tools reads that JSON and writes src/content/docs/tools/catalog.md. Cloudflare Pages then deploys it like any other page.

This is the “introspection job that keeps the reference generated” the docs used to gesture at — now an actual script plus a JSON contract. The committed tools-catalog.json is currently a verified seed (a cross-section of namespaces); the Leif-side job populates the full 270-tool set.

How tools are named

The naming convention is consistent across the catalog:

<namespace>_<verb>[_<object>]

Examples:

  • cwa_search — namespace cwa, verb search
  • quickbooks_query — namespace quickbooks, verb query
  • pricing_app_create_file_import — namespace pricing_app, verb create, object file_import

If you know what kind of work you want to do, you can usually guess the tool name.

Routing rules (the ones that matter)

These supersede any “obvious” guess. They live here because getting them wrong silently routes against the wrong system.

Use thisNot thisWhy
cwa_searchcwa_getcwa_get is for direct ID lookups; cwa_search is what you almost always want for ConnectWise Automate computers
quickbooks_queryquickbooks_getQB data lives in queryable tables; query is the workhorse
sheets_readsheets_managesheets_manage only does create / add_sheet; reading is sheets_read
write_filegithub_create_or_update_fileFor Leif-host filesystem writes. github_create_or_update_file is for repos.
calendar_get_eventsgcal_* (legacy alias)Use the canonical tool name
local_execute_commandremote_execute_commandWhen targeting the Leif host (10.10.0.25)
remote_execute_commandlocal_execute_commandWhen targeting nvrbackup (10.10.0.14)
shtops_execute_commandlocal_* / remote_*When targeting the SHTops host
finance_app_execute_commandremote_execute_commandFor the finance app tree on nvrbackup; finance_* is the live data API, not shell
runpod_execute_commandremote_execute_commandWhen targeting the RunPod GPU pod (ephemeral endpoint)

See Hosts for which *_execute_command goes with which target.

Namespaces

Jump to a group: IT services & operations · Customer & business systems · Pricing & sales · Communication & documents · Marketing & analytics · Knowledge & memory · Tasks, projects & commitments · Files, code & web · Scheduling & email filtering · Misc

IT services & operations

  • cwa_* — ConnectWise Automate. cwa_search (preferred for finding computers), cwa_get, cwa_status, cwa_execute. Command execution on customer endpoints adds cwa_run_command and cwa_run_powershell; script work uses cwa_search_scripts and cwa_script_history; low-level access is cwa_raw_request and cwa_probe_command_endpoint. → full reference
  • shtops_* — SHTops host operations. Service control, system info, process listings, supported automation tasks. → full reference
  • unifi_* — UniFi data via the SHTops cache. unifi_get, unifi_search, unifi_status. Read-only; for changes use the UniFi controller directly. → full reference
  • pve_* — Proxmox Virtual Environment. LXC and VM lifecycle (create, start, stop, destroy), node status, storage, templates, task tracking. → full reference
  • sonicwall_* — SonicWall edge firewall logs. sonicwall_log_search, sonicwall_log_summary, sonicwall_vpn_activity. Read-only log analysis; see the Service Map telephony/edge rows. → full reference
  • cf_* — Cloudflare. Zones (cf_list_zones, cf_get_zone, cf_get_zone_settings), DNS (cf_list_dns_records, cf_create_dns_record, cf_update_dns_record, cf_delete_dns_record), TLS (cf_get_ssl_mode, cf_set_ssl_mode), and cf_set_zone_setting / cf_purge_cache. Manages the public hostnames and the docs-site DNS. → full reference
  • local_* / remote_* / website_* / runpod_* — Shell execution and filesystem access on Leif, nvrbackup, the website host, and the on-demand RunPod GPU pod respectively. Each provides *_execute_command plus *_get_system_info and file helpers; local_* also has local_restart_service. → full reference

Customer & business systems

  • repairshopr_* — RepairShopr. get, create, update, delete, comment, search, plus link_repairshopr to associate tasks. System of record for tickets and customers. → full reference
  • quickbooks_* — QuickBooks Online. query, get, create, update, delete, report, export. Use query for most lookups. → full reference
  • hudu_* — Hudu (IT documentation). get, search, create, update, delete, plus a special hudu_lookup. → full reference
  • growably_* — Growably / LeadConnector (CRM). get, update, upsert_contact, create_opportunity, add_note, manage_tags, send_message, trigger_workflow. See the Growably integration plan. → full reference
  • shipstation_* — ShipStation. Order create, get, search. → full reference

Pricing & sales

  • pricing_app_* — Pricing app operations. File and live imports, product lookups, vendor price list parsing, Keepa refreshes, Amazon comparison. See Pricing App File Import for the canonical workflow. → full reference
  • finance_* — Trading / finance project (on nvrbackup, API :3000). Portfolio, quotes, positions, signals, watchlists, risk limits/status, symbol search, finance_health_check. → full reference
  • finance_app_* — Shell and file access into the finance project tree (/home/superht/finance/): finance_app_execute_command, finance_app_read_file, finance_app_write_file, finance_app_list_directory, finance_app_file_exists. Distinct from the finance_* data API — see the routing table. → full reference

Communication & documents

  • gmail_* — Gmail. Search, get, send, create draft, mark read, attachments, labels. → full reference
  • Gmail:* (capital G) — Different namespace, primarily Slack/Anthropic-side Gmail tools. Use gmail_* (lowercase) for Leif-side workflows.
  • calendar_* — Google Calendar via Leif. Events list, create, update, delete, free/busy. → full reference
  • drive_* — Google Drive read access. List, search, get metadata, read Google Docs. → full reference
  • sheets_* — Google Sheets. read, write, manage. See routing rule above. → full reference
  • social_* — Cross-platform social posting. List accounts/profiles, create draft, approve, schedule, publish, list comments, reply. → full reference

Marketing & analytics

  • ga_* — Google Analytics 4. Page views, traffic sources, devices, geo, search terms, conversions, generic run_report, marketing-oriented summaries.
  • gsc_* — Google Search Console. Top queries, top pages, local visibility, generic query.
  • gbp_* — Google Business Profile. Locations, performance, multi-location summaries, local overview.
  • search_console_* — Slightly different Search Console namespace (sites, sitemaps, page-level queries). Distinct from gsc_*.
  • marketing_* — Combined snapshots that aggregate across GA4, GSC, GBP.

full reference for all five namespaces.

Knowledge & memory

  • save_note / get_recent_notes / search_notes — Persisted notes layer for context Leif should remember.
  • save_progress / load_progress / complete_task / cleanup_old_checkpoints — Checkpoint system for long-running work.
  • bootstrap_context / update_bootstrap_context* / read_self — Living docs and Leif’s own self-document. Always read read_self at session start.
  • get_topic_overview / get_person_summary / conversation_analytics — Higher-level reads over historical conversation context.
  • get_daily_review — The daily review / morning-briefing read over pending decisions, commitments, and check-ins.
  • search_past_conversations — Search imported past conversations.

full reference with signatures and the conceptual model on Memory & State.

Tasks, projects & commitments

  • create_task / capture_task / create_task_from_ticket / update_task / complete_leif_task / complete_task / search_tasks / list_tasks / list_active_tasks / link_tasks / unlink_tasks / break_down_task — Task layer. create_task_from_ticket seeds a task from a RepairShopr ticket.
  • create_project / get_project / list_projects / set_active_project / get_project_status / get_project_context / update_project_context — Project layer.
  • create_commitment / update_commitment / close_commitment / list_commitments / commitments_due_for_surfacing / mark_commitment_surfaced — Commitments layer (things Wayne has agreed to / been asked about that need surfacing on a cadence).

full reference with the category/priority/status enums.

Files, code & web

  • read_file / create_file / write_file / delete_file / list_directory / create_directory — Local Leif filesystem. → full reference
  • remote_* and website_* equivalents for nvrbackup and the website host. → full reference
  • github_* — GitHub. Get file, create-or-update file, batch move, search code, create issue, list issues. Used to drive this docs site. → full reference
  • fetch_url / web_traverse / web_search / search_news / fetch_rss — Web access. → full reference
  • extract_pdf_tables / read_pdf / search_pdf / get_pdf_info — PDF. → full reference
  • read_excel / write_excel / append_to_excel / convert_excel_to_csv / get_excel_info / search_excel — Excel. → full reference
  • execute_python / install_python_package / list_python_packages / get_python_namespace / validate_script — Python runtime. → full reference
  • apt_install / apt_search — Local package management. → full reference

Scheduling & email filtering

  • schedule_job / list_scheduled_jobs / remove_scheduled_job — Leif’s internal job scheduler. Use this rather than crontab on the Leif host.
  • add_email_filter / list_email_filters / remove_email_filter — Email filter management.

full reference

Misc

  • send_slack_notification — DM Wayne directly via Slack.
  • get_weather / get_location / get_time — Self-explanatory.
  • build_hungryroot_meal_plan / search_hungryroot_catalog / search_hungryroot_recipes — Personal Hungryroot integration (gluten-free meal planning).
  • discover_services — Codebase introspection helper.

full reference

Where to look when a tool isn’t doing what you expect

  1. Re-read the tool name. A surprising number of bugs are wrong-tool bugs. cwa_get vs cwa_search, local_* vs remote_*, sheets_read vs sheets_manage — see the routing table above.
  2. Read the source. The FastMCP server’s register() calls are the authoritative spec: superhitech/leif:src/mcp/tools/.
  3. Check the integration client. API quirks live in superhitech/leif:src/integrations/.
  4. Ask Leif (this is allowed). “What’s the signature of growably_upsert_contact?” is a perfectly fine question — Leif has the tool catalog at hand.