Skip to main content

Available tools

The MCP server exposes 56 tools. Each one maps to a single Zyles REST API endpoint and relays its response verbatim.

You do not need to memorise these names — Claude picks the right tool itself. The list helps you understand what an assistant actually did, and lets you write more precise instructions.

project_id on every tool

Every tool except workspaces_list also accepts an optional project_id. Without it, the connection's default project applies; API-key connections ignore the field. See Using several projects.

Connection & projects​

ToolEndpointPurpose
zyles_whoamiGET /meShows the project and user behind the current token. A good first test.
workspaces_list—Lists the reachable projects with their ids, plus the default project.

Leads​

ToolEndpointPurpose
leads_createPOST /api/leads/addCreates leads in a batch. The only required field per lead is phone_number.
leads_listPOST /api/leadsSearches and filters leads; supports filters, search and pagination.
leads_getGET /api/leads/{id}Reads a single lead.
leads_updatePUT /api/leads/{id}Updates fields. archived: true archives, false restores.
No hard delete

Leads can only be archived. That is by design, so history is preserved.

Smart Views​

ToolEndpointPurpose
smart_views_listGET /api/smart-viewsLists the project's smart views.
smart_views_createPOST /api/smart-viewsCreates a view; name and filters are required.
smart_views_updatePUT /api/smart-views/{id}Updates the name or filters.
smart_views_deleteDELETE /api/smart-views/{id}Deletes a view.
smart_views_leadsPOST /api/smart-views/{id}/leadsResolves a view to its matching leads.
custom_fields_listGET /api/custom-fieldsLists the custom field definitions (id, name, field_type, options, external_id). The id is the field_id for the custom_field_value filter.

Filter reference (filters)​

Shape: {"operator":"AND"|"OR","conditions":[…]}; a condition is {"field","operator","value"} or another nested {"operator","conditions"}.

FieldOperatorsValue
first_name, last_name, email, phone_number, notesequals, not_equals, contains, not_contains, starts_with, ends_with, is_null, is_not_null, in, not_intext
status_idequals, not_equals, in, not_in, is_null, is_not_nullstatus uuid (lead_statuses_list)
created_at, updated_at, last_called_atequals, greater_than, less_than, greater_than_or_equal, less_than_or_equal, is_null, is_not_nullISO date or a relative preset (see below)
call_amountequals, greater_than, less_than, greater_than_or_equal, less_than_or_equalnumber
tag_idequals, not_equals, in, not_intag uuid (tags_list)
call_outcome_idequals, not_equals, in, not_in, is_null, is_not_nulloutcome uuid (call_outcomes_list)
activity_typeequals, not_equals, in, not_incall, email, note, …
custom_activity_type_idequals, not_equals, in, not_in, is_null, is_not_nulltype uuid (custom_activity_types_list) – "has (no) custom activity of this type"
custom_activity_field_valueequals, not_equals, contains, not_contains, starts_with, ends_with{"field_id": <field uuid>, "value": <text>}
custom_field_valueequals, not_equals, contains, not_contains, starts_with, ends_with, is_null, is_not_null, greater_than, less_than, in, not_in{"field_id": <custom field uuid from custom_fields_list>, "value": <text>}

Multi-choice custom fields (e.g. the "Tags" field of a Close.io import) are stored as a list; contains with one option means "has this option":

{"field":"custom_field_value","operator":"contains","value":{"field_id":"<id from custom_fields_list>","value":"kampagne-2a-start"}}

contains is a substring match: newsletter 1 also matches newsletter 1 durchlaufen.

Relative date presets​

Instead of an ISO date, created_at, updated_at, last_called_at and custom fields of type date accept one of these presets. They are resolved server-side on every query, so the smart view moves with the calendar rather than freezing a date.

today · yesterday · this_week · last_week · this_month · last_month · this_quarter · last_quarter · this_year · last_year · last_7_days · last_30_days · last_90_days

Weeks start on Monday. last_7_days is the window from today minus 7 days through today, both inclusive.

warning

An unknown value is not an error. The filter is saved and then matches nothing — the smart view stays empty, silently. Use exactly the spellings above; there is no last_14_days or letzte_woche.

Power dialers​

ToolEndpointPurpose
power_dialers_listPOST /api/power-dialer/listLists the dialer campaigns.
power_dialers_createPOST /api/power-dialerCreates a campaign (AI or MANUAL).
power_dialers_getPOST /api/power-dialer/smart-view/{id}Reads a campaign by smart view and mode.
power_dialers_deleteDELETE /api/power-dialer/{id}Deletes a campaign.
power_dialers_set_statusPUT /api/power-dialer/{id}/statusSets idle, running or finished — i.e. starts or stops the campaign.
power_dialers_set_schedulePUT /api/power-dialer/{id}/scheduleSets the calling schedule.
user_id is required here

The backend derives the project from the token but not the user. All power dialer tools therefore need a valid user_id. Claude usually works it out itself; otherwise it will ask.

AI agents​

ToolEndpointPurpose
agents_listGET /api/agentsLists the project's agents.
agents_createPOST /api/agentsCreates an agent (type defaults to caller).
agents_getGET /api/agents/{id}Reads an agent and its configuration.
agents_updatePUT /api/agents/{id}Updates name, type or configuration.
agents_deleteDELETE /api/agents/{id}Deletes an agent.

Activities​

ToolEndpointPurpose
activities_listGET /api/activitiesReads the timeline; all parameters optional (lead_id, activity_type, …).
activities_getGET /api/activities/{id}Reads a single activity.
activities_create_notePOST /api/activities/noteCreates a note (lead_id + content).
activities_create_callPOST /api/activities/callLogs a call (lead_id + provider_call_id).

Lead statuses​

ToolEndpointPurpose
lead_statuses_listGET /api/lead-statusesLists the project's status values.
lead_statuses_createPOST /api/lead-statusesCreates a status.
lead_statuses_updatePUT /api/lead-statuses/{id}Updates a status.
lead_statuses_deleteDELETE /api/lead-statuses/{id}Deletes a status.

Call outcomes​

Each outcome type's description and the agent's configuration.postCallPrompt field control which outcome the AI sets after a call — not the agent prompt. See Post-call outcomes.

ToolEndpointPurpose
call_outcomes_listGET /api/call-outcomesLists the outcome types.
call_outcomes_createPOST /api/call-outcomesCreates an outcome type.
call_outcomes_updatePUT /api/call-outcomes/{id}Updates an outcome type.
call_outcomes_deleteDELETE /api/call-outcomes/{id}Deletes an outcome type.
activity_set_outcomePOST /api/activities/{id}/outcomeAssigns an outcome to an activity.
activity_clear_outcomeDELETE /api/activities/{id}/outcomeRemoves that assignment again.

Custom activities​

ToolEndpointPurpose
custom_activity_types_listGET /api/custom-activity-typesLists the custom activity types.
custom_activity_type_fields_listGET /api/custom-activity-types/{id}/fieldsShows a type's fields and which are required.
custom_activities_createPOST /api/activities/customLogs a custom activity on a lead.
custom_activities_getGET /api/activities/custom/{id}Reads a custom activity.
custom_activities_updatePUT /api/activities/custom/{id}Updates a custom activity.
custom_activities_deleteDELETE /api/activities/custom/{id}Deletes a custom activity.

Workflows​

ToolEndpointPurpose
workflows_listGET /api/workflowsLists the project's workflows.
workflows_getGET /api/workflows/{id}Reads a workflow, including its definition.
workflows_createPOST /api/workflowsCreates a workflow. name, definition, trigger_config required; enabled defaults to false (inert until enabled).
workflows_updatePUT /api/workflows/{id}Updates a workflow. definition/trigger_config replace the stored value wholesale — read it first with workflows_get.
workflows_deleteDELETE /api/workflows/{id}Deletes a workflow.

definition and trigger_config are JSON objects. Before saving, the MCP server structurally validates the graph (known node types, resolvable edges) and rejects a malformed definition without calling the backend. Execution and debugging tools (run, run history) are intentionally omitted.

Error behaviour​

The MCP server does not reshape backend responses. When a call fails, Claude receives an error result carrying the unmodified HTTP status and body — for example:

Backend returned 403: {"success":false,"message":"..."}

Such an error should be read rather than retried: it states the reason (missing permission, plan limit, invalid input). If the backend cannot be reached at all, the server reports a connection error ("unreachable") instead.

The full error model is documented under Errors & conventions.