Zylo MCP - Tools Reference

Note: Where tools are tagged Human in the Loop (HITL), the MCP server instructs your AI to show planned changes and ask for permission before executing.

Session Management

ToolDescriptionRelevant Permissions
initialize_sessionAuthenticates; loads permissions and required documentation (API specs, Report Builder guides, examples, resource relationships)n/a - always available
read_documentationAccess specific documentation on-demand. Use this if you need to re-read specific docs, otherwise initialize_session loads all documentation automatically.n/a - always available

Data Querying

Note: Queries have a 30-second timeout. Complex queries may need simplification.

ToolDescriptionRelevant Permissions
query_dataBuilds, validates, and executes Report Builder queries. Use this when analyzing metrics, generating reports, or exploring relationships between resources.Depends on what's being queried: applications:read, contracts:read, spend:read, team:read, etc.

Resource Management

ToolDescriptionRelevant Permissions
application_createCreates a new application in Zylo. Supports bulk updates up to 50 applications at once. (HITL)applications:write
application_updateUpdates an existing application. Supports bulk updates. (HITL)applications:write
application_budget_createSets a budget for an application for a specific year. (HITL)applications:write
application_budget_updateUpdates an existing application budget. (HITL)applications:write
contract_createCreates a new contract in Zylo from structured data. If the contract can have line items (can_have_contract_lines=true), no application is required. If it cannot have line items, the related application must be specified. If you have contract documents (PDFs) to upload, use contract_document_upload instead — AI will extract the data automatically. (HITL)contracts:write
contract_updateUpdates existing contracts. Supports bulk updates up to 50 contracts at once. (HITL)contracts:write
contract_document_uploadUploads contract documents (PDFs) to Zylo for AI-powered data extraction. Returns presigned S3 upload URLs and document tracking IDs. After upload, AI automatically extracts contract data which appears as a pending contract for review. Maximum 20 files per request. This is the preferred method for creating contracts from documents. MCP only — not available on the chat channel. (HITL)applications:write, contracts:write
contract_line_item_createCreates a line item within a contract. Use this when you have a contract that can contain multiple line items, e.g. a master agreement containing multiple products. (HITL)contracts:write
contract_line_item_updateUpdates contract line items. Supports bulk updates up to 50 line items at once. (HITL)contracts:write
custom_field_createCreates a new custom field type. Supported field types are boolean, choice (dropdown with options), currency, date, email, number, text. See also Custom Fields Guide. (HITL)admin
custom_field_updateUpdates custom field values. Supports bulk updates of up to 50 custom fields at once. The following fields can be updated: Description, Enabled/Disabled status, Position (display order). The following fields cannot be updated: Field name, Field type, Section (resource type), Field options. (HITL)admin
savings_event_createCreates a savings event to track cost optimizations, avoidance, or other financial impacts. Required fields: name, event_type, transaction_date. Optional fields: application_id (link to a valid application via the ID), description, notes, monetary_value (must be >=0), numerical_value (must be paired with unit_of_measure), unit_of_measure (must be paired with numerical_value and one of Application, Contract, Licenses, Survey, Users), value_type (must be one of Identified Avoidance, Identified Savings, Informational, Realized Avoidance, Realized Savings), exclude_from_event_total (boolean). (HITL)applications:write
savings_event_updateUpdates savings events by ID. Supports bulk updates up to 50 savings events at once. System-generated events (origin='system' cannot change application_id or event_type. Fields numerical_value and unit_of_measure must both be set, or both be null. When monetary_value or numerical_value are modified, user_override is automatically set to TRUE. (HITL)applications:write

Alerts

ToolDescriptionRelevant Permissions
alert_createCreates an alert to monitor applications or contracts for specific conditions (renewal dates, spend thresholds, etc.)applications:write
alert_updateUpdates an existing alert's settings, recipients, or thresholds. Supports bulk updates of up to 50 alerts at once. (HITL)applications:write

Views

ToolDescriptionRelevant Permissions
view_createCreates a new view containing a specified subset of applications.applications:write
view_updateUpdates an existing view's name or settings. (HITL)applications:write
view_add_applicationAdds an application to an existing view.applications:write
view_add_zylo_userAdds a user to an existing view, granting them access to the applications within that view.applications:write

Users

ToolDescriptionRelevant Permissions
zylo_user_createCreates a new Zylo user account.admin
zylo_user_updateUpdates a Zylo user's permissions, roles, or settings. Supports bulk updates up to 50 users at once. (HITL)admin

Workflows

ToolDescriptionRelevant Permissions
workflow_lifecycle_readLoads the workflow lifecycle reference: stages, available tools, and operator-facing terminology. The AI calls this before driving any workflow mutation so it can orient on the workflow's current stage and pick the right per-step tool.applications:read, integrations:read, users:read
workflow_templates_readLists messaging templates available for workflows. Filter by templateIds to fetch specific templates, or omit to list all. Templates supply the sender, subject, and channel used by workflow_send_survey and workflow_deprovision_and_notify_complete.applications:read, integrations:read, users:read
workflow_review_users_readReads the user cohort for a workflow's Review Users step. Paginated; supports filtering by included and sorting. Returns per-user identity plus the workflow_response_id (when a response exists) so the AI can drive workflow_response_update by name.applications:read, integrations:read, users:read
workflow_review_users_removeRemoves specific users from a workflow's review cohort. Supports up to 1000 users per call. Only available while the workflow is on the Review Users step. (HITL)applications:write, integrations:write, users:write
workflow_review_users_completeAdvances a workflow past the Review Users step. Pass skipEmailAndReviewSteps: true to bypass survey delivery and response review and jump straight to the deprovision step. (HITL)applications:write, integrations:write, users:write
workflow_send_surveyConfigures and dispatches the survey for a workflow's Send Survey step. Takes a templateId from workflow_templates_read and a dueDate (YYYY-MM-DD). (HITL)applications:write, integrations:write, users:write
workflow_review_responses_completeAdvances a workflow past the Review Responses step once the operator has finished reviewing user responses and any overrides. (HITL)applications:write, integrations:write, users:write
workflow_response_updateOverrides a single user's response on a workflow (admin override). The user's original response is preserved as an audit trail. (HITL)applications:write, integrations:write, users:write
workflow_deprovision_and_notify_completeConfigures and fires the Deprovision & Notify step of a 5-step workflow. Pass sendEmail: true with a templateId to dispatch a notification, or sendEmail: false to deprovision silently. (HITL)applications:write, integrations:write, users:write
workflow_finalizeMarks a workflow as complete. For manual workflows this is when the downloadable user list is finalized; for integration workflows this is when license actions execute through the integration. (HITL)applications:write, integrations:write, users:write
workflow_refreshRe-evaluates the workflow's filter spec against current data and rebuilds the user cohort. Use when upstream data has changed and the operator wants the workflow to reflect the latest snapshot. (HITL)applications:write, integrations:write, users:write
workflow_resends_updateToggles resend reminders on the workflow's Send Survey or Review Responses step. (HITL)applications:write, integrations:write, users:write
workflow_updateUpdates a workflow's name. (HITL)applications:write, integrations:write, users:write

Utilities

ToolDescriptionRelevant Permissions
resolve_entityResolves application or vendor names to their IDs. Useful when you know an entity's name but need its ID for other operations.applications:read
execute_playbookRuns predefined analysis playbooks that guide multi-step analysis tasks following a standard pattern (savings opportunities, application reviews, contract renewals, contract uploads, spend optimization, license optimization).Varies by playbook
search_zendesk_articlesSearches Zylo's Help Center for support articles and documentation. Use when the user asks how to do something in Zylo, needs help with a feature, or wants to find relevant documentation.n/a - always available

Common Workflows

Querying Data

  1. Your AI assistant calls initialize_session automatically
  2. You ask a question: "Show me applications spending over $100,000"
  3. AI executes the query with query_data (automatically validates syntax)
  4. Results are formatted and displayed

Creating Resources

  1. You request a creation: "Create a budget of $200,000 for Zoom for 2025"
  2. AI calls the appropriate create tool
  3. AI shows you what will be created and asks for confirmation
  4. Resource is created after you confirm

Uploading Contract Documents

  1. You request an upload: "Upload this contract PDF"
  2. AI calls contract_document_upload with the file name(s)
  3. AI shows you the presigned POST URL(s), form fields, and document ID(s)
  4. You (or your client application) upload the file(s) via multipart/form-data POST (fields first, PDF file last)
  5. AI extraction begins automatically — poll company_documents status to track progress
  6. Extracted data appears as a pending contract for review in the Zylo App

Updating Resources

  1. You request an update: "Mark the Slack application as inactive"
  2. AI shows you what will change
  3. AI asks: "Proceed? (yes/no)"
  4. You confirm: "yes"
  5. AI executes the update