Skip to main content
Glama

Service Write Tool

service-write
Destructive

Create or update services and sync_task_templates. Pricing, recurrence and renewal settings affect future delivery. sync_task_templates replaces the full checklist: read service-read action get_task_templates first and retain IDs that should remain. Deadlines are in HOURS, not days. Relationship collections replace their full lists; omitted fields stay unchanged.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoService name. Required for "create".
priceNoOne-time price. Used when recurring=0.
actionYesAction to perform.
publicNoWhether service is publicly visible. Defaults to true.
f_priceNoTrial/setup fee price. Used when recurring=2.
r_priceNoRecurring price. Used when recurring>0.
currencyNo3-letter currency code (e.g. USD, EUR). Required for "create".
deadlineNoDelivery deadline in HOURS (a day is 24 hours — e.g. 3 days = 72). Convert any day-based request to hours before sending.
metadataNoArray of metadata objects with "title" and "value" keys.
employeesNoArray of employee/staff user IDs to assign to this service.
folder_idNoService folder ID for organization. The folder must exist. Set to null to remove the service from its folder; omit to leave it unchanged.
recurringNoPricing type. Required for "create". 0 = one-time, 1 = recurring, 2 = trial/setup fee + recurring, 3 = recurring (other).
f_period_lNoTrial/setup fee period length (1-99). Required when recurring=2.
f_period_tNoTrial/setup fee period type: D (days), W (weeks), M (months), Y (years). Required when recurring=2.
is_taxableNoWhether tax applies to this service. Defaults to true.
r_period_lNoRecurring period length (1-99). Required when recurring>0.
r_period_tNoRecurring period type: D (days), W (weeks), M (months), Y (years). Required when recurring>0.
service_idNoService id. Required when updating an existing record.
descriptionNoService description. Max 2000 characters.
multi_orderNoMax orders per client (0 = unlimited).
intake_form_idNoIntake form ID to associate with this service.
request_ordersNoEnable request-based ordering. 0 = disabled.
task_templatesNoFor "sync_task_templates": the FULL replacement list of task templates for the service — this overwrites the existing list, it does not append. Each item supports id (for an existing template on this service), name, description, deadline (in HOURS — a day is 24 hours, so "3 days" = 72; convert day-based requests to hours), sort_order, is_public, for_client, and employee_ids. To keep an existing template, call get_task_templates first and include its id here; any existing template whose id you omit is deleted. Pass an empty array to remove all templates.
parent_servicesNoArray of parent service IDs (makes this service an add-on).
group_quantitiesNoGroup quantities on order forms.
recurring_actionNoWhat happens on renewal (only when recurring>0). 0 = reopen the same order, 1 = create new order(s), 2 = reset/allow service requests, 3 = no action.
max_active_requestsNoMax active requests at once. Only when request_orders > 0.
onboarding_form_idsNoArray of onboarding form IDs to attach.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description clearly warns that sync_task_templates overwrites and deletes omitted templates, that relationship collections replace full lists, and that pricing/recurrence changes affect future delivery. This goes beyond the destructiveHint annotation by specifying exactly which operations are destructive and how to avoid unintended deletions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The main description is front-loaded with key warnings, and parameter descriptions are dense but relevant. The overall length is justified by 28 parameters, with minimal fluff, though a few descriptions restate information already implied by the parameter name or type.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers conditional fields, required-vs-optional behavior for create and update, destructive semantics, unit conversions, and relationship replacement rules. Even without an output schema, an agent has enough context to invoke the tool correctly and avoid common mistakes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Every parameter is described, and many descriptions add crucial semantics not inferable from the schema alone, such as deadline being in hours, recurring enum meanings, conditional requirements for recurring=2, folder_id null-versus-omitted behavior, and the full-replacement behavior of task_templates. This far exceeds the baseline expected from full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states that the tool creates or updates services and syncs task templates, clearly identifying the resource and actions. It also distinguishes itself from read-oriented tools by instructing the agent to fetch task templates before syncing, making selection unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage rules: call get_task_templates before sync_task_templates and retain IDs to avoid deletion, convert deadlines to hours, and understand that relationship collections replace full lists. It could more explicitly contrast with service-read for ordinary reads, but the write-versus-read distinction is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources