Model Context Protocol server for Kaseya Autotask PSA integration
Autotask MCP server demonstrates solid definition quality with well-structured schemas, consistent naming conventions, and detailed parameter documentation. All 6 tools have clear descriptions and comprehensive input schemas with type constraints. The server excels at parameter granularity (particularly in autotask_update_company with 25+ fields) and includes helpful field-level documentation with context about Autotask-specific conventions (e.g., invoiceTemplateID field mapping, country ID constants, tax field naming). However, output schemas are not documented in the visible source, and error handling guidance is sparse. Tool descriptions average ~90 chars, which is below the baseline (194 chars) but acceptable. Parameter descriptions are generally present and range from brief to detailed (avg ~50 chars, baseline 72 chars). Missing: explicit output schema documentation, recovery guidance for error cases, and batch operation support.
Create new company record
Get company site configuration records. Call first to discover available fields.
Search companies by name or status. Max 200/page.
Test Autotask API connection
Update company record. invoiceTemplateID sets payment terms (103=Due on Receipt, 104=NET 30). Billing address fields separate from regular address.
Update company site configuration. Fields are tenant-defined; call get first.
Output schemas not documented in visible source. LLMs cannot plan downstream operations or extract fields from responses without knowing the response structure.
No error handling or recovery guidance in tool descriptions. When a tool fails (e.g., invalid companyType, duplicate company name), agents have no guidance on retry strategy, user-fixable vs fatal errors, or what to try next.
autotask_update_company_site_configuration accepts a generic 'updates' object with no type schema. LLMs cannot discover valid field names or validate their input before sending. Docs state 'fields are tenant-defined' but offer no mechanism to enumerate them programmatically.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 79 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
autotask_search_companies lacks description of what fields are returned (e.g., does it return companyType, ownerResourceID, isActive?). Without knowing the response structure, agents cannot chain to update_company or know if they need a second discovery call.
Parameter descriptions in autotask_update_company are technical and assume knowledge of Autotask picklist IDs, field naming conventions, and billing address semantics. Example: 'billToAddressToUse=1 means use bill-to fields explicitly' is unexplained, why 1 and not 0 or 2?
No pagination guidance documented for autotask_search_companies. Tool accepts 'page' and 'pageSize' but does not document: what is the default pageSize, is it required, what is the max page number, does a page beyond max return empty or error?