MCP server for IncidentIQ - The #1 K-12 service management platform. Enables AI assistants to manage IT tickets, assets, facilities, and more for educational institutions.
33 tools with consistent verb_noun naming (ticket_*, user_*, asset_*, etc.). All tools have descriptions (avg ~80 chars, baseline 194). Input schemas present with type definitions and parameter descriptions. However, output schemas are NOT documented, critical gap per pattern:tool. No error handling guidance, no recovery paths, no actionable error messages. Missing tool annotations (readOnlyHint/destructiveHint). Pagination parameters present but inconsistently applied. No enum constraints on IDs (categoryId, priorityId, statusId, etc. are free-form strings). Descriptions are functional but generic, lack WHEN/WHY context and dependency hints.
Get details of a specific asset by ID
Search for IT assets (Chromebooks, iPads, computers, etc.)
Search for an asset by its asset tag
Get details of a specific custom field by ID
Get all custom fields available in the system
Search for issues and categories
Get details of a specific location by ID
Get all locations in the district
Output schemas not documented. Per pattern:tool baseline, 100% of A+ tools document return types. LLMs cannot plan downstream calls or extract required fields without knowing response structure.
No error handling guidance. Tools lack recovery hints (e.g., 'User not found. Try search_users() first.'). Errors are not categorized as retryable/user-fixable/fatal. Per pattern:recovery-guide, agents need actionable next steps.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Write tools (ticket_create, ticket_update, ticket_close) lack destructiveHint. Per current spec (2026-07-28), tool annotations enable agents to reason about side effects.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Search for locations (buildings, rooms, sites) in the district
Get details of a specific notification by ID
Get all notifications
Get details of a specific part by ID
Search for parts in inventory
Get details of a specific purchase order by ID
Search for purchase orders
Get details of a specific SLA policy by ID
Get all SLA policies
Get details of a specific team by ID
Search for teams in the district
Test connection to IncidentIQ API and verify authentication for your K-12 district
Close an IT help desk ticket
Create a new IT help desk ticket
Get details of a specific IT help desk ticket by ID
Get all available ticket categories
Get all available ticket priorities
Get all available ticket statuses
Search for IT help desk tickets with optional filters and pagination
Update an existing IT help desk ticket
Get details of a specific user by ID
Get all IT support agents in the district
Search for users (students, staff, parents) in the district
Get details of a specific view by ID
Get all available views
ID parameters (categoryId, priorityId, statusId, assetId, etc.) are free-form strings with no enum constraints. Per pattern:constrained-input, known sets of values must be enums. LLMs hallucinate invalid IDs without constraints.
Descriptions lack WHEN/WHY context and dependency hints. Per pattern:tool-description, descriptions should state WHAT, WHEN to use, and prerequisites. Current descriptions are functional but generic (avg 80 chars vs baseline 194).