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. For exact signatures and parameter shapes, the FastMCP server itself is the source of truth — call the tool directly, or read the implementation in superhitech/leif:src/mcp/tools/.

::: callout A future automation will introspect the running FastMCP server and generate one markdown page per tool automatically. Until then, this page is a hand-curated overview rather than a complete catalog. :::

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

See Hosts for which *_execute_command goes with which target.

Namespaces

IT services & operations

  • cwa_* — ConnectWise Automate. cwa_search (preferred for finding computers), cwa_get, cwa_status, cwa_execute. Used for remote command execution on customer endpoints.
  • shtops_* — SHTops host operations. Service control, system info, process listings, supported automation tasks.
  • unifi_* — UniFi data via the SHTops cache. unifi_get, unifi_search, unifi_status. Read-only; for changes use the UniFi controller directly.
  • pve_* — Proxmox Virtual Environment. LXC and VM lifecycle (create, start, stop, destroy), node status, storage, templates, task tracking.
  • local_* / remote_* / website_* — Shell execution and filesystem access on Leif, nvrbackup, and the website host respectively.

Customer & business systems

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

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.
  • finance_* — Trading / finance project. Portfolio, quotes, positions, signals, watchlists, risk limits.

Communication & documents

  • gmail_* — Gmail. Search, get, send, create draft, mark read, attachments, labels.
  • 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.
  • drive_* — Google Drive read access. List, search, get metadata, read Google Docs.
  • sheets_* — Google Sheets. read, write, manage. See routing rule above.
  • social_* — Cross-platform social posting. List accounts/profiles, create draft, approve, schedule, publish, list comments, reply.

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.

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.
  • search_past_conversations — Search imported past conversations.

Tasks, projects & commitments

  • create_task / capture_task / update_task / complete_leif_task / search_tasks / list_tasks / list_active_tasks / link_tasks / unlink_tasks / break_down_task — Task layer.
  • 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).

Files, code & web

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

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.

Misc

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

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.