Model Context Protocol server for Kaseya Autotask PSA integration
This server demonstrates solid tool definition quality with consistent verb-based naming, explicit JSON Schema for all parameters, and clear descriptions for most tools. All 6 tools follow the pattern of action_resource naming (autotask_[verb]_[noun]). Parameter schemas are well-formed with types, constraints (min/max for pagination), and descriptions. However, there are gaps: parameter descriptions are sometimes sparse (e.g., autotask_test_connection has no parameters to describe), some tools lack output schema documentation, and error handling guidance is not visible in the definitions. The server excels in schema rigor but falls short in LLM-optimization of descriptions and output documentation.
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 tool definitions. LLMs cannot infer what fields each tool returns or plan downstream chaining.
Parameter descriptions missing or minimal for some fields. autotask_update_company has 24 parameters, but generic descriptions like 'Website URL (field name is webAddress)' do not explain the business impact or when to use each field.
autotask_update_company_site_configuration description is too brief ('Update company site configuration. Fields are tenant-defined; call get first.'). Does not explain what site configuration controls, when to use it, or typical field examples.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | A | 81 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
No error handling guidance in tool descriptions. LLMs do not know which failures are retryable, which require lookup calls, or how to recover from invalid inputs.
No enumeration constraints for picklist fields (companyType, invoiceTemplateID, invoiceMethod, classification, etc.). LLMs may hallucinate invalid numeric IDs; explicit enums or a discovery tool would be safer.