jgs-magic-sysmlv1-mcp
JGS SysML v1 MCP Bridge
AI-to-CATIA Magic bridge for SysML v1 models. Exposes your SysML v1 project to AI agents via the Model Context Protocol (MCP).
Related repositories
The JGS SysML toolchain spans two MCP bridges and two skills packs. This repository is one part; the others:
Repository | What it is | Access |
jgs-magic-sysmlv1-mcp (this repository) | MCP bridge for live SysML v1 models in CATIA Magic (MSOSA). FREE tier is read-only; a PRO licence adds write tools, and ENTERPRISE adds administrative tools. | Free; PRO and ENTERPRISE by licence |
MCP bridge for live SysML v2 models in CATIA Magic. FREE tier is read-only; a PRO licence adds write tools, and ENTERPRISE adds administrative tools. | Free; PRO and ENTERPRISE by licence | |
Free read-only analysis skills for SysML v1. | Free | |
jgs-magic-sysmlv1-pro-skills | Write-capable and migration skills for SysML v1; the paid companion to the read skills. | Proprietary; request access via https://labs.jgsystemsconsulting.com/licensing.html |
Related MCP server: CATIA V5 MCP Server
Install with your AI agent
Copy everything in the block below and paste it into your coding agent (Claude Code, Cursor, etc.). It will do the parts it safely can and hand back the few desktop steps it cannot do for you.
You are installing jgs-magic-sysmlv1-mcp, a proprietary MCP bridge (JG Systems Consulting
Ltd.) that lets MCP clients work with live SysML v1 models in CATIA Magic Systems of
Systems Architect (MSOSA 2026x). Repository: https://github.com/jgsystemsconsulting/jgs-magic-sysmlv1-mcp (version 0.1.1).
Do this in order:
1. Read README.md, docs/install.md, docs/configuration.md, and docs/licensing.md in
this repository so you understand the full install and prerequisites (CATIA Magic
2026x, Python >= 3.11, an MCP client such as Claude Code).
2. Do the scriptable steps: install the Python server with `pip install ./server`
(see docs/install.md for the exact command), create my MCP client config from
`examples/.mcp.json.example` (fill in placeholders; never invent secrets/tokens),
and place my licence file as described in docs/licensing.md.
3. STOP: these two steps run on my desktop app and you cannot do them for me:
a. Copy the contents of `plugin/` into my CATIA Magic user plugins directory
(the exact path is in docs/install.md).
b. Restart CATIA Magic.
Tell me the target path and wait for me to confirm I have done both.
4. After I confirm, verify the bridge by calling the `ping` MCP tool and report the
result. If it fails, walk me through docs/configuration.md.
5. This is licensed software: point me at LICENSE and docs/licensing.md and note the
FREE / PRO / ENTERPRISE tiers. Never invent, commit, or share licence keys.Install from the Claude Code marketplace
This repo ships a Claude Code plugin manifest, so you can add it as a marketplace and install from inside Claude Code:
/plugin marketplace add jgsystemsconsulting/jgs-magic-sysmlv1-mcp
/plugin install jgs-magic-sysmlv1-mcpThe marketplace install registers the bridge; the desktop steps (CATIA Magic plugin JAR
restart) still run on your machine. See docs/install.md.
What's Included
plugin/: CATIA Magic plugin JAR (copy to your plugins directory)server/: Python MCP server (install withpip install ./server)docs/: Installation guide, usage guide, and configuration referencetools/: Licence verification utilityexamples/: Sample.mcp.jsonconfiguration
Quick Start
See docs/install.md for full installation instructions.
Usage
docs/usage.md walks the first session and the everyday workflows: exploring the model, auditing requirement coverage, authoring a change under a PRO licence, and producing diagrams. The per-tool reference is docs/TOOL-REFERENCE.md.
Requirements
CATIA Magic Systems of Systems Architect 2026x
Python 3.11 or later
Support & Security
Support / licensing: JG Systems Consulting Ltd. To request a commercial or academic licence, or if you are unsure which licence you need, see https://labs.jgsystemsconsulting.com/licensing.html
Security issues: open a private security advisory on this repository. Please do not open public issues for vulnerabilities, and do not email keys or licence material.
Bugs (agents and humans): if a tool returns malformed or incorrect output, open an issue with the Bug Report form at https://github.com/jgsystemsconsulting/jgs-magic-sysmlv1-mcp/issues/new/choose. Include the server version (from
ping), the tool name, and the exact tool call and its output.Improvements: use the Improvement form on the same issue chooser. Include the version from RELEASE-INFO.txt and the outcome the bridge could not enable.
This is a release repo. The server and plugin ship from this tree and fixes are applied upstream by the maintainer, so please file an issue rather than a pull request.
Licence
Proprietary: see LICENSE and docs/licensing.md.
To request a commercial or academic licence, or if you are unsure which licence you need: https://labs.jgsystemsconsulting.com/licensing.html
Copyright (c) 2026 JG Systems Consulting Ltd. All Rights Reserved.
Available Tools
133 toolsabort_batchB
Roll back all queued operations in the given batch session.
| Name | Required | Description | Default |
|---|---|---|---|
| batch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the high-level action of rolling back queued operations. It does not disclose side effects (e.g., whether the batch session is terminated), requirements (e.g., active batch), or error conditions. The destructive nature is implied by 'roll back' but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that gets directly to the point with no filler. It is well-structured and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter, but the description is incomplete for an agent to invoke it correctly. It lacks usage guidance, parameter semantics, and behavioral details like whether an active batch is required. The presence of sibling tools like commit_batch and begin_batch suggests more context is needed, but the description does not provide it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has one required parameter batch_id with no description (0% coverage). The description does not mention batch_id at all, so it adds no meaning beyond the raw parameter name. Given the low schema coverage, the description should compensate but fails to explain what batch_id refers to or its format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('roll back') on a specific resource ('all queued operations') within a 'given batch session'. This is a specific verb+resource construction that distinguishes it from sibling tools like commit_batch (which commits) and begin_batch (which starts a session).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for aborting a batch, but it does not explicitly mention when to use this tool versus commit_batch or begin_batch. There is no guidance on prerequisites (e.g., an active batch) or alternatives, so the agent must infer from the name and sibling context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_copyC
Create a SysML Copy dependency from source to target.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states that it creates a dependency, implying mutation, but does not disclose side effects, validation behavior, or what happens if the elements are invalid. For a mutation tool this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is under-specified. It is concise but lacks necessary detail, so while structurally efficient, it fails to convey essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no parameter descriptions, the description is incomplete. It does not mention the output schema, error conditions, or how this differs from other dependency creation tools. The minimal information leaves an agent guessing about correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It hints at source and target via 'from source to target' but does not explain that these are element IDs, what types they accept, or any constraints beyond the schema's field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('SysML Copy dependency') from source to target. It distinguishes from generic add_dependency by specifying the Copy dependency type, which is a specific relationship among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus add_dependency or other relationship creators. There is no mention of prerequisites, such as whether source and target must already exist, or when a Copy dependency is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_dependencyB
Create a UML Dependency between a client and supplier element.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| client_id | Yes | ||
| supplier_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden of behavioral disclosure. It only says 'Create a UML Dependency,' which implies a model modification but does not mention side effects, reversibility, required permissions, or what happens if the dependency already exists. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant words. It front-loads the core action and resource, making it easy to parse. While it is short, it is appropriately concise for what it conveys, with no wasted space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three parameters (two required) with zero schema descriptions, no annotations, and an output schema that only helps with return values, the description is far from complete. An agent lacks critical information about what client_id and supplier_id refer to, how to obtain them, and the meaning of name. The description does not compensate for the sparse structured metadata, leaving significant gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It mentions 'client and supplier element,' which hints at the meaning of client_id and supplier_id, but does not explain the format (IDs, names, paths), the optional name parameter's purpose, or any constraints. The description adds minimal value beyond the schema's bare property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create' and the specific resource 'a UML Dependency between a client and supplier element.' This distinguishes it from other creation tools like create_association or create_generalization by naming the dependency type and its two endpoints, making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as create_association for associations or create_connector for connectors. There are no prerequisites, exclusions, or examples of appropriate contexts, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_deriveC
Create a DeriveReqt relationship between two requirements.
| Name | Required | Description | Default |
|---|---|---|---|
| source_req_id | Yes | ||
| derived_req_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action without disclosing side effects, error handling, prerequisites (e.g., that both requirements must exist), or what happens if the relationship already exists. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. It is appropriately sized for a simple create operation, front-loading the core action. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and does not explain the direction of the relationship (source vs. derived), the meaning of DeriveReqt, or any operational details. Given the existence of many sibling relationship tools and the lack of annotations, the description is incomplete for an agent to use it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter explanation. It does not mention source_req_id or derived_req_id at all, nor explain which is which or their roles in the relationship. The schema titles provide minimal hints but are not sufficient, especially without any descriptive context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a DeriveReqt relationship between two requirements, using a specific verb and resource. It is distinguishable from siblings like add_satisfy or add_trace, but does not explicitly differentiate itself. The purpose is clear enough for an agent to understand what it does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description does not mention the semantics of the relationship (e.g., derivation) or provide conditions for use. An agent would have to infer that this is for representing derived requirements, which is not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_diagram_noteC
Add a text note to a diagram. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| x | No | ||
| y | No | ||
| text | Yes | ||
| diagram_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Add a text note to a diagram' and 'Phase B stub.' It does not describe side effects, requirements, return behavior, or any constraints. The 'stub' hint is about implementation status, not tool behavior. This is essentially a restatement of the name with no added behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) and lacks any structure such as bullet points or sections. While conciseness is good, this is under-specification rather than efficient writing. The 'Phase B stub' adds little useful structure. It is not verbose, but it fails to convey essential information in an organized way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 2 required, and an output schema, the description is severely incomplete. It does not explain what a text note is, how it is placed on a diagram, what the output represents, or any constraints. With no annotations to supplement, the description leaves the agent with insufficient context to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameter meaning. It does not mention diagram_id, text, x, or y at all. The description adds zero value beyond the schema's property names and types. Given the complete lack of parameter guidance, this score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: adding a text note to a diagram. It uses a specific verb and resource, and distinguishes itself from siblings like add_symbol (which adds symbols) and create_element. However, it lacks any detail about what a 'text note' entails or how it differs from other annotation tools, so it is not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, scenarios, or exclusions. The description simply states what it does, leaving the agent to infer when it is appropriate. This is a significant gap for a tool with many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_pathC
Add a relationship path to a diagram. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes | ||
| relationship_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden. It discloses that this is a 'Phase B stub', which signals that the tool may be incomplete or non-functional, but it does not describe any actual behavior, side effects, permissions, or failure modes when invoked. This is a minimal level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, which could be seen as concise, but it is under-specified. It does not front-load any critical information beyond the basic purpose. The 'Phase B stub' is important but placed at the end. The brevity is not a virtue here because it omits essential details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two required parameters and no annotations, the description is grossly incomplete. It provides no information on how to use the tool, what inputs are expected, what the output schema contains, or any error conditions. The 'Phase B stub' label suggests it is not production-ready, but that is not sufficient for an agent to correctly invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention the parameters at all. The parameters 'diagram_id' and 'relationship_id' have no semantic explanation beyond their names, which are not self-explanatory in context. The description adds zero value to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Add a relationship path to a diagram.' It uses a specific verb and resource, and the phrase 'relationship path' is sufficiently distinct from generic actions. However, it does not differentiate from siblings like 'route_path', which may have overlapping functionality, so it loses one point.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The description is a single sentence with no context about prerequisites, intended use cases, or exclusions. The 'Phase B stub' note implies it may not be ready, but no direction is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_refineB
Create a SysML Refine dependency from source to target.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states that a dependency is created, with no disclosure of side effects (e.g., whether an existing refine dependency is replaced), error conditions, or validation behavior. The write nature is implied but not elaborated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no wasted words. It is efficiently structured and front-loads the primary action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being a simple tool, the description omits key contextual details such as expected behavior when IDs are invalid, whether the operation is idempotent, or what the output schema contains. With no annotations and a sparse description, an agent may not know how to handle failures or confirm success. The tool's simplicity partially mitigates this, but the lack of behavioral or error information leaves it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not add meaning beyond the parameter names. 'From source to target' merely echoes source_id and target_id without specifying ID formats, validity, or relationship constraints. The description fails to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Create), a resource (SysML Refine dependency), and the scope (from source to target). This clearly distinguishes it from sibling tools like add_satisfy, add_verify, or add_dependency, which create different relationship types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as add_derive or add_dependency. The purpose implies its use, but there is no explicit context, exclusions, or mention of alternative tools, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_satisfyB
Create a Satisfy relationship from a satisfying element to a requirement.
| Name | Required | Description | Default |
|---|---|---|---|
| requirement_id | Yes | ||
| satisfying_element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must carry the full burden of behavioral disclosure. It only says 'Create', implying a mutation, but does not mention side effects, failure conditions, permissions, or what happens if elements are invalid or a relationship already exists. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action ('Create a Satisfy relationship') and immediately clarifies the direction. There is no redundant information or filler; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter create operation, the description provides the essential purpose and parameter roles. It does not mention return values, but an output schema exists. However, it lacks usage context (when to use vs. siblings) and behavioral details (failure modes), which are important given the large set of similar relationship tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only parameter names with no descriptions. The description adds directional meaning by specifying that satisfying_element_id is the source and requirement_id is the target. However, it does not explain the semantic nature of a Satisfy relationship or any constraints on the parameter values, so it only partially compensates for the 0% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: creating a Satisfy relationship, and clarifies direction (from satisfying element to requirement). This clearly distinguishes it from sibling tools like add_verify or add_derive, which target different relationship types. The verb and resource are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like add_verify, add_derive, or add_refine. It does not mention prerequisites, such as whether both elements must exist or be of specific types. An agent cannot decide between this and similar relationship-adding tools without further context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_symbolC
Add an element symbol to a diagram. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states that a symbol is added, which is a mutation, but it does not disclose side effects, prerequisites (e.g., diagram must exist, element must exist), reversibility, or error conditions. The 'Phase B stub' hint suggests incompleteness but does not explain expected behavior or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It lacks any structure or emphasis on key information. The 'Phase B stub' is tacked on without explanation. There is no front-loading of important constraints or usage context. A concise description would still convey essential details in a few sentences; this one conveys almost nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two required parameters, many sibling tools), the description is incomplete. It does not explain what an element symbol is, how it relates to diagrams, or what the output schema contains. Since an output schema exists, the return value may be documented there, but the description still fails to provide necessary context for an agent to decide whether this tool is appropriate and what to expect. The 'Phase B stub' further signals incompleteness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention either parameter. It only says 'add an element symbol to a diagram' without explaining what diagram_id and element_id represent. The description adds no meaning beyond the parameter names in the schema, leaving the agent to infer that diagram_id identifies the target diagram and element_id identifies the element whose symbol is added. This is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: adding an element symbol to a diagram. It uses a specific verb and resource, and it distinguishes from siblings like remove_symbol, move_symbol, and resize_symbol. However, it does not elaborate on what an element symbol is or how it differs from creating an element (e.g., create_block), and the 'Phase B stub' qualifier introduces ambiguity about its current functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention that it is for adding symbols to diagrams rather than creating elements, nor does it reference any sibling tools. The 'Phase B stub' note implies it may not be ready for production use, but this is not framed as usage guidance. No when-to-use or when-not-to-use conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_traceB
Create a UML Trace dependency from source to target (StandardProfile).
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states that it creates a Trace dependency, implying a write operation, but does not disclose side effects (e.g., whether it overwrites existing traces), required permissions, reversibility, or validation behavior. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It front-loads the action and resource, making it instantly scannable. It is appropriately concise for a simple create operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description does not mention return values, success/failure behavior, or prerequisites like element existence. For a mutation tool with no annotations, this is incomplete. An agent cannot anticipate what happens if the source or target is invalid, or whether the operation is idempotent. The description is minimal and does not cover these contextual needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It says 'from source to target', which maps source_id to source and target_id to target, but this only restates the parameter names. It does not explain what these IDs refer to (e.g., element UUIDs), how to obtain them, or any constraints. Minimal added value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and the specific resource ('UML Trace dependency') with direction (from source to target) and mentions StandardProfile. This distinguishes it from sibling tools like add_dependency or add_satisfy, which create different relationship types. An agent can infer exactly what this tool does without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you want to create a Trace dependency. However, it does not explicitly mention when to prefer this over alternatives like add_dependency or add_derive. There is no 'use this for X, use that for Y' guidance, leaving some inference required. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
add_verifyB
Create a Verify relationship from a verifying element to a requirement.
| Name | Required | Description | Default |
|---|---|---|---|
| requirement_id | Yes | ||
| verifying_element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states the creation action, implying a mutation, but provides no information about side effects, error conditions, reversibility, or required permissions. For a mutation tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly worded sentence with no wasted words. It front-loads the core action and object, achieving maximum conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (not shown), the description is incomplete for a tool with two required parameters and many similar siblings. It lacks any guidance on element prerequisites, duplicate relationship behavior, or error handling, and does not address the ambiguity of which verifying/requirement types are applicable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'verifying element' and 'requirement', which map to the parameter names, but adds no detail about expected formats, whether IDs must reference existing elements, or any constraints. It barely goes beyond the schema's property titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('Verify relationship'), and the direction ('from a verifying element to a requirement'). It distinguishes this tool from sibling add_* tools by specifying the relationship type, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many similar add_* siblings (add_satisfy, add_derive, add_refine, etc.). It does not mention alternatives, prerequisites, or conditions that would select this tool over others, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_custom_layoutB
Apply a named layout style to a diagram.
| Name | Required | Description | Default |
|---|---|---|---|
| style | Yes | ||
| diagram_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Apply' implies a mutation to the diagram's layout, but the description does not mention reversibility, side effects, prerequisites, or what happens to existing layout elements. For a mutation tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence with no filler. The action and object are front-loaded. Every word contributes to clarity. This is appropriately concise for a simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown) but the description says nothing about return values or errors. It also omits any mention of prerequisites, such as needing to call list_layout_styles first to know available styles. For a mutation tool, this is incomplete: an agent is left without guidance on what to expect after invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It introduces 'named layout style' and 'diagram', which loosely map to the style and diagram_id parameters, but it does not explain what a valid style value is, where to obtain it (e.g., from list_layout_styles), or any format constraints. The description adds minimal semantic value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (apply), the resource (a named layout style), and the target (a diagram). It distinguishes from siblings like auto_layout_diagram, which presumably applies automatic layout, and list_layout_styles, which lists available styles. The verb and resource are specific enough to convey the tool's core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for applying a specific named style, contrasting with automatic layout, but does not explicitly state when to use it versus alternatives. It offers no exclusions or conditions. The context of sibling tools (list_layout_styles, auto_layout_diagram) suggests a workflow, but the description itself provides no guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
apply_stereotypeB
Apply a stereotype to an element by its qualified name.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes | ||
| stereotype_qn | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It only states the action without disclosing side effects, idempotency, error conditions, or whether it replaces existing stereotypes. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Efficiently communicates the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity, the description is minimal but lacks important context such as whether the operation is idempotent, whether it fails on invalid input, and any usage constraints. The output schema is present but its contents are unknown, and the description does not mention return behavior. Incomplete for a mutation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description only clarifies stereotype_qn as a qualified name. It does not explain element_id, its format, or how to obtain it. The description adds minimal meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (apply) and resource (stereotype to an element) and identifies the stereotype by qualified name. Clearly distinguishes from remove_stereotype and other set_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Does not mention that remove_stereotype exists for removing, or any prerequisites such as the element existing or stereotype being applicable. The agent must infer usage from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
auto_layout_diagramC
Apply Cameo's automatic layout to a diagram.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects (e.g., whether the diagram is modified in place, whether the operation is reversible, or what happens to existing symbol positions). This is insufficient for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is appropriately front-loaded and directly conveys the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of sibling tools like 'apply_custom_layout' and 'compare_layout_styles', the description lacks context on how automatic layout differs or when it should be used. With no output schema details visible and minimal parameter explanation, an agent may not fully understand the tool's scope and impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not explain the 'diagram_id' parameter beyond its name, leaving the agent to infer its format or how to obtain it. The description adds no semantic value beyond what the schema already provides (a string ID).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (apply) and resource (automatic layout to a diagram). It is specific enough to distinguish from unrelated tools, but it does not differentiate from the sibling 'apply_custom_layout' or mention which automatic layout style is used, leaving ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like 'apply_custom_layout' or 'list_layout_styles'. The description does not specify conditions, prerequisites, or situations where automatic layout is preferred over custom layout.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
begin_batchB
Open a batch session. All write operations within the batch are committed atomically when commit_batch fires.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key atomicity behavior: write operations are committed when commit_batch fires. This is valuable context beyond a simple 'open' statement. However, it does not mention other behavioral aspects such as whether batches can be nested, what happens on abort, or any limitations (e.g., timeout or size caps). With no annotations, the description carries the full burden and only partially addresses it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff. The primary purpose is front-loaded, followed by a single key behavioral detail about atomic commit. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no parameters and an output schema exists, the description covers the essential behavior of opening a batch and its atomic commit semantics. However, it does not explicitly clarify the relationship with sibling tools like abort_batch (which discards) or whether multiple batches can coexist, which could be important for correct usage. It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100% (there is nothing to document). Per the rubric, the baseline is 4 since the description doesn't need to explain parameters. It adds no parameter details because none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool opens a batch session, specifying a specific verb and resource. It is distinct from sibling batch tools like commit_batch and abort_batch, though it doesn't explicitly name them. The purpose is unambiguous and easily understood by an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention that it should be called before write operations to enable batching, nor does it state cases where batching is unnecessary or disallowed. The usage context is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_documentation_coverageA
Return the fraction of named elements that have documentation set.
scope controls the denominator:
"authored"(default) — only user-model elements; avoids the ~25% ceiling caused by ~1840 undocumentable SysML library elements."all"— every named element (legacy behaviour).
coverage reflects the scoped fraction; coverageModelWide is always
reported for reference.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | authored |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It discloses that the output includes both scoped coverage and model-wide coverage, and explains the denominator logic and the legacy behavior of the 'all' scope. It doesn't mention side effects (none expected for a read operation) but adequately describes the behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loaded with the core purpose, and uses a bullet list to explain the parameter without wasted words. Each sentence adds value, and the structure is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the output fields (coverage and coverageModelWide) and the parameter options, which is sufficient for an agent to call it correctly. The presence of an output schema covers the exact return structure, and the description adds the meaningful semantic details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for the 'scope' parameter, so the description fully compensates. It defines the parameter's meaning (controls the denominator), lists the two valid values with explicit effects, and explains the default. This is comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the fraction of named elements with documentation set, using a specific verb and resource. It distinguishes itself from siblings like check_requirement_coverage (requirements vs documentation) and get_model_metrics (general metrics) by specifying its exact metric.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the scope parameter choices and the rationale for the default ('authored' avoids the ~25% ceiling), which guides when to use which scope. However, it does not explicitly contrast with alternatives like check_requirement_coverage or get_model_metrics, so the guidance is limited to the scope parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_naming_conventionsA
Return elements that violate UML naming conventions.
scope controls which elements are checked:
"authored"(default) — user-model only; suppresses ~85 library internals (base_*,extension_*,A_*)."all"— every element.
allowed_patterns is an optional comma-separated list of regex patterns
that exempt names from the default rules. Use this to allow requirement-ID
schemes such as ^[A-Z]{2,}-\d+$ or Magic Grid label patterns like
^.+ Scenario$.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | authored | |
| allowed_patterns | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral disclosure. It explains the default scope (authored) and the suppression of library internals, which is useful. It implies a read-only operation ('Return elements') but does not explicitly state that it makes no modifications or disclose any other side effects. Since it is a check tool, the read-only nature is reasonably inferred, but a more explicit statement would strengthen transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening sentence and bulleted parameter explanations. It is appropriately sized—long enough to convey important defaults and pattern syntax but not padded. The most critical information (scope and its default) is front-loaded. Minor redundancy exists (e.g., re-explaining 'authored' default), but overall it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description need not explain return values. It covers the two parameters thoroughly and the behavioral context of suppression. The only gap is the lack of explicit usage guidance relative to sibling check tools, but the description is otherwise complete for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only names and defaults (coverage 0%), so the description fully compensates. It explains the meaning of 'scope' with two enumerated values (authored vs all) and the exact suppression behavior, and it describes 'allowed_patterns' as a comma-separated regex list with concrete examples. This goes well beyond the schema and gives the agent everything needed to set parameters correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: returning elements that violate UML naming conventions. It uses a specific verb ('return') and resource ('elements') and distinguishes from general validation tools like validate_model by focusing on naming. However, it does not explicitly name sibling alternatives or state what it is not, so it doesn't fully differentiate within the family of check tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides detailed guidance on how to use the parameters (scope and allowed_patterns) with defaults and examples, which helps the agent invoke it correctly. But it does not explicitly state when to use this tool versus sibling validation tools (e.g., check_requirement_coverage, validate_model) or when not to use it, leaving the decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_requirement_coverageA
Return coverage statistics for requirements.
scope controls which requirements are counted:
"authored"(default) — only user-model requirements, excluding SysML library and profile elements that inflate the denominator."all"— every requirement in the model (legacy behaviour).
New fields: tracedCoverage (Satisfy + Refine + DeriveReqt + Verify),
orphans (requirements with zero traceability links). Legacy fields
total, satisfied, unsatisfied, satisfyCoverage are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | authored |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the output fields (tracedCoverage, orphans, legacy fields) and explains the scope semantics, giving a transparent view of behavior. It does not explicitly state that the tool is read-only, but the nature of returning statistics implies no mutation, which is acceptable for this context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the purpose. It uses a list to explain scope options and a clear separation for new vs legacy fields, with no wasted words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with a single parameter, and the description covers the scope semantics and the output fields. Since an output schema exists, detailed return documentation is not required. The description is complete for an agent to call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the schema provides no description for the 'scope' parameter. The description fully compensates by explaining the two valid values, their meanings, and the default, making parameter semantics crystal clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and resource ('coverage statistics for requirements'), clearly distinguishing it from sibling tools like check_documentation_coverage. It also explains the purpose of the scope parameter, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on how to use the tool via the scope parameter, explaining the two modes ('authored' vs 'all') and noting that 'all' is legacy behavior. It doesn't explicitly mention alternatives or when not to use this tool, but the purpose is distinct enough among siblings that guidance is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
commit_batchB
Commit all queued operations in the given batch session.
| Name | Required | Description | Default |
|---|---|---|---|
| batch_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the action but does not reveal that it is a finalizing/destructive operation, whether it is reversible, or what happens to the batch session after commit. No permissions or side effects are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundant words, front-loading the core action. It is appropriately sized for a simple tool, though it could add more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and an output schema, the description is insufficient. It omits prerequisites (e.g., an active batch session), behavior when no operations are queued, return value semantics, and does not contrast with abort_batch. An agent cannot safely call this without additional knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description only refers to 'given batch session' without defining batch_id semantics. It does not clarify that batch_id is the identifier returned by begin_batch, nor does it specify format, validity, or required state. The description adds minimal meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Commit') on a specific resource ('all queued operations in the given batch session'). It is immediately distinguishable from sibling tools like abort_batch and begin_batch, as it names the finalizing operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that it is used after queuing operations but does not explicitly state when to use it versus abort_batch or begin_batch. It lacks any exclusions or mention of prerequisites like an active batch session, leaving the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_layout_stylesC
Compare how each auto-layout style would affect a diagram.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It implies a read-only comparison but doesn't state that explicitly, nor does it mention side effects, return format, or whether it modifies anything. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It is front-loaded with the key action and object. No redundancy or unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description doesn't mention what the comparison results look like or any prerequisites (e.g., whether the diagram must exist, whether the layout styles are pre-defined). The tool is simple, but the description leaves important details about behavior and output to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero coverage for the single parameter diagram_id, and the description only mentions 'a diagram' without explaining the parameter's meaning or constraints. The parameter name is self-explanatory, but the description adds no value beyond the schema. A description should compensate for the lack of schema docs, but it doesn't.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('compare') and resource ('auto-layout styles' affecting a diagram). It is distinct from siblings like auto_layout_diagram and list_layout_styles, though it doesn't specify what aspect of the styles is compared (e.g., visual, metrics). This is adequate but not maximally precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It doesn't mention that it should be used for previewing before applying a layout, or contrast it with auto_layout_diagram or list_layout_styles. The agent is left to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_actionC
Create an Action inside an Activity. action_type: OpaqueAction (default), CallBehaviorAction, SendSignalAction.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| action_type | No | OpaqueAction | |
| activity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does not mention side effects, validation, failure modes, or whether the operation is reversible. The only behavioral hint is the word 'Create' implying a mutation, but nothing else.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a list, with no filler. It front-loads the core action and includes useful enum information. It could be slightly more structured by explicitly labeling parameters, but it is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with three parameters and no annotations, the description is too thin. It does not explain prerequisites (e.g., activity existence), what happens on invalid action_type, or any constraints. The output schema exists but does not compensate for the lack of behavioral and usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does explain action_type by listing its possible values (OpaqueAction, CallBehaviorAction, SendSignalAction), but it leaves name and activity_id completely undefined. While these may be inferable from context, the description does not explicitly map them, leaving a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create an Action inside an Activity.' It specifies a verb and resource, and even lists possible action_type values, making the purpose unambiguous. However, it does not explicitly differentiate from other create_* tools like create_element, which could be ambiguous without additional context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention prerequisites (e.g., that the activity must exist), nor does it exclude use cases. The description is purely declarative and offers no decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_activityC
Create a UML Activity owned by parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a mutation but does not disclose side effects, failure behavior, or whether the parent must exist. It adds no behavioral detail beyond the obvious create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It is concise, though it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, an output schema likely describes the return value, but the description still misses key usage context: parent type constraints, required name conventions, and how it differs from many similar create tools. It is inadequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain parameters. It mentions parent_id as the owner but does not describe what kind of parent is expected or what the name parameter is for. The name parameter is entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and the resource (UML Activity), and specifies ownership via parent_id. This distinguishes it from sibling tools like create_action or create_state_machine.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. other create_* siblings. It does not mention prerequisites, when not to use it, or alternatives. The agent is left to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_actorB
Create an Actor element under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states that an Actor is created under a parent, but does not mention side effects, validation requirements (e.g., parent must exist), error handling, or permissions. The description is too thin for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous content. It is efficient and front-loaded with the key action, though it could be slightly more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with two required parameters and no annotations, the description is incomplete. It does not specify whether parent_id must exist, what happens on failure, or what the output contains (though an output schema exists, its contents are not described). An agent would lack critical context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds only that the element is created 'under parent_id', implying parent_id is the parent element, but does not explain name semantics (e.g., uniqueness, format) or any constraints on parent_id. Minimal value added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create), the resource (Actor element), and the context (under parent_id). It distinguishes itself from sibling create_* tools by specifying 'Actor' as the element type, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating an Actor element specifically, but it does not explicitly say when to use this tool versus alternatives like create_element or other create_* tools. Given the many sibling create_* tools, some explicit guidance would help, but the element type provides enough implicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_allocationC
Create an Allocate relationship from source to target (SysML Allocation).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only states that it creates a relationship, but does not mention side effects, validation, return behavior, or whether it modifies the model permanently. The agent gets no insight into potential failure modes or constraints beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no redundancy. It front-loads the core purpose. However, it is almost too sparse, leaving out useful context, but for a simple tool this brevity is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no enums, output schema present), the description is insufficient. It does not explain which source and target elements are valid, whether the relationship has constraints, or how it integrates with the broader SysML modeling workflow. The description leaves too much to inference for an agent to use it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'from source to target' which loosely maps to source_id and target_id, but it does not explain the name parameter or clarify the expected types or formats of the IDs. The description adds minimal value over the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a SysML Allocation relationship from source to target, which is specific and distinguishes it from other create_* tools by naming the relationship type. It does not explicitly contrast with siblings like add_dependency or create_generalization, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It simply states what it does without context about which elements can be allocated or when an allocation is appropriate, leaving the agent to infer usage from the name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_associationC
Create a UML Association between two classifiers.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| parent_id | Yes | ||
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Create', which implies mutation, but it does not explain side effects such as model modification, where the association is created, whether existing relationships are affected, or any requirements like ownership.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, which is structurally efficient. However, it is under-specified for an operation with four parameters and no parameter documentation, so brevity comes at the cost of usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters, no annotations, and zero parameter documentation, the description is too thin. While an output schema exists and return values need not be explained, the missing details about parent_id, source_id, target_id, and name leave the description incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not explain any of the four parameters. The phrase 'between two classifiers' hints that source_id and target_id refer to classifiers, but parent_id and name are entirely unexplained, leaving the agent to guess their meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a UML Association between two classifiers' uses a specific verb and resource and identifies the kind of relationship being created. It is clear enough to distinguish from many sibling tools like create_generalization or add_dependency, though it does not explicitly distinguish itself from create_association_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as create_association_block, create_connector, or add_dependency. It states what the tool does but gives no context about when this specific relationship type should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_association_blockC
Create a SysML Association Block (AssociationClass + Block stereotype).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| parent_id | Yes | ||
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the action without mentioning side effects, required permissions, reversibility, or return format. For a mutation tool, this is a significant gap that leaves the agent uncertain about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the purpose without extraneous detail. It is appropriately concise, though it could be slightly more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with four parameters and an output schema, the description is incomplete. It lacks context on when to use it, what the parameters represent, and what the tool returns. The output schema may cover return format, but the description does not mention any operational constraints or typical usage patterns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention any of the four parameters (name, parent_id, source_id, target_id) or their roles. While the names are somewhat self-explanatory, the description adds no meaning beyond the schema, leaving the agent without guidance on required inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the specific resource ('SysML Association Block'), and clarifies the concept as 'AssociationClass + Block stereotype'. This precisely distinguishes it from sibling tools like create_association and create_block, which target different SysML constructs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention scenarios where create_association or create_block would be more appropriate, nor any prerequisites or contextual constraints. The agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_binding_connectorB
Create a BindingConnector (SysML equal-value constraint) between two properties/ports.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| parent_id | Yes | ||
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the creation action without mentioning side effects, reversibility, required permissions, or any impact on existing model elements. For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundancy. Every word contributes to identifying the action and resource, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description does not cover essential context such as what parent_id refers to, how the connector is placed in the model hierarchy, or what the return value contains. For a creation tool with four parameters, the description is too minimal to be considered complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It adds meaning for source_id and target_id by indicating they are 'properties/ports', but it does not explain parent_id or the optional name parameter. This partial clarification helps but leaves gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'BindingConnector', and clarifies it as a 'SysML equal-value constraint' between two properties/ports. This distinctly identifies the tool's function and differentiates it from the generic create_connector sibling, which likely handles other connector types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for binding connectors specifically, but it does not explicitly state when to use this tool versus alternatives like create_connector or set_connection_ends. No direct comparison or exclusion is provided, leaving selection to inference from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_blockC
Create a SysML v1 Block under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Create', implying a mutation, but does not disclose side effects, required parent existence, error behavior, or reversibility. For a write operation with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is structurally efficient and front-loaded. However, it is under-specified, so while conciseness is achieved, it sacrifices necessary content. It is not the concise-but-complete ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two parameters and has an output schema, so return values are covered. But it omits crucial context: whether parent_id must exist, what happens on duplicate names, validation rules, or any side effects. Given no annotations, the description is incomplete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so both parameters (name, parent_id) are entirely undocumented in the schema. The description adds no meaning beyond the parameter names—it doesn't clarify what parent_id refers to, any format constraints, or relationships. The description fails to compensate for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and resource ('SysML v1 Block') with a location constraint ('under parent_id'). It is clear about what it does and can be distinguished from many sibling create_* tools by the element type, though it doesn't explicitly contrast with similar tools like create_interface_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. There are numerous create_* siblings, and the description provides no criteria for selection, no prerequisites, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_combined_fragmentA
Create a CombinedFragment in an Interaction. operator: alt | opt | loop | break | par | seq | strict | neg.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| operator | Yes | ||
| interaction_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the creation action, but does not mention side effects, required permissions, reversibility, or what happens if the Interaction does not exist. The presence of an output schema partially covers return values, but the mutation behavior is underexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and includes the key constraint (operator values). It is concise with no wasted words, achieving high efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple (3 required parameters), but the description lacks context on the meaning of interaction_id and name, and does not mention any prerequisites (e.g., the Interaction must exist). The output schema covers return values, but the description is not fully self-contained for an agent to call it correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds value by listing valid operator values ('alt | opt | loop | break | par | seq | strict | neg'), which is not in the schema. However, it provides no meaning for interaction_id or name, leaving those parameters underspecified. Partial compensation, but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a CombinedFragment') and the context ('in an Interaction'), which distinguishes it from other create_* tools for different UML elements. It also lists allowed operator values, reinforcing the specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It implies usage for creating a CombinedFragment, but lacks guidance on prerequisites (e.g., an existing Interaction) or when other create tools would be more appropriate. Given the large sibling set, explicit routing would improve the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_connectorC
Create a UML Connector between two ConnectableElements (ports, properties).
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| parent_id | Yes | ||
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears full responsibility for disclosing behavioral traits. It only states the creation action without any details about side effects, required permissions, reversibility, or what happens to the existing model. For a mutation tool, this is a critical gap – the agent cannot anticipate the impact of calling it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. It efficiently communicates the core action and the object types involved. It earns full marks for conciseness, though this efficiency comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (3 required), no annotations, and an output schema that is not described, the description is far too minimal. It does not explain the parent-child relationship, any constraints on source and target, or the expected return value. An agent would lack essential information to invoke this tool correctly and predict its effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It hints that source_id and target_id are the two ConnectableElements, but it does not clarify the role of parent_id or the name parameter. The description adds only marginal meaning over the schema field names, leaving the agent to infer the parent relationship.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (UML Connector), and the participants (ConnectableElements such as ports and properties). It is specific enough to distinguish from generic create_element, though it does not explicitly differentiate from other connector-creating siblings like create_association or create_binding_connector.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention conditions, exclusions, or scenarios where a different creation tool would be appropriate. The intended use case is only implied by the phrase 'between two ConnectableElements', which is not sufficient for an agent to choose confidently among many sibling create tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_constraint_blockC
Create a SysML ConstraintBlock under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'Create', which implies a mutation, but gives no details about side effects, requirements on parent_id, idempotency, or any post-conditions. For a creation tool, one would expect at least a note that a new element is added to the model and what happens if the parent is invalid. This is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It front-loads the core action ('Create a SysML ConstraintBlock') and includes the key contextual detail (parent_id). It is perfectly sized for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with two parameters, the description is minimal but lacks context about prerequisites, such as whether parent_id must reference a valid container, or how this fits into the broader model hierarchy. It also provides no usage guidance relative to the many sibling tools. While the output schema exists (so return values are covered), the description alone leaves an agent uncertain about when and how to call it correctly. More context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does clarify that parent_id is the parent under which the ConstraintBlock is created, which gives semantic meaning to that parameter. However, it does not explain what type of element parent_id should be (e.g., a Package or Block) or any constraints on the name. The name parameter is self-explanatory. The description adds minimal value beyond the schema, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create') and a specific resource ('SysML ConstraintBlock') and mentions the parent context ('under parent_id'). It is clear and not a tautology, though it does not explicitly differentiate from sibling create tools like create_block or create_interface_block. The resource name itself provides some distinction, so this is a solid 4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the many other creation tools in the sibling list. No alternatives are mentioned, and no conditions or prerequisites are stated. The agent must infer usage solely from the name and description, which is inadequate for a suite with dozens of creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_constraint_propertyC
Create a ConstraintProperty typed by a ConstraintBlock.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes | ||
| constraint_block_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states that a ConstraintProperty is created; it does not mention prerequisites, side effects, ownership semantics, error conditions, or whether the operation is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler or redundancy. It is efficient, though it could have used the available space to include more parameter or usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three required parameters, no annotations, and zero schema descriptions, the description is too thin to fully equip an agent to call the tool correctly. The presence of an output schema helps with return values, but not with required parameter semantics or behavioral expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description adds little parameter detail. 'Typed by a ConstraintBlock' hints at constraint_block_id's role, but parent_id and name are left entirely to inference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Create a ConstraintProperty typed by a ConstraintBlock.' This clearly identifies both what is created and its type, distinguishing it from sibling tools like create_value_property or create_part_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to use this tool versus alternatives. The only signal is the resource type, which lets an agent infer a use case but does not state when not to use it or which sibling tool to prefer in other situations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_control_flowB
Create a ControlFlow edge between two ActivityNodes within an Activity.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes | ||
| activity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Create' without mentioning side effects, validation requirements, or return behavior. An agent cannot anticipate failure modes or the result of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous words. It communicates the core action efficiently, though this conciseness sacrifices detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with three required parameters and no annotations, the description is far too sparse. It omits parameter semantics, usage context, and any behavioral details, making it inadequate for an agent to call correctly without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description fails to explain the parameters. It mentions 'between two ActivityNodes' but doesn't map source_id/target_id to those nodes or clarify activity_id's role. The parameter names alone are insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'ControlFlow edge', and the context 'between two ActivityNodes within an Activity'. This distinguishes it from siblings like create_object_flow or create_connector, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description implies activity diagram usage but offers no explicit conditions or exclusions, leaving the agent to infer selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_diagramB
Create a SysML diagram. kind: BDD, IBD, Parametric, Requirement, Activity, StateMachine, UseCase, Package, Sequence.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Create' without revealing whether the operation is reversible, what permissions are required, or what happens on invalid parent IDs. The description provides no behavioral details beyond the action itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the core action and immediately lists the allowed kinds. No filler or redundant phrasing; every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with three parameters and no annotations, the description is sparse. It does not explain the expected structure of 'parent_id', the return value (even though an output schema exists, it is not described), or any constraints on the diagram kind or parent. Given the tool's simplicity, more context on the parent relationship and valid kinds would be needed for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists the valid values for the 'kind' parameter, which adds meaning beyond the schema (which has no descriptions for any parameter). However, it does not explain 'parent_id' or 'name', leaving them to inference. Since schema coverage is 0%, this partial compensation is helpful but insufficient for full parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Create a SysML diagram') and lists the accepted diagram kinds (BDD, IBD, etc.), which clearly identifies the resource and distinguishes it from element-creation siblings like create_block or create_use_case. An agent can immediately know this tool is for diagrams, not other model elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for creating new diagrams, but it does not specify when to use it versus alternatives, nor does it mention prerequisites such as the parent_id needing to be a package or model. No exclusions are given, leaving the usage context vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_elementC
Create a SysML v1 element of the given type under parent_id. Valid types: Block, Package, Requirement, ConstraintBlock, ValueType, InterfaceBlock, FlowPort, ProxyPort, FullPort, PartProperty, ValueProperty, ReferenceProperty, UseCase, Activity, StateMachine, State, Action, Actor, Signal, Class, DataType, Enumeration, Interface.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes | ||
| element_type | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden of behavioral disclosure. It states the action (create) and lists valid types, but does not mention side effects, validation rules, error behavior, permissions, or reversibility. The type list adds some context but not behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with the purpose front-loaded and the type list appended. It is concise and avoids redundancy, though the long type list could be seen as clutter better placed in the schema. Overall, it is appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of many specialized creation tools, a generic creator should explain when it is appropriate to use. The description omits this entirely, leaving the agent without sufficient context to choose correctly. The output schema exists, so return format is covered, but the core decision context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It lists valid values for element_type, which adds meaning for that parameter. However, parent_id and name are not elaborated beyond their names, which are self-explanatory but lack format or constraints. The description provides partial compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb and resource: 'Create a SysML v1 element of the given type under parent_id.' It also enumerates valid element types, giving a concrete sense of scope. However, it does not explicitly differentiate from the many specialized sibling creators (e.g., create_block, create_part_property), so an agent may not know this is the generic fallback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this generic creator versus the specialized creators that exist as siblings. The description offers no conditions, exclusions, or comparisons to alternatives, leaving the choice entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_enumerationB
Create an Enumeration with the given literal names under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| literals | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states that it creates an enumeration, but does not disclose any behavioral traits such as side effects, prerequisites (e.g., does parent_id need to exist?), validation rules for literals, or whether the operation is reversible. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-formed sentence with no unnecessary words. It is front-loaded with the action and resource, and every phrase adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists (so return format is covered), the description is too thin for a creation operation. It does not address what happens on invalid parent_id, whether literals have format constraints, or any side effects on the model. With no annotations and minimal description, an agent lacks critical context to invoke this safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'literal names' (covering literals) and 'under parent_id' (covering parent_id), but does not explicitly explain the 'name' parameter (the enumeration's own name). Since two of three parameters are only implicitly referenced, the description adds some meaning but leaves the name ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Create), resource (Enumeration), and the context (under parent_id). It distinguishes this tool from the many other create_* siblings by naming the specific resource type, so an agent can tell it apart without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this when you need to create an enumeration. However, it does not explicitly state when not to use it or mention any alternatives. Given the large sibling list, explicit guidance would help, but the purpose is clear enough to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_flow_portC
Create a SysML FlowPort on a Block.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action but doesn't disclose side effects, validation requirements (e.g., parent must be a Block), reversibility, or permissions. For a creation tool, this is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no filler. It earns its place by stating the core purpose, though it could be more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema details, and parameter explanations, the description is inadequate for an agent to understand prerequisites, expected behavior, or potential errors. The tool is simple but still needs more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage, and the description adds no parameter explanations. The names 'name' and 'parent_id' are self-explanatory to a degree, but no constraints or meaning beyond the names are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a SysML FlowPort on a Block, specifying the verb, resource, and target. It distinguishes from other port creation tools by name, though it doesn't explicitly contrast with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus other port creation tools (e.g., create_proxy_port, create_full_port). No context about prerequisites or when a FlowPort is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_flow_propertyB
Create a SysML FlowProperty. direction: in | out | inout.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| direction | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carrries the full disclosure burden. It communicates that the tool creates a FlowProperty and allows three direction values, but it omits prerequisites, parent relationship behavior, and any side effects, which is a gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one tight sentence plus a short value list. It front-loads the action and adds no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple, the description leaves parent_id semantics unexplained and gives no usage context or alternatives. The output schema might document the return value, but the description still does not set expectations for the parent element or how this fits into SysML modeling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, so the description must compensate. It adds meaning to 'direction' by specifying in/out/inout, but it does not explain what parent_id refers to or any constraints on name. Most parameters remain opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Create') and resource ('SysML FlowProperty'), and lists the legal direction values. This differentiates it from nearby siblings like create_flow_port and create_flow_specification by naming the exact element type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, nor any mention of alternatives. The intended usage is implied by the resource name, but the agent receives no help choosing between this and related flow/element creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_flow_specificationC
Create a SysML FlowSpecification (Interface + FlowSpecification stereotype).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that it creates a FlowSpecification, but does not describe side effects (e.g., where the element is added, whether it inherits from a parent, how stereotypes are applied), permissions, or return behavior. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence with no fluff, which is concise. However, it is too brief to be effective; it lacks critical details about parameters, usage, and behavior. It is under-specified rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's purpose (creating a SysML element) and the presence of many sibling creation tools, the description is incomplete. It does not explain what a FlowSpecification is, how it relates to stereotypes, or what the parameters mean. The output schema exists but is not detailed here, so the description should provide more context. This is inadequate for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not mention the parameters 'parent_id' or 'name' at all. It provides no meaning beyond the parameter names themselves, leaving the agent to infer what 'parent_id' refers to or how 'name' is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'SysML FlowSpecification', and adds clarification that it is an Interface with a FlowSpecification stereotype. This distinguishes it from similar tools like create_interface_block or create_flow_port, though it could be more explicit about when to use it over those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings. The description does not mention prerequisites, alternative tools, or specific scenarios. An agent would not know if this is the right tool for a given task compared to create_interface_block or apply_stereotype.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_full_portC
Create a SysML FullPort on a Block.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states the action without disclosing side effects, mutation implications, or requirements like whether parent_id must reference an existing block. This is insufficient for a model-mutating operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is appropriately front-loaded with the core purpose. However, it is under-specified to the point of being unhelpful; conciseness is achieved at the expense of essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with two required parameters and an output schema, the description should at least clarify the role of each parameter and any contextual constraints. It does none of this, leaving the agent to guess about the parent block relationship and return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of 'name' or 'parent_id'. An agent cannot infer that parent_id is the block's identifier or what naming constraints apply. The description adds zero value beyond the schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Create), the resource (SysML FullPort), and the target (a Block). It distinguishes from other port creation tools by naming the specific port type, though it doesn't explicitly contrast with create_proxy_port or create_flow_port.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus the many sibling creation tools. It doesn't mention alternatives, prerequisites (e.g., parent block must exist), or any exclusions. The agent is left to infer when a FullPort is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_generalizationC
Create a UML Generalization from a specific to a general classifier.
| Name | Required | Description | Default |
|---|---|---|---|
| general_id | Yes | ||
| specific_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that a generalization is created, but does not mention side effects, required element types, validation, reversibility, or any error conditions. For a mutation tool this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, which is efficient, but it omits essential context. The structure is front-loaded with the main purpose, but the brevity works against completeness—it could be slightly expanded to include parameter clarifications without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (creating a relationship between two classifiers) and the lack of annotations or schema descriptions, the description is inadequate. An output schema exists, which may document the return value, but the description does not cover usage context, prerequisites, or error handling, leaving critical gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, and the description does not explain what specific_id and general_id represent beyond the schema titles. It does not clarify that these are element IDs, their required types, or any constraints, so it adds no meaning over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (create) and resource (UML Generalization) and specifies the direction from specific to general. It is distinguishable from other create_* tools by naming the relationship type, though it does not explicitly contrast with sibling tools like create_dependency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as create_association or create_dependency. There are no mentions of prerequisites, exclusions, or typical scenarios, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_interactionC
Create a UML Interaction (container for sequence diagram content).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden for behavioral disclosure. It only says 'create', implying mutation, but provides no details about side effects, required permissions, reversibility, or what the response will look like. For a create operation this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler or redundancy. It front-loads the verb and resource, and the parenthetical adds clarity without extra words. However, it is under-specified, which hurts overall usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no annotation coverage and the schema provides no parameter descriptions, the description is far too minimal. It does not explain the meaning of 'parent_id', the expected structure of an Interaction, or any return value. An output schema exists but is not visible here, so the description must carry more weight.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention the 'name' or 'parent_id' parameters at all. An agent has no idea what values to supply or what the parameters represent, making correct invocation highly unlikely without external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a UML Interaction and adds a helpful parenthetical explaining it as a container for sequence diagram content. This distinguishes it from other create_* tools (e.g., create_block) but does not explicitly compare to similar sequence diagram elements like create_combined_fragment or create_lifeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only states what it does, not the context or conditions under which an agent should choose it over other create_* tools. There is no mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_interface_blockC
Create a SysML InterfaceBlock under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a mutation (create) but does not mention side effects, prerequisites, or failure conditions. There is no information about whether the operation overwrites existing elements or validates the parent's existence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words, and it front-loads the action. However, it is under-specified, lacking detail about parameters and behavior. It is appropriately sized for a simple tool but does not earn its place beyond stating the obvious.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, return values are covered, but the description still lacks key context. There is no mention of required parent type, error handling, or how this relates to other create tools. For a mutating operation with no annotations, this is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'parent_id' but provides no meaning for it or the 'name' parameter. The schema only gives types; the description adds no semantic context beyond that. An agent cannot infer what values are appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a SysML InterfaceBlock, which is a specific resource type. This distinguishes it from sibling creation tools like create_block and create_constraint_block. The verb 'create' is explicit, and 'under parent_id' adds a location context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'under parent_id' implies the element is placed within a parent, but there is no explicit guidance on when to use this tool versus alternatives. The tool name itself suggests it's for InterfaceBlock, but no direct comparison or exclusion is given. Usage is inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_item_flowC
Create an ItemFlow on an existing Connector. The item_element_id must be a Classifier.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| connector_id | Yes | ||
| item_element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a mutation (create) and imposes a constraint, but does not mention potential side effects, permission requirements, reversibility, or failure behavior. The existence of an output schema is not reflected, and no return details are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences with no redundancy. It front-loads the primary purpose and immediately follows with a key constraint. Every word earns its place, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's context (a creation operation among many similar create_* tools), the description is too sparse. It does not explain what an ItemFlow is, how it relates to the connector, what the name parameter is for, or any constraints on connector_id. The output schema exists but is not described, and the description fails to provide sufficient guidance for an agent to call the tool correctly without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain all parameters. It only addresses item_element_id by stating it must be a Classifier. It omits any clarification for connector_id and name, leaving those parameters undefined beyond their schema titles. The description adds minimal value and does not compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create) and resource (ItemFlow on an existing Connector), which is specific and distinct from other flow-creation tools. It also adds a constraint on item_element_id, adding precision. However, it does not explicitly differentiate from siblings like create_control_flow or create_object_flow beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as create_control_flow or create_object_flow. It only states a prerequisite (item_element_id must be a Classifier), which is a constraint rather than usage context. No exclusions or alternative recommendations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_lifelineC
Create a Lifeline inside a UML Interaction.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| interaction_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It indicates a mutation ('Create') but provides no details on side effects, error conditions, or whether the interaction must exist. There is no mention of what the tool returns or how it handles invalid inputs, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the action and resource. There is no extraneous text, and it achieves maximum brevity while still conveying the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the description is too sparse for an agent to call it correctly without additional knowledge. It does not explain the relationship between the lifeline and the interaction, whether the interaction must be provided as an existing element, or what the output (despite an output schema being present) will look like. Key context such as prerequisites and expected parameter values is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description is responsible for explaining the parameters. It does not mention 'name' or 'interaction_id' at all. While the schema titles ('Name' and 'Interaction Id') give basic hints, the tool description adds no semantic meaning, leaving the agent to infer what values are expected and how they relate to the UML model.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Create') and a specific resource ('Lifeline inside a UML Interaction'). It distinguishes from other create_* tools by naming the exact element type, though it doesn't explicitly contrast with siblings like create_interaction or create_message. The purpose is unambiguous for users familiar with UML.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor are any prerequisites mentioned (e.g., the interaction must already exist). The description simply states the action without context on how it fits into the modeling workflow or when it should be chosen over similar creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_messageA
Create a Message between two Lifelines in an Interaction. Creates send/receive occurrence specs automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| interaction_id | Yes | ||
| sender_lifeline_id | Yes | ||
| receiver_lifeline_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that send/receive occurrence specs are automatically created, which is a useful behavioral detail. However, it doesn't mention prerequisites (e.g., lifelines must exist), whether the operation is reversible, or any side effects beyond the occurrence specs. For a create tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main purpose and a key behavioral side effect. No redundant words or irrelevant information. Efficiently structured for quick parsing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with only 4 parameters, and an output schema exists, so return values need not be described. The description covers the core behavior and side effect. It doesn't explicitly state that the lifelines and interaction must already exist, but that is implied by the operation. Overall, it's sufficiently complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It clarifies that interaction_id refers to the containing Interaction, and sender_lifeline_id/receiver_lifeline_id refer to the two Lifelines. The name parameter is self-explanatory. The description effectively maps all four required parameters to their roles, though it doesn't add format or constraint details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'Message', and specifies the context: between two Lifelines in an Interaction. It also adds a distinctive detail (automatic creation of send/receive occurrence specs) that differentiates it from sibling tools like create_lifeline or create_interaction. No ambiguity or tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when creating a message within an interaction, as opposed to other creation tools. It doesn't explicitly name alternatives or state conditions to avoid, but the purpose is so specific that an agent can infer the appropriate usage. Missing explicit 'use this instead of X' guidance, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_object_flowC
Create an ObjectFlow edge between two ActivityNodes within an Activity.
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes | ||
| activity_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only states the basic creation action and gives no information about side effects, prerequisites (e.g., that the ActivityNodes must already exist), validation, or error behavior. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the purpose efficiently with no wasted words. It is appropriately concise for a simple creation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no annotations, no parameter documentation, and no mention of prerequisites or return values, the description is too thin. Even for a simple tool, it lacks critical context such as the need for existing elements and the expected output, making it incomplete relative to the complexity of the action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the parameters. The names activity_id, source_id, and target_id are self-explanatory, but the description does not clarify that source and target are ActivityNodes or that activity is the containing Activity, leaving ambiguity about what IDs to provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: creating an ObjectFlow edge between two ActivityNodes within an Activity. The verb and resource are specific, and the context is given. However, it does not explicitly differentiate from create_control_flow or other edge-creation tools, so it relies on the type name to distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like create_control_flow or create_item_flow. No context about selection criteria or exclusions is provided, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_packageC
Create a UML Package under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Create' implies a mutating operation, but the description does not state whether permissions are needed, what happens if parent_id is invalid, whether the operation is reversible, or what the response/result looks like. An output schema exists but is not described in the input schema. This is a significant gap for a creation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no redundant phrasing. It front-loads the verb and resource. While it is arguably too terse to be fully helpful, it is not verbose and every word serves a purpose. The structure is clean and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutation tool with no annotations, an output schema that is not described, and a 0% parameter coverage, the description is inadequate. It omits crucial context such as what the created package contains, how the parent is identified, any side effects, and the return value. An agent cannot reliably invoke this tool without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lack of parameter explanations. It mentions 'under parent_id' which clarifies the role of parent_id, but it does not explain the 'name' parameter beyond its literal name, nor does it provide any details about ID formats, validation, or constraints. The description adds minimal semantic value over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb (Create) and resource (UML Package) with the location context (under parent_id). It distinguishes from generic creation tools like create_element by specifying the UML Package type. However, it does not differentiate from other package-related tools (if any) or explain the role of a package in the model, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like create_element, create_block, or other create_* tools. There is no mention of prerequisites (e.g., parent must exist) or scenarios where a different tool is more appropriate. The description leaves the agent to infer usage context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_part_propertyC
Create a PartProperty (typed composite part) under a Block.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It adds one useful constraint (parent must be a Block), but doesn't disclose what happens if the parent isn't a Block, whether the operation is validated, side effects, or the output. For a creation tool with zero annotation coverage, this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no wasted words. The core purpose is front-loaded and the clarifying parenthetical adds value without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values are covered. However, with two parameters at 0% schema coverage, no behavioral guidance, and no usage context, the description is incomplete for an agent deciding how to construct a valid call. More context on parameter semantics is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the schema provides no parameter meaning. The description implies parent_id refers to a Block, which is a partial hint, but neither name nor parent_id is described in the schema or the description. It fails to state what name should contain (e.g., the part name) or the format of parent_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Create), a specific resource (PartProperty), and its context ('under a Block'). The parenthetical '(typed composite part)' clarifies what a PartProperty is, helping distinguish it from siblings like create_value_property and create_reference_property. It's clear but doesn't explicitly name the siblings it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many sibling create_* tools (create_value_property, create_reference_property, create_constraint_property, etc.). The agent must infer the distinction from the resource type alone. There's no statement of preconditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_proxy_portC
Create a SysML ProxyPort on a Block.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action (create) and the target element, but does not mention side effects, required parent type, potential errors, or the return value. There is no indication that the parent must be a Block beyond the phrase 'on a Block', and no mention of what happens if the parent is invalid. This is a significant gap for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, grammatically correct sentence with no wasted words, so it is concise. However, it is overly terse—it lacks the substance needed to be helpful. The structure is acceptable, but the brevity results in an under-specification that harms overall quality. It could be longer without losing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool that creates a specific SysML element, the description is severely incomplete. It doesn't explain what a ProxyPort is, what the parent_id should reference, any constraints on the name, or the expected output. Even though an output schema exists, the description itself provides no context to help an agent understand the tool's role or constraints. Given the complexity of SysML modeling and the presence of many sibling creation tools, this level of detail is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for explaining the parameters. It does not explain that 'name' is the name of the new ProxyPort or that 'parent_id' is the identifier of the Block on which to create it. The description adds no meaning beyond the schema's property titles, which are minimal. An agent cannot confidently infer parameter semantics from this definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('create'), resource ('SysML ProxyPort'), and context ('on a Block'). This clearly indicates the tool's function and distinguishes it from other port-related tools like create_full_port and create_flow_port, though it doesn't explicitly name those alternatives. The purpose is unambiguous and actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus sibling tools that create other port types (e.g., create_full_port, create_flow_port). It doesn't mention any prerequisites, constraints, or conditions under which a ProxyPort should be chosen. An agent would have to infer usage from the resource name alone, which is insufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_reference_propertyC
Create a ReferenceProperty under a Block.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It only states what the tool does ('Create a ReferenceProperty') without mentioning side effects, permissions, or any constraints. No information about whether this is a mutation, what happens to the parent, or any other behavioral aspect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief (a single sentence), but brevity here results from under-specification rather than efficient writing. It lacks any contextual or usage detail that would make it useful. It is not well-structured for an agent to act on, as it omits essential guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a create operation with side effects, yet the description does not explain return values, side effects, or any preconditions. An output schema exists but that only covers return structure, not behavior. Given the complexity of model creation and the absence of annotations, the description is inadequate for an agent to call it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no parameter explanations. It doesn't mention what 'name' or 'parent_id' represent or how they should be used. The description adds zero semantic value beyond the raw schema field names, which are self-explanatory but not enriched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Create a ReferenceProperty under a Block.' It clearly identifies the object type (ReferenceProperty) and its location (under a Block), making the purpose distinct from many other create_* tools. However, it does not explicitly contrast with sibling tools like create_value_property or create_part_property, so it's clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No mention of prerequisites, context, or exclusions. The only hint is the name and description, which imply it is for creating reference properties, but no explicit 'use when' or 'instead of' guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_regionA
Create an additional Region inside a StateMachine or composite State (for concurrent/orthogonal regions).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It states 'Create an additional Region' which implies a mutation, but it does not disclose any side effects, permissions required, preconditions on the parent element, or error behavior. There is no mention of what happens if the parent is not a valid StateMachine or composite State. This is a significant gap for a create operation with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that front-loads the action and resource. Every word contributes to the meaning: 'Create an additional Region' states the action, 'inside a StateMachine or composite State' scopes the target, and '(for concurrent/orthogonal regions)' explains the purpose. There is no fluff or redundancy, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 parameters, no nested objects) and the presence of an output schema, the description need not explain return values. However, it lacks guidance on parameter usage (e.g., what name constraints exist, whether parent_id must be a specific type), and it does not mention preconditions or error handling. With no annotations, the description leaves the agent uncertain about the required inputs and the exact behavior. It covers the core purpose but misses essential operational details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the parameters. It does not explicitly map 'name' or 'parent_id' to their meanings. The phrase 'inside a StateMachine or composite State' implies parent_id is the target parent, but this is implicit and not directly tied to the parameter names. With two required parameters and zero schema documentation, the description fails to provide adequate semantic guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action (create) and the resource (an additional Region) with explicit context of where it applies (inside a StateMachine or composite State). It distinguishes this from siblings like create_state or create_transition by naming the specific element type and its purpose (concurrent/orthogonal regions). This is a specific and unambiguous statement of what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: it is for creating regions inside state machines or composite states, specifically for concurrency. It does not explicitly name alternatives or state when not to use it, but given the sibling list includes other creation tools, the context is sufficient to infer its niche. The lack of explicit exclusions prevents a 5, but it gives enough guidance for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_requirementA
Create a SysML Requirement element under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It transparently conveys that this is a create/add operation and clarifies the parent-child relationship. However, it does not mention return behavior, error conditions, or any model-write implications beyond the verb 'Create'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every word contributes meaning and the operation is stated immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two required string parameters and an output schema available. The description covers what is created and where. Additional constraints like requiring an existing parent_id would be useful, but the description is largely sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives context for parent_id as the container under which the requirement is created, but it does not explicitly explain the name parameter. The parameter names are self-explanatory, but the description only partially compensates for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Create'), a specific resource ('SysML Requirement element'), and the location ('under parent_id'). This clearly distinguishes it from generic create_element and other typed create_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use this tool when creating a SysML Requirement element as a child of a parent. It does not explicitly name alternatives or exclusions, but the intended use case is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_root_modelB
Set or rename the root model element. Returns the root model id and name.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Model |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it returns the root model id and name, but does not mention whether this is a destructive operation, any permission requirements, or side effects on existing model structure. For a write operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, and the action is front-loaded. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core function and return value. However, as a mutation with no annotations, it omits behavioral details (side effects, permissions) and assumes the agent understands what a 'root model element' is. The output schema likely provides return details, but the description's gaps lower completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'name' is self-explanatory from the schema (with a default of 'Model'). The description implies that this sets the new name but adds minimal value beyond the schema. Since schema coverage is 0%, the description could have clarified that 'name' is the desired root element name, but it's not essential.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Set or rename) and the resource (root model element), which distinguishes it from siblings like rename_element that target arbitrary elements. However, it doesn't explicitly define what a 'root model element' is, leaving some ambiguity for agents unfamiliar with the domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It is implied that this is for the root element only, but the description does not explicitly say 'use rename_element for non-root elements' or mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_stateA
Create a State inside a Region. Set is_initial='true' for an initial Pseudostate, is_final='true' for a FinalState.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| is_final | No | false | |
| region_id | Yes | ||
| is_initial | No | false |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that setting is_initial creates a Pseudostate and is_final creates a FinalState, which is behavioral. However, it doesn't mention potential side effects, prerequisites (e.g., region must exist), or failure modes. It also doesn't state whether the flags are mutually exclusive. This is moderate disclosure but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. The first states the core purpose, the second explains the flag usage. No fluff, every word contributes. The most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool with an output schema, the description covers the essential aspects: what it creates, where, and the special cases. It doesn't mention mutual exclusivity of the flags or prerequisites, but these are minor for a straightforward tool. The output schema likely handles return values, so that's not needed. Overall, it's fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the meaning of is_initial and is_final, and implicitly ties region_id to the region. However, it doesn't elaborate on the format of region_id or any constraints on name. It adds some value but not complete compensation for the lack of schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create'), the resource ('State'), and the location ('inside a Region'). It also distinguishes from sibling tools like create_state_machine and create_region by focusing on the state creation within an existing region. The additional note about initial and final pseudostates clarifies the tool's full scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when creating a state (or initial/final pseudostate) within a region. It doesn't explicitly name alternatives or exclusions, but the context is clear given the sibling list. The flag instructions provide guidance on how to create different kinds of states, which is useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_state_machineA
Create a UML StateMachine (with a default Region) owned by parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does mention that a default Region is automatically created, which is a valuable side effect. However, it does not disclose prerequisites (e.g., valid parent type), reversibility, or error behavior. The description is minimal but includes one key behavioral detail, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the main action and includes essential details without redundancy. Every word earns its place, and there is no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 required parameters, no nested objects) and has an output schema. The description states what it does and the default Region behavior. However, it omits constraints on parent_id (e.g., must be a package or classifier) and does not mention any failure conditions. For a create operation, this is adequate but not fully complete, so a 3 is reasonable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It clarifies that parent_id is the owner (owned by parent_id), but does not explicitly define the name parameter, though it is implied as the state machine's name. The description adds some meaning for parent_id but not enough to fully compensate for the missing schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action (Create) and resource (UML StateMachine), and adds a distinguishing detail (with a default Region) and ownership (owned by parent_id). This differentiates it from sibling tools like create_region, create_state, and create_transition, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. While the name and description imply it is for state machines, there is no explicit mention of alternatives or conditions, such as using create_element for generic creation or create_region for nested regions. The description does not help an agent decide between this and other create_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_transitionA
Create a UML Transition between two Vertex elements (States/Pseudostates) in a StateMachine.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | Yes | ||
| source_id | Yes | ||
| target_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the creating effect but does not mention side effects, ownership/containment requirements, diagram-symbol behavior, or failure conditions. This is a minimal mutation disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no filler. Every phrase adds information: the operation, the resource, the allowed endpoint types, and the owning context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values, and the description covers the basic creation intent, but it omits the relationship to the broader state-machine structure and prerequisites for the three IDs. This is adequate for a simple create tool but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It adds meaning by indicating that source_id and target_id should be Vertex elements (States/Pseudostates) and that parent_id is a StateMachine. However, it does not fully map each parameter or explain constraints such as containment or distinctness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Create'), a precise UML resource ('Transition'), and the exact element types involved ('two Vertex elements (States/Pseudostates) in a StateMachine'). This makes it distinguishable from siblings such as create_connector, create_control_flow, and create_message without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The StateMachine and Vertex context implies when the tool is appropriate, but there is no explicit guidance about when not to use it or which sibling alternatives to choose. Unlike a stronger description, it does not name a differentiating alternative such as create_connector or create_control_flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_use_caseC
Create a UseCase element under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states that it creates an element, implying a write operation, but does not disclose side effects, permissions, error conditions, or any behavior beyond the basic action. There is no contradiction with annotations (none exist), but the description is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core action. It is efficient with no wasted words, though it is so brief that it sacrifices substance for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two required parameters and no annotations or output schema details, the description is incomplete. It does not explain the purpose of a UseCase, any constraints (e.g., uniqueness of name), or what the tool returns. An agent would need to infer too much to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions parent_id as the parent context, adding some meaning, but it does not explain the 'name' parameter at all. The description only partially clarifies the parameters, leaving the agent to guess the semantics of 'name' beyond its title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('UseCase element'), and specifies the parent context via 'under parent_id'. This is specific enough to distinguish from other create_* siblings, though it doesn't elaborate on what a UseCase element is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With dozens of create_* siblings, the agent must infer from the element type name alone; there is no explicit when-to-use or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_value_propertyB
Create a ValueProperty (scalar attribute) under a Block.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only says 'Create', implying mutation, but gives no details about permissions, side effects, reversibility, or what happens to existing data. The description is minimal and lacks behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no fluff. It is appropriately short, though it could be slightly more informative without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two required parameters and no annotations, the description is too thin. It lacks any guidance on parameter values, expected behavior, or how it fits into the broader model structure. The presence of an output schema doesn't excuse the lack of input semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. However, it does not mention the parameters 'name' or 'parent_id' at all, nor their meaning, formats, or relationships. The agent gets no guidance beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create', the resource 'ValueProperty', and the parent context 'under a Block'. This distinguishes it from sibling tools like create_part_property or create_reference_property, which are different property types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by naming the specific property type (scalar attribute) and parent (Block), but does not explicitly state when to choose this over alternatives like create_part_property or create_reference_property. No exclusions or alternative conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_value_typeB
Create a SysML ValueType under parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the creation action without disclosing any side effects, requirements, or behavior. It does not mention whether it returns the created element, what happens if parent_id is invalid, or any permission requirements. With no annotations provided, the description carries the full burden and falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one concise sentence, front-loaded with the action and resource. It contains no unnecessary words and is highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool and the presence of an output schema, the description is minimally adequate. However, it lacks guidance on when to use this versus other creation tools, and it does not mention any special behaviors or return conventions. For a straightforward create operation it is sufficient but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal meaning: 'under parent_id' clarifies that parent_id is the parent container. However, it does not explain the 'name' parameter beyond its obvious meaning. Since schema coverage is 0% (no parameter descriptions in the schema), the description partially compensates but remains thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create), the resource (SysML ValueType), and the parent context (under parent_id). It distinguishes from siblings like create_block and create_value_property by explicitly naming the type being created.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that create_value_property is for value properties, nor does it offer any exclusion criteria or context for selecting this tool over other creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_elementB
Permanently delete an element from the model.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses permanence, which is a key trait, but it does not mention any required permissions, potential cascading effects on related elements, or whether the operation can be reversed (beyond 'permanently'). This is minimal for a mutation tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the critical action ('Permanently delete') and the resource. It is concise with no wasted words, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter, the description is too sparse. It does not explain what constitutes an 'element', how to identify it, or what consequences deleting it has on the rest of the model. The existence of an output schema mitigates the need to describe return values, but the description still lacks essential context for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description does not mention the element_id parameter at all. It provides no guidance on what the parameter is, its format, or how to obtain it. The description fails to compensate for the schema's lack of detail, leaving the agent without essential parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('delete'), a clear resource ('element'), and the scope ('from the model'). It is distinct from sibling tools like rename_element or create_element, and the word 'permanently' adds crucial irreversibility context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when you want to remove an element), but it offers no explicit guidance on when not to use it or what alternatives exist (e.g., undo or soft delete). No exclusions or alternatives are mentioned, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
describe_elementC
Return rich description of an element including stereotypes and tagged values.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral disclosure burden. It only states that the tool returns a description, implying a read operation, but does not explicitly state it is non-mutating, does not mention error behavior for invalid element_id, or any access requirements. This is insufficient for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded with the primary action. It has no wasted words and is appropriately terse for a simple getter, though it could benefit from a bit more detail without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not explain return values, but it lacks guidance on when to use the tool and any behavioral caveats. For a tool with one parameter and no annotations, the description is minimally adequate but leaves gaps in usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description does not mention the element_id parameter at all. It adds no meaning beyond the schema, which only provides the name and type. For a tool with a single parameter, the description should at least hint at what the ID refers to or any constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (return) and the resource (rich description of an element) and specifies the content (stereotypes and tagged values). It distinguishes itself from siblings like get_element or get_element_structure by emphasizing the 'rich' nature and specific fields, though it does not explicitly name alternative tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus other getter tools such as get_element or list_applied_stereotypes. There is no context about when this richer description is needed, nor any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_dev_modeB
Disable developer mode. Requires the write secret.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosure. It reveals an authentication requirement (write secret) and implies a state change, but does not describe side effects, reversibility, or consequences of disabling dev mode. This is a minimal but not wholly absent disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with zero wasted words. It front-loads the purpose and immediately follows with the critical prerequisite.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle action with one parameter, the description covers the essential purpose and a key requirement. The presence of an output schema reduces the need to explain return values, but the description omits any mention of success/failure indicators, error scenarios, or state confirmation, leaving some ambiguity for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the undocumented 'secret' parameter. It indicates the secret is for write access, but does not explain its format, source, or why it is required beyond a simple prerequisite. The semantic value added is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'disable' and the resource 'developer mode', making the purpose obvious. It implicitly differentiates from the sibling 'enable_dev_mode', though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions a prerequisite (write secret) but provides no guidance on when to use this tool versus alternatives like enable_dev_mode or the other write toggles. No context about typical workflows or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
disable_writesC
Disable write operations. Requires the write secret.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It states the operation but not the consequences: whether writes are disabled globally or per session, if it is reversible (presumably via enable_writes), or what happens to in-flight operations. The secret requirement is a precondition, not a behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words, and the core action is front-loaded. It is efficient and easy to parse, though it omits important details that would make it more useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a safety-critical tool that globally disables writes, the description is too sparse. It does not mention reversibility, scope, or side effects, and although an output schema exists, the description provides no context about what the call returns. An agent might invoke it without understanding the full impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description only says 'Requires the write secret', which adds a little meaning ('write secret' vs just 'secret') but does not explain what the secret is, how to obtain it, or its format. The description does not compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Disable write operations') and the resource affected, which is distinct from siblings like enable_writes. It also mentions a key precondition (the write secret), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like disable_dev_mode or enable_writes. It only states a prerequisite (the secret), not the context or circumstances under which an agent should invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_dangerous_writesA
Enable dangerous write operations (delete, structural changes). Requires the write secret.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that a write secret is required and that it enables delete and structural changes, which is useful. However, it does not explain whether this is a persistent mode toggle, whether it is reversible, or what the response looks like. The behavioral footprint is only partially covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates purpose and a prerequisite without any filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with an output schema, the description covers the core purpose and the secret requirement. Missing are explicit usage guidance versus siblings (like enable_writes) and any side effects or statefulness. Given the simplicity, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the single parameter 'secret'. It does so by stating 'Requires the write secret', which gives context that the secret is a credential needed for the operation. However, it does not explain what the secret is, how to obtain it, or its format. This is minimal but not empty.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb (enable) and resource (dangerous write operations) with concrete examples (delete, structural changes). This distinguishes it from sibling tools like enable_writes, which likely handles normal writes, and delete_element, which is a specific operation. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when dangerous operations are needed) but does not explicitly contrast it with enable_writes or disable_writes. It mentions the secret requirement as a condition but offers no exclusions or alternative routing. An agent would need to infer the boundary from the name and examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_dev_modeC
Enable developer mode. Requires the write secret.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action and the required secret but does not disclose side effects, reversibility (though disable_dev_mode exists), idempotency, or what changes occur in the system. This is minimal and leaves the agent guessing about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no fluff. The purpose is front-loaded and the requirement is stated second. It is efficient for a simple tool, though it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mode toggle with an output schema (present but not shown), the description still omits key behavioral context: what developer mode enables, whether it is safe to call repeatedly, and what the output represents. With no annotations, this is inadequate for an agent to call it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameter. It only says 'Requires the write secret', which clarifies it is a secret for write operations, but doesn't specify format, origin, or validity conditions. This is insufficient to compensate for the missing schema detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Enable developer mode') and identifies the resource (developer mode). It distinguishes from siblings like disable_dev_mode by the verb. However, it doesn't explain what developer mode entails or its scope, which is a minor gap but not a fundamental one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as enable_writes or enable_dangerous_writes. It only mentions the requirement of the write secret, which is a prerequisite but not a selection criterion. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enable_writesC
Enable write operations. Requires the write secret.
| Name | Required | Description | Default |
|---|---|---|---|
| secret | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Enable write operations' without describing side effects, reversibility, authentication failure behavior, or what happens to existing write permissions. The tool is clearly a mutation, but the description doesn't disclose what changes occur beyond a generic enable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two short sentences, front-loading the purpose and then stating the requirement. It is efficient and easy to parse, though the brevity limits its completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of many sibling tools with overlapping functionality, the description is incomplete. It doesn't explain how this tool relates to 'enable_dangerous_writes' or 'disable_writes', nor does it describe what 'write operations' means in this model context. The output schema exists but is not shown, so the description must provide more context for correct invocation, especially regarding when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It adds the clarification that the 'secret' parameter is 'the write secret', giving some context. However, it doesn't explain the secret's format, origin, or how it's validated. The description adds minimal value over the bare parameter title.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Enable write operations' which is a clear verb+resource purpose. However, it doesn't distinguish from the sibling tool 'enable_dangerous_writes' which likely has a similar purpose but different implications. The agent might confuse them without additional context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Requires the write secret' which is a prerequisite, but it doesn't provide any guidance on when to use this tool versus alternatives like 'disable_writes', 'enable_dangerous_writes', or 'enable_dev_mode'. No when-to-use or when-not-to-use instructions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_groovyA
Execute Groovy script inside CATIA Magic's JVM with full SysML v1 API access. Requires dev mode active on the plugin side (see enable_dev_mode). Dev mode is a plugin-lifetime capability: it can only be enabled if JGS_V2_DEV_SECRET was set in the CATIA Magic process environment at startup, and the client must supply the matching secret value to enable_dev_mode. Dev mode is independent of licence tier: a FREE-tier client whose plugin was launched with JGS_V2_DEV_SECRET set can still enable dev mode and call execute_groovy. The env var is the security control.
A 'helpers' object is pre-loaded with convenience methods for the v1 (UML/MagicDraw-profile) API. All stereotype names are SysML profile names (e.g. "Block", "Requirement", "Satisfy") — strings, NOT classes:
helpers.findByQN('Model::Pkg::Element') — find by qualified name; returns the Element or null.
helpers.createElement(parent, 'name', factoryFn, stereotypeName=null)
— create element under parent. factoryFn is a 0-arg closure returning a fresh
element from project.elementsFactory, e.g.
{ project.elementsFactory.createClassInstance() } (for Block / Requirement)
{ project.elementsFactory.createPackageInstance() } (for Package)
Optionally applies a SysML stereotype by name.
helpers.applyStereotype(element, 'Block') — apply a SysML stereotype by name (uses StereotypesHelper internally).
helpers.setTaggedValue(element, 'Requirement', 'id', 'REQ-001') — set a stereotype-tagged property value.
helpers.getTaggedValue(element, 'Requirement', 'id') — read a stereotype-tagged property value; returns a List (may be empty) or null.
The 'project' binding is pre-loaded with the currently-open Project instance.
Returns a pretty-printed JSON string (str, not dict — intentional: LLM consumers parse the indented JSON for readability, matching v2's macro_tools convention; other v1 tools return dict because FastMCP auto-serialises them, which is fine for non-LLM-facing payloads).
JSON shape (matches v2's executeGroovyStatic exactly): success (bool): true on successful eval, false on exception result (str): script return value via String.valueOf, "null" if script returned null. Only present when success. output (str): captured stdout/stderr from the script error (str): exception message. Only present when not success.
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden and handles it thoroughly. It discloses the return type (str, not dict), the exact JSON shape including conditional fields, stdout/stderr capture, exception behavior, pre-loaded bindings, helper semantics, and the dev-mode security control. This is far beyond what an annotation set would typically provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every section earns its place: purpose, security prerequisite, helper API reference, binding explanation, and return format. It is front-loaded with the core purpose and uses code blocks and bullets for scannability. For a tool this general-purpose, the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no annotations, and a nontrivial execution environment, the description is remarkably complete. It covers prerequisites, security model, helper methods, available bindings, exception behavior, and output schema. There is no significant missing context that would prevent correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and only names 'script', so the description must compensate. It does so richly by showing what the script should contain, giving usable helper examples, and explaining the available 'project' binding and return contract. The agent gets enough concrete grounding to construct valid Groovy script content despite no schema-level parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action, resource, and scope: 'Execute Groovy script inside CATIA Magic's JVM with full SysML v1 API access.' This distinguishes it from the many specialized sibling tools by presenting it as a generic script-execution endpoint with broad API access. The level of detail makes the tool's role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says dev mode must be active and points to enable_dev_mode, explaining the security condition and licence independence. It does not spell out 'prefer a dedicated sibling tool for single-purpose changes,' but the context strongly implies execute_groovy is the advanced escape hatch. This is clear usage guidance with a small gap around alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_diagram_imageA
Export a diagram as a JPEG image (base64 encoded, max 1024px).
Returns MCP ImageContent containing the resized diagram image. The image is re-encoded as JPEG for compatibility with the Claude API.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the output type (MCP ImageContent), the resizing to max 1024px, and the JPEG re-encoding for Claude API compatibility. However, it does not explicitly state whether the operation is read-only or if any side effects occur, and with no annotations the description carries the full burden of behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the core action ('Export a diagram as a JPEG image') and then providing necessary details. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool with one parameter, the description covers the output format and key constraints (max size, encoding). It lacks context on how to get diagram_id and does not mention error conditions, but overall it is reasonably complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for the single parameter diagram_id, and the description does not add any details about what diagram_id represents or how to obtain it. The description fails to compensate for the schema gap, leaving the parameter under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool exports a diagram as a JPEG image, specifying format, encoding (base64), and max size (1024px). It clearly differentiates from all sibling tools, none of which perform image export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions, exclusions, or related tools such as list_diagrams or export_requirements_matrix, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_requirements_matrixA
Return a full requirements traceability matrix with satisfy/verify links.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose whether the operation is read-only, has performance implications, or if there are any constraints on the output (e.g., size limits). While 'export' suggests a safe read operation, this is not stated explicitly, leaving behavioral traits unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero fluff. The core action and output are immediately stated, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return structure is covered. However, the description is ambiguous about scope: 'full' could mean all requirements, and 'satisfy/verify links' might exclude other link types (e.g., derive, trace). This ambiguity could lead to incorrect expectations despite the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema is empty with 100% coverage. The description adds no parameter-specific information, but this is trivially acceptable. Baseline for 0 params is 4, and no additional explanation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Return') on a specific resource ('full requirements traceability matrix') and specifies the content ('satisfy/verify links'). This clearly differentiates it from sibling tools like trace_requirement (per-element) and check_requirement_coverage (coverage checking).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for obtaining a complete matrix, but does not explicitly state when to use it over alternatives like trace_requirement or check_requirement_coverage. There is no guidance on when not to use it, leaving the agent to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_by_nameC
Find all elements whose name contains the given string. Returns list of matches.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says it returns a list of matches, but does not state whether the search is case-sensitive, whether it covers all element types, or whether it has any side effects. This is insufficient for a read tool without annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the action and result. There is no filler or redundancy, making it highly concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description does not need to detail the return values. However, it lacks critical context about the scope of the search (all elements?) and how it relates to sibling search tools. This incompleteness could lead an agent to use the wrong tool or misinterpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, so the description must explain the parameter. It clarifies that the 'name' parameter is the string to search for, but it does not add details like case sensitivity, format, or regex support. This is a minimal but adequate explanation given there is only one parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Find all elements') and the condition (name contains the given string), which makes the purpose obvious. However, it does not differentiate from siblings like find_by_type or find_by_qualified_name, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as find_by_type, find_by_qualified_name, or search. There are no exclusions or conditions that would help an agent decide between them, leaving the choice to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_by_qualified_nameB
Find an element by its fully-qualified name (e.g. 'Model::Package::Block').
| Name | Required | Description | Default |
|---|---|---|---|
| qualified_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden. It does not disclose whether the operation is read-only, how errors are handled (e.g., not found), or any side effects. While 'find' implies a read, nothing about failure modes or performance is provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the core purpose and includes an example. No redundant words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter lookup with an output schema present, the description is nearly complete. It conveys the input format and purpose. It could mention whether a missing element throws or returns null, but the output schema likely covers the return type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does add meaning by giving a concrete format example ('Model::Package::Block'), which clarifies the expected delimiter and structure. However, it does not explain case sensitivity, escaping, or edge cases.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Find an element') with a clear resource ('fully-qualified name') and provides an illustrative example. It distinguishes itself from siblings like find_by_name and find_by_type by emphasizing the fully-qualified format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as find_by_name, find_by_type, or search. The purpose implies its use when a fully-qualified name is known, but no explicit selection criteria or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_by_typeA
Find all elements matching a SysML v1 type name (e.g. Block, Requirement, FlowPort).
| Name | Required | Description | Default |
|---|---|---|---|
| type_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation (finding elements) but does not explicitly state that it makes no changes, nor does it mention any limitations such as scope (e.g., only current model or across all diagrams) or performance implications. For a simple search tool, this is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action and includes relevant examples. No wasted words; every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only one parameter and an output schema present, the description is largely sufficient. It explains what the tool does and what the parameter expects. It doesn't mention the return format, but the output schema presumably covers that. For a simple search tool, this is complete enough, though a note about the scope of 'all elements' (e.g., current model vs. entire project) would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines 'type_name' as a string with no description, and coverage is 0%. The tool description compensates by providing concrete examples of valid values (Block, Requirement, FlowPort), which clarifies what type_name expects. It doesn't enumerate all possible types but gives enough guidance for an agent to understand the parameter's purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Find') and the resource ('all elements matching a SysML v1 type name'), with specific examples like Block, Requirement, FlowPort. This distinguishes it from sibling find tools like find_by_name and find_by_qualified_name, which search by different criteria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for type-based search, which is distinct from name or qualified-name searches. It doesn't explicitly state when not to use it or mention alternatives, but the context is clear enough given the sibling tool names. A short note on when to prefer this over search or find_by_name would improve it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_duplicatesA
Return elements that share the same type+name combination.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states the action without disclosing details such as whether results are grouped, ordering, or any side effects (though none are expected for a query). It lacks context on the return format beyond the existence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no extraneous words. Every word contributes to conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple query tool with no parameters and an existing output schema, the description is sufficient to convey the core behavior. It doesn't elaborate on edge cases or output structure, but the output schema likely covers those details. Minor ambiguity around 'share' (whether it returns a flat list of duplicates or groups) is acceptable given the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the schema is trivially 100% covered. The description adds no parameter-specific detail, but none is needed. The baseline for 0 parameters is 4, and the description clearly explains the tool's function without ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Return) and resource (elements) with a specific criterion (share the same type+name combination). This distinguishes it from sibling tools like find_by_name and find_by_type, which focus on single matches rather than duplicates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like find_by_name, find_by_type, or search. It does not specify use cases, prerequisites, or conditions that would make this tool the preferred choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_quantity_kindA
Search the model for SysML QuantityKind-stereotyped elements by name substring.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states that it searches, implying a read-only operation, but does not disclose potential side effects, permissions, case sensitivity of the substring, whether it returns all matches or just one, or any pagination behavior. For a search tool, the absence of these details leaves the agent uncertain about the exact behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the verb, resource, and parameter purpose with zero redundancy. Every word earns its place, and the structure is efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter) and the presence of an output schema, the description covers the basic intent but omits details that would improve completeness, such as the scope of the search (entire model vs. current package), result ordering, or behavior on no matches. These are relevant for an agent deciding how to use the tool alongside siblings like find_by_name and search, making the description adequate but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 0%, the description must compensate. It adds the critical context that the 'name' parameter is matched as a substring, which goes beyond the bare schema. However, it does not specify case sensitivity, whether matching is case-insensitive, or any wildcard behavior, leaving partial ambiguity. The description adds some meaning but not enough to fully define the parameter's semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb 'Search', a specific resource 'the model for SysML QuantityKind-stereotyped elements', and a filtering criterion 'by name substring'. This clearly differentiates it from siblings like find_by_name (which likely searches by name without stereotype restriction) and find_by_type (which searches by type), making the tool's purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (when searching for QuantityKind-stereotyped elements by name), but it does not explicitly mention alternatives or exclusions. It doesn't contrast with find_by_type, find_unit, or search, leaving the agent to infer the selection criteria based on the stereotype emphasis. No explicit when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_unitB
Search the model for SysML Unit-stereotyped elements by name substring.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states 'Search the model,' implying a read-only operation, but it does not explicitly confirm non-destructive behavior, case sensitivity, result limits, or whether multiple matches are returned. The description is too sparse to fully inform the agent about side effects or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the action and scope. Every word contributes meaning, and there is no fluff or redundancy. It is appropriately sized for a simple search operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (as per context signals), which likely describes the return format, so the description does not need to cover that. For a simple search by name substring, the description provides enough context about what is searched and how. The lack of explicit alternative guidance is a minor gap, but overall it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the burden of explaining the 'name' parameter. It clarifies that the parameter is a substring used for matching, which adds meaning beyond the schema's mere 'Name' label. However, it does not specify case sensitivity, wildcards, or trimming behavior, leaving some gaps despite the basic clarification.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Search'), a specific resource ('the model for SysML Unit-stereotyped elements'), and the matching method ('by name substring'). This distinguishes it from sibling search tools like find_by_name or find_by_type by specifying the stereotype and substring behavior, leaving no ambiguity about its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus its many siblings (find_by_name, find_by_type, find_by_qualified_name, etc.). It does not mention alternatives or conditions that would favor one over the other, leaving the agent to infer the use case from the stereotype-specific scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_unused_typesA
Return classifiers that are not used as a type anywhere in the model.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the core behavior (returning unused classifiers) but does not mention whether it is read-only (likely implied by 'Return'), whether it scans the entire model, or any performance or side-effect implications. It is not misleading, but it offers minimal behavioral context beyond the primary purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that is front-loaded with the verb and resource. There is no redundancy or fluff. It earns its place by stating exactly what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter query tool with an output schema (has_output_schema: true), the description is complete. It defines the scope ('anywhere in the model') and the entity type ('classifiers'), and the output structure is covered by the schema. No additional context is needed for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 per the rubric. The description correctly implies that no input is needed. Since there are no parameters to document, the description adds no parameter-specific meaning, but the baseline already applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'classifiers that are not used as a type anywhere in the model.' This is specific and unambiguous, and it distinguishes the tool from siblings like find_by_type (which finds by type) and find_by_name. An agent can immediately understand the tool's function without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It doesn't mention use cases (e.g., cleanup, refactoring) or contrast with find_by_type, find_unused, or other query tools. An agent is left to infer when this tool is appropriate, which is a significant gap for a model with many find tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_model_summaryB
Return a high-level summary of model element counts and coverage.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. It only mentions a 'high-level summary' without stating that this is a read-only operation, how it aggregates counts, or any caveats about performance or data freshness. This is insufficient for a tool that likely queries the entire model.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence with no redundant words. It is front-loaded with the core action. However, it is so brief that it borders on under-specification, though it earns a 4 for structure and economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (which reduces the need to describe return values), the description is vague about what 'coverage' means and what counts are included. Given the existence of dedicated coverage-check tools, an agent would benefit from a note about scope (e.g., element types, diagram coverage, requirement coverage). The lack of this context makes the tool's behavior ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100% (empty schema), so there is nothing to explain. The description does not need to add parameter meaning since none exist; the baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a high-level summary of model element counts and coverage. It uses a specific verb and resource, and the intent is understandable. However, it does not differentiate itself from the sibling tool get_model_metrics, which likely serves a similar purpose, so it misses the opportunity to distinguish itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as get_model_metrics or the specific coverage-check tools (check_requirement_coverage, check_documentation_coverage). The description offers no context on selection criteria, leaving the agent to guess which tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_allocationsA
List all Allocate relationships from and to an element.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It conveys a read-only nature (List) and the directional scope (from and to), but does not disclose potential edge cases, performance implications, or whether the element must be of a specific type. The description is honest but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence, front-loaded with the verb and object, with no redundant information. It is highly efficient and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one param, output schema exists), so the description covers the basics. However, the absence of usage guidance and limited behavioral detail (e.g., what happens if no relationships exist, whether it includes inherited allocations) leaves gaps for an agent to confidently invoke it. An output schema exists, so return format is not required, but the tool would benefit from a note about its relationship to get_relationships.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only the parameter name 'element_id' with no description (coverage 0%). The description adds meaning by clarifying that the element is the focus of allocations in both directions, which goes beyond the bare schema. However, it does not specify the exact role (source or target) beyond implying both, leaving some ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (List), the resource (Allocate relationships), and the scope (from and to an element). It distinguishes from siblings like get_relationships (which lists all relationship types) and create_allocation (which creates). The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. Given the large sibling set, especially get_relationships which likely overlaps, the description fails to explain why an agent would choose this over that. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_edit_historyC
Return recent edit history (undo stack) from the open project.
| Name | Required | Description | Default |
|---|---|---|---|
| max_entries | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds the useful clarification that this is the undo stack, but does not disclose whether the operation is read-only, whether it has side effects, or any limitations. The non-destructive nature is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words, front-loaded with the action and object. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal and lacks guidance on the parameter, behavioral transparency, and usage context. For a tool with one parameter and no annotations, it would benefit from mentioning max_entries and clarifying the read-only nature. The output schema may cover return format, but the description does not compensate for missing parameter documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter max_entries has no description in the schema (0% coverage), and the description does not mention it either. The agent must rely on the parameter name alone, which is insufficient for an undocumented parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns recent edit history (the undo stack) from the open project, using a specific verb and resource. It implicitly distinguishes itself from undo/redo which perform actions, but does not explicitly name alternatives, so it misses a point for sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its siblings such as undo/redo. There is no mention of usage context, exclusions, or alternatives, leaving the agent to infer when inspection of history is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_elementA
Retrieve a single SysML v1 element by its local ID. Returns type, name, and owner ID.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the operation is a retrieval (read-only) and discloses the return content. It does not mention error handling or edge cases, but for a simple get-by-ID tool, this is adequate and transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that front-loads the verb and resource, immediately states the key identifier (local ID), and lists the return fields. There is no wasted wording or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter retrieval tool, the description covers input (via ID) and output (type, name, owner ID). The output schema is present (though not shown), and the description already outlines the return values. It does not discuss failure modes or prerequisites, but these are not critical for this simple operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must add meaning to the sole parameter element_id. It adds the qualifier 'local ID', clarifying that the ID is scoped locally rather than globally, which is valuable beyond the schema's vague 'Element Id'. It does not provide format or examples, but the added context is significant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve', the resource 'a single SysML v1 element', and the distinguishing scope 'by its local ID'. It also lists the return fields (type, name, owner ID), making the purpose unambiguous and differentiating it from sibling tools that search by name or type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a local ID, but it does not explicitly state when to prefer this tool over alternatives like find_by_name, find_by_type, describe_element, or get_element_structure. Given the large sibling set, explicit routing or exclusions would be beneficial, but the ID-based retrieval is reasonably implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_element_structureA
Return the structural hierarchy under an element (parts, ports, properties).
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Return' which implies a read-only operation, but does not disclose whether the hierarchy is recursive, includes inherited properties, or if any permissions are required. There is no mention of side effects or error conditions. For a tool with no annotations, this is a significant gap in behavioral transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the verb and resource, then specifies the content (parts, ports, properties). There is no waste or redundancy. Every word contributes to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, output schema present), the description is fairly complete. It explains what is returned and the scope (under an element). The output schema covers return structure, so no need to explain that. However, it does not mention any limitations (e.g., whether it works on all element types) or preconditions. With the output schema present, the description is adequate for most use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage, so the description must clarify the parameter. It says 'under an element', which clearly indicates that element_id is the root element whose hierarchy is requested. This adds meaning beyond the bare schema property. For a single parameter, this is adequate, though it could specify what types of elements are valid (e.g., blocks, parts, ports).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Return the structural hierarchy under an element' and specifies the composition as 'parts, ports, properties'. This clearly distinguishes it from sibling tools like get_element (which returns the element itself), get_ports (only ports), and walk_tree (full tree traversal). An agent can confidently select this tool for retrieving hierarchical structure without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need the structural hierarchy under an element. However, it does not explicitly mention alternatives or when not to use it. Given the large number of sibling tools (e.g., list_children, walk_tree, get_relationships), explicit guidance would be beneficial, but the implied usage is reasonably clear for a simple read operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_licenceA
Return the current licence status: tier, customer, expiry, validity.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-only operation through the verb 'Return' and lists the output fields, which implies no side effects. It does not explicitly state non-mutating behavior, but the wording makes it evident.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and purpose, followed by the key details. It contains no filler or redundancy, making it appropriately sized and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless read operation, the description fully covers what the tool does and what it returns. The existence of an output schema means return format details are already captured elsewhere, so no additional explanation is required. The description is complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description does not need to explain parameter semantics. The schema already confirms no inputs, and the description adds nothing about parameters, which is acceptable. The baseline of 4 for zero parameters applies, as there is no information gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Return the current licence status' with specific details (tier, customer, expiry, validity). It is unambiguous and distinguishes itself from all sibling tools, which are model-editing or query operations unrelated to licensing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by stating what it returns, but does not explicitly mention when to use it or exclude alternatives. There is no guidance on prerequisites or context. However, given the unique purpose, the intended usage is clear without needing explicit comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_model_metricsA
Return raw element counts broken down by UML/SysML type.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states it 'returns' counts, implying a read-only operation with no side effects. However, it does not disclose details such as whether counts include nested elements, whether it is scoped to the entire model, or any performance implications. The description is truthful but minimal, leaving some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It front-loads the key action and output, making it easily scannable. It is appropriately sized for a tool with no parameters and a simple purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, no annotations, and an output schema exists, the description is largely sufficient. It explains what the tool returns, and the output schema presumably details the exact structure. The only missing context is whether counts are global or scoped, but for a simple metrics tool this is a minor gap. The description covers the essential information an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4. The description adds meaning by specifying what the output is (raw element counts) and the categorization (by UML/SysML type), which clarifies the tool's purpose even without parameters. No parameter documentation is needed, so the description appropriately focuses on output semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: returning raw element counts broken down by UML/SysML type. It is distinct from siblings like find_by_type or search, as it provides aggregate statistics rather than individual elements. The verb 'return' and specific resource make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly mention when to use this tool versus alternatives or provide any exclusions. It implies usage for obtaining model metrics, but lacks guidance on when not to use it or how it relates to similar query tools. Since it has no parameters, the context is somewhat clear, but the lack of any usage direction prevents a higher score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_portsC
Return all ports owned by an element.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the basic action without disclosing behavior such as error handling for invalid element IDs, whether it returns only direct ports or inherited ones, or if it has any side effects. This is a significant gap for a read operation with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the action and scope. No unnecessary words, and it avoids redundancy with the schema. However, it lacks any structured breakdown or additional context that could aid the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema is present, the description doesn't need to detail return values. However, with one parameter and no annotations, it should provide more context on expected behavior, such as what happens if the element has no ports or if the element doesn't exist. It's minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 0%, so the description must compensate. It implies element_id identifies the owning element, which is helpful, but it doesn't clarify the format or any constraints (e.g., must be a valid element ID). The description adds minimal value beyond the parameter name itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and resource ('ports owned by an element'). It clearly distinguishes itself from sibling getters like get_relationships or get_element_structure by focusing on ports, though it doesn't specify what types of ports (e.g., full, proxy) are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like find_by_type or get_element_structure. It doesn't mention any conditions or exclusions, leaving the agent to infer when this is the right getter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_qualified_nameC
Return the fully-qualified name of an element.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It does not mention whether the operation is read-only, what happens if the element ID is invalid, or any error conditions. For a getter, this lack of transparency is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, earning its place. However, it is so brief that it provides minimal actionable information, making it under-specified rather than appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's simplicity, the description omits critical details such as what qualifies as an element, how to obtain element_id, and expected return behavior. With no annotations and minimal schema documentation, this is insufficient for an agent to confidently invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the description does not explain the element_id parameter beyond its name. It offers no additional meaning, leaving the agent to guess the format or source of the ID. This is a significant deficiency given the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: returning the fully-qualified name of an element. It uses a specific verb and resource, making the purpose unambiguous. However, it does not explicitly differentiate from sibling tools like find_by_qualified_name, which could confuse an agent about which to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No context about prerequisites, typical scenarios, or exclusions is provided. An agent must infer usage solely from the generic description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_relationshipsC
Return all relationships involving an element.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action and does not reveal whether the operation is read-only, what types of relationships are included (direct vs. transitive), performance implications, or the output format. The presence of an output schema provides some structure but not behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no filler words, and it is front-loaded with the key action. However, it is under-specified to the point of being minimally helpful. While conciseness is technically achieved, the description fails to convey necessary context, making it less effective than it could be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (one parameter, no enums, but an output schema), the description should clarify what constitutes a 'relationship' and how it differs from other relationship tools. It does not mention the scope (direct or transitive), relationship types, or provide any usage context. The output schema covers return format, but the description leaves critical decisions to the agent's guesswork.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameter. The description mentions 'involving an element' which implies element_id is the element, but it does not clarify the expected format (e.g., UUID, path, name) or any constraints. The schema only provides the type and title, which is insufficient for an agent to correctly format the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action: 'Return all relationships involving an element.' It identifies the verb (return), resource (relationships), and the subject (element). However, it does not differentiate from sibling tools like get_allocations or describe_element, so an agent cannot distinguish when to prefer this over similar relationship-related tools without further inspection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. The description simply says it returns relationships, but does not mention exclusions, prerequisites, or when a different tool would be more appropriate. Given the large sibling set with many relationship-related operations, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_root_packageA
Return the root model package of the open project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states what it does, but gives no details about error handling (e.g., if no project is open), return nulls, or side effects. For a getter, this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence that is front-loaded with the action and result. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless getter with an output schema, the description covers the essential purpose. It doesn't explain edge cases, but given the simplicity, it is largely complete. A minor deduction for lack of fallback/error behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the baseline is 4. The description correctly implies no inputs are needed. No additional parameter documentation is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Return'), the resource ('root model package'), and the scope ('of the open project'). It is specific and distinguishable from sibling tools that create or modify elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose is unambiguous: retrieve the root package. It doesn't explicitly contrast with alternatives, but there is no other tool that serves this exact purpose, so the usage context is clear. However, it doesn't mention when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_safety_stateA
Return the current safety tier (READ, WRITE, or DANGEROUS) plus dev mode status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It clearly states what is returned (safety tier and dev mode status), implying a read-only operation with no side effects. However, it does not explicitly confirm it is side-effect-free, nor does it mention any prerequisites or potential failures, but the simplicity and getter nature make it sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action ('Return') and the key output details. There is no wasted wording, and every element contributes to clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no parameters, the description is complete. It specifies exactly what is returned (safety tier and dev mode status) and the possible tier values. The presence of an output schema likely covers the precise format, so no further detail is required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema description coverage is 100% (since there are no params). Per the calibration baseline, a zero-parameter tool merits a score of 4. The description does not need to explain any parameters, as none exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: it returns the current safety tier and dev mode status. The verb 'Return' is specific, and the resource (safety state) is well-defined. It distinguishes from sibling setters like enable_writes or disable_dev_mode by being a getter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While it is implicitly a query tool to check state before performing mutating operations, no explicit guidance or exclusions are provided. The lack of explicit usage context lowers the score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_standard_library_typesA
Return the available standard library DataTypes from the open project.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden. It does imply a read-only operation via 'Return' and specifies the source as 'the open project', adding context that a project must be open. However, it does not disclose side effects, error behavior, or other operational details beyond what the name already implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the essential information without waste. Every word contributes to the meaning, and the structure is clear and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter read-only getter with an output schema, the description is sufficiently complete. It specifies the source (open project) and the object (standard library DataTypes). It does not elaborate on the return format, but the output schema covers that, so no further detail is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to document. The description correctly avoids adding irrelevant parameter details. The baseline for no parameters is 4, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns available standard library DataTypes from the open project, with a specific verb and resource. It is distinct from siblings like find_unit or create_value_type, though it does not explicitly differentiate itself. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or conditions. The description only states what it does, leaving the agent to infer usage context. No exclusions or alternative routing are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
impact_analysisC
Return elements that use or are used by the given element.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It states that it returns elements with usage relationships, but does not clarify depth (direct vs. transitive), whether the given element is included, the meaning of 'use' (e.g., references, calls, type dependencies), or any side effects. This minimal behavioral information is insufficient for a potentially complex analysis tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is direct and front-loaded with the action. There is zero redundancy or fluff. It is appropriately concise, though this conciseness comes at the cost of critical detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists, the description fails to explain the semantics of 'impact' – whether it includes transitive dependencies, directionality, or types of usage. Given the tool's name and the breadth of sibling tools, this description is too sparse for an agent to confidently select and call it correctly. It needs more context about the analysis scope and expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for the undocumented parameter. It refers to 'the given element' but does not explain the format, scope, or expected identifier (e.g., UUID, path, qualified name). The description adds no meaning beyond what the schema's 'string' type implies, leaving the agent to guess how to construct the element_id.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Return') and the resource ('elements that use or are used by the given element'). It distinguishes itself from common siblings like get_relationships or list_children by focusing on dependency/usage, though it does not explicitly name alternatives. The purpose is clear and specific enough for an agent to infer its core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as get_relationships, walk_tree, or search. There is no mention of suitable scenarios, prerequisites, or situations where another tool would be preferable. The description provides no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_applied_stereotypesC
List all stereotypes applied to an element.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states the action; it does not mention that the operation is read-only, what happens if the element_id is invalid, or what the return format is. This is a minimal disclosure for a tool with no annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. It directly communicates the core function without unnecessary detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, output schema exists), the description is minimally sufficient. However, it lacks any mention of edge cases, expected behavior, or relationship to other tools, which would make it more complete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter documentation. The description does not explain the element_id parameter beyond its name, providing no additional meaning about format, scope, or required element types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and the resource (stereotypes applied to an element). It distinguishes itself from apply_stereotype and remove_stereotype by focusing on reading, though it does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus other query tools like describe_element or get_element_structure. The description provides no context for selecting this over siblings, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_childrenA
List direct children of an element. Returns list with id, name, type.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It states the return format (list with id, name, type) and implies a read-only operation by the verb 'list', but does not mention error handling, empty results, or side effects. It adds some value beyond the name but is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with zero waste, front-loading the purpose and stating the return fields. It is appropriately sized for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one parameter) and an output schema exists, so the description need not explain return values in detail. However, it does not differentiate from closely related tools like walk_tree or get_element_structure, and lacks caveats about ordering or errors. Adequate but not fully complete for a tool with many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the description does not explain the parent_id parameter at all. The parameter name is self-explanatory, but the description adds no additional meaning (e.g., format, source, constraints). Since coverage is low, the description should compensate, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('direct children of an element'), making the tool's purpose unambiguous. It distinguishes from walk_tree (all descendants) and search by explicitly stating 'direct children', so an agent can select it correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for direct children only, but it does not explicitly name alternatives or state when not to use it. An agent must infer from sibling names (e.g., walk_tree) that this is the right choice for immediate children. No explicit exclusions or alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diagram_kindsA
Return supported diagram kinds for SysML v1.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The verb 'Return' implies a read-only operation, but the description does not explicitly state that it has no side effects or that it is safe. There is no mention of permissions or other behavioral details, though for a simple list query the absence of side effects is reasonably inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded with the action and resource, and everything stated earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no parameters and an output schema is present, the description is complete. It tells the agent exactly what the tool returns ('supported diagram kinds for SysML v1') and there are no missing prerequisites or configuration details. The simplicity of the operation means no further context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing for the description to explain about parameters. The schema is trivially complete with 100% coverage. Per the rubric, a zero-parameter tool gets a baseline of 4, and the description adds no param info because none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and a clear resource ('supported diagram kinds for SysML v1'). It is unambiguous and distinguishes itself from siblings like list_diagrams (which likely lists actual diagrams, not kinds).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. It is implied that one would call it to obtain the list of diagram kinds, but there is no explicit guidance or mention of when not to use it. For a simple query tool, this is acceptable but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diagramsC
List diagrams owned by a package or element.
| Name | Required | Description | Default |
|---|---|---|---|
| parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'List diagrams' without stating whether the operation is read-only, whether results are paginated, or what the output structure looks like. It does not mention any side effects or requirements, leaving significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, front-loading the core purpose. It is appropriately concise for a simple listing operation, though it sacrifices detail for brevity. The structure is straightforward and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter and an output schema, the description does not need to explain return values, but it still fails to clarify the precise meaning of 'owned by' and whether it includes nested elements. The low complexity is offset by the lack of operational detail, making the description incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must compensate. It mentions 'owned by a package or element,' which gives some meaning to parent_id, but it does not clarify the expected format (e.g., GUID, name), whether it is a direct or recursive ownership, or if it accepts any other ID types. The description adds minimal value beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'diagrams', with a specific scope: 'owned by a package or element.' This distinguishes it from siblings like list_diagram_kinds and list_diagram_symbols, which have different objects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention any conditions or exclusions, such as when to prefer list_diagram_symbols or list_diagram_kinds. The usage context is only implied by the tool name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_diagram_symbolsB
List all symbols currently in a diagram. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses 'Phase B stub', indicating the tool may be incomplete or non-functional, which is useful behavioral context. However, it does not state whether the operation is read-only, whether it requires specific permissions, or any side effects. Since no annotations are provided, the description carries the full burden but only partially covers it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero fluff. The primary purpose is stated first, followed by a critical status note. Every word earns its place, making it an exemplar of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists and covers return values, the description lacks parameter explanation and usage guidance. The tool is simple, but the lack of any note about how diagram_id is used or when to invoke the tool leaves it incomplete. The stub status adds uncertainty without resolution.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description must explain the diagram_id parameter, but it does not. It does not mention what format the ID should be, how to obtain it, or any constraints. The description adds no value beyond the parameter name in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'symbols', and the scope 'in a diagram'. It distinguishes itself from sibling tools like list_diagrams, which lists diagrams, and add_symbol/remove_symbol, which modify symbols. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or related tools, and the 'Phase B stub' note does not clarify usage context. With many sibling tools operating on diagrams, this is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_layout_stylesA
List available auto-layout styles for a diagram.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. The verb 'List' clearly signals a read-only operation, but the description adds no further behavioral context such as whether styles depend on diagram kind or ordering. It is minimally transparent but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact, front-loaded sentence with no filler. It communicates the operation and target clearly while leaving space for structured schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, one required parameter, and an output schema, the description covers the essential invocation context. It does not mention sibling tools or use timing, but the low complexity makes the overhead less critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single diagram_id parameter. The phrase 'for a diagram' provides a small semantic link by implying diagram_id identifies the diagram whose styles are requested, but it adds no detail about format, constraints, or where the ID comes from.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the exact operation: 'List available auto-layout styles for a diagram.' The verb 'List' and the object 'auto-layout styles' clearly distinguish it from mutating or comparing alternatives like auto_layout_diagram and compare_layout_styles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or alternative contrast is provided. An agent can infer that listing styles is a precursor to choosing a layout, but the description never says so or mentions related tools such as auto_layout_diagram.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_elementB
Move an element to a new parent (re-owner).
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes | ||
| new_parent_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It states the basic action but omits critical details such as whether the move preserves any ordering, whether references are updated, whether permissions are required, or what happens to child elements. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the primary action. It contains no fluff and every word contributes to meaning, making it appropriately sized for a straightforward tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a mutating operation with no annotations and an output schema not shown, the description lacks essential context. It does not mention side effects, prerequisites, or failure conditions. An agent cannot fully understand the implications of calling this tool without additional information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does clarify that element_id refers to the element being moved and new_parent_id is the destination parent, adding some meaning beyond the bare parameter names. However, it does not elaborate on constraints like valid parent types or whether the parent must exist, leaving ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Move' and the resource 'element', and clarifies the action as re-owning by moving to a new parent. This distinguishes it from sibling tools like move_symbol (for diagram symbols) and create/delete element tools, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as delete_element or create_element. It does not mention any prerequisites, exclusions, or conditions that would help an agent decide between this and other hierarchy-modifying tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_symbolD
Move a symbol to specific coordinates. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| x | Yes | ||
| y | Yes | ||
| diagram_id | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It only states the action and mentions 'Phase B stub', which hints at incompleteness but does not disclose side effects, permissions, error behavior, or reversibility. This is a major gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but this is under-specification rather than conciseness. It lacks necessary detail, and the 'Phase B stub' phrase is not useful for tool usage. The content is not front-loaded with actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four required parameters, no annotations, and an output schema (not shown), the description is grossly incomplete. It does not explain coordinate system, units, diagram context, or return behavior. An agent would have no idea how to correctly call this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, meaning the description does not explain any of the four parameters. The schema only lists names and types; the description adds no meaning about what diagram_id, element_id, x, and y represent. Since coverage is zero, the description must compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Move a symbol to specific coordinates.' It is specific and unambiguous about the core action. However, it does not differentiate from the sibling 'move_element' which might be related, but the purpose itself is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions. The description gives no information about selecting this over other similar tools like 'move_element'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pingA
Liveness probe. Calls the SysML v1 bridge plugin and returns its build metadata.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states that the tool calls a plugin and returns build metadata, which is the key behavior. However, it does not disclose whether the operation is read-only, requires authentication, or has any side effects. For a liveness probe these are likely safe, but the lack of explicit safety disclosure in the description is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short clauses, front-loaded with the essential purpose ('Liveness probe') and no filler. Every word earns its place. It is as concise as possible while conveying the tool's function and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple utility tool with no parameters and an output schema available (indicated by has output schema: true), the description is nearly complete. It explains what it does and what it returns. It could optionally mention the output schema exists, but the agent can infer that from the tool definition. The only missing element is explicit safety/read-only semantics, but that is minor for a liveness check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the input schema is an empty object. Per the rubric, a baseline of 4 applies when there are no parameters because there is nothing for the description to explain. The description adds no parameter-specific detail, but none is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as a 'liveness probe' and specifies the resource it calls (SysML v1 bridge plugin) and the outcome (returns build metadata). This is distinct from all sibling tools, which are domain operations like create_block or delete_element. No ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The purpose implies when to use it (checking system liveness), but the description does not explicitly state 'use when...' or contrast with alternatives. Since it is a unique utility tool with no obvious substitute, explicit guidance is less critical, but the rubric asks for when-to-use vs alternatives; it is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
populate_diagramC
Add multiple element symbols to a diagram. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes | ||
| element_ids | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'Phase B stub,' which hints at incomplete implementation but does not explain what that means for the caller (e.g., may not be fully functional, could error). It also does not disclose side effects, permissions, or atomicity, which are important for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core purpose. It is appropriately concise and wastes no words, though it may be too terse given the lack of supporting details in the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (two parameters, no output schema details, no annotations) and the presence of sibling tools like add_symbol, the description is incomplete. It does not explain when to use this over add_symbol, what the output looks like, or how errors are handled, leaving critical context missing for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it provides no details about diagram_id or element_ids beyond the schema titles. The agent is left to guess at formats, constraints, or how element_ids relate to the diagram, making this a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'add' and the resource 'multiple element symbols to a diagram,' which distinguishes it from sibling tools like add_symbol that likely add a single symbol. However, it does not elaborate on what constitutes an 'element symbol' or specify batch semantics, so it is clear but not fully precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as add_symbol, create_block, or move_symbol. It does not mention that this is a batch alternative to add_symbol or any conditions for its use, leaving the agent to infer from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
redoB
Redo the last undone model edit.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action but does not mention side effects, failure behavior (e.g., when there is no undone edit), or reversibility. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded with the action and object, making it immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and an output schema exists (which may cover return values), the description does not address edge cases like what happens if no undo is available. For a mutation tool, this leaves some ambiguity about the tool's behavior in typical failure scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is trivially 100%. The description correctly indicates no inputs are needed, so there is nothing to add beyond the schema. The baseline for zero parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('redo') and a clear object ('the last undone model edit'). It clearly distinguishes itself from the sibling 'undo' tool by the explicit redo action, though it doesn't name the sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (after an undo), but it provides no explicit guidance on when not to use it or alternatives. The context is minimal and relies on the user's understanding of undo/redo semantics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_stereotypeB
Remove a stereotype from an element by its qualified name.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes | ||
| stereotype_qn | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full behavioral burden. It does not disclose that this is a destructive operation, any permission requirements, side effects on related model elements, or error behavior (e.g., what happens if the stereotype is not applied). It adds nothing beyond the verb in the name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the action and resource, making it easy to scan. It earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and incomplete parameter descriptions, this is inadequate. It does not mention prerequisites (e.g., the element must exist), potential side effects, or the meaning of the output. The presence of an output schema is noted, but the description does not explain what the tool returns or how errors are surfaced. More context is needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'stereotype_qn' is the qualified name of the stereotype ('by its qualified name'), but it does not explain what 'element_id' refers to or any format constraints. It provides minimal additional meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Remove'), a resource ('a stereotype from an element'), and the method ('by its qualified name'). This clearly distinguishes it from sibling tools like apply_stereotype (adds) and list_applied_stereotypes (lists). The action is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions, prerequisites, or when not to use it. The description is purely functional and gives no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
remove_symbolC
Remove an element symbol from a diagram. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. The only behavioral hint is 'Phase B stub', which warns that the implementation may be incomplete. However, it does not disclose whether the operation is destructive to the element, any side effects, or error handling. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two short fragments with no filler. It front-loads the verb and noun, making it easy to parse. There is no wasted wording, though it may be under-specified in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool, the description is still incomplete. It does not mention return values (though an output schema exists), nor does it explain the difference between removing a symbol and deleting an element. The 'Phase B stub' hint suggests unreliability but offers no further context. An agent would likely need to look elsewhere for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds nothing about the parameters. It does not clarify that diagram_id identifies the diagram and element_id identifies the symbol's element (or the symbol itself). The agent is left with only parameter names, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'an element symbol from a diagram', which is specific and distinct from siblings like delete_element (which would remove the entire element). It immediately conveys the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention that it only removes the symbol while preserving the underlying element, nor does it contrast with delete_element. The agent must infer the usage from the name and sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rename_elementC
Rename a SysML v1 element.
| Name | Required | Description | Default |
|---|---|---|---|
| new_name | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only says 'rename' with no mention of side effects (e.g., impact on references, reversibility, permissions, name uniqueness). A mutation tool with zero annotation coverage should provide more context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, so it is front-loaded and waste-free, but it is too terse to be useful. While concise, it sacrifices necessary context, making it inadequate for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a mutation with no annotations and no behavioral detail. It lacks information about return values, error conditions, or interactions with other model elements. Given the presence of a output schema (not shown), the description should at least hint at what the tool returns. This is incomplete for an agent to call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, and the description adds no explanation of 'element_id' or 'new_name' beyond their titles. It does not clarify what an element ID is, what formats are acceptable, or whether the new name has constraints (e.g., uniqueness, allowed characters). The description fails to compensate for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('rename') and a resource ('SysML v1 element'), clearly distinguishing it from creation/deletion/movement tools. However, it does not mention any scoping (e.g., which element types) or differentiate from the many set_* tools that also modify elements, so it's not perfect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. It does not mention any prerequisites, constraints, or contexts where renaming is appropriate or forbidden. The agent must infer usage solely from the verb, which is inadequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resize_symbolC
Resize a symbol in a diagram. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| width | Yes | ||
| height | Yes | ||
| diagram_id | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. 'Phase B stub' suggests the tool may not be fully implemented, but it does not state what actually happens when called, whether there are side effects, permission requirements, or what the return value is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, but it is under-specified rather than concise. It lacks essential details, making it ineffective despite its brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 4 required parameters, no annotations, and no output schema described. The description fails to cover return values, error behavior, parameter details, or any implementation status. For a stub tool, this is severely incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does not mention any parameter, leaving width/height units and the meaning of diagram_id and element_id completely unexplained. The description adds zero value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource: 'Resize a symbol in a diagram.' This is specific and understandable. However, it does not differentiate from siblings like move_symbol or set_symbol_style, and the phrase 'Phase B stub' hints at incompleteness without explaining what that means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. No context, prerequisites, or exclusions are provided. An agent would not know whether to choose this over move_symbol or set_symbol_style.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
route_pathC
Set routing style for a relationship path. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes | ||
| routing_style | Yes | ||
| relationship_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It communicates the basic mutation intent ('Set routing style') but does not explain side effects, prerequisites, whether an existing path is required, or what happens with invalid style values. 'Phase B stub' is the only extra behavioral context, and it is too vague to be actionable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the primary action. 'Phase B stub' is compact, though its meaning is unclear. Every word earns its place, but the cryptic stub label reduces overall clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter mutation tool with no annotations and no parameter descriptions, this description is too sparse. An agent does not know acceptable routing style values, whether the operation is currently supported, or what effects it has on the diagram. The output schema exists, so return values are less critical, but the missing usage and parameter context make this incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it does not describe any parameter details. The term 'routing style' aligns with the routing_style parameter but adds no value beyond the parameter name. No valid values, enum options, or format guidance are given for the three required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Set routing style for a relationship path.' This names the specific verb and resource, and distinguishes it from sibling tools like add_path or set_symbol_style. However, the cryptic 'Phase B stub' adds ambiguity about whether the tool is actually functional, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives, when not to use it, or whether it is ready for use. The phrase 'Phase B stub' hints that the tool may be incomplete, but it does not give explicit invocation guidance. An agent is left to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_projectB
Save the current Cameo project. Pass an optional comment for audit log.
| Name | Required | Description | Default |
|---|---|---|---|
| comment | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'save' and mentions an audit log comment, but omits side effects like whether changes are committed, if the operation is idempotent, or any error conditions. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no wasted words. The essential action and the optional parameter are both mentioned efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists, the description lacks guidance on when to call save (e.g., before closing, after batch operations) and any side-effect information. For a mutation with no annotations, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the comment parameter's purpose ('for audit log'), which adds meaning beyond the schema's type/default. However, it does not specify constraints like format or length, and the schema already covers the type. Minimal added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Save the current Cameo project.' This is unambiguous and clearly distinguishes it from siblings, none of which are save operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, no context about prerequisites (e.g., after making changes) or when not to use it. The description is a bare command.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Full-text search across element names.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| max_results | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for behavioral disclosure. It only states what the tool does, not whether it's read-only, how results are ordered, whether search is case-sensitive, or any limits. The existence of an output schema covers return structure, but not behavioral traits like pagination or performance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no waste. However, it is so brief that it borders on under-specification, lacking any supplementary context. Conciseness is good, but it could include a second sentence for guidance without harming readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but the absence of usage guidelines and behavioral notes makes it incomplete for an agent that must decide between search and find_by_name/find_by_type. The output schema covers return structure, but the description doesn't clarify scope (e.g., does it search all elements globally?) or any constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not mention 'query' or 'max_results' at all. The query parameter is somewhat self-explanatory, but max_results' semantics (e.g., how results are limited, default behavior) are entirely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('search') and resource ('element names'), with 'full-text' implying substring matching, which distinguishes it from exact-match siblings like find_by_name. However, it doesn't explicitly contrast with those siblings, so it's not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus the many alternative search/lookup tools (find_by_name, find_by_type, find_by_qualified_name). The agent is left to infer that 'full-text' means broader searching, but no explicit when-to-use or when-not-to-use is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_aggregationA
Set a Property's UML aggregation: composite (part), shared, or none (reference).
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | composite | |
| feature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It discloses the mutation operation ('set') and the three valid values, which is adequate for a simple setter, but it does not mention side effects, reversibility, prerequisites, or what happens to existing values. It adds minimal context beyond the schema and operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero wasted words. The parentheticals '(part)' and '(reference)' add meaningful disambiguation of the aggregation kinds, and the core purpose appears first. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter setter with an output schema present, the description covers the operation, the target (Property), and all valid values. The only minor gap is explicit documentation of feature_id; return values are covered by the output schema, so nothing critical is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates partially: it enumerates the valid values for 'kind' (composite, shared, none), which the schema merely types as a string with a default. However, feature_id is only implied ('a Property's') and never explicitly documented as the target identifier, leaving a gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Set'), a specific resource ('a Property's UML aggregation'), and enumerates the valid values (composite, shared, none). It clearly distinguishes from sibling set_* tools (set_type, set_multiplicity, set_value) by naming the exact aspect it modifies, so an agent can tell them apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent needing to change aggregation would naturally select this tool, and the sibling set_* tools each cover a distinct property aspect. However, there is no explicit when-to-use/when-not-to-use guidance or named alternatives, leaving routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_compartment_visibilityC
Show or hide a compartment on a symbol. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| visible | Yes | ||
| diagram_id | Yes | ||
| element_id | Yes | ||
| compartment | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states that the tool shows or hides a compartment, which implies a mutation, but it does not disclose side effects, permission requirements, reversibility, or what happens to existing visibility states. The phrase 'Phase B stub' does indicate that the tool is not fully implemented, which is a transparency signal, but it does not explain the actual behavioral outcomes beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short, consisting of a single sentence plus a stub note. It is front-loaded with the primary action, which is good, and there is no fluff. However, it is so minimal that it sacrifices informative content. While concise, it does not earn a higher score because it omits crucial details that would make it useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 required parameters with no schema coverage, no annotations, and no description of the output or return value, the description is severely incomplete. An agent cannot determine how to fill parameters correctly, what to expect as a result, or any error conditions. The 'Phase B stub' note acknowledges incompleteness, but the description itself fails to provide enough context for a robust call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must explain the parameters. However, the description does not mention any of the four parameters (diagram_id, element_id, compartment, visible). It only gives a vague sense that 'compartment' is the thing being shown/hidden, but provides no details about what values are valid, how to specify the symbol, or how the boolean 'visible' works. This leaves the agent with insufficient guidance for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Show or hide a compartment on a symbol.' It identifies the specific resource (compartment) and the verb (show/hide), which distinguishes it from other set_* tools that modify properties like type or value. However, it does not mention the context of diagram and element explicitly, but the schema provides those parameters. It is not a tautology and gives a specific operation, though it lacks explicit differentiation from siblings like set_symbol_style or move_symbol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention any conditions for usage, prerequisites, or exclusions. While the action is self-explanatory, an agent has no information about when this is the right tool compared to other symbol-related tools. There is no mention of alternative tools or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_connection_endsB
Set source and target ConnectorEnd roles on a Connector.
| Name | Required | Description | Default |
|---|---|---|---|
| connection_id | Yes | ||
| source_end_id | Yes | ||
| target_end_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It implies a mutation but does not disclose side effects, requirements for existing elements, reversibility, or error behavior. The agent has no information about what happens if ends are already set or if IDs are invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant words. It is appropriately concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter tool with 3 self-explanatory parameters and an output schema, the description is minimally adequate. However, it lacks context about when the tool applies (e.g., only on existing connectors) and any constraints, leaving room for agent confusion despite the simple nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only hints that source_end_id and target_end_id relate to ConnectorEnd roles but does not explain how to obtain these IDs or what formats are expected. This is insufficient for a 0% coverage scenario.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action: setting source and target ConnectorEnd roles on a Connector. It distinguishes itself from sibling set_* tools (e.g., set_type, set_multiplicity) by specifying the exact resource and roles being modified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as create_connector or other setter tools. There are no conditions, prerequisites, or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_constraintC
Create a Constraint with an OpaqueExpression body on parent_id.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| language | No | ||
| parent_id | Yes | ||
| expression | Yes | ||
| subject_ids | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'Create', implying a mutation, but gives no details about side effects, required permissions, error handling, or reversibility. It does not mention what happens if the parent_id is invalid or if the constraint already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but severely under-specified. It lacks any structure or grouping of information and does not earn its brevity because it omits critical context for a tool with 5 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with 5 parameters, no schema descriptions, and no annotations. The description covers none of the parameter meanings, output expectations, or edge cases. Even the output schema is present but not referenced, leaving the agent without guidance on what the tool returns or how to handle errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for its 5 parameters, and the description does not compensate. It mentions parent_id and 'OpaqueExpression' but never explicitly explains the 'expression' parameter, nor 'name', 'language', or 'subject_ids'. An agent cannot determine what values to provide beyond the schema's field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'Constraint' with an 'OpaqueExpression body', and specifies it attaches to a parent_id. This is specific and distinct from many generic create_* tools, though it does not explicitly differentiate from create_constraint_block or create_constraint_property.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like create_constraint_block or create_constraint_property. The description implies a parent context but does not state when this is the right choice or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_documentationC
Set the documentation (owned Comment body) of an element.
| Name | Required | Description | Default |
|---|---|---|---|
| element_id | Yes | ||
| documentation | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full behavioral burden. It implies a mutation (setting documentation) but does not disclose whether it overwrites existing content, requires specific permissions, or has side effects. The phrase 'owned Comment body' adds some context but does not describe the actual behavior beyond the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero fluff. It efficiently conveys the core purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with an output schema, the description is too thin. It lacks usage context (when to call), behavioral details (overwrite semantics, prerequisites), and does not leverage the output schema to inform the agent about expected results. The low complexity of the tool reduces the bar slightly, but the missing guidance on use cases makes it incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It identifies element_id as the target and documentation as the content, but provides no additional meaning about formats, constraints, or how the element is identified. The 'owned Comment body' detail adds a bit of context but leaves many semantic gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set) and resource (documentation, specifically the owned Comment body of an element). It is specific enough to distinguish from other set_* siblings, though it could explicitly mention it replaces existing documentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, nor any prerequisites like element existence or ownership. It does not mention that setting documentation might be used before checking coverage, nor does it reference sibling tools like check_documentation_coverage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_encapsulatedB
Set the isEncapsulated tagged value on a Block. value: 'true' or 'false'.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action without mentioning prerequisites (e.g., block existence), side effects, error conditions, or reversibility. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is perfectly concise and front-loaded. It states the action, the target, and the allowed value with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two parameters and an output schema, the description is adequate but missing context such as whether the Block must exist, behavior on invalid input, and any side effects. Given no annotations, it could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It clarifies that 'value' should be 'true' or 'false', but does not explain 'element_id' beyond implying it identifies a Block. This partially compensates but leaves element_id semantics under-specified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it sets the isEncapsulated tagged value on a Block, with a specific verb and resource. It doesn't explicitly differentiate from sibling set_* tools, but the target attribute is unique enough that an agent can infer its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: use it when you want to set that tagged value. However, it provides no explicit guidance on when not to use it or alternatives, despite many sibling set_* tools. It's a simple operation, so the implication is acceptable but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_flow_directionB
Set the direction of a Parameter. Valid values: IN, OUT, INOUT, RETURN.
| Name | Required | Description | Default |
|---|---|---|---|
| direction | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It indicates a mutation via 'Set' but does not disclose potential side effects, reversibility, permission requirements, or behavior on invalid input (e.g., what happens if an invalid direction is passed). The presence of an output schema is noted but not described, so the agent lacks information about the response. For a write operation with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence followed by a list of valid values. It is extremely concise, front-loaded with the primary action, and contains no filler. Every part is necessary and directly contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple setter but incomplete in important ways. It does not explain the 'element_id' parameter, nor does it mention any prerequisites or potential outcomes. Given that an output schema exists, the return format may be covered there, but the description itself lacks guidance on how to correctly invoke the tool. It is minimally sufficient for an agent that already understands the domain, but not self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It partially explains 'direction' by listing valid values, but provides no explanation for 'element_id' (e.g., what it refers to, how to obtain it). The description adds some meaning for one parameter but leaves the other completely undefined, failing to fully bridge the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set) and the resource (Parameter's direction), and lists the valid values. It distinguishes itself from sibling setters like set_type or set_value by specifically targeting flow direction, so an agent can immediately identify its purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need to change the direction of a parameter) but does not explicitly state when not to use it or mention alternatives. It lists valid values, which is more about parameter constraints than usage context. No explicit exclusions or comparisons to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_item_flow_conveyedC
Set the conveyed Classifier on a SysML ItemFlow.
| Name | Required | Description | Default |
|---|---|---|---|
| item_flow_id | Yes | ||
| classifier_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only says 'Set,' implying mutation, but does not disclose whether the classifier is replaced, if validation occurs, or if the operation is reversible. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly states the purpose. It is appropriately sized, though it could be improved by front-loading key constraints or prerequisites.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given it is a mutation tool with two required parameters and no annotations, the description is incomplete. It lacks details about preconditions, behavior on missing targets, or side effects. The output schema exists but does not compensate for the missing operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description makes no mention of the two parameters. The agent receives no extra meaning beyond the schema's field names, which are minimal ('item_flow_id' and 'classifier_id'). The description does not compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'Set' and the resource 'conveyed Classifier on a SysML ItemFlow,' which clearly identifies the operation. It does not explicitly differentiate from sibling tools like set_flow_direction, but the target is specific enough to avoid major ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of prerequisites (e.g., an existing ItemFlow) or when another setter would be more appropriate. The usage context is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_multiplicityC
Set multiplicity bounds on a MultiplicityElement (Property, etc.). Use -1 for upper=*.
| Name | Required | Description | Default |
|---|---|---|---|
| lower | Yes | ||
| upper | Yes | ||
| feature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the -1 convention for upper=*, which is a useful detail, but it does not disclose potential side effects, permission requirements, validation rules, or the nature of the response. For a mutation tool, this is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words, making it highly concise and easy to parse. The key usage hint about -1 is front-loaded, which aids comprehension. However, the brevity comes at the cost of missing essential details, but conciseness itself is well-executed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's mutation nature and lack of annotations, the description is inadequate. It does not explain what happens after a successful call, error handling, or any constraints on the bounds (e.g., lower <= upper). The output schema exists but the description does not reference it, leaving the agent with gaps in understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must explain the parameters. It indirectly references 'upper' via the -1 note and implies 'lower' through 'multiplicity bounds', but it does not describe feature_id or clarify the meaning or constraints of lower and upper. The description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'MultiplicityElement (Property, etc.)', which identifies the purpose without ambiguity. It does not explicitly differentiate from sibling tools, but the focus on multiplicity bounds is distinct enough. The mention of 'Property, etc.' suggests a broader scope but remains clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a practical hint about using -1 for upper=*, but it does not explain when to use this tool versus alternatives like set_flow_direction or set_aggregation. There is no guidance on prerequisites, context, or exclusions, leaving the agent to infer the appropriate usage scenario.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_propertyC
Set a tagged value (stereotype property) on an element via TagsHelper.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| element_id | Yes | ||
| property_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full transparency burden. It only mentions 'via TagsHelper' and implies a mutation, but does not disclose side effects, requirements (e.g., element must have the stereotype), error conditions, or whether the change is reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff, which is efficient. However, it is under-specified to the point of being almost minimal, but conciseness itself is good.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no parameter descriptions, the description is inadequate. It lacks usage context, error handling, prerequisites, and any explanation of how the tool behaves in edge cases. The output schema exists but does not cover these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It gives a hint that property_name refers to a stereotype property, but does not explain the expected format of element_id, the value type constraints, or how property_name should be structured (e.g., qualified name). This is minimal value beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set a tagged value) and specifies it is a stereotype property, which differentiates it from tools like set_value. However, it doesn't elaborate on what a 'tagged value' means in this modeling context, though the term is reasonably specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings like set_value, apply_stereotype, or set_type. There are no prerequisites mentioned, such as the need for an applied stereotype, and no exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_requirement_idB
Set the SysML requirement ID tagged value on a Requirement element.
| Name | Required | Description | Default |
|---|---|---|---|
| req_id | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It implies a mutation but does not state whether the operation is idempotent, what happens if the element does not exist or is not a Requirement, or whether there are any side effects. It also does not mention any permissions or reversibility. The minimal description does not go beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no unnecessary words. It conveys the essential purpose without filler, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is a mutation with no annotations and incomplete parameter semantics, the description is insufficiently complete. It does not explain error handling, return values (though an output schema exists), or the distinction from similar set_* tools. The agent lacks enough context to invoke it correctly in edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It implicitly maps 'req_id' to the requirement ID value and 'element_id' to the Requirement element, but it does not explicitly explain the parameters or their formats. The description adds only marginal meaning beyond the parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (set) and the target (SysML requirement ID tagged value on a Requirement element). It distinguishes itself from other set_* tools by specifying the exact tagged value being set, making it clear which tool to use for this specific operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like set_requirement_text. There is no mention of prerequisites, when it should be preferred, or when another tool should be used instead. The description only states the action, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_requirement_textA
Set the normative requirement text on a Requirement element.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'Set', implying a mutation, but does not mention side effects, prerequisites, idempotency, or what happens to existing text. For a mutation tool, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no waste. It is front-loaded with the action and target, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two parameters and an output schema, the description provides the essential purpose. However, it lacks behavioral context (e.g., whether text is replaced, if the element must exist) and parameter details. Given the simplicity, it is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It gives context that the tool sets text, implying element_id identifies the Requirement element and text is the content. However, it does not explain the format of text or any constraints. This is a minimal compensation but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'set', the resource 'normative requirement text', and the target 'Requirement element'. This is specific and distinguishes it from sibling tools like set_requirement_id or set_documentation, which have different scopes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied: if you want to set the text of a requirement, you use this tool. However, there is no explicit mention of when not to use it or alternatives, but the purpose is clear enough that an agent would infer it. This is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_state_actionA
Set an entry, do, or exit action body on a State. action_kind must be 'entry', 'do', or 'exit'.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| state_id | Yes | ||
| action_kind | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It reveals that the tool mutates a State action body and constrains action_kind, but it does not disclose overwrite behavior, required State existence, permissions, side effects, or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a compact two-sentence definition with no filler. The first sentence states the action and target, and the second adds the critical action_kind constraint with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with three required string parameters and an output schema, the description provides a minimally viable invocation context. It is incomplete in that it lacks explicit usage boundaries, prerequisites, or side-effect warnings, but the tool's low complexity and clear parameter intent keep it from being significantly deficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It usefully defines action_kind as 'entry', 'do', or 'exit' and implies body is the action body, but state_id semantics are only implicit through the tool name and the phrase 'on a State'. Body format and state_id resolution are not clarified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and identifies an unambiguous resource: an entry, do, or exit action body on a State. It clearly distinguishes from transition-related tools like set_transition_trigger or set_transition_effect by narrowing scope to State actions and enumerating the allowed action_kind values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'on a State' gives implied context for when this tool should be used, and action_kind values reinforce that. However, it does not explicitly state when not to use it or name alternatives, leaving the agent to infer the selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_symbol_styleC
Set visual style properties on a diagram symbol. Phase B stub.
| Name | Required | Description | Default |
|---|---|---|---|
| diagram_id | Yes | ||
| element_id | Yes | ||
| style_properties | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description must disclose behavioral traits. It only states 'set visual style properties', implying a mutation, but provides no details on side effects, reversibility, or error behavior. The 'Phase B stub' hint suggests incompleteness but does not explain what the tool actually does when called.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but overly terse. It front-loads the purpose, yet omits necessary parameter details and usage context. The phrase 'Phase B stub' is an extra note that does not contribute to usability, making the structure acceptable but not ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three required parameters and no annotations, the description is incomplete. It does not explain the expected format of style_properties, mention return values (even though an output schema exists), or provide context on how it fits with other diagram editing tools. An agent would struggle to call this correctly without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It fails to clarify the format of the 'style_properties' parameter (e.g., JSON, key-value pairs, or specific style names). The other parameters (diagram_id, element_id) are self-explanatory, but the critical style_properties remains ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'set' and the resource 'diagram symbol', specifying the action is on visual style properties. It distinguishes from sibling tools like set_type or set_multiplicity by focusing on style. The phrase 'Phase B stub' is additional context but does not obscure the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention that this is for style changes while other set_* tools handle other property types, nor does it indicate prerequisites or use cases. The 'Phase B stub' note is not a usage guideline.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transition_effectC
Set an OpaqueBehavior effect on a Transition.
| Name | Required | Description | Default |
|---|---|---|---|
| effect_body | Yes | ||
| transition_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states the mutation ('Set') without explaining side effects, requirements (e.g., does the transition already need to exist?), what happens to existing effects, or whether the operation is reversible. The description is too sparse to convey behavior beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, grammatically correct sentence with no filler. It is front-loaded with the core action. However, it is so brief that it sacrifices substance for brevity, but conciseness itself is high.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two required parameters and no schema descriptions, the description is incomplete. It doesn't explain the parameters, return values (though an output schema exists), or any preconditions. The tool is likely a mutation, and without annotations or parameter details, an agent cannot confidently call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the input schema provides no descriptions for 'transition_id' or 'effect_body'. The description does not explain what these parameters mean, what format effect_body should take, or how they relate to the transition. The agent is left without any semantic guidance for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Set') with a specific resource ('Transition') and the exact object ('OpaqueBehavior effect'). This differentiates it from sibling tools like set_transition_trigger and set_transition_guard, which target different aspects of a transition. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention that this is for attaching an OpaqueBehavior effect specifically, or when one would choose this over set_transition_trigger or set_transition_guard. No context about prerequisites or typical use cases is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transition_guardC
Set an OpaqueExpression guard constraint on a Transition.
| Name | Required | Description | Default |
|---|---|---|---|
| transition_id | Yes | ||
| guard_expression | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only implies a mutation (setting a constraint) but does not explain whether the guard replaces an existing one, what happens if the transition does not exist, whether the operation is reversible, or any error conditions. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste, but it is under-specified for a tool with two required parameters and zero schema descriptions. It lacks any structure such as usage notes or parameter guidance, making it too minimal to be appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and an output schema (not shown), the description does not address return values, error handling, or prerequisites. It is incomplete for an agent to safely call it without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining the parameters. It does not mention transition_id or guard_expression at all beyond what the names imply. There is no explanation of the expected format or language of the guard expression (e.g., OCL), which is critical for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('set') and resource ('OpaqueExpression guard constraint on a Transition'), making the core purpose clear. It distinguishes from sibling tools like set_transition_trigger and set_transition_effect by focusing on the guard, though it does not explicitly name those alternatives. The term 'OpaqueExpression' may be domain-specific but is sufficient for an agent familiar with UML/SysML.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It does not mention that it is for setting guards as opposed to triggers or effects, nor does it provide any conditions, prerequisites, or exclusions. The agent is left to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_transition_triggerC
Add a named Trigger to a Transition.
| Name | Required | Description | Default |
|---|---|---|---|
| trigger_name | Yes | ||
| transition_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether existing triggers are replaced or appended, whether the transition must already exist, or any side effects. The minimal wording 'Add a named Trigger' leaves the mutation semantics unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It is appropriately brief for a simple operation, though it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no parameter documentation, the description is inadequate. It does not explain the concept of a trigger in a transition, any constraints (e.g., uniqueness, existence), or what the output schema represents. An agent would need external knowledge to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meanings. It only hints that trigger_name is the name of the trigger, and provides no explanation of transition_id beyond its name. This is insufficient for a tool with no schema-level documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Add) and the resource (a named Trigger to a Transition). It distinguishes from related siblings like set_transition_guard and set_transition_effect, though it does not explicitly name them. The purpose is unambiguous for an agent familiar with UML concepts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. It does not mention prerequisites, conditions, or exclusions. The description implies a simple add operation but offers no context for selecting it over other transition-related setters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_typeB
Set the type of a TypedElement (Property, Parameter, Port, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| type_id | Yes | ||
| feature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It states the mutation ('set') but omits details such as whether the type must be compatible with the element, whether existing references are updated, or if the operation is reversible. For a write operation, this is a minimal disclosure that leaves significant uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler. It front-loads the core action and immediately specifies the target class. Every word contributes to the meaning, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple (2 params) and an output schema exists (reducing the need to explain return values), the description lacks any mention of prerequisites, constraints, or relationships with sibling tools. It does not state that the element must be a TypedElement or that the type must be valid in the model context, leaving an agent without enough information to call it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the two parameters. It implies that 'type_id' is the new type and 'feature_id' is the element being modified, but it does not explicitly state this mapping. The description adds only a vague hint; an agent must infer the roles from the parameter names, which are not self-explanatory beyond their titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and resource ('type of a TypedElement') and gives concrete examples (Property, Parameter, Port). This clearly distinguishes it from sibling setters like set_flow_direction or set_aggregation, which target different attributes. An agent can immediately infer the tool's function without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention conditions like 'use set_value_type_unit for unit assignment' or any prerequisite checks. With many sibling setter tools, this lack of routing guidance forces the agent to rely on name matching alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_valueC
Set the default value of a Property as a LiteralString.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| feature_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description is the sole source of behavioral information. It does not mention side effects, whether it overwrites existing values, or any requirements on the property existence or type. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, succinct sentence with no unnecessary words. It is appropriately concise for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple mutation with two parameters, but the description fails to explain the meaning of 'feature_id' or any preconditions. The output schema exists, but the description doesn't compensate for the lack of parameter documentation, making it incomplete for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides no descriptions for the parameters. The description clarifies that 'value' is a LiteralString, but does not explain what 'feature_id' refers to or how it maps to a Property. This leaves the agent uncertain about the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: setting the default value of a Property to a LiteralString. It names the resource (Property) and the value type, but does not differentiate from sibling tools like set_property, which might also set property values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as set_property or set_value_type_unit. The description only states the action without any context about scenarios where this is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_value_type_unitC
Set the unit of a SysML ValueType element.
| Name | Required | Description | Default |
|---|---|---|---|
| unit_id | Yes | ||
| element_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears the full burden of behavioral disclosure, but it offers none beyond the mutation verb 'Set'. It does not state whether the unit must already exist, whether the change is reversible, what validation occurs, or how it interacts with related elements like quantity kinds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence with no wasted words, which is ideal for conciseness. It is slightly terse but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists and the parameter count is low, the description omits usage guidance and behavioral context such as whether the unit must already be defined in the model. For a simple setter this is borderline adequate, but the absence of any constraint on unit validity leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds nothing about the two parameters. Both are bare string IDs ('Element Id', 'Unit Id') with no guidance on how to obtain them (e.g., via find_unit or find_by_name), so the agent gets no added meaning beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Set') and names the resource ('unit of a SysML ValueType element'), making the action clear and distinguishing it from siblings like set_type, set_value, and set_multiplicity. However, it does not explicitly contrast itself with those sibling setters, leaving slight room for ambiguity about which element aspect is being modified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives, nor any mention of prerequisites such as the unit needing to exist beforehand (find_unit is a sibling). With many set_* siblings, an agent is left to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trace_requirementA
Return full traceability chain for one requirement (derive, satisfy, verify).
| Name | Required | Description | Default |
|---|---|---|---|
| requirement_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral disclosure. It says 'Return', which implies a read-only operation, but it does not explicitly state that no modifications occur, nor does it describe the output structure beyond the chain. Since an output schema exists, the return format is covered, but the description does not add behavioral context such as side effects, performance, or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: a single sentence that states the action, scope, and trace types with zero redundancy. It is front-loaded with the primary purpose and avoids any unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and an output schema, the description provides the core purpose but lacks guidance on usage context and potential differences from similar tools. It does not mention prerequisites, error scenarios, or the exact format of the trace chain, which would be helpful for an agent to decide when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate. It does identify requirement_id as the target of the trace, saying 'for one requirement', which adds meaning beyond the bare parameter title. However, it does not elaborate on the format or constraints of the ID, or what constitutes a valid requirement, so it only partially bridges the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'full traceability chain for one requirement', and explicitly enumerates the trace types (derive, satisfy, verify). This differentiates it from sibling tools like add_satisfy, add_verify, and check_requirement_coverage, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool versus alternatives, nor any exclusions or conditions. It is a read operation, but there is no mention of when a user would prefer this over check_requirement_coverage or export_requirements_matrix, leaving the agent to infer the intended use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
undoA
Undo the last model edit.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only states the action without explaining side effects, whether it is destructive or reversible, what happens when there are no edits, or how it interacts with batch operations. This is a significant gap for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is a simple zero-parameter operation with an output schema, the description leaves key contextual gaps: how many levels can be undone, whether the operation can be reversed via 'redo', and its behavior in batch or failed states. It is adequate but lacks helpful operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the schema coverage is trivially 100%. Per the calibration rules, 0 parameters warrants a baseline of 4. There are no parameter details needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Undo the last model edit' uses a specific verb and resource, clearly stating the tool's function. It differentiates itself from siblings like 'redo' and 'get_edit_history' by specifically targeting the last edit. Meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives such as 'redo' or 'get_edit_history'. No mention of typical scenarios, limitations, or excluding conditions. The agent is left to infer usage context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validate_modelA
Run built-in model validation and return structural violations.
Spelling suite violations (Cameo spell-checker noise) are separated into
a spelling array and excluded from the violations count so that
the 0-errors gate only reflects structural/semantic issues.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses an important behavioral trait: spelling suite violations are placed in a separate 'spelling' array and excluded from the 'violations' count, so the gate reflects only structural/semantic issues. This is meaningful beyond what a generic 'validate' label would convey, though it does not explicitly state read-only/side-effect behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: the first sentence states the action and result, and the second sentence adds a precise behavioral detail about spelling violations. Every sentence earns its place with no redundant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with an output schema, the description is complete: it explains what the tool does, the key distinction between 'spelling' and 'violations', and the purpose of the 0-errors gate. No additional context is needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and schema description coverage is 100%, so there are no parameter semantics to document. The baseline for a zero-parameter tool is 4, and the description appropriately spends no space on parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Run') and resource ('built-in model validation') and clearly identifies the return artifact ('structural violations'). It also differentiates this from sibling check/reporting tools by focusing on model validation rather than coverage, naming, or metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful context about a '0-errors gate' and implies this tool is the validation entry point, but it does not explicitly say when to use it versus siblings like check_requirement_coverage, check_documentation_coverage, or check_naming_conventions. The usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
walk_treeC
Walk the containment tree from root_id. Returns nested tree structure.
| Name | Required | Description | Default |
|---|---|---|---|
| root_id | Yes | ||
| max_depth | No | ||
| max_elements | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It mentions the return type but does not disclose behavior such as cycle handling, performance implications, default limits, or whether the tree is pruned by max_depth/max_elements. The 'nested tree structure' is the only behavioral hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The primary purpose is stated first, and the return format is included. Efficient and appropriately brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters (one required) and an output schema, the description is insufficient. It omits parameter semantics, usage context, and any behavioral details about traversal limits or output shape. An agent would need to infer too much.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the parameters. root_id, max_depth, and max_elements are left entirely to the agent's interpretation. Since the schema also lacks descriptions, this is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb-resource pair: walk the containment tree from a root_id, and indicates the return type (nested tree structure). It is unambiguous about the core action, though it does not distinguish itself from siblings like get_element_structure or list_children.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to prefer this over alternative traversal tools such as list_children or get_element_structure. There is no mention of use cases, exclusions, or trade-offs between depth and breadth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
133 tool updates
v0.1.1- First observed
abort_batch - First observed
add_copy - First observed
add_dependency - First observed
add_derive - First observed
add_diagram_note - First observed
add_path - First observed
add_refine - First observed
add_satisfy - First observed
add_symbol - First observed
add_trace - First observed
add_verify - First observed
apply_custom_layout - First observed
apply_stereotype - First observed
auto_layout_diagram - First observed
begin_batch - First observed
check_documentation_coverage - First observed
check_naming_conventions - First observed
check_requirement_coverage - First observed
commit_batch - First observed
compare_layout_styles - First observed
create_action - First observed
create_activity - First observed
create_actor - First observed
create_allocation - First observed
create_association - First observed
create_association_block - First observed
create_binding_connector - First observed
create_block - First observed
create_combined_fragment - First observed
create_connector - First observed
create_constraint_block - First observed
create_constraint_property - First observed
create_control_flow - First observed
create_diagram - First observed
create_element - First observed
create_enumeration - First observed
create_flow_port - First observed
create_flow_property - First observed
create_flow_specification - First observed
create_full_port - First observed
create_generalization - First observed
create_interaction - First observed
create_interface_block - First observed
create_item_flow - First observed
create_lifeline - First observed
create_message - First observed
create_object_flow - First observed
create_package - First observed
create_part_property - First observed
create_proxy_port - First observed
create_reference_property - First observed
create_region - First observed
create_requirement - First observed
create_root_model - First observed
create_state - First observed
create_state_machine - First observed
create_transition - First observed
create_use_case - First observed
create_value_property - First observed
create_value_type - First observed
delete_element - First observed
describe_element - First observed
disable_dev_mode - First observed
disable_writes - First observed
enable_dangerous_writes - First observed
enable_dev_mode - First observed
enable_writes - First observed
execute_groovy - First observed
export_diagram_image - First observed
export_requirements_matrix - First observed
find_by_name - First observed
find_by_qualified_name - First observed
find_by_type - First observed
find_duplicates - First observed
find_quantity_kind - First observed
find_unit - First observed
find_unused_types - First observed
generate_model_summary - First observed
get_allocations - First observed
get_edit_history - First observed
get_element - First observed
get_element_structure - First observed
get_licence - First observed
get_model_metrics - First observed
get_ports - First observed
get_qualified_name - First observed
get_relationships - First observed
get_root_package - First observed
get_safety_state - First observed
get_standard_library_types - First observed
impact_analysis - First observed
list_applied_stereotypes - First observed
list_children - First observed
list_diagram_kinds - First observed
list_diagram_symbols - First observed
list_diagrams - First observed
list_layout_styles - First observed
move_element - First observed
move_symbol - First observed
ping - First observed
populate_diagram - First observed
redo - First observed
remove_stereotype - First observed
remove_symbol - First observed
rename_element - First observed
resize_symbol - First observed
route_path - First observed
save_project - First observed
search - First observed
set_aggregation - First observed
set_compartment_visibility - First observed
set_connection_ends - First observed
set_constraint - First observed
set_documentation - First observed
set_encapsulated - First observed
set_flow_direction - First observed
set_item_flow_conveyed - First observed
set_multiplicity - First observed
set_property - First observed
set_requirement_id - First observed
set_requirement_text - First observed
set_state_action - First observed
set_symbol_style - First observed
set_transition_effect - First observed
set_transition_guard - First observed
set_transition_trigger - First observed
set_type - First observed
set_value - First observed
set_value_type_unit - First observed
trace_requirement - First observed
undo - First observed
validate_model - First observed
walk_tree
TDQS
Scored across 133 tools
There is direct overlap between the generic create_element factory and roughly 20 specialized create_* tools, so agents face ambiguity about which to call. Generic set_property also overlaps with domain-specific setters like set_requirement_id, and the many Phase B diagram stubs add further confusion.
The vast majority of tools follow a clean verb_noun snake_case pattern such as create_block, set_multiplicity, and add_satisfy. A few outliers like ping, undo, redo, search, and impact_analysis break the pattern, but there is no mixed casing or chaotic convention.
133 tools is an extreme number for any MCP server, especially when many are Phase B stubs and the generic create_element tool duplicates numerous specialized create_* variants. Even for a broad SysML v1 modeling surface, this count would be far more manageable around 40-60 consolidated tools.
The tool set covers a broad range of SysML v1 modeling: blocks, requirements, ports, flows, state machines, activities, sequences, diagrams, stereotypes, validation, and model metrics. However, there are notable gaps such as no create_parameter or create_operation tools, no delete_diagram, and many diagram symbol operations are explicitly stubs.
Maintenance
Related MCP Connectors
Render, verify, describe, and safely edit Mermaid diagrams through MCP.
- QuallaaOAuthcom.quallaa
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceThe self-hosted MCP bridge between Claude Chat and Claude Code.46AGPL 3.0
- AlicenseNot gradedqualityAmaintenanceConnect Claude AI to Dassault Systemes CATIA V5 via the Model Context Protocol (MCP). Drive CATIA V5 CAD modeling from Claude Desktop or Claude Code using natural language.97MIT
- AlicenseNot gradedqualityBmaintenanceThis MCP Server bridges Egonex-AI/Understand-Anything with Claude Desktop and other MCP clients, giving LLMs native access to full-codebase structural graphs, architecture analysis, and CI/CD validation.36 npmMIT
- FlicenseNot gradedqualityAmaintenanceAn MCP server that gives an AI agent read and write access to a live SysML v2 model through the vendor-neutral OMG SysML v2 REST API.2-