Available Tools
What the ZopNight MCP server's read and write tools cover, how the Write access setting gates them, and the required arguments, pagination, and filter values.
The MCP server exposes two classes of tool: reads, available to every connected agent, and writes, which change something and are governed by your organisation's Write access setting and by the caller's OAuth scopes (or PAT capabilities). The first tool, list_organisations, requires no arguments. All other tools require an org_id argument — call list_organisations first to get the org IDs.
Authentication
Every request carries a Bearer token — either an OAuth 2.1 access token (recommended for interactive MCP clients) or a Personal Access Token (for CI and non-browser clients):
Authorization: Bearer <access_token_or_pat>Key points about authentication:
- Identity is resolved from the token on every call; there is no session
- Permissions are checked dynamically per request, against your live role
- If you are removed from an organisation, access is denied immediately
- If MCP is disabled for an organisation, tool calls for that org are blocked
- OAuth access tokens are short-lived JWTs; refresh tokens rotate on every use with family-kill-on-reuse (RFC 9700 §4.14.2)
- PATs are long-lived, have a configurable expiry, and carry the write capabilities you ticked at mint time
- A token cannot exceed the identity's role — but it can carry less than the identity, bounded by the OAuth scopes granted (or the PAT capabilities ticked)
See How to Connect for the full protocol reference.
What the read tools cover
Reads are available at every level of write access. Each one is still checked against your role: you see through MCP exactly what you would see in the UI.
| Area | Covers |
|---|---|
| Explore | Organisations, cloud accounts, resources, teams, and the discovery status behind them |
| Cost | Cost and savings summaries, per-resource and per-provider breakdowns, trends, history, snapshots, budgets, billing sync |
| Optimize | Recommendations and their savings, schedules, overrides, resource groups |
| Operate | Start/stop history, actions, scheduler events, provisioning jobs, Services and their deploys |
| Govern | Tagging policies, smart tags, roles, users, audit logs, notification channels |
| Diagnose | Metrics, error detail, and the state behind a failed deploy or job |
| Ship | Projects, Environments, Services, Infrastructure, and deploy status |
| Introspect | What your own token can do — including get_my_permissions |
What the write tools cover
A write tool changes something. Which ones your organisation admits is set by one dial, Settings → Organisation → Write access:
| Setting | Admits | Examples of what it turns on |
|---|---|---|
| Read-only | Nothing | — |
| Metadata only | Changes to ZopNight's own records. No cloud state, no cost. | Create/update/delete a budget, set a recommendation's status, accept or revoke a smart tag |
| Reversible changes | Bounded blast radius, may affect cost. | Create/update/delete schedules and overrides, attach and detach resources, tagging policies, deploy / redeploy / roll back a Service, change Service config and env vars, retry a Provisioning job |
| Irreversible changes | No undo, or incurs cost. | Start and stop resources, create a Provisioning job, Kubernetes manifest writes and workload restarts, cancel a workflow, every delete |
The settings are cumulative — Reversible changes admits the metadata-only tools too. The picker in Settings enumerates the exact tools each setting turns on, generated from the same manifest the gateway authorizes against.
Some surfaces are excluded at every setting and nothing adds them: roles and permissions, user management, organisation deletion, cloud-account deletion, credentials, and bulk actions.
Retries are only partly deduplicated
Every write tool accepts an optional idempotency_key, up to 128 printable ASCII characters. It does two real things: a repeat call carrying the same key replays the original response for 24 hours instead of executing the write again, and two concurrent calls sharing a key are collapsed into a single execution. Reusing a key with different arguments is rejected rather than silently replayed, so a genuine retry is safe and a key collision is loud rather than silent.
Changes are not visible instantly
A write returns when ZopNight has recorded your intent, which is earlier than the world agreeing:
- Schedules and overrides are applied by the scheduler on its next pass — allow about a minute before reading back.
- Deploys and Provisioning jobs are asynchronous. They return an id; poll for status. A deploy routinely runs 20 minutes and can take up to about 35.
wait_for_deployreturns after at most 60 seconds withcallAgain: trueif the deploy is still going — that is normal, and the agent should keep calling. - Start and stop are confirmed against real cloud state rather than assumed, so a resource can read
startingorstoppingfor a while.
An immediate read-back that shows the old value usually means the change has not landed yet, not that it failed.
Every tool
The complete surface, generated from the gateway's tool manifest. Reads are grouped by area; writes by the level that admits them (see above). The one-line purpose is each tool's own summary — call tools/list for the full argument schema, and remember your own list is filtered to what your token, role, and Write access setting allow.
Reads (165) — available at every tier
Explore · Organisations, cloud accounts, resources, teams, discovery
| Tool | What it's for |
|---|---|
count_autoscaler_policies | Get the TOTAL number of autoscaler policies |
count_cloud_accounts | Get the TOTAL number of connected cloud accounts |
count_event_readiness_plans | Get the TOTAL number of event-readiness plans |
count_recommendation_rules | Get the TOTAL number of recommendation RULES (the rule catalog), not recommendations |
count_schedules | Get the TOTAL number of schedules in this org |
get_blast_radius | Get what else is affected if you act on a resource — the dependency graph around a target |
get_cloud_account | Get details of a specific cloud account |
get_dashboard | Get one dashboard's full detail including its widget layout |
get_discovery_status | Get the status of the last resource discovery refresh |
get_discovery_summary | Get discovery summary showing resource counts by provider and type |
get_resource | Get full details of a single cloud resource by UID |
get_resource_count | Get the number of resources in the organisation, counting the SAME listable set list_resources enumerates — networking/dependent infrastructure (subnets, firewalls, peering, snapshots, replicas, pub/sub topics) is excluded, exactly as it is from list_resources |
get_resource_filters | Get the VALID filter values for this org's resources — call this before list_resources instead of guessing filter strings |
get_resource_overview | START HERE for any question about ONE cloud resource: 'why is this expensive', 'is this idle', 'what should I do about it' |
get_resource_summary | Get resource counts grouped by cloud provider and cloud account |
get_resources_by_ids | Fetch a batch of resources by their INTERNAL resource ids (NOT cloud UIDs) in one call |
get_resources_last_synced | Get when discovery last refreshed this org's cloud inventory |
list_cloud_accounts | List connected cloud accounts (AWS/GCP/Azure) |
list_dashboards | List the org's dashboards — the saved cost/estate landing views |
list_resources | List cloud resources (VMs, databases, clusters) across AWS/GCP/Azure |
Cost · Spend, savings, budgets, billing, trends
| Tool | What it's for |
|---|---|
count_recommendations | Get the TOTAL number of recommendations, optionally filtered (status, provider, severity, category) |
get_ai_budget_spend | Get AI-gateway budget spend for the organisation (spend against the AI budget) |
get_ai_cost_summary | Get the AI Gateway cost summary: total spend and a breakdown across the org's usage (by model/provider/tier) |
get_ai_org_budget | Get the org-wide AI Gateway budget: the spend ceiling across every virtual key (nil when unset), how much has been spent, and the budget window |
get_ai_usage | Get AI Gateway usage and spend — one row per LLM request routed through the gateway |
get_anomalies | Get detected cost anomalies — unexpected spend spikes — in a date range |
get_billing_sync_status | Get billing data sync health per cloud account |
get_budget_spend_by_resource_groups | Get current-month spend broken down per resource group, as the budgets page renders it in the per-row spend columns |
get_budget_spend_by_resources | Get current-month spend broken down per resource, as the budgets page renders it in the per-row spend columns |
get_budget_summary | Get budget health summary — counts of healthy, warning, and over-budget budgets |
get_cost_breakdown | Break org cost and savings down by a dimension (provider, cloud account, region, resource type, service, purchase type, resource UID or team) |
get_cost_by_provider | Get cost breakdown grouped by cloud provider |
get_cost_by_resources | Get per-resource cost breakdown showing individual resource costs |
get_cost_by_tag | Get cost and savings grouped by tag key (showback) |
get_cost_by_team | Get cost and savings attributed to each team (showback) |
get_cost_overview | START HERE for any cost question: 'where is the money going', 'what is my spend', 'how do I cut cost' |
get_cost_trends | Get cost trends over time at daily, weekly, or monthly granularity |
get_costs | Get the organisation-level cost and savings summary |
get_currency_exchange_rate | Get current currency exchange rates used by the organisation for cost calculations |
get_event_cost_estimate | Get the estimated extra cost of an event-readiness plan (the pre-scaling spend) |
get_event_db_impact | Get the database impact assessment for an event-readiness plan (connection/IOPS headroom under the projected load) |
get_event_db_sizing | Recommend the database instance sizing a resource needs to survive a traffic event |
get_event_readiness | Assess whether the infrastructure behind a scaling policy is ready for a traffic event |
get_event_readiness_check | Get the readiness check for one event-readiness plan — the pre-flight checklist (are the targets valid, permissions in place, window sane) and any blockers or warnings before the plan runs |
get_event_readiness_logs | Get the execution log for one event-readiness plan — the timeline of what the plan actually DID (scale-ups, scale-downs, per-action status and any errors), not what it was configured to do |
get_event_readiness_plan | Get one event-readiness plan's full detail (window, targets, per-target scaling, status) |
get_kubernetes_cluster_cost_breakdown | Get one Kubernetes cluster's cost breakdown (by namespace/node) |
get_kubernetes_cluster_costs | List Kubernetes clusters with their cost: per cluster the name, provider, region, node cost, requested (allocated) cost, node count and namespace count, plus org totals |
get_kubernetes_cluster_workloads | List a Kubernetes cluster's workloads with their requested cost (CPU + memory), replicas, kind and namespace |
get_report_snapshots | Get monthly cost and savings snapshots for historical comparison |
get_resource_activity | Get a resource's activity breakdown over time: counts of operations (start/stop/etc.) per time slot for one resource |
get_resource_cost_history | Get daily cost history for a specific resource over a date range |
get_schedule_success | Get schedule adherence over a date range: how many scheduled start/stop runs succeeded vs missed, the success rate, and (paginated) the missed runs |
get_tag_cost_trends | Get tag cost over time (trend) |
get_tag_value_resources | List the resources behind one tag value (tag_key = tag_value) with their cost |
get_tag_values | Get cost and savings per VALUE of one tag key (e.g |
get_team_cost_detail | Get one team's cost detail (showback): allocated cost and savings for the team |
get_team_cost_trends | Get team cost over time (trend) |
get_team_resources | List the resources attributed to one team with their cost |
get_unit_economics | Get the unit-economics trend for ONE business-unit metric: cost, the metric value, and cost-per-unit per date |
list_ai_keys | List the org's AI Gateway virtual keys: per key the alias, the models it may call, its budget ceiling and spend, and rate limits |
list_ai_models | List the AI Gateway model deployments the org has registered: per model the logical name, the provider model it maps to, the provider and the routing tier |
list_budget_ai_entities | List the AI providers a budget can be scoped to, for the AI-budget entity picker |
list_budget_cloud_account_entities | List the cloud accounts a budget can be scoped to, for the budget entity picker |
list_budget_resource_entities | List the resources a budget can be scoped to, for the budget entity picker |
list_budget_resource_group_entities | List the resource groups a budget can be scoped to, for the budget entity picker |
list_budgets | List budgets configured for resources or resource groups |
list_event_readiness | List saved event-readiness plans (traffic-event prep) |
Optimize · Recommendations, schedules, overrides, resource groups
| Tool | What it's for |
|---|---|
count_recommendation_resources | Count the DISTINCT resources that have at least one recommendation (the headline 'N resources with opportunities' number) without paging the list |
get_override_candidates | List what can be overridden — every resource and resource group that has a schedule attached, each annotated with whether an override can be created for it RIGHT NOW and why |
get_recommendation | Get full details of a single recommendation including affected resources and remediation steps |
get_recommendation_by_provider | Get recommendation counts and savings breakdown by cloud provider |
get_recommendation_filters | Get the available filter facets for recommendations (every dropdown's options: providers, categories, rules, resource types, …) |
get_recommendation_rules | List the recommendation rules (the Rules tab): per rule its id, name, category and how many findings it currently has |
get_recommendation_summary | Get recommendation summary stats — total potential savings and counts by severity |
get_recommendations | List optimization recommendations for cost savings and best practices |
list_recommendation_resources | List resources that have active recommendations, with their recommendation details |
preview_remediation | Preview what a recommendation's remediation workflow WOULD do, WITHOUT starting it: the planned steps and their targets for recommendation_id (from a recommendations list) |
Operate · State history, actions, scheduler events, provisioning, Services
| Tool | What it's for |
|---|---|
get_action | Get details of a specific start/stop action execution |
get_autoscaler_events | Get an autoscaler policy's scaling-event history: when it scaled out/in, the trigger that fired, and the capacity change |
get_autoscaler_infrastructure_status | Get the status of an autoscaler infrastructure-creation request (the async provisioning started by create_autoscaler_infrastructure) |
get_autoscaler_policy | Get one autoscaler policy's full config: target, min/max instances, cooldown, scaling mode, triggers (metric + target), status and provider |
get_autoscaler_required_permissions | List the cloud IAM permissions the account needs before autoscaler infrastructure can be created, and whether the account currently has them |
get_autoscaler_smart_defaults | Suggest sensible autoscaler-policy defaults (min/max, triggers, cooldown) for a scalable target, so create_autoscaler_policy can be pre-filled instead of guessed |
get_infrastructure | Get one cluster or VM pool by id, as returned by list_infrastructure |
get_latest_bulk_action | Get the most recent bulk start/stop action for a resource group |
get_override | Get details of a specific schedule override |
get_provisioning_job_overview | Get everything about one provisioning job in a single call: its status, every step with that step's own status and timings, the actionable failure detail when a step failed (errorCategory, errorFixHint, errorRetryable, errorConsoleUrl), and the databases the job created |
get_resource_group | Get resource group details including member resources |
get_resource_group_schedules | List the schedules attached to a resource group (a group can be scheduled as a unit) |
get_schedule | Get full schedule details including weekly time windows and assigned resource groups |
get_state_history | List resource start/stop state transitions |
get_workflow | Get one remediation workflow's detail: its status, the steps and their outcomes, and any human-approval gate |
list_autoscaler_policies | List autoscaler policies — the rules that automatically scale a target's instance count between a min and max based on metrics |
list_cloud_scaling_policies | List the cloud-native autoscaling policies that ALREADY exist on the provider for a SPECIFIC target (e.g |
list_events | List scheduler execution events showing what the scheduler did and when |
list_infrastructure | List all the infrastructure in this organisation as ONE list — the same board the Infrastructure page shows |
list_overrides | List schedule overrides — temporary force-on/off rules that take priority over schedules |
list_provisioning_jobs | List provisioning jobs — the record of ZopNight building, changing or tearing down infrastructure |
list_resource_groups | List resource groups — logical groupings of resources assigned to schedules |
list_schedules | List start/stop schedules that control when resources run |
list_workflows | List the remediation workflows that are PARKED WAITING FOR YOU to act |
Ship · Projects, Environments, Services, Infrastructure, deploys
| Tool | What it's for |
|---|---|
connect_github | Start connecting a GitHub account so ZopDay can deploy from its repositories |
get_project_stats | Get rollup counts (services, environments, health) for one or more projects in a single call |
get_service_config | Get the runtime configuration of a service: port, replicas, liveness probe path, rootPath, exposed hosts, CPU/memory resources, and the NAMES of its environment variables |
get_service_overview | Get everything about one service in a single call: its status and statusBucket, the current revision (number, stage, image, commit, who deployed it), recent deploys, the last deploy events, and its public URL if it has one |
get_service_url | Get the public URL a service is reachable at |
list_branches | List the branches of one git repository reachable through a connected git integration |
list_deploys | List a service's deploy history, newest first |
list_environments | List the environments in a project, each resolved to WHERE it actually runs |
list_integrations | List the org's connected integrations (git, ITSM) |
list_projects | List the ZopDay projects in this organisation |
list_repositories | List the git repositories ZopDay can deploy from, through a connected git integration |
list_service_datastores | List the datastores a service can create a database on: the MySQL and PostgreSQL datastores CONNECTED to the infrastructure the service runs on |
list_services | List the services deployed in one environment |
wait_for_deploy | Wait for a service's in-flight deploy to finish, then report the outcome |
Govern · Tagging policies, smart tags, roles, users, audit logs, notifications
| Tool | What it's for |
|---|---|
get_budget_spend | Get current-month spend for the entities a budget targets — use this to answer 'how much has account X / this resource / this group spent so far', and to see which targets are tracking over |
get_cloud_account_permissions | Get the per-permission IAM probe verdicts for one cloud account — use this to explain WHY discovery or a cost/recommendation feature is missing data, rather than guessing |
get_email_preferences | List the org's transactional-email preferences — which system emails (e.g |
get_iac_ci_status | Report the live per-repo IaC governance-CI wiring state: active (workflow merged AND a live scan token backs the repo), token_missing (workflow merged but no active token — runs 401), pending (setup PR open, not merged), not_wired (nothing set up), or unknown (GitHub unreachable) |
get_iac_policy_catalog | Get the IaC GOVERNANCE policy catalog: the builtin rule types a Terraform/OpenTofu policy can be built on (e.g |
get_iac_validation | Get one IaC validation run's full report: its status, enforcement posture, and every finding (policy, resource, severity, blocking) |
get_iac_validation_audit | Get one IaC validation run's audit trail — its executions, overrides, and outcomes in chronological order (who overrode a block, when, and why) |
get_itsm_ticket | Get the ITSM (Jira) ticket linked to a recommendation, if any: its key, URL, external status and the current assignee/owner |
get_notification_read_cursor | Get the caller's alert read-cursor for this org — the timestamp up to which the notification bell's alerts are considered read |
get_policy | Get one automation/governance policy's full definition by id (the rules behind auto-tagging and recommendation automation) |
get_policy_catalog | Get the recommendation-policy catalog: the rule types a watch policy can be built on (id, name, category, the fields each rule supports) |
get_tagging_policy_catalog | Get the TAGGING-policy catalog: the rule types a tagging (smart-tag) policy can be built on — scope, condition facets, value modes and key presets — with the parameters each supports |
get_team | Get details of a specific team including member count and resource count |
list_alerting_policies | List this org's ALERTING policies (the 'Alerting' card): id, name, description, the entity each is attached to (targetType/targetId), enabled, and spec (the recommendation match selector plus the notify/open_ticket action) |
list_alerts | List operational alerts ZopNight raised |
list_assignments | List the org's role assignments (read-only): who holds which role, and over which resources/scope |
list_audit_logs | List API audit log entries showing who did what and when |
list_iac_ci_tokens | List the org's active IaC CI scan tokens: per repo the token id and the policy scopes it grants |
list_iac_policies | List this org's IaC GOVERNANCE policies (the Terraform/OpenTofu pull-request gates): id, name, description, the repository each gates (targetType/targetId), enabled, and spec |
list_iac_validations | List this org's IaC validation runs — the history of pre-merge Terraform/OpenTofu plan/state scans, one per PR check |
list_jira_assignable_users | List the users assignable to issues in a Jira project — the account-id picker for create_itsm_ticket / set_itsm_ownership's assignee_account_id (the reliable assignee reference) |
list_jira_projects | List the projects available in a connected Jira integration — the picker source for create_itsm_ticket's project_key |
list_notification_channels | List notification channels (Slack, Teams, Google Chat, webhooks) configured for the organisation |
list_notification_event_types | List the notification event types this org can subscribe channels to — the catalog behind the alerts matrix |
list_notification_subscriptions | List notification subscriptions — the routing rules that decide which event types (e.g |
list_resource_teams | List the teams a single resource belongs to — the resource->teams inverse of list_team_resources |
list_role_policies | List the RBAC permission catalog — every policy (permission) a custom role can grant, with its name and description |
list_roles | List the roles defined in this organisation and the RBAC policies each one carries |
list_smart_tags | List smart tags — the tags ZopNight DERIVES for a resource from this org's tagging policies, to fill gaps in the tags the cloud account actually carries |
list_tagging_policies | List the tagging policies that govern which tags this org's resources must carry and how each tag's value is derived |
list_tagging_violations | List resources that violate the org's tagging policies (missing/invalid required tags) |
list_team_members | List members of a team |
list_team_resources | List resources assigned to a team |
list_teams | List teams in the organisation |
list_users | List all users in the organisation |
list_watch_policies | List this org's WATCH policies (the 'Recommendation' card / custom recommendations): id, name, description, targetType/targetId, enabled, and spec (scope selector, signals, and outcome) |
Diagnose · Metrics, errors, and the state behind a failed deploy or job
| Tool | What it's for |
|---|---|
diagnose_service | Diagnose an unhealthy Service in ONE call — start here instead of stitching four tools together |
get_k8s_manifest | Get the raw Kubernetes manifest (the full object as JSON) for one object |
get_k8s_resource | Get the live detail of one Kubernetes object (the structured view) |
get_live_metrics | Get current CPU/memory/network utilization for ONE resource, fetched on demand from the cloud provider right now |
get_pod_logs | Get recent stdout/stderr log lines from ONE pod container |
get_resource_metrics | Get CPU, memory, disk, and network utilization metrics for resources |
get_service_events | Get the deploy event history for one Service — the durable record of what was deployed, when, and why it failed |
list_k8s_events | List recent Kubernetes Events for a cluster — the warnings that explain failures |
list_k8s_resources | List live Kubernetes objects of one kind in a cluster |
Introspect · What your own token can do
| Tool | What it's for |
|---|---|
check_eligibility | Ask whether a write would be accepted, WITHOUT performing it |
get_my_permissions | Get YOUR OWN effective RBAC permissions in this org — call this BEFORE attempting an action, instead of discovering a 403 by trying |
get_organisation | Get organisation settings and metadata |
list_organisations | List organisations the authenticated user has access to |
Writes (124) — gated by the Write access setting
Metadata only · Changes to ZopNight's own records. No cloud state, no cost.
| Tool | What it's for |
|---|---|
accept_smart_tag | Accept smart tags on a resource — promote tag keys ZopNight DERIVED from this org's tagging policies into cost attribution |
add_org_member | Add a person to the organisation |
add_team_member | Add a person to a team, with a role |
assign_resource_to_team | Assign a resource to a team so the team's members can see and manage it |
create_budget | Create a monthly spend budget for ONE resource, resource group or cloud account |
create_dashboard | Create a new dashboard |
create_role | Create a role — a named set of permissions people can be granted |
create_team | Create a team — a group used to scope which resources a set of people can see and manage |
delete_ai_model | Deregister an AI Gateway model deployment by model_id (from list_ai_models) |
delete_budget | Delete a budget |
delete_dashboard | Delete a dashboard |
delete_role | Delete a role |
delete_team | Delete a team |
export_audit_logs | Export the audit logs as a CSV, delivered by EMAIL to the organisation |
export_cost_report | Export the cost report as a CSV, delivered by EMAIL to the organisation |
export_recommendations | Export the recommendations list as a CSV, delivered by EMAIL to the organisation |
preview_event_cost | Preview the estimated cost of an UNSAVED event-readiness draft WITHOUT saving it: if you have a SAVED plan, get_event_cost_estimate is the cheaper pure read |
preview_event_readiness | Preview the readiness of an UNSAVED event-readiness draft WITHOUT saving it: given event_start, event_end and targets, return the readiness checklist the creation wizard shows |
remove_org_member | Remove a person from the organisation |
remove_team_member | Remove a person from a team |
revoke_smart_tag | Revoke smart tags on a resource — return accepted tag keys to PENDING, so they stop being used for cost attribution |
set_default_dashboard | Set the org's default dashboard — the landing view everyone in the org sees |
unassign_resource_from_team | Remove a resource from a team so its members no longer see/manage it through the team |
update_budget | Change an existing budget's monthly amount and alert threshold |
update_dashboard | Update a dashboard's name, description or layout |
update_org_member | Update an org member's display name (and optionally rename their email identity) |
update_recommendation_status | Set a recommendation's status — this is BOOKKEEPING ONLY |
update_role | Update a role's name and permissions |
update_team | Rename a team or change its description |
update_team_member_role | Change a team member's role |
validate_iac_policy | Validate an UNSAVED IaC-governance policy draft WITHOUT saving it: pass the policy spec as a JSON object; returns {valid, errors} |
validate_watch_policy | Validate an UNSAVED watch-policy draft WITHOUT saving it: pass the policy spec as a JSON object; returns {valid, errors} |
Reversible changes · Bounded blast radius, may affect cost.
| Tool | What it's for |
|---|---|
add_ai_model | Register an AI Gateway model deployment: map a logical_name to a provider_model on a provider, at a routing tier |
add_resource_to_group | Add one resource to a resource group |
apply_smart_tags | Apply accepted smart tags to the LIVE cloud resource — write the tag key/value pairs onto the actual AWS/GCP/Azure resource |
attach_group_to_schedule | Attach a resource group to a schedule |
attach_resource_to_schedule | Put one resource under a schedule |
bulk_update_subscriptions | Set many notification subscriptions in one call — the batch form of create/update_notification_subscription, for wiring up a channel's routing all at once |
cancel_event_readiness | Cancel (disarm) a scheduled event-readiness plan so its pre-scaling will NOT run |
create_alerting_policy | Create an ALERTING policy (the 'Alerting' card in Settings > Policy): a rule that, when open recommendations match a filter, either notifies your channels or opens a Jira ticket |
create_autoscaler_policy | Create an autoscaler policy |
create_environment | Create an environment inside a project |
create_event_readiness | Create an event-readiness plan: prepare infrastructure to absorb a traffic event |
create_iac_policy | Create an IaC GOVERNANCE policy (the Terraform/OpenTofu pull-request gate) for ONE repository: a rule that decides which infrastructure-as-code changes that repo's pull requests are allowed to make |
create_integration | Connect a third-party integration (Jira, GitLab, Bitbucket, a container registry, …) |
create_itsm_ticket | Open a Jira ticket for a recommendation via the org's connected Jira integration |
create_notification_channel | Create a notification channel — an alert DESTINATION ZopNight sends notifications to |
create_notification_subscription | Create a notification subscription — route one event type to a channel |
create_override | Suspend a schedule for a window, on one resource or on EVERY MEMBER of a resource group |
create_project | Create a project |
create_resource_group | Create an EMPTY resource group — a named grouping of resources |
create_schedule | Create a recurring start/stop schedule |
create_service_database | Create a database for a service on a connected datastore and attach it: the database and a scoped SQL user are created on the datastore, the credential is stored in the cloud secret manager (only a reference ever leaves it), connection variables (DB_HOST, DB_PORT, DB_USER, DB_NAME, DB_DIALECT, DB_PASSWORD) are recorded on the service, and a deploy ships them — THIS RESTARTS THE SERVICE |
create_tagging_policy | Create a resource TAGGING policy — a rule that derives a tag onto this org's cloud resources so their spend can be attributed |
create_unit_metric | Create a unit-metric definition (e.g., 'monthly active users', 'transactions/day') |
create_watch_policy | Create a WATCH policy (the 'Recommendation' card in Settings > Policy, also called a custom recommendation): watch chosen resources on the metric signals you pick, combine the signals, and raise a recommendation when they all hold |
delete_autoscaler_policy | Delete an autoscaler policy |
delete_event_readiness | Delete an event-readiness plan |
delete_integration | Disconnect an integration |
delete_notification_channel | Delete a notification channel |
delete_notification_subscription | Delete a notification subscription (routing rule) |
delete_override | Remove ONE override, letting its schedule resume on that target within about a minute |
delete_policy | Delete a policy of ANY domain by id — tagging, alerting (the 'Alerting' card) or watch/recommendation (the 'Recommendation' card) |
delete_resource_group | Delete a resource group |
delete_schedule | Delete a schedule |
deploy_service | Create a new service in an environment and ship its first deploy |
detach_group_from_schedule | Detach a resource group from a schedule |
detach_resource_from_schedule | Take ONE resource off a schedule, leaving the schedule and every other attached resource untouched |
ingest_unit_metric_values | Ingest a batch of date-value observations for a push-source unit-metric |
mark_all_notifications_read | Mark the notification bell READ for the caller in this org — advances the read-cursor to now, so every alert up to this moment stops counting as unread |
pause_autoscaler_policy | Pause an active autoscaler policy |
redeploy_service | Ship an existing service again as a new deploy |
reject_workflow_step | Reject (decline) a remediation-workflow step that is waiting for approval, so the change does NOT run |
remove_autoscaler_policy | Remove (detach) an autoscaler policy from the cloud provider |
remove_resource_from_group | Remove one resource from a resource group, leaving the group and every other member alone |
remove_service_database | Detach a database from a service: its connection variables (DB_HOST, DB_PASSWORD, ...) are removed from the service and a deploy ships without them — THIS RESTARTS THE SERVICE, and anything still reading those variables breaks when it settles |
resolve_alert | Mark one alert resolved (acknowledge it / clear it from the open list) |
revoke_iac_ci_token | Revoke one IaC CI scan token by token_id (from list_iac_ci_tokens) |
rollback_service | Roll a service back to an earlier deploy |
set_ai_org_budget | Set the org-wide AI-gateway monthly spend ceiling |
set_auto_deploy | Turn auto-deploy on or off for a service |
set_email_preference | Turn one transactional-email event on or off for the WHOLE organisation |
set_group_start_stop_order | Set the start/stop ORDER of one resource within a resource group (for staged start-up / shut-down, e.g |
set_itsm_ownership | Set who owns a recommendation's remediation: assign it to a person (assignee_email and/or assignee_account_id) and/or an owner_team, or clear the assignee with unassign=true |
set_service_env_vars | Set or remove a service's environment variables AND roll them out |
share_recommendation | Share a recommendation with people or a team channel |
test_notification_channel | Send a test notification to a channel to verify it is configured correctly |
test_pull_unit_metric | Dry-run the pull configuration of a pull-source unit-metric |
update_alerting_policy | Change an ALERTING policy — its label, its match filter, its action, or whether it is on |
update_autoscaler_policy | Change an autoscaler policy's config — name, min/max instances, cooldown, mode or triggers |
update_event_readiness | Update an event-readiness plan (partial: send only what changes) |
update_iac_policy | Change an IaC GOVERNANCE policy — its label, its rule, or whether it is on |
update_integration | Update a connected integration |
update_notification_channel | Update a notification channel's configuration |
update_notification_subscription | Enable or disable a notification subscription |
update_resource_group | Change a resource group's name, description or team |
update_schedule | Change a schedule's name, description, timezone or rules |
update_service_config | Change a service's runtime settings: port, replicas, liveness probe path, root path |
update_tagging_policy | Change an existing resource TAGGING policy — its label, its rule, or whether it is on |
update_unit_metric | Update a unit-metric |
update_watch_policy | Change a WATCH policy — its label, its scope, its signals, its outcome, or whether it is on |
Irreversible changes · No undo, or incurs cost.
| Tool | What it's for |
|---|---|
apply_autoscaler_policy | Apply an autoscaler policy to the cloud provider |
apply_recommendation_policy | Apply an open-ticket recommendation policy — backfill ITSM tickets for every recommendation currently matching the policy's scope |
approve_workflow_step | Approve a remediation-workflow step that is waiting for approval, LETTING THE CHANGE PROCEED |
bulk_start_resources | Start MANY resources at once |
bulk_stop_resources | Stop MANY resources at once |
cancel_workflow | Cancel a running remediation workflow |
create_autoscaler_infrastructure | Provision the cloud autoscaling infrastructure (an AWS Auto Scaling Group, GCP MIG or Azure VMSS) built FROM an existing instance, so a policy can then scale it |
create_provisioning_job | Provision NEW cloud infrastructure — a cluster, a VM pool or a managed database |
delete_all_unit_metric_values | IRREVERSIBLE WIPE of ALL ingested values for a unit-metric |
delete_k8s_resource | Delete a live Kubernetes object |
delete_project | Delete a Project |
delete_provisioning_job | Tear down provisioned cloud infrastructure — the reversal of create_provisioning_job |
delete_service | Delete a Service: uninstall it from the cluster and remove it from ZopDay |
delete_unit_metric | Delete a unit-metric definition |
ensure_iac_ci | Wire (or confirm) automated per-PR IaC scanning for one repo |
restart_k8s_workload | Restart a Kubernetes workload's pods — a rolling restart |
resume_autoscaler_policy | Resume a paused autoscaler policy |
retry_provisioning_job | Re-attempt a FAILED provisioning job |
schedule_event_readiness | Arm an event-readiness plan: schedule the pre-scaling so the infrastructure IS scaled up before event_start and restored after event_end |
start_remediation | Start the remediation workflow for ONE recommendation |
start_resource | Start ONE stopped cloud resource right now |
stop_resource | Stop ONE cloud resource right now |
update_k8s_manifest | Replace a live Kubernetes object's spec |
Pagination
List tools return results in pages — tools/list says which, in each tool's own
description. Pass a page argument (starting at 1) to navigate through results.
The response includes:
{
"items": [...],
"total": 42,
"page": 1,
"limit": 10,
"hasMore": true
}When hasMore is true, increment the page number to fetch the next set.
If you omit the page argument, the server returns page 1 by default.
Filters Reference
Many tools accept optional filter arguments to narrow results. Pass them
in the arguments object alongside org_id. All filters are optional
unless noted otherwise.
list_resources
| Filter | Values | Notes |
|---|---|---|
provider | aws, gcp, azure | Cloud provider |
resource_type | compute, disk, kms-key, gcp-subnet, ... | Resource type |
status | running, stopped, active, available, ... | Resource status (case-insensitive) |
region | us-central1, ap-south-1, us-east-1, ... | Cloud region |
search | Any string | Substring match on resource name |
cloud_account_id | Account ID | Filter by cloud account |
schedulable | true, false (also accepts 1, 0, yes, no) | Whether resource can be scheduled |
instance_type | e2-micro, STANDARD, ... | Instance/machine type |
sort_by | name | Sort field |
sort_order | asc, desc | Sort direction |
view | all, parents, children | Resource hierarchy view |
parent_uid | Resource UID | Parent resource — requires view=children |
tag | Tag key name | Filter by tag key presence |
limit | Integer | Results per page |
get_recommendations
list_recommendation_resources supports the same filters.
| Filter | Values | Notes |
|---|---|---|
status | open, applied, dismissed, optimised, rule_retired | Recommendation status |
provider | aws, gcp, azure | Cloud provider |
category | compliance, discount, idle, orphan, rightsizing, schedule | Recommendation category |
resource_type | disk, compute, gke-cluster, s3, ecr, ec2, ebs-volume | Resource type |
severity | high, medium, low | Recommendation severity |
cloud_account_id | Account ID | Filter by cloud account |
search | Any string | Matches resource name or UID |
resource_uid | Full resource UID | Exact match on resource |
rule_id | e.g. RC-022, RC-111 | Specific recommendation rule |
sort_by | updated_at, generated_at, savings_usd, severity, title | Sort field |
sort_order | asc, desc | Sort direction |
list_schedules
| Filter | Values | Notes |
|---|---|---|
search | Any string | Matches schedule name |
team_id | Team UUID | Returns team-linked + standalone schedules |
list_resource_groups
| Filter | Values | Notes |
|---|---|---|
search | Any string | Matches group name |
team_id | Team UUID | Returns team-matching + unassigned groups |
list_overrides
| Filter | Values | Notes |
|---|---|---|
group_id | Resource group UUID | Filter by resource group |
resource_uid | Resource UID | Filter by resource |
status | active, expired | Override status |
sort_by | created_at, expires_at | Sort field |
sort_order | asc, desc | Sort direction |
list_cloud_accounts
| Filter | Values | Notes |
|---|---|---|
search | Any string | Matches account name |
provider | aws, gcp, azure | Cloud provider |
get_cost_trends
| Filter | Values | Notes |
|---|---|---|
from | YYYY-MM-DD | Start date (defaults to the backend range) |
to | YYYY-MM-DD | End date (defaults to the backend range) |
granularity | daily, weekly, monthly | Time granularity (defaults to daily) |
get_cost_by_resources
| Filter | Values | Notes |
|---|---|---|
resource_uids | Comma-separated UIDs | Filter to specific resources |
sort_by | cost | Sort field |
sort_order | asc, desc | Sort direction |
list_audit_logs
| Filter | Values | Notes |
|---|---|---|
method | POST, DELETE, PUT, PATCH | HTTP method |
resource | Any string | Path substring match |
status | HTTP status code | Filter by response status |
user | Email address | Filter by user email |
search | Any string | General search |
start_date | YYYY-MM-DD | Start date |
end_date | YYYY-MM-DD | End date |
sort_order | asc, desc | Sort direction |
get_state_history
| Filter | Values | Notes |
|---|---|---|
state | stopped, started, failed | Action state |
resource_uid | Resource UID | Filter by resource |
changed_by_type | schedule, manual, override, bulk | How the action was triggered |
from | YYYY-MM-DD | Start date |
to | YYYY-MM-DD | End date |
sort_by | changed_at | Sort field |
sort_order | asc, desc | Sort direction |
list_events
| Filter | Values | Notes |
|---|---|---|
schedule_id | Schedule UUID | Filter by schedule |
resource_uid | Resource UID | Filter by resource |
sort_order | asc, desc | Sort direction |
list_budgets
| Filter | Values | Notes |
|---|---|---|
resource_group_id | Resource group UUID | Filter by resource group |
resource_uid | Resource UID | Filter by resource |
Filter Example
To list only running AWS compute resources sorted by name:
{
"method": "tools/call",
"params": {
"name": "list_resources",
"arguments": {
"org_id": "your-org-id",
"provider": "aws",
"resource_type": "compute",
"status": "running",
"sort_by": "name",
"sort_order": "asc",
"page": 1
}
}
}Example Prompts
Once connected, try asking your AI assistant:
| What to ask | What happens |
|---|---|
| "List my organisations" | Shows all orgs you have access to |
| "What are my cloud costs this month?" | Shows cost summary and savings |
| "Show me optimization recommendations" | Lists recommendations with savings estimates |
| "How many resources do I have?" | Shows total resource count and summary by provider |
| "What schedules are active?" | Shows start/stop schedules |
| "Show my cloud accounts" | Lists connected AWS/GCP/Azure accounts |
| "Show cost trends over the last month" | Shows daily cost trends |
| "What is the CPU utilization of my EC2 instances?" | Shows CPU/memory metrics |
| "Are my budgets on track?" | Shows budget health summary |
| "Show billing sync status" | Shows if billing data is syncing correctly |
| "What teams exist in my org?" | Lists all teams and members |
| "Show audit logs" | Shows recent activity in the organisation |
| "What actions were executed recently?" | Shows scheduler events and action history |