Server has 7 tools with consistent verb-noun naming (get*, all starting with 'get'). Descriptions are present and contextual (avg ~150 chars), exceeding the 10-char minimum. Schemas use Zod with type definitions and descriptions for most parameters. However, several parameters lack descriptions (e.g., domainId, external, name in getModelObjects), and output schemas are not formally documented, responses are JSON-stringified text rather than structured objects. Error handling is minimal (generic try-catch returning error.message). No tool annotations (readOnlyHint, destructiveHint) despite all tools being READ_ONLY. Composition is sound: tools chain logically (getLandscapes → getLandscape → getModelObjects → getModelObject). Parameter naming is mostly clear but could be more specific (e.g., 'external' lacks context).
Get a specific landscape from IcePanel
Get all your landscapes from IcePanel
Get detailed information about a model object in IcePanel. IcePanel is a C4 diagramming tool. C4 is a framework for visualizing the architecture of software systems. Use this tool to get detailed information about a model object, such as it's description, type, hierarchical information (i.e. parent and children objects), any teams associated with it, as well as the technologies it uses.
Get information about the relationships a model object has in IcePanel. IcePanel is a C4 diagramming tool. C4 is a framework for visualizing the architecture of software systems. Use this tool when you want to know about what objects are related to the current object. It provides a succinct list of related items.
Get all the model objects in an IcePanel landscape. IcePanel is a C4 diagramming tool. C4 is a framework for visualizing the architecture of software systems. To get the C1 level objects - query for 'system' type. To get the C2 level objects - query for 'app' and 'store' component types. To get the C3 level objects - query for the 'component' type. The 'group' and 'actor' types can be used in any of the levels, and should generally by included in user queries. - 'group' - is a type agnostic group which groups objects together - 'actor' - is a actor in the system, typically a kind of user. Ex. 'our customer', 'admin user', etc. Use this tool to filter / query against many model objects at once. It provides high level details such as; name, ID, type, status, and external. Prefer filtering by Technology ID and Team ID when the query is asking things like: - "What services does the Automations Team own?" - "We need to upgrade our .NET applications - what is affected by this?"
Output schemas not documented. Tools return JSON-stringified text (content: [{type: 'text', text: JSON.stringify(...)}]) rather than structured objects. LLMs cannot infer response field names or types, forcing unstructured parsing.
Missing parameter descriptions in getModelObjects: 'domainId', 'external', 'name', 'parentId', 'status', 'type' lack descriptions. Zod schema has types but no .describe() calls for these fields. LLMs cannot infer when to use each filter.
No tool annotations despite all tools being READ_ONLY. Zod schemas lack readOnlyHint metadata. LLMs cannot distinguish safe (read) from destructive (write) operations without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
Get all teams in your organization from IcePanel
Get the technology catalog in IcePanel. IcePanel is a C4 diagramming tool. C4 is a framework for visualizing the architecture of software systems. Use this tool to get the technology catalog, which is a list of all the technologies available in the system.
Error handling is generic. All tools catch errors and return error.message as plain text. No recovery guidance, error classification (retryable vs fatal), or actionable suggestions. E.g., 'Error: Not found' tells LLM nothing about next steps.
Parameter naming ambiguity: 'external' boolean lacks context (external to what?). 'domainId' vs 'technologyId' vs 'teamId' are inconsistently suffixed. Consider 'isExternal' for boolean, consistent '_id' suffix for all IDs.