Skip to main content
Glama

Kickserv MCP by usefulapi

Create a job

kickserv_create_job
Destructive

WRITE: create a job (work order) for a customer. customer_id is the customer's internal id (from kickserv_get_customer), not the customer number; job_type_id is the job category. Set estimate to create it as an estimate. Kickserv: POST /{account}/jobs.xml.

Input Schema

NameRequiredDescriptionDefault
nameNoJob name/title.
ends_atNoWhen the job ends. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.
durationNoJob duration.
estimateNoTrue to create the job as an estimate.
po_numberNoCustomer purchase-order number.
customer_idYesThe customer's internal `id` (NOT the customer_number).
descriptionNoJob description / work to be done.
job_type_idYesJob category (job type) id.
employee_idsNoEmployee `id`s (from kickserv_list_employees) to assign. Replaces the current assignment.
scheduled_onNoWhen the job is scheduled. A date/time string Kickserv can parse, e.g. `2026-10-02 09:30` or `10/2/2026 09:30am`.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / $schema
      Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations only carry destructiveHint=true, and the 'WRITE' marker plus the raw endpoint are consistent with that. The description adds the meaningful 'estimate' mode behavior (creates the record as an estimate rather than a job) beyond the annotation, but says nothing about auth/permission needs, failure cases, or what happens to fields left unset.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the WRITE classification and the essential identifier caveat. No filler; even the endpoint line serves as a debugging anchor.

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

Completeness3/5

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

For a 10-parameter creation tool with no output schema, the description never says what the call returns (e.g. the new job's id), which an agent typically needs for follow-up calls to kickserv_add_job_note or kickserv_update_job. Required parameters and the create/update boundary are covered, but the post-call picture is not.

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

Parameters4/5

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

Schema coverage is already 100%, so baseline is 3. The description earns above baseline by flagging the high-risk id confusion (internal customer `id` vs. customer number) and by pointing to the sibling tool that supplies customer_id, which the schema does not do.

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?

States a specific verb+resource ('create a job (work order) for a customer') and marks it WRITE, which cleanly separates it from kickserv_update_job and the various add_* sibling tools. The endpoint (POST /{account}/jobs.xml) confirms the operation unambiguously.

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?

Gives concrete prerequisites: customer_id must be the internal id obtained from kickserv_get_customer (explicitly not the customer number), and job_type_id is the job category. It also explains the estimate flag's behavioral effect. It stops short of naming when to prefer this over kickserv_update_job or how to handle a job that already exists.

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.