Skip to main content
Glama

Server Details

API documentation drifts away from the running service, so consumers integrate against a contract nobody keeps. Routebase keeps API design, testing, mocking and documentation on one living source of truth, and this MCP server exposes that workspace to AI agents. Agents can design endpoints, write and run test suites, manage mock servers and publish documentation, always under the permissions of the connected Routebase account.

Ownership verified
Status
Healthy
Uptime
99.5% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.6/5.0

Scored across 167 tools

Disambiguation2/5

The tool set has many overlapping getters (get_test_run vs get_test_result vs get_test_results, get_header_policies vs get_resolved_headers, get_contract_drift vs get_schema_drift_report) that require deep reading to distinguish. The sheer number of similar list_* and get_* pairs for components, policies, and schemas creates frequent ambiguity about which tool applies to a given task.

Naming Consistency3/5

Most tools follow a consistent verb_noun pattern (get_*, list_*, create_*, update_*, manage_*), but there are notable deviations like 'search', 'set_context', 'enable_toolset', 'test_persona', 'preview_smart_mock', and 'resolve_variables' that break the pattern. The manage_* umbrella verb also obscures whether an action creates, updates, or deletes.

Tool Count1/5

167 tools is an extreme count for any MCP server, far beyond the 3-15 well-scoped range. Even accounting for a broad API platform, this volume will overwhelm context windows and make tool selection expensive and error-prone.

Completeness4/5

The surface is remarkably comprehensive across API design, testing, mocks, monitoring, security, docs, and governance, with CRUD coverage for most entities. Minor gaps exist (e.g., no direct update for some resources, billing/org admin intentionally read-only), but the domain is covered thoroughly.

Available Tools

167 tools
check_schema_driftCheck Schema DriftA
Read-only
Inspect

Check for schema drift between a test case's linked endpoint snapshot and the current spec. Supports two modes: single test case (provide testCaseId) or batch check for all linked test cases of a spec (provide specId). Exactly one of testCaseId or specId must be provided. Use this to compare a linked case against the current spec; to adopt the spec's changes use sync_test_from_spec. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdNoPublic ID (GUID) of a spec to batch-check all linked test cases (batch mode)
testCaseIdNoPublic ID (GUID) of a single test case to check for drift (single mode)
checkAgainstLinkedVersionNoIn single mode, compare against the linked spec version instead of current (default false)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates no side effects, and the description adds meaningful detail about mode-specific behavior and the linked-version comparison option. It does not mention output format or error cases, but the read-only nature is well covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, using three sentences to cover purpose, modes, parameter constraints, and the related alternative. No redundant or vague wording is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives enough context for tool selection and basic invocation, including mode constraints and the alternative tool. It does not describe the return value, which would be helpful given there is no output schema, but this is not critical for choosing the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema descriptions cover all three parameters well, and the description adds critical interaction semantics such as exactly-one-of and the single-mode-only behavior of checkAgainstLinkedVersion. This goes beyond the schema's basic field documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks for schema drift between a test case's linked endpoint snapshot and the current spec. It also distinguishes two modes and contrasts with sync_test_from_spec, making its primary use obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains the two modes, states that exactly one of testCaseId or specId must be provided, and notes the behavior of checkAgainstLinkedVersion. It also gives guidance on when to use sync_test_from_spec instead, providing clear usage direction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_versionsCompare VersionsA
Read-only
Inspect

Compare two specification versions and show their differences: added/removed/modified endpoints and schemas. Omit sourceVersionId to compare against the latest published version. detail 'full' (default) returns the changed entities; 'flags' returns only what changed and how — much smaller, and enough to decide where to look. Requires project context. Use this for the raw structural difference; for a written summary of it use generate_changelog.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNoHow much to return: 'full' (default) or 'flags'full
specIdYesPublic ID (GUID) of the API specification
sourceVersionIdNoPublic ID (GUID) of the source (older) version — omit for the latest published version
targetVersionIdYesPublic ID (GUID) of the target (newer) version

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only nature, and the description adds the useful prerequisite 'Requires project context.' It does not mention rate limits or auth, but for a read-only comparison tool with the annotation present, this is sufficient and non-contradictory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each carrying essential information: the core action, the default behavior, the detail modes, and the relationship to the sibling tool. It is front-loaded with the main purpose and contains no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters and no output schema, the description covers all necessary decision points: how to choose source and target versions, how to control output size, the requirement for project context, and the alternative tool for a written summary. An agent has enough information to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all four parameters have descriptions). The description reinforces the semantics of sourceVersionId (omit for latest) and detail ('full' vs 'flags') and adds the rationale that 'flags' is 'much smaller, and enough to decide where to look,' which goes beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb 'Compare two specification versions' and the resource ('specification versions'), and enumerates the kinds of differences shown (added/removed/modified endpoints and schemas). It also distinguishes itself from the sibling generate_changelog, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'Use this for the raw structural difference' and contrasts it with generate_changelog for a written summary. It also explains how to omit sourceVersionId for the latest published version and describes the two detail modes with their trade-offs, leaving no ambiguity about when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enable_toolsetEnable ToolsetA
Read-only
Inspect

Enable one or more toolsets for this session so their tools appear in tools/list. Pass a comma-separated list of toolset slugs (see list_toolsets). Sends a tools/list_changed notification; clients that ignore it can still call hidden tools directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
namesYesComma-separated toolset slugs to enable, e.g. 'testing,mock-server'

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions a side effect (sends a tools/list_changed notification) and notes that clients ignoring it can still call hidden tools directly, which is transparent. However, the annotation readOnlyHint: true directly contradicts the tool's mutation behavior (enabling is a state-changing operation). This inconsistency significantly undermines transparency, as an agent might incorrectly assume the tool has no side effects. The contradiction is severe enough to warrant a score of 1.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences that cover the action, the mechanism, and the side effect. It is well-structured, with the core purpose first, followed by usage detail and a note about notifications. There is no unnecessary fluff, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has a single parameter and no output schema, so the description doesn't need to explain return values. It provides the essential context: what the tool does, how to pass the argument, and what side effects (notification) occur. It could be slightly more explicit about the expected response (e.g., whether it returns a success indicator), but given the simplicity of the tool, the information is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the single parameter 'names' as a comma-separated list of toolset slugs, which is clear and complete. The description repeats this information and adds a cross-reference to list_toolsets, but doesn't provide additional semantic depth beyond the schema. Since schema coverage is 100%, the baseline of 3 is appropriate; the description adds no extra value to the parameter explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: enabling one or more toolsets for the session so their tools appear in tools/list. It uses a specific verb ('Enable') and names the resource (toolsets), which is distinct from the sibling tool list_toolsets that merely lists available toolsets. The description also provides a direct reference to list_toolsets for finding slugs, removing any 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: to activate toolsets so their tools become available in the session. It implicitly indicates that the tool is the action counterpart to list_toolsets, guiding the user to first list toolsets and then enable the desired ones. However, it doesn't explicitly state prerequisites (e.g., that the tool must be called before using tools from the enabled toolset) or mention that this is the only way to enable toolsets, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_findings_sarifExport Findings as SARIFA
Read-only
Inspect

Export the active project's security findings as a SARIF 2.1.0 document — the format GitHub Code Scanning and comparable CI tools ingest. Defaults to open findings so the export reflects the current posture. Use this to hand findings to CI or GitHub; to read them here use get_security_findings. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoOnly findings in this status: 'open' (default), 'inProgress', 'fixed', 'falsePositive', 'acceptedRisk' or 'duplicate'

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the non-mutating nature, and the description adds useful context by specifying the output format, the default filter, and the requirement for project context. It does not explicitly state side effects, but the annotation and export-focused wording make the behavior reasonably clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well structured, with the main purpose stated first, followed by default behavior, use case, alternative tool, and prerequisite. Every sentence adds value and there is no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers all necessary context: what it produces, the format, the default behavior, when to use it, the alternative tool, and the required project context. No important information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the status parameter with possible values and default, so coverage is high. The description adds the rationale for the default ('Defaults to open findings so the export reflects the current posture'), which provides extra meaning beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool exports the project's security findings as a SARIF 2.1.0 document. It names the exact resource, action, and output format, leaving no ambiguity about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool to hand findings to CI or GitHub and points to get_security_findings for reading findings in the product. It also notes the default open-findings behavior, giving clear guidance on when and how to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_specExport SpecA
Read-only
Inspect

Export an API specification as OpenAPI YAML, JSON, or Postman Collection. Use this to get the finished document out; to check it against the standard first use validate_spec. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format: 'yaml' (default), 'json', or 'postman'yaml
specIdYesPublic ID (GUID) of the API specification to export

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint: true, and the description adds 'Requires project context' as a prerequisite, providing extra behavioral context beyond the annotation without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, front-loading the purpose and then providing usage guidance without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with two well-documented parameters, the description and schema together fully cover the purpose, usage, and parameters, including the output format implication.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have descriptions in the schema (specId and format with allowed values), so the description adds little beyond what the schema already covers, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool exports an API specification in specific formats (OpenAPI YAML, JSON, Postman Collection), distinguishing it from other export tools and validation tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly provides when to use (to get the finished document) and points to validate_spec as an alternative for checking against the standard, aligning with the calibration example for a perfect usage score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_test_runExport Test RunA
Read-only
Inspect

Export a test run as a report. format 'json' (default), 'html' or 'junit' — use junit for CI systems that consume JUnit XML. Returns the report content inline. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoReport format: 'json' (default), 'html' or 'junit'json
testRunIdYesPublic Id (Guid) of the test run

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds meaningful behavior beyond that: it states that the report content is returned inline. It also discloses the project-context requirement, which is relevant for invocation. It does not describe failure modes or what happens if context is missing, but for a read-only export this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no wasted words. It front-loads the core action, then gives format details, usage guidance, return behavior, and a prerequisite. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read-only export tool, the description is complete: it specifies the resource, the format options with a recommendation, the inline return behavior, and the project-context requirement. The schema covers all parameter details, and no output schema exists, so the description's statement about inline content is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters. The description adds value by explaining the practical purpose of the junit format for CI systems, which goes beyond the schema's simple value list. It also reinforces the format defaults, though it does not add new meaning for testRunId beyond the schema's 'Public Id (Guid)' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Export a test run as a report.' It distinguishes the tool from siblings like export_spec and export_findings_sarif by naming the test-run resource and from get_test_run by framing it as a report export. The format options further clarify what kind of output the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit format-selection guidance: 'use junit for CI systems that consume JUnit XML.' It also notes that project context is required, which is a helpful prerequisite. It does not explicitly name alternatives or when not to use this tool, but the guidance provided is clear enough for the main decision points.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

export_variablesExport VariablesA
Read-only
Inspect

Export an environment's variables as .env or JSON text. Secret values are ALWAYS masked — MCP has no path to decrypted secrets; use the web app if you need the real values. The output is suitable for review and for feeding back into import_variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput format: 'env' (KEY=VALUE lines) or 'json'. Defaults to 'env'.env
projectIdNoPublic ID (GUID) of the project. If omitted, uses the active project context.
environmentIdYesPublic ID (GUID) of the environment

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds important behavioral detail beyond the readOnlyHint annotation: secret values are ALWAYS masked and there is no MCP path to decrypted secrets. This prevents an agent from expecting plaintext secrets and clarifies a significant limitation of the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the core behavior, the critical masking limitation, and the intended downstream use. The most important operational constraint (masking) is placed prominently and no filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity read-only export tool with fully documented parameters, the description is complete. It tells the agent what the output looks like, what is masked, and how the output can be used, so no critical context is missing even without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents all three parameters with 100% coverage, including format defaults and project/environment IDs. The description reinforces the format concept but does not add meaningful parameter-level detail beyond what the schema already provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb and resource: exporting an environment's variables as .env or JSON text. It distinguishes itself from siblings like get_environment_variables by emphasizing the serialized output format and the masking behavior, which makes the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: the output is meant for review and for feeding back into import_variables, and it explicitly directs users to the web app when real secret values are needed. It does not explicitly name alternative MCP tools such as get_environment_variables or resolve_variables, so it stops short of a full when-to-use versus alternatives comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_changelogGenerate ChangelogA
Read-only
Inspect

Generate a structured changelog for a specification version by comparing it with the previous version. Returns a Markdown changelog. Use this for a readable summary of what changed; for the raw structural diff use compare_versions. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdYesPublic ID (GUID) of the version to generate a changelog for

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the safety profile is covered. The description adds behavioral detail: it compares against the previous version and returns a Markdown changelog, which is beyond the annotation. No contradictions or hidden side effects are disclosed, but the added context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero fluff. The purpose, return format, and routing to the sibling tool are all front-loaded, and the prerequisite is stated last. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with two well-documented parameters and no output schema, the description explains the return type (Markdown) and the comparison basis. It does not detail the changelog's internal structure, but that is not critical for invocation. The 'requires project context' hint is a minor gap but acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (specId and versionId) are already documented with their types and purposes. The description does not add any parameter-specific meaning beyond the schema, meeting the baseline of 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb (generate), resource (changelog for a specification version), and return type (Markdown). It also distinguishes itself from the sibling compare_versions by noting it provides a readable summary versus a raw structural diff, making it unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use this tool ('Use this for a readable summary of what changed') and names the alternative for the raw diff ('for the raw structural diff use compare_versions'). Also notes a prerequisite ('Requires project context'), giving agents clear decision criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_alert_policyGet Alert PolicyA
Read-only
Inspect

Get one alert policy with its full rule set and how many scopes it is assigned to. Use this when you already have the policy id; to browse a project's policies use list_alert_policies. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
policyIdYesPublic ID (GUID) of the policy, from list_alert_policies

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers side-effect safety. The description adds useful behavioral detail about what is returned (full rule set, scope count) without contradicting the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundant information. The key guidance is front-loaded and the alternative tool is named clearly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description provides a reasonable idea of the return content (full rule set and scope count). It does not cover error behavior or response shape, but for a simple get-by-id fetch this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents policyId with a clear description. The description reinforces that it is the policy id and that it comes from list_alert_policies, and adds the project context requirement beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get'), a specific resource ('one alert policy'), and the exact scope of the result ('full rule set and how many scopes it is assigned to'). It also explicitly distinguishes itself from list_alert_policies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use it ('when you already have the policy id') and when not to ('to browse a project's policies use list_alert_policies'), plus notes the project context requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_audit_logGet Audit LogA
Read-only
Inspect

Read the API design audit log: who changed what, when, and whether it was a person or an API key. Filter by entityId for the history of one endpoint or schema — worth doing before changing something you did not write. Paginated; without filters it returns the whole organization's history newest first. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 1-based (default 1)
actionNoOptional action to filter by, e.g. 'created', 'updated', 'deleted'
dateToNoOptional upper bound, ISO 8601
specIdNoOptional spec ID (GUID) to filter by
dateFromNoOptional lower bound, ISO 8601 (e.g. '2026-07-01T00:00:00Z')
entityIdNoOptional entity ID (GUID) — the endpoint, schema or folder to trace
pageSizeNoEntries per page (default 50, max 200)
entityTypeNoOptional entity type to filter by, e.g. 'endpoint', 'schema', 'folder'
actorUserIdNoOptional numeric user ID to filter by

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals this is a safe read, and the description adds meaningful behavioral context: pagination, newest-first ordering, full-organization scope without filters, and the need for organization context. It does not detail response field shapes, but that is not necessary at this level.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with purpose, followed by scoping guidance and key behavioral caveats. Every sentence contributes actionable information with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter optional-filter tool with no output schema, the description covers the main usage scenario, pagination, ordering, and organizational context. It could mention response shape more explicitly, but the description already conveys what the log reveals well enough for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents every parameter. The description adds useful context around the entityId filter and the unfiltered pagination behavior, but it does not significantly enrich the semantics of the other parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies a specific operation ('Read the API design audit log') and explains what the log contains: who changed what, when, and the actor type. This distinguishes it from sibling tools like get_request_logs or get_publish_history by focusing on audit history with entity filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit practical guidance: filter by entityId before modifying something you didn't write, and notes the unfiltered behavior returns the whole organization history. It does not name alternative tools or state when not to use it, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_branchGet BranchA
Read-only
Inspect

Get one branch with how many endpoints, schemas and folders live on it. Set includeDiff for the change summary against main, the conflicts and the classified (breaking / non-breaking) changes — that is the read to trust before merging. Set includeRebasePreview to see how far the branch is behind main and what a rebase would have to resolve. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
branchIdYesPublic ID (GUID) of the branch
includeDiffNoAlso return the diff against main: counts, conflicts, classified changes (default false)
includeRebasePreviewNoAlso return the rebase preview: behind count and conflicting clones (default false)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates no side effects, and the description adds that the tool is a read operation for merge trust and rebase preview. No contradictions exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is focused and mostly concise, though phrases like 'that is the read to trust before merging' add a bit of marketing tone without much technical substance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main outputs and optional behaviors, and the schema fully documents parameters. It omits error conditions or output schema details, but no output schema is provided and the tool's purpose is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description enriches the boolean parameters by explaining what includeDiff and includeRebasePreview return. specId and branchId are clearly defined in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a branch with counts of endpoints, schemas, and folders, and optionally includes diff and rebase preview data. This distinguishes it from list_branches and related merge/compare tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the diff ('read to trust before merging') and rebase preview options, and notes that project context is required. It does not explicitly contrast with sibling tools like get_merge_request, but the usage hints are strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_breaking_changesGet Breaking ChangesA
Read-only
Inspect

Identify and classify breaking changes between two specification versions. Returns changes classified as Breaking, NonBreaking, or Deprecated with migration hints. Use this for classified breaking changes; for the full structural diff use compare_versions. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
sourceVersionIdYesPublic ID (GUID) of the source (older) version
targetVersionIdYesPublic ID (GUID) of the target (newer) version

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers side effects, and the description adds useful output context by stating that results are classified as Breaking, NonBreaking, or Deprecated with migration hints. It does not detail error behavior, but the read-only nature is clear and not contradicted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose, followed by output context, usage direction, and a prerequisite. Every sentence adds useful information with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context for selection and invocation: the purpose, the classification output, the alternative tool, and the project-context requirement. Since there is no output schema, the brief output description helps, though more detail on the exact response structure would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover 100% of the parameters with clear meanings for specId, sourceVersionId, and targetVersionId. The tool description does not add significant extra parameter semantics beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Identify and classify') and clearly names the resource ('breaking changes between two specification versions'). It also distinguishes this tool from the sibling compare_versions by noting that this one returns classified breaking changes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('Use this for classified breaking changes') and when not to ('for the full structural diff use compare_versions'). It also notes the prerequisite 'Requires project context,' giving clear selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_cli_run_statusCLI Run StatusA
Read-only
Inspect

Poll the live progress of a test run: completed cases out of total, current pass/fail counts and elapsed time. Meant for watching a run that is still going; use get_test_run once it has finished. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testRunIdYesPublic Id (Guid) of the test run

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the safe-read nature is covered. The description adds value by disclosing that the tool is for live polling, can be called repeatedly, and is not intended for completed runs. This goes beyond what annotations express.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences cover what the tool returns, when to use it, and what context is required. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only polling tool, the description is complete: it names the inputs implicitly via the schema, lists the returned information, distinguishes the sibling tool, and notes the project-context prerequisite. The absence of an output schema is acceptable because the description enumerates the key response fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the single parameter testRunId is already documented as 'Public Id (Guid) of the test run'. The description does not add further parameter-level semantics, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a specific verb and resource: 'Poll the live progress of a test run', then enumerates the exact data returned. It also explicitly contrasts itself with get_test_run, so an agent can distinguish this live-status tool from the finished-run tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear when-to-use guidance: 'Meant for watching a run that is still going; use get_test_run once it has finished.' It also states the prerequisite that project context is required, which is important operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contract_driftGet Contract DriftA
Read-only
Inspect

One contract drift event in full: per-field deviations with the value that actually arrived, the route, the request that was sent, and the response body they were read from (first 4 KB, credential headers redacted). Ids come from list_contract_drift. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project — defaults to the session context
driftEventIdYesPublic ID (GUID) of the drift event

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses response limits (first 4 KB) and redaction of credential headers, providing useful behavioral context. It does not contradict the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences to convey the output, usage workflow, and prerequisites. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter set and absence of an output schema, the description sufficiently explains what the tool returns and how to obtain the needed ID. It covers the essential context for a read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have complete descriptions in the schema, so the baseline is 3. The tool description adds 'Requires project context,' but this is already implied by the projectId parameter's default-to-session behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retrieving a single contract drift event with full details including per-field deviations, the actual value, route, request, and response body. It also differentiates from the list operation by emphasizing 'one event in full.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states that IDs come from list_contract_drift, establishing a clear workflow prerequisite. The note 'Requires project context' also informs when the tool can be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contract_summaryGet Contract SummaryA
Read-only
Inspect

Get contract test coverage summary for a test suite. Shows how many test cases are linked to spec endpoints, how many have schema drift, and overall endpoint coverage. Use this for a suite's coverage overview; for the drift of one case use check_schema_drift. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testSuiteIdYesPublic ID (GUID) of the test suite

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation covers safety, and the description adds behavioral detail about what is shown (test case linkage, schema drift, endpoint coverage). No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundant words. The key scope and alternative tool are clearly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema is not present, the description provides sufficient context about the return content and the selecting condition. No critical missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter testSuiteId is fully described in the schema, so the description adds no extra parameter meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Get' and specific resource 'contract test coverage summary for a test suite'. Differentiates from siblings like check_schema_drift by name and scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use for a suite's coverage overview and directs to check_schema_drift for single-case drift. Also notes the prerequisite 'Requires project context'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_credit_balanceGet Credit BalanceA
Read-only
Inspect

Get the AI credit balance: what is left, what the plan includes, what came from rollover or top-ups, and when the allowance resets. Set includeHistory to also get where the credits went — per day and per feature. Use this for AI credits only; for plan limits across every category use get_usage_limits. Requires organization context. Read-only: plan, seat and top-up changes are not available through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoFor includeHistory: how many days back to aggregate (default 30, max 365)
featureIdNoFor includeHistory: limit the aggregation to one feature ID
includeHistoryNoAlso return consumption per day and per feature (default false)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description states the read-only nature in words and explains that plan, seat, and top-up changes are unavailable through MCP by design. It also discloses that includeHistory changes the response to include consumption per day and per feature, which is valuable 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose and result contents, followed by usage boundaries and an alternative. Every sentence adds information, and there is no filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining what the caller gets back, and it does: balance remaining, plan inclusions, rollover/top-ups, reset time, and optional historical usage. It also covers when to use the tool, the alternative, and the organization-context prerequisite, making it complete for a read-only balance query.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description adds meaning by explaining that includeHistory controls the historical consumption view and by summarizing the returned categories. It does not deeply elaborate days/featureId beyond the schema, but the schema already documents those clearly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get the AI credit balance') and enumerates exactly what the result covers: remaining credits, plan inclusions, rollover/top-ups, and reset timing. It also explicitly differentiates itself from the sibling get_usage_limits by scoping itself to AI credits only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance ('Use this for AI credits only') and names the alternative for plan-wide limits ('for plan limits across every category use get_usage_limits'). It also notes the prerequisite of organization context and that mutations are intentionally out of scope.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_custom_roleGet Custom RoleA
Read-only
Inspect

Get one custom role by ID: its permission strings, how many members hold it and when it was last changed. Get the ID from list_custom_roles or from a member's customRoleId. Requires organization context. Read-only: members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleIdYesPublic ID (GUID) of the custom role

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, and the description reinforces this by explicitly stating the tool is read-only and that roles, members, teams, and SSO are intentionally not modifiable through MCP. This adds meaningful behavioral context beyond the annotations, though it does not discuss return format or errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loads the core purpose, and every sentence contributes either to understanding the return value, locating the parameter, or clarifying behavioral constraints. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read operation with a fully documented schema and readOnlyHint annotation, the description provides enough information to invoke the tool correctly: what it returns, where the ID comes from, and the required context. No output schema exists, but the description compensates by listing key return fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes roleId as the public ID (GUID) with 100% coverage. The description goes further by explaining where to obtain the ID, which adds practical meaning beyond the raw schema definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Get one custom role by ID') and the specific resource, then enumerates exactly what information is returned: permission strings, member count, and last-changed time. This distinguishes it from the sibling list_custom_roles, which retrieves multiple roles.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on how to obtain the required roleId, pointing to list_custom_roles and a member's customRoleId, and notes the required organization context. It does not explicitly contrast with list_custom_roles, but the ID-sourcing instruction implies the appropriate alternative usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboardGet DashboardA
Read-only
Inspect

Get dashboard statistics for the active project: spec count, environment count, and project info. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds behavioral context beyond that by specifying that the tool depends on the currently active project context and enumerates what statistics it returns. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first states the tool's purpose and output, and the second gives the prerequisite. There is no redundant wording or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless read-only tool with no output schema, the description adequately names the returned information and the required setup. 'Project info' is somewhat vague, but the overall usage context is complete enough for an agent to correctly select and invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is no parameter detail for the description to add. However, the description usefully clarifies that the effective scope is the 'active project' and that this is established by set_context, which is more informative than the empty schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('get') and resource ('dashboard statistics') and lists concrete contents: spec count, environment count, and project info. It is clearly distinct from sibling tools like list_projects or get_project because it refers to an aggregate dashboard for the active project.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear precondition: the active project context must already be set, and explicitly instructs to call set_context first. It gives useful context for when the tool can be used, though it does not explicitly mention when not to use it or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_deprecation_planGet Deprecation PlanA
Read-only
Inspect

Get the deprecation plan of one endpoint or published version, including its phase, sunset date, successor and migration guide. Returns null when nothing is deprecated. Set includeUsage to also see whether anyone still calls it — do that before retiring. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
entityIdYesPublic ID (GUID) of that endpoint or version
entityTypeYesWhat is deprecated: 'endpoint' or 'specVersion'
includeUsageNoAlso return recent traffic and top consumers (default false)
usageDaysBackNoHow many days of usage to look back (default 30)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true; the description adds real behavioral detail beyond that: it returns null when nothing is deprecated, and includeUsage surfaces recent traffic and top consumers. This shapes caller expectations about both the null case and the optional enrichment. No contradiction with the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose; each sentence contributes purpose, null behavior, usage flag, and prerequisite. No filler, though the second sentence packs the usage guidance into a slightly dense parenthetical style.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields (phase, sunset date, successor, migration guide) and the null case. The entityType values are covered by the schema, and the readOnly annotation covers safety. It remains silent on project-context failure behavior, but nothing essential is missing for a read-only single-entity lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters with descriptions and defaults. The description adds only marginal semantic value — framing includeUsage as a pre-retirement decision check — while usageDaysBack and the GUID fields are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get the deprecation plan of one endpoint or published version') with a clear scope, and itemizes the payload (phase, sunset date, successor, migration guide). It is clearly scoped to a single entity, which implicitly distinguishes it from list_deprecations, but it never names that or get_deprecation_policy as siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides actionable context: 'Set includeUsage to also see whether anyone still calls it — do that before retiring' tells the agent when the flag matters, and 'Requires project context' states a necessary precondition. It does not, however, state when NOT to use this tool or name alternative tools for listing many deprecations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_deprecation_policyGet Deprecation PolicyA
Read-only
Inspect

Get the organization's deprecation policy: the minimum grace period, whether a migration guide, a successor or an approval is required, and the reminder schedule. These are the rules manage_deprecation_plan('create') is checked against. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description's 'Get' verb aligns with that without contradiction. The description adds useful behavioral context beyond annotations: it specifies that organization context is required and enumerates what policy aspects the response covers, which helps an agent anticipate the result. No destructive or side-effect behavior is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler. It front-loads the primary action and resource, then gives a compact list of returned fields, and ends with a meaningful precondition. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter, read-only getter with no output schema, the description is adequately complete. It names the resource, describes the returned policy components, connects the tool to the creation flow where it matters, and states the organizational context requirement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 of 4 for zero-parameter tools applies, and the description does not need to compensate for any schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and a clear resource ('the organization's deprecation policy') and enumerates the exact contents returned: minimum grace period, migration guide requirements, successor/approval requirements, and reminder schedule. This makes it clearly distinct from related tools like get_deprecation_plan or list_deprecations by focusing on the organizational policy rather than individual plans.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this tool returns the organizational policy that governs deprecation plan creation, and it explicitly connects to manage_deprecation_plan('create') as the process being checked against. It also notes that organization context is required. It does not explicitly enumerate when not to use it or name sibling alternatives, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_pageGet Doc PageA
Read-only
Inspect

Get a documentation page with full content and metadata. Returns title, slug, Markdown content, page type, and timestamps. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe public Id (Guid) of the page
versionIdYesThe public Id (Guid) of the doc version
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds genuinely useful behavioral context beyond the annotation: the stateful set_context prerequisite and what the response contains (full content, metadata, timestamps). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: purpose, return fields, and prerequisite. Front-loaded with the action and zero filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only fetch tool with no output schema, the description covers the essentials: what is returned and the critical set_context prerequisite. It does not describe error behavior when context is missing or the relationship/validation between the three IDs, but nothing an agent needs to invoke it correctly is fundamentally absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% - each parameter already has a clear description ('The public Id (Guid) of the ...'). The description adds no parameter-level detail beyond the schema, so the baseline of 3 applies. It could have noted the hierarchy among documentationId, versionId, and pageId, but the schema adequately identifies each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and resource ('documentation page') and further clarifies by listing return fields (title, slug, Markdown content, page type, timestamps). This implicitly distinguishes it from siblings like get_doc_tree or get_doc_page_revision, though it never explicitly names an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear, actionable prerequisite: 'Requires project context (call set_context first).' This tells the agent the ordering dependency, which is valuable. However, it does not state when NOT to use this tool or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_page_revisionGet Doc Page RevisionA
Read-only
Inspect

Get one revision's full title and content — the preview before restoring it with manage_doc_page(action: 'restore_revision'). Get revisionId from list_doc_page_revisions. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe public Id (Guid) of the page
versionIdYesThe public Id (Guid) of the doc version
revisionIdYesThe public Id (Guid) of the revision
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds non-obvious behavioral context: it is a read-only preview of a revision before restoration, and it requires project context to be active. This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: what the tool returns, why to use it, and how to obtain the required revisionId. 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only single-revision fetch, the description covers the return content, the workflow purpose, the source of the revisionId, and the project-context prerequisite. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains each GUID parameter. The description adds one useful pointer — 'Get revisionId from list_doc_page_revisions' — but does not need to do more because the schema carries the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get one revision's full title and content'. It also frames the tool as 'the preview before restoring', which distinguishes it from generic doc-page getters and clarifies its role in the revision workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives concrete usage guidance: use it before restore_revision, get the revisionId from list_doc_page_revisions, and ensure project context is set. This tells an agent exactly when and how to invoke the tool in the surrounding workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_settingsGet Doc SettingsA
Read-only
Inspect

Get a documentation's settings: version numbering scheme, whether publishing needs approval and who may give it, the default code languages of the samples, and how schema names are displayed. Also returns the rowVersion that update_doc_settings takes. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it read-only. The description adds value beyond that by listing exactly which settings are returned, mentioning the rowVersion dependency, and stating the project-context precondition. No contradictions or hidden side effects are apparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences front-load the purpose, enumerate the returned settings, and add the relevant update_doc_settings dependency. Every sentence contributes meaningfully with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with no output schema, the description adequately covers what the call returns and why it is needed. The only minor gap is not explaining how 'project context' is established, but that appears to be a platform-level convention.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with documentationId already documented as 'The public Id (Guid) of the documentation'. The description adds no parameter-level detail, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Get a documentation's settings', and enumerates distinctive content (version numbering scheme, publishing approval, code languages, schema name display). This clearly distinguishes it from doc tree/page/snippet tools and even ties it to update_doc_settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides useful usage context: it requires project context and explicitly notes that it returns the rowVersion consumed by update_doc_settings. It does not explicitly say 'use this instead of X', but the enumerated settings make its role and timing clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_snippetGet Doc SnippetA
Read-only
Inspect

Get one snippet with its full Markdown content and rowVersion. Set includeUsages to also list the pages embedding it — do that before deleting one. Use this when you already have the snippet id; to browse a version's snippets use list_doc_snippets. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
snippetIdYesThe public Id (Guid) of the snippet
versionIdYesThe public Id (Guid) of the doc version
includeUsagesNoAlso list the pages using this snippet (default false)
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals that this is a read-only operation. The description adds useful behavioral context by noting that includeUsages should be set before deleting a snippet and that project context is required, going slightly beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences and every sentence earns its place: it states what is returned, clarifies includeUsages behavior, and gives usage guidance with a pointer to the sibling tool. There is no fluff or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Since there is no output schema, the description usefully explains that the response includes full Markdown content and rowVersion. It also mentions the prerequisite ('Requires project context') and the alternative tool for browsing, making the operational context sufficiently complete for a simple get-by-id operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters have schema descriptions, so the baseline is met. The tool description adds a little extra context for includeUsages ('also list the pages embedding it'), but the parameter descriptions already convey their meanings. No parameter is left unexplained, but the description does not substantially enrich the parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves one snippet with its full Markdown content and rowVersion. It explicitly names the resource ('snippet') and the specific operation ('Get'), leaving no ambiguity about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides direct usage guidance: 'Use this when you already have the snippet id' and points to the alternative for browsing: 'to browse a version's snippets use list_doc_snippets.' It also explains when to set includeUsages, making the tool's intended use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_treeGet Doc TreeA
Read-only
Inspect

Get the documentation tree (folders, pages, spec snapshots) for a specific version. Returns a hierarchical structure with sort order. Each node is typed as page, folder, or specSnapshot. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
versionIdYesThe public Id (Guid) of the doc version
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already include readOnlyHint=true, and the description adds meaningful context beyond that: the returned structure is hierarchical, includes sort order, and nodes are typed. It also discloses the prerequisite of project context. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loads the main purpose, and every sentence adds useful information: what the tool returns, the structure details, and a prerequisite. There is no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by describing the hierarchical return type, sort order, node types, and required project context. It is reasonably complete for a read-only tree-fetching tool, though some details about node fields or error cases are not covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents both parameters fully (100% coverage), including their types and purpose as public IDs. The description adds no additional parameter-level meaning, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: getting the documentation tree for a specific version. It also names the node types (page, folder, specSnapshot) and the hierarchical structure, which clearly differentiates it from sibling tools like get_doc_page or list_folders.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear prerequisite: project context must be set, and it explicitly points to set_context as the needed call. It does not mention when not to use this tool or compare it directly to alternatives, but the context is clear enough for an agent to infer appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_doc_version_publish_stateGet Doc Version Publish StateA
Read-only
Inspect

Whether a documentation version is ready to go live and whether the portal is showing its current content: lifecycle status, visibility, approval state, and whether anything was edited since the last successful portal build. Read this before publishing or building. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionIdYesThe public Id (Guid) of the doc version
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the safe-read nature. The description adds valuable behavioral detail by explaining what specific state is inspected and that the tool should be consulted before publishing or building. The 'Requires project context' note also sets expectations about a precondition, going beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loads the core outcome, and enumerates the key state categories without wordiness. Every sentence contributes useful information—what it checks, when to use it, and a prerequisite.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only state-check tool with no output schema, the description covers the purpose, the information returned, and the timing of use. The 'Requires project context' hint is somewhat underspecified (it doesn't explain how to establish context), but given the sibling set_context tool and the readOnlyHint annotation, this is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters fully described as public Ids. The description does not add any additional semantic nuance about the parameters beyond what the schema already provides. Per the calibration baseline, this is adequate but not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose: checking whether a documentation version is ready to go live and whether the portal reflects current content. It enumerates the state dimensions (lifecycle, visibility, approval, edits since last build), making the tool's scope understandable. It doesn't explicitly name a sibling to differentiate from, but the focus on publish-state is distinct enough among the large sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: 'Read this before publishing or building.' This tells an agent when the tool is appropriate. It also notes that project context is required, which is an important prerequisite. However, it does not explicitly state when not to use the tool or mention alternative tools such as get_publish_history.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_endpointGet EndpointA
Read-only
Inspect

Get detailed information about an endpoint including parameters, request body, responses, and security schemes. Pass endpointIds instead of endpointId to fetch several at once (up to 25) — the same detail per endpoint, in one call. Use this when you already have the endpoint id; to browse a spec's endpoints or find an id use list_endpoints. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
endpointIdNoPublic ID (GUID) of the endpoint — omit when using endpointIds
endpointIdsNoPublic IDs (GUIDs) of several endpoints, comma-separated, at most 25

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, so the read-only safety profile is covered. The description adds useful behavioral context: endpointIds fetches up to 25 endpoints with the same detail per endpoint in one call, and project context is required. This goes beyond what the annotations alone provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words: the first states the core purpose, the second covers the batch mode, and the third gives routing guidance. Information is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the readOnlyHint annotation, full schema coverage, and no output schema, the description adequately covers the return content, the batch limit, the required context, and the alternative tool. Nothing critical is missing for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the baseline is 3. The description adds the relationship that endpointIds can be passed instead of endpointId and returns the same detail per endpoint, which is helpful but does not add substantial syntax or format detail beyond what the schema already documents.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') with a clear resource ('endpoint') and enumerates the returned content: parameters, request body, responses, and security schemes. It also explicitly distinguishes itself from list_endpoints by noting this is for when the endpoint id is already known.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use the tool: when you already have the endpoint id. It names list_endpoints as the alternative for browsing a spec's endpoints or finding an id, and it adds the project context requirement, leaving no ambiguity about routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_environment_authGet Environment AuthA
Read-only
Inspect

Get the environment-level authentication configuration for an environment. Secret values are always masked. Returns {configured:false} when no auth is set. Requires organization context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project. If omitted, uses the active project context.
environmentIdYesPublic ID (GUID) of the environment

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool read-only, and the description adds non-obvious behavior: secret values are always masked and the sentinel {configured:false} is returned when no auth is configured. It also notes the organization-context requirement, which is not inferable from the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the purpose front-loaded, followed by return behavior and a usage prerequisite. Each sentence carries distinct information and there is no redundant text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple getter with two parameters and annotations, the description is sufficient: it explains masking, the no-auth return shape, and the set_context prerequisite. Nothing needed to invoke correctly is missing, and no output schema is required to understand the return.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%; both projectId and environmentId have meaningful descriptions. The tool description does not add parameter-specific details beyond the schema, so it makes no extra contribution to parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Get'), a specific resource ('environment-level authentication configuration'), and the owner ('an environment'). It is distinguishable from siblings like get_resolved_auth, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context by specifying the prerequisite: organization context via set_context. However, it does not explicitly exclude alternatives or state when to prefer this tool over others like get_resolved_auth.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_environment_pinsGet Environment PinsA
Read-only
Inspect

List which version each environment currently pins for this spec, whether the pin is frozen, and where it came from. Use this to see what each environment resolves to; to change a pin use promote_version. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'Requires project context', a behavioral prerequisite, and outlines what information is returned. The readOnlyHint annotation is consistent with the description, which implies no state changes by directing changes to another tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences that pack essential information without redundancy. Every phrase contributes to understanding the tool's purpose, usage, and requirements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool does, why to use it, what information it returns, and a prerequisite. Despite having no output schema, the description sufficiently explains the expected output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter specId is fully described in the schema as 'Public ID (GUID) of the API specification'. The description adds no additional parameter context, but since schema coverage is 100%, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'version each environment currently pins for this spec', including details about frozen status and origin. This leaves no ambiguity about the tool's purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides the use case 'to see what each environment resolves to' and directs to an alternative tool 'promote_version' for changing pins. This is clear guidance on when and when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_environment_variablesGet Environment VariablesA
Read-only
Inspect

Get resolved variables for a specific environment. Secret values are always masked for security. Use this to read resolved values; to change them use set_environment_variables. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project. If omitted, uses the active project context.
environmentIdYesPublic ID (GUID) of the environment

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates no mutation, and the description adds meaningful behavioral detail by stating that secret values are always masked. It also mentions the organization context prerequisite. This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and well-structured, with three concise sentences that cover purpose, behavior, usage direction, and context requirement. No unnecessary information is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for a simple read operation: it explains what is returned (resolved variables), important behavior (masking), and usage context. Since there is no output schema, the description could ideally mention the exact return format, but the current level of detail is sufficient for most callers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides full descriptions for both parameters, including the optionality of projectId and the required environmentId. The description does not add additional semantic detail beyond the schema, so a baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves resolved variables for a specific environment and explicitly mentions that secret values are masked. The verb 'get' and resource 'environment variables' are specific, and the description helps distinguish it from related tools that export or resolve variables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives direct usage guidance: use this to read resolved values, and use set_environment_variables to change them. It also notes the requirement for organization context. However, it does not contrast with sibling tools like resolve_variables or export_variables, which could further clarify when this specific read tool is preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_environment_verificationGet Environment VerificationA
Read-only
Inspect

For every environment of the project: when its contract tests last ran, with what result, against which spec version, and how many cases are still pending. Tells you which environment's results you can trust. Use this for the per-environment overview; for one suite's run history use get_test_results. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the exact information returned (last run time, result, spec version, pending count) and adds interpretive value ('Tells you which environment's results you can trust'). The readOnlyHint annotation already covers the safety profile, and the description adds behavioral context without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The first sentence front-loads the core function and output fields, the second provides usage guidance and a prerequisite. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully explains what the tool returns, when to use it, and a necessary precondition. With no output schema, the description covers the expected result fields. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the schema trivially covers 100% of them. The description doesn't need to explain any parameters; the baseline of 4 applies because the description appropriately omits parameter details that don't exist.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it provides per-environment verification of contract tests, listing last run time, result, spec version, and pending cases. It distinguishes itself from get_test_results by explicitly stating 'for one suite's run history use get_test_results'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs 'Use this for the per-environment overview; for one suite's run history use get_test_results', which clearly directs the agent to the correct tool for the intended scenario. It also notes the prerequisite 'Requires project context'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_finding_remediationGet Finding RemediationA
Read-only
Inspect

Get remediation advice for a single finding as GitHub-flavored markdown. When AI Assist is enabled and within budget this is a suggestion written for this exact finding; otherwise it falls back to the static guidance-library text and says so in 'source'. Unlike the other reads this one can spend AI budget, which is why it is a separate tool. Use this for advice on one finding; for the whole library use list_security_guidance. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
findingIdYesPublic Id (Guid) of the finding (from get_security_findings)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, it discloses that this tool can consume AI budget, may fall back to static text, and indicates the 'source' field communicates which mode was used. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence adds value: purpose, output format, behavior, budget caveat, and sibling distinction. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, it sufficiently explains what the response will contain (markdown advice, source field indicating fallback vs AI). It also covers prerequisites and when to use an alternative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter findingId is fully described in the schema with origin guidance ('from get_security_findings'). The description adds no additional semantic detail beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Get'), resource (remediation advice for a finding), and output format (GitHub-flavored markdown). It clearly differentiates from list_security_guidance by focusing on a single finding.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use for one finding and names the alternative list_security_guidance for the whole library. Also explains the AI budget condition that affects behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fixtureGet FixtureA
Read-only
Inspect

Get a fixture by its public ID including its raw source and normalized JSON content. Use this when you already have the fixture id; to browse the project's fixtures use list_fixtures. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
fixtureIdYesPublic ID (GUID) of the fixture to retrieve.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already communicates that this is a read-only operation, and the word 'Get' reinforces that. The description does not add extra behavioral details, but no contradiction exists and the annotation covers the main concern.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loads the primary purpose, and uses only two sentences to cover functionality, usage guidance, and prerequisites.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input and lack of output schema, the description provides sufficient context: what the tool returns, when to use it, and the alternative tool for browsing. No critical information is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the only parameter, fixtureId, as the public GUID of the fixture to retrieve. Since schema coverage is 100%, the description does not need to add much, though it could mention format expectations beyond GUID.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: retrieving a fixture by public ID and returning both raw source and normalized JSON content. It also distinguishes itself from list_fixtures, which is for browsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool when the fixture ID is already known and directs users to list_fixtures for browsing. It also notes that project context is required, giving clear usage conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_fixture_usageGet Fixture UsageA
Read-only
Inspect

Inspect a project fixture. view 'used_by' (default) lists everything referencing it — mock rules, test cases, seeds, doc examples — which is what to check before changing or deleting it; view 'versions' lists its saved versions with their content. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoWhat to read: 'used_by' (default) or 'versions'used_by
fixtureIdYesPublic Id (Guid) of the fixture

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description does not contradict that. The description adds useful behavioral context beyond annotations by stating the prerequisite 'Requires project context' and by disclosing what each view returns (referencing items vs saved versions with content).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three dense sentences with no filler: purpose, view-specific behavior, and a necessary prerequisite. The examples are concrete and the structure front-loads the main purpose before diving into details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining return values, and it does: 'used_by' returns referencing items and 'versions' returns saved versions with content. It also provides the prerequisite and use case. Minor gaps like pagination or error behavior are acceptable for a read-only inspection tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters. The description adds meaningful semantics to the 'view' parameter by explaining the default value and enumerating what 'used_by' contains (mock rules, test cases, seeds, doc examples), going beyond the schema's brief 'What to read'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Inspect a project fixture') and then enumerates exactly what the tool does via two views: 'used_by' lists referencing items and 'versions' lists saved versions with content. This clearly distinguishes it from siblings like get_fixture, which presumably returns the fixture itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: the 'used_by' view is 'what to check before changing or deleting' a fixture. It also clarifies what each view is for. However, it does not explicitly name sibling alternatives or state when not to use this tool, so it falls short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_governance_scoreGet Governance ScoreA
Read-only
Inspect

Get the quality score. Scope 'org' (default) averages across the organization's specs with the trend and a per-spec breakdown. Scope 'spec' needs specId and recalculates that spec's score on the spot — that writes a new snapshot and may raise alerts, so it is not a free read. Use this for the score itself; for the thresholds and weights behind it use get_governance_config. Requires project context for scope 'spec'.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhat to score: 'org' (default) or 'spec'org
specIdNoPublic ID (GUID) of the API specification — required for scope 'spec'

TDQS

A3.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states that for scope 'spec' it 'recalculates that spec's score on the spot — that writes a new snapshot and may raise alerts', which directly contradicts the readOnlyHint=true annotation. This is a serious inconsistency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise, using two sentences plus an explanatory clause. It conveys all necessary guidance without unnecessary verbosity, though it could be slightly tighter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, the two scopes, the side-effect for spec scope, and the alternative tool. It does not include an output schema, but the behavioral notes and usage guidance are sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with defaults and descriptions (100% coverage). The description adds that specId is required for scope 'spec' and notes the project context requirement, providing extra semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the quality score' with a specific resource, though 'quality score' could be interpreted as different from 'governance score'. It distinguishes between org and spec scopes, providing sufficient clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative tool 'get_governance_config' for thresholds and weights, and states the condition for using 'spec' scope requiring project context. This leaves no ambiguity about when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_header_componentGet Header ComponentA
Read-only
Inspect

Get one header component with its schema details and rowVersion. Level 'spec' (needs specId) or 'project'. Set includeUsage to also list what references it — spec level only; do that before deleting one. Use this for spec or project level; for the organization level use get_org_header_component. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesWhich level to read: 'spec' or 'project'
specIdNoPublic ID (GUID) of the API specification — required for level 'spec'
versionIdNoOptional version ID (GUID) to narrow includeUsage to one version
componentIdYesPublic ID (GUID) of the header component
includeUsageNoAlso list what references this component — spec level only (default false)

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so the safety profile is already known. The description adds meaningful behavioral context: the includeUsage flag is only valid at spec level and is intended for pre-deletion checks, plus it clarifies the prerequisite 'Requires project context'. This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, then the level/usage nuances, then the alternative tool and prerequisite. Every sentence earns its place with no redundant phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only get tool with 5 parameters, the description covers the return contents (schema details and rowVersion), the level semantics, the includeUsage behavior, the alternative for org level, and the project context requirement. No critical calling information is missing, even without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds semantic value by clarifying that specId is required for level 'spec' and that includeUsage only applies at spec level, tying parameters to usage conditions that the schema alone doesn't fully convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get one header component with its schema details and rowVersion' – a specific verb and resource. It also distinguishes from the sibling get_org_header_component by explicitly scoping levels to 'spec' or 'project', so an agent can differentiate them 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage context: 'Use this for spec or project level; for the organization level use get_org_header_component.' It also advises when to set includeUsage ('do that before deleting one'), providing a clear when-to-use and an alternative tool. No ambiguity remains.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_header_policiesGet Header PoliciesA
Read-only
Inspect

Get the headers that apply to a WHOLE endpoint, grouped by status code, after the org → project → spec cascade. Takes an endpointId; for one response use get_resolved_headers (responseId). Neither returns policy definitions — list those with list_header_policies. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
endpointIdYesPublic ID (GUID) of the endpoint

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context: the org → project → spec cascade, grouping by status code, and that this tool does not return policy definitions. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, each earning its place: what the tool returns, the key alternative, and the definition-listing alternative. Slightly redundant with the schema by saying 'Takes an endpointId' when specId is also required, but overall tight and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only two-parameter lookup with no output schema, the description covers response grouping, cascade behavior, alternatives, and a prerequisite. It does not detail the exact response format, but enough is provided for correct selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds the 'whole endpoint' vs 'one response' nuance for endpointId, but it does not really elaborate on specId beyond the schema. It is adequate but not a major value-add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb ('Get'), the resource ('headers that apply to a WHOLE endpoint'), the grouping ('by status code'), and the cascade context. It explicitly distinguishes this tool from get_resolved_headers, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: use this for whole-endpoint headers, use get_resolved_headers for a single response, and use list_header_policies for policy definitions. It also notes the project context prerequisite, leaving little to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_header_policyGet Header PolicyA
Read-only
Inspect

Get one header policy with its scopes, assigned header components and rowVersion. Level 'spec' (needs specId) or 'project'. Set includeImpact to also see which endpoints and responses it touches and which policies conflict with it — spec level only. Requires project context. Use this for spec or project level; for the organization level use get_org_header_policy.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesWhich level to read: 'spec' or 'project'
specIdNoPublic ID (GUID) of the API specification — required for level 'spec'
policyIdYesPublic ID (GUID) of the header policy
includeImpactNoAlso report affected endpoints and conflicting policies — spec level only (default false)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers read-only behavior; the description adds context about returned data (scopes, components, impact) without conflicting with the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, well-structured, and front-loads the primary action. Each sentence adds necessary information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers what is returned, level requirements, and the distinction from org-level. Does not mention errors or edge cases, but these are not essential given the tool's simplicity and available annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All four parameters are effectively explained: policyId implied by 'Get one header policy', level and specId clarified by 'spec needs specId or project', and includeImpact detailed with its effect. Schema coverage is 100% and description adds meaningful nuances.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a single header policy with its scopes, components, and rowVersion, distinguishing it from listing (get_header_policies) and org-level (get_org_header_policy).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use (spec or project level), the need for specId at spec level, and directs org-level usage to a sibling tool. Also notes the includeImpact option is spec-level only.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_linked_endpoint_contractGet Linked Endpoint ContractA
Read-only
Inspect

Get the request contract of the spec endpoint a test case is linked to: header parameters, request body schema and example, and the response schemas per status code. This is what the case is expected to send and receive — use it to write assertions that match the contract instead of guessing. Returns null when the case is not linked. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseIdYesPublic Id (Guid) of the test case

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=true. The description adds meaningful behavioral context beyond that: it returns null when the case is not linked, it requires project context, and it details exactly what the returned contract contains. This is strong disclosure for a read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences front-load the core object and its contents, then deliver the use case, null edge case, and context requirement. Every sentence earns its place and there is no filler or repetition of structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given one parameter, a read-only annotation, and no output schema, the description is complete enough: it explains what the returned contract contains, how to use it, what happens when there is no linked endpoint, and the project-context prerequisite. An agent has sufficient information to call and interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes testCaseId as the public ID (GUID) of the test case, with 100% schema description coverage. The description reinforces the link between the test case and the endpoint contract but does not add meaningful parameter-level detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise verb and resource: 'Get the request contract of the spec endpoint a test case is linked to' and then enumerates the contract contents: header parameters, request body schema and example, and response schemas per status code. This clearly distinguishes it from generic endpoint, spec, and contract tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states the intended use: 'use it to write assertions that match the contract instead of guessing.' It also frames the output as what the case is expected to send and receive. However, it does not name sibling tools or exclusion conditions, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_media_type_componentGet Media Type ComponentA
Read-only
Inspect

Get one reusable media type component (OpenAPI 3.2) with its schema, itemSchema, example and rowVersion. Use this when you already have the component id; to browse them use list_media_type_components. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
componentIdYesPublic ID (GUID) of the media type component

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnlyHint=true, and the description adds value by naming the returned data (schema, itemSchema, example, rowVersion) and noting the project-context requirement. It does not discuss error behavior such as unknown component IDs, but this is a minor gap for a simple read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences deliver the operation, returned data, sibling distinction, and an important precondition without filler. The core action is front-loaded and every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool, the description covers what is returned and when to use it, which compensates for the missing output schema. The 'Requires project context' note is useful, though it could be slightly clearer about how the context is provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides full descriptions for specId and componentId at 100% coverage. The description reinforces the component-id usage pattern but adds no additional parameter-level detail beyond the schema, so the schema-coverage baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific operation and resource ('Get one reusable media type component (OpenAPI 3.2)') and lists the key returned fields. It also distinguishes this fetch-by-ID tool from its browse sibling, list_media_type_components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to use this tool when the component id is already known and to use list_media_type_components for browsing. It also states the 'Requires project context' precondition, giving clear selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_merge_policyGet Merge PolicyA
Read-only
Inspect

Get the merge policy of a spec: how many reviewers a merge request needs and which guards apply. isDefault true means no policy was configured and these are the defaults. Use this to read the policy; to change it use update_merge_policy. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description doesn't need to repeat that. It adds valuable context: the isDefault flag semantics and the project context requirement. It does not mention error cases or response format, but for a simple read-only getter with annotations, this is sufficient and adds meaningful behavior beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste. The core purpose is front-loaded, followed by the isDefault clarification and then routing/prerequisite guidance. Every sentence earns its place and the structure is clean.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter getter with read-only annotation, the description covers what it does, what the response means (reviewers/guards, isDefault), and how to change it. It is complete for an agent to call correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with specId fully described as 'Public ID (GUID) of the API specification'. The description does not add any additional semantics for the parameter beyond what the schema already provides, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb 'Get' and the resource 'merge policy of a spec', and elaborates on what it contains (reviewer count and guards). It also explains the isDefault flag, which distinguishes the meaning of the response. This is specific and differentiates from sibling policy getters like get_alert_policy or get_deprecation_policy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative tool (update_merge_policy) and the condition for using it ('to change it'). Also notes 'Requires project context', which hints at a prerequisite. This is clear routing guidance with no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_merge_requestGet Merge RequestA
Read-only
Inspect

Get one merge request with its reviewers, their decisions and the comment thread. The userId values under reviewers are what manage_merge_request('create') expects. Set includeAuditTrail for the who-did-what history of the spec's merge requests. For what the merge would actually change, use get_branch(includeDiff). Use this when you already have the merge request id; to browse them use list_merge_requests. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
mergeRequestIdYesPublic ID (GUID) of the merge request
includeAuditTrailNoAlso return the audit trail of this spec's merge requests (default false)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only nature, and the description adds value by detailing the returned content (reviewers, decisions, comment thread) and the effect of includeAuditTrail. It does not contradict the annotation, and while it doesn't describe side effects, none are expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with each sentence serving a distinct purpose: defining the resource, providing a cross-reference, explaining a parameter, and giving usage guidance. It is well-structured and no unnecessary words are used.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and lack of output schema, the description adequately covers the core functionality, parameters, and relationship to other tools. It also notes the requirement of project context. Minor gaps like error conditions are not addressed, but for this level of complexity the completeness is strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all three parameters with descriptions. The description adds a useful cross-reference that the userId values under reviewers are what manage_merge_request('create') expects, and clarifies the purpose of includeAuditTrail. It enriches but does not replace the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves a single merge request with its reviewers, decisions, and comment thread. The verb 'Get' and resource are explicit. It also distinguishes from related tools like list_merge_requests and get_branch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool: 'Use this when you already have the merge request id'. It also points to alternatives: 'to browse them use list_merge_requests' and 'for what the merge would actually change, use get_branch'. This gives clear routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mock_rule_diagnosticsGet Mock Rule DiagnosticsA
Read-only
Inspect

Inspect one mock rule. view 'drift' (default) compares the rule against the latest published spec version and lists what changed since it was pinned; view 'state' returns the stored state of a stateful rule. Use this to inspect one rule's drift or match history; to browse the rules use list_mock_rules. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoWhat to inspect: 'drift' (default) or 'state'drift
ruleIdYesThe public Id (Guid) of the mock rule

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates a safe read operation, and the description appropriately describes the informational nature without adding conflicting details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, presenting the tool's purpose and view options in two clear sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description adequately conveys the tool's behavior and return nature for both views, though it lacks explicit examples or output details, which is acceptable for a simple getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters; the description adds no new parameter information beyond what is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool inspects one mock rule and explains the two views ('drift' and 'state'), distinguishing it from sibling tools like list_mock_rules.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to use this tool for inspecting one rule's drift or state and directs browsing to list_mock_rules, providing clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mock_serverGet Mock ServerA
Read-only
Inspect

Get the mock server status and URL for the active project. Returns server details including MockCode, URL, active status, rule count, and Smart Mock settings. Returns null if no mock server exists yet (use create_mock_server to create one). Set includeStats to also get rule, request-log and spec-coverage statistics. The access token is never returned; when requireToken is on, the only way to obtain one is 'regenerate_mock_server_token' (which invalidates the old token). Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
includeStatsNoAlso return rule counts, request-log aggregates and which spec endpoints have no mock rule yet. Defaults to false.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses important behavior: it returns null when no mock server exists, never returns the access token, explains token regeneration invalidates the old token, and requires project context. These details inform the agent of edge cases and side-effect-free behavior without relying on annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and return value, then progressively adds optional behavior, security caveats, and prerequisites. Every sentence adds distinct useful information with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, the description compensates by enumerating the returned fields, null behavior, optional stats behavior, token security semantics, and setup requirement. This is enough for an agent to call the tool correctly and interpret common results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents includeStats with full coverage (100%), including its default and effect. The description restates this information in prose but adds minimal new semantic value, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets the mock server status and URL for the active project, names the returned fields, and differentiates itself from siblings like list_mock_rules or get_mock_usage by focusing on the mock server itself. It also specifies a null return when no server exists, which sharpens the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: it requires project context via set_context first, and it directs users to create_mock_server when no server exists. It does not explicitly contrast with all similar mock-related tools, but the scoping to 'active project' and the create path provide strong usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_mock_usageGet Mock UsageA
Read-only
Inspect

Read the organization's mock request usage against its plan limit. view 'current' (default) returns the running month with the limit and reset date, 'history' the monthly totals, 'breakdown' the current month split by project. This is what to check when mock requests start being rejected. Use this for request usage against the plan limit; for the individual requests use get_request_logs. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoWhat to read: 'current' (default), 'history' or 'breakdown'current
monthsNoFor view 'history': how many months back. Defaults to 6.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only nature, and the description reinforces it with 'Read.' It adds extra context about the required organization context and describes what each view returns, which is valuable beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a few sentences but each adds value: purpose, view-specific outputs, when to use, and alternative. It is slightly verbose but well-structured and not repetitive.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description adequately explains what each view returns and mentions the prerequisite of organization context. It also points to the alternative tool for individual requests, covering key operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both params described, so baseline is 3. The description adds semantic depth by explaining what 'current' returns (running month with limit and reset date), 'history' (monthly totals), and 'breakdown' (current month split by project), which goes beyond the schema's brief descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Read' and the specific resource 'organization's mock request usage against its plan limit,' which is precise. It distinguishes itself from the sibling get_request_logs by expressly directing individual request lookups there.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is given: 'This is what to check when mock requests start being rejected' and 'Use this for request usage against the plan limit; for the individual requests use get_request_logs.' This leaves no ambiguity about when to choose this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_monitorGet MonitorA
Read-only
Inspect

Get one monitor with its recent checks. The include flags pull in what the monitor detail page shows next to it: uptime and latency percentiles over 24h to 90d, the alert policy that applies (inherited or its own), its maintenance windows, and the fire/resolve history of its alerts. Use this when you already have the monitor id; to browse a project's monitors use list_monitors. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
monitorIdYesPublic ID (GUID) of the monitor, from list_monitors
includeUptimeStatsNoInclude uptime percentages and response-time percentiles
includeAlertHistoryNoInclude the fire/resolve history of this monitor's alerts
includeEffectivePolicyNoInclude the alert policy that applies to this monitor and where it comes from
includeFreshnessWatchesNoInclude watched field paths and how long each value has been unchanged
includeMaintenanceWindowsNoInclude the maintenance windows that cover this monitor

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already communicates the read-only nature, and the description adds transparency about what the include flags do and what data is returned. No conflicting side effects are mentioned, and the description accurately reflects the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet informative, using a clear structure: a one-line purpose, a summary of the include flags, and explicit usage and context notes. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers what the tool returns (recent checks, uptime/latency, alert policy, maintenance windows, fire/resolve history) and prerequisite context. Since there is no output schema, this textual description sufficiently informs the agent about expected results and usage constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Each of the six parameters has a clear, descriptive schema entry. The main parameter monitorId is explained as a GUID obtainable from list_monitors, and the include flags are each described with their effect. The description adds extra context on top of the schema, fully clarifying parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a single monitor with its recent checks, and differentiates it from list_monitors. It explicitly names the purpose and scope, making it easy for an agent to select this tool over siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides direct usage guidance: 'Use this when you already have the monitor id; to browse a project's monitors use list_monitors.' It also notes the prerequisite of project context, giving clear conditions for when to invoke this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_monitoring_settingsGet Monitoring SettingsA
Read-only
Inspect

Get the project's monitoring defaults: how long check history is kept, the default check interval, timeout, incident threshold and schema validation mode, and whether monitors are created automatically when a spec is published. Use this to read the defaults; to change them use update_monitoring_settings. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project — defaults to the project in the session context

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares the read-only nature, and the description aligns with that by using 'Get' and 'read the defaults'. No side effects are mentioned, but the annotation covers the primary behavioral trait.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first lists the contained settings, the second states usage and alternative. No redundancy, clear structure, and all information is relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although no output schema is provided, the description enumerates what the returned settings include, which gives sufficient context for an agent to understand the expected result. The mention of the update alternative provides additional operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes projectId with its default and type, achieving 100% coverage. The description repeats the 'requires project context' hint but adds little beyond the schema, so it neither enhances nor detracts from parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'Get' and the resource 'project's monitoring defaults', enumerating the specific settings included. Explicitly contrasts with the sibling update_monitoring_settings, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this to read the defaults; to change them use update_monitoring_settings.' This directly tells the agent when to use this tool versus the alternative. Also notes the prerequisite of project context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_monitoring_sync_statusGet Monitoring Sync StatusA
Read-only
Inspect

Compare a spec against the monitors that exist for it in one environment: how much of it is covered, which endpoints have no monitor, which monitors point at endpoints that are gone, and how many are drift-watched. The starting point before generating monitors. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
projectIdNoPublic ID (GUID) of the project — defaults to the project in the session context
environmentIdYesPublic ID (GUID) of the environment

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description does not contradict that. It adds meaningful behavioral detail beyond the annotation by describing the comparison scope, the coverage assessment, orphan monitors, and drift-watched counts. It does not discuss pagination or output format, but the read-only nature is already covered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler. The first sentence front-loads the core purpose and the output dimensions, and the second sentence gives placement in the workflow. Every part earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is strong for a read-only status tool: it explains what the comparison includes, the workflow position, and the project-context requirement. Since there is no output schema, a little more specificity about the exact return shape would make it fully complete, but the current level is highly usable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description adds context about 'one environment' and the project-context requirement, but does not add significant meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Compare') and resource ('a spec against the monitors that exist for it in one environment'), then enumerates exactly what kinds of information the status conveys. This clearly distinguishes it from related tools like get_monitoring_settings or list_monitors.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit usage context: 'The starting point before generating monitors' and the prerequisite 'Requires project context.' It does not name alternative tools or state when not to use it, but the context is specific enough to guide selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_my_permissionsGet My PermissionsA
Read-only
Inspect

Get the caller's own role and effective permission strings in the active organization — custom roles resolved. This is the tool to reach for after a permission error: it says what the caller actually holds. Set includeCatalog to also get every permission the product defines with its description, to map a denied action onto a name. Requires organization context. Read-only: members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeCatalogNoAlso return the full catalog of permissions the product defines (default false)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses the custom-role resolution behavior, the organization-context prerequisite, and what read-only concretely means (members, roles, teams, SSO are not changeable via MCP and require the web app). Each of these adds behavioral context the annotation alone does not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five sentences, each earning its place: purpose, use-case trigger, parameter guidance, precondition, and read-only scope. Front-loaded with the core function and free of filler or redundancy with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with one optional parameter and no output schema, the description covers what is returned (role, effective permission strings, optional permission catalog), when to call it, the organization-context prerequisite, and the boundary of what it cannot do. Nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by giving the parameter's purpose ('to map a denied action onto a name'), which explains why an agent would set includeCatalog rather than just what it does.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Get the caller's own role and effective permission strings in the active organization') with a distinguishing nuance ('custom roles resolved'). It clearly scopes to the caller's own permissions, which differentiates it from sibling tools like get_custom_role and list_members without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger condition ('This is the tool to reach for after a permission error'), an explicit precondition ('Requires organization context'), and an explicit when-not with an alternative ('members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app'). This fully routes the agent on when and 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.

get_notification_preferencesGet Notification PreferencesA
Read-only
Inspect

Read notification preferences per category. scope 'user' (default) returns your own settings, where isUserOverride tells you whether a category follows the organization default or your own choice; scope 'org' returns the organization defaults. Use this to read preferences; to change your own use update_notification_preferences. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhose settings to read: 'user' (default) or 'org'user

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation is present, and the description consistently indicates read-only behavior. It adds a necessary precondition ('Requires organization context') and explains the meaning of isUserOverride in the output, going beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant phrasing, and the content is well-organized: first the function, then scope behavior, then usage guidance. Every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains the key output concept (isUserOverride) and the precondition for use. Since there is no output schema, the description sufficiently covers what the agent needs to know to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single parameter 'scope' is 100% (description and default are provided). The tool description does not add any information about 'scope' beyond what the schema already states, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it reads notification preferences per category, and distinguishes itself from update_notification_preferences. The verb 'Read' and resource 'notification preferences' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (to read preferences) and when not (to change, use update_notification_preferences). Also explains the difference between 'user' and 'org' scopes, giving clear guidance on selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_org_doc_templateGet Organization Doc TemplateA
Read-only
Inspect

Get one organization documentation template with its full content and rowVersion. Use this when you already have the template id; to browse them or find an id use list_org_doc_templates.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesThe public Id (Guid) of the template

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates a safe read operation. The description adds useful behavioral context by stating the return includes 'full content and rowVersion', giving an expectation of what the tool provides. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences, front-loaded with the action, and contains no fluff. It efficiently conveys purpose, usage, and key return information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read-only tool with no output schema, the description is complete: it states what it returns, when to use it, and the sibling alternative. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, templateId, is fully described in the schema as 'The public Id (Guid) of the template', and the description also references the template ID, providing complete parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States exactly what it does: retrieve one organization documentation template with full content and rowVersion. It clearly distinguishes from siblings by indicating it is used when the template ID is already known, and it mentions list_org_doc_templates as the alternative for browsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use this tool ('when you already have the template id') and when to use the sibling ('to browse them or find an id use list_org_doc_templates'). This gives clear, actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_parameter_componentGet Parameter ComponentA
Read-only
Inspect

Get one reusable parameter component with its schema details and rowVersion. Set includeUsage to also list the endpoints referencing it — do that before deleting one. Use this when you already have the component id; to browse them or find an id use list_parameter_components. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
componentIdYesPublic ID (GUID) of the parameter component
includeUsageNoAlso list what references this component (default false)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals no side effects, so the description doesn't need to repeat that. It adds useful context about the includeUsage parameter's purpose (checking endpoints before deletion), which aids in understanding the tool's behavior. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and to the point, with no redundant wording. It conveys all essential information in two sentences and a short clause, making it easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description indicates what is returned (schema details and rowVersion) but does not enumerate all response fields or error scenarios. Given the tool's simplicity and the presence of sibling tools for listing, this is sufficient for an agent to know when and how to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all three parameters with descriptions, achieving 100% coverage. The description adds marginal value by explaining the purpose of includeUsage (listing referencing endpoints) and implies that specId and componentId are identifiers needed for lookup. No additional semantics beyond schema are necessary.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the specific resource 'reusable parameter component', including what is returned (schema details and rowVersion). It distinguishes this tool from list_parameter_components and other component getters by focusing on a single component by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('when you already have the component id') and when to use the alternative ('to browse them or find an id use list_parameter_components'). It also mentions a precondition ('Requires project context') and provides a practical hint about includeUsage before deletion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_portal_pageGet Portal PageA
Read-only
Inspect

Retrieve a single PUBLISHED documentation page by slug, with its full Markdown content. Only pages from the latest published version are accessible. Use search_portal_docs to discover slugs. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
pageSlugYesThe slug of the page to retrieve
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the read-only safety is covered. The description adds useful behavioral constraints beyond the annotation: only the latest published version is accessible and project context must be set beforehand.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, each carrying distinct information: what the tool returns, scoping constraints, how to discover slugs, and the required precondition. No filler or restatement of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read tool with a high-coverage schema and a readOnly annotation, the description is complete: it names the return content, scopes the accessible pages, gives the discovery path, and states the prerequisite.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful value by tying documentationId to the latest published version and by telling the agent to use search_portal_docs to discover valid pageSlug values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb-resource statement: 'Retrieve a single PUBLISHED documentation page by slug, with its full Markdown content.' The qualifiers 'single', 'PUBLISHED', 'by slug', and 'latest published version' clearly separate it from discovery tools like search_portal_docs and from revision-oriented tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent to use search_portal_docs to discover slugs and requires set_context first. It clearly states the call context but does not explicitly name when-not-to-use alternatives for other version/unpublished scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_projectGet ProjectA
Read-only
Inspect

Get detailed information about a project, including its environments. Use this when you already have the project id; to browse the organization's projects use list_projects. Requires organization context (call set_context first). If no projectId is given, uses the active project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project. If omitted, uses the active project context.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals no side effects, and the description adds useful behavioral context about requiring organization context and falling back to the active project.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with no redundant or unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description clearly conveys what the tool returns and the conditions under which it operates, making it complete for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the parameter fully, and the description adds meaningful clarification by explaining the GUID format and the behavior when projectId is omitted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action ('Get detailed information about a project') and explicitly distinguishes itself from list_projects, making its purpose clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use the tool (when project id is already known), when to use the alternative (list_projects), and notes the prerequisite to call set_context first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_publish_historyGet Publish HistoryA
Read-only
Inspect

List when a version was published, to which target and by whom. Use this for what has already been published; for publishes still ahead use get_scheduled_publishes. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of entries to skip (default 0)
takeNoNumber of entries to return (default 50, max 100)
specIdYesPublic ID (GUID) of the API specification
versionIdYesPublic ID (GUID) of the version

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the safety profile, and the description adds meaningful behavioral context: it lists already-published events only and requires project context. It does not describe return ordering or pagination, but that is a minor gap for a read-only listing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action is front-loaded, and the alternative tool plus prerequisite are stated in a compact, useful way.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only listing tool with a fully documented schema and a readOnlyHint, the description plus schema gives an agent everything needed to call it correctly: the subject, the distinction from scheduled publishes, and the context requirement. No output schema is present, but the description communicates what the result contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter coverage, so the schema already documents all four parameters including defaults and limits. The description adds no new parameter-level meaning, but it doesn't need to; the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and names the resource and attributes returned: when a version was published, to which target, and by whom. It also distinguishes itself from get_scheduled_publishes, so an agent can tell them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('for what has already been published') and names the alternative for future publishes ('get_scheduled_publishes'). It also notes the prerequisite of project context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_request_body_componentGet Request Body ComponentA
Read-only
Inspect

Get a request body component including its schema definition (inline schemaJson or a linked schemaId) and its rowVersion for updates. Optionally include usage details showing which endpoints link it. Use this when you already have the component id; to browse them or find an id use list_request_body_components. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
includeUsageNoInclude usage details showing which endpoints link this component (default false)
requestBodyComponentIdYesPublic ID (GUID) of the request body component

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers safety, and the description adds useful context about requiring project context and the purpose of rowVersion for future updates. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, and directly states the tool's function and usage context without extraneous detail. It is well-structured and front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully explains what the tool does and when to use it. The absence of an output schema is not an issue because the description does not need to specify return values; the tool name and details are sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of all three parameters with clear descriptions. The tool description does not add additional meaning beyond what the schema already states, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a request body component, including its schema definition and rowVersion, and optionally usage details. It explicitly distinguishes itself from list_request_body_components, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance: use when you already have the component id, and use list_request_body_components to browse or find an id. It also notes that project context is required, which is important operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_request_configGet Request ConfigA
Read-only
Inspect

Get the full request configuration of a test case: method, URL, body, scripts and all headers with their ids. Returns null when the case has no request yet — use set_test_case_request to create one. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testCaseIdYesPublic Id (Guid) of the test case

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true. The description adds value beyond that by disclosing the null-return behavior when no request exists and the project-context requirement. These are genuine behavioral traits an agent needs to know. It doesn't cover response format details, but for a simple single-parameter read tool the null case is the key behavior and it is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste: the core purpose and return contents are front-loaded in sentence one, the null edge case and fallback tool in sentence two, and the context prerequisite in sentence three. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter, no output schema, and no nested objects, the description is complete: it states what is returned, enumerates the returned fields, discloses the null case, points to the corrective tool, and flags the context prerequisite. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the schema already documents testCaseId as 'Public Id (Guid) of the test case.' The description adds no parameter-specific meaning beyond the schema, so the baseline of 3 applies. The description's mention of the request configuration contents does not meaningfully clarify the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get the full request configuration of a test case') and enumerates exactly what is returned: method, URL, body, scripts, and headers with their ids. This precise scoping clearly distinguishes it from siblings like get_request_logs or list_test_cases without needing to inspect their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit edge-case guidance: 'Returns null when the case has no request yet — use set_test_case_request to create one,' which names an alternative tool and the condition that selects it. It also states the prerequisite 'Requires project context.' It stops short of a broader when-to-use vs. when-not-to-use discussion across the large sibling set, hence not a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_request_logsGet Request LogsA
Read-only
Inspect

Get request logs from the mock server showing recent incoming requests and matched rules. Supports filtering by HTTP method, path, status code, and time range. Pass logId to get ONE log with its full request and response bodies and headers instead of the list — that is where you look when a request matched the wrong rule. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of logs to skip (for pagination, default 0)
takeNoNumber of logs to return (default 50, max 100)
logIdNoPublic Id (Guid) of a single log. When given, returns that one log in full (bodies and headers) and every filter and pagination parameter is ignored.
methodNoFilter by HTTP method (e.g., 'GET', 'POST')
statusCodeNoFilter by response status code
mockServerIdYesThe public Id (Guid) of the mock server
pathContainsNoFilter by path containing this text

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true, the safety profile is already covered. The description adds useful behavioral details: the difference between list and single-log responses, full bodies/headers, and the need for project context. However, it claims support for 'time range' filtering, but no such parameter exists in the input schema, which is a misleading behavioral statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured: purpose first, then filtering options, then the special logId case, then the prerequisite. Every sentence adds useful information, and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with no output schema, the description covers the main decision points: what the tool returns, when to use logId, and the project-context prerequisite. It does not describe the response shape beyond 'list' vs 'full bodies and headers', but the schema covers pagination and filter semantics, so the description is mostly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful context for logId, explaining that it returns full bodies and headers and that it is the parameter to use for wrong-rule diagnosis. It also clarifies the purpose of method/path/status filters, going slightly beyond raw schema descriptions. The unsupported 'time range' reference is a minor drawback.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('get'), a resource ('request logs from the mock server'), and the content ('recent incoming requests and matched rules'). It also clearly differentiates the list mode from the single-log mode via logId, which distinguishes this tool from siblings like get_audit_log or get_mock_rule_diagnostics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance for logId: use it to get one full log when a request matched the wrong rule. It also provides a prerequisite ('Requires project context (call set_context first)'). However, it does not name alternative tools or state when not to use this tool, so the guidance stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resolved_authGet Resolved AuthA
Read-only
Inspect

Show which auth a test suite or test case actually uses after inheritance, and where it comes from — the case, the suite, the environment or the project. Secret values are not returned. Use this before debugging a 401 by hand. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
entityIdYesPublic Id (Guid) of the test suite or test case
entityTypeYesWhat entityId refers to: 'suite' or 'testCase'
environmentIdNoPublic Id (Guid) of the environment to resolve against. Omit for the project default.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only mark the tool as readOnly; the description adds meaningful behavior: secrets are not returned, inheritance resolution spans case/suite/environment/project, and project context is required. This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler: purpose and scope first, then secret-handling warning, then use case and prerequisite. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All invocation-relevant information is present: required params, optional environment, prerequisite, and what the result conveys. There is no output schema, but the description explains what is shown and what is redacted; exact return shape is not necessary to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents entityId, entityType, and environmentId. The description adds contextual framing about inheritance and project default but no new parameter-level detail, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Show') and names a precise resource: the resolved auth for a test suite or test case after inheritance, including its source. This clearly distinguishes it from raw environment auth tools like get_environment_auth.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit trigger: 'Use this before debugging a 401 by hand.' It also states a prerequisite ('Requires project context'). It does not explicitly name alternatives or say when not to use it, but the use case is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_resolved_headersGet Resolved HeadersA
Read-only
Inspect

Get the headers that actually apply to one endpoint response after the full cascade — organization, project and spec policies, local overrides and exclusions — each with where it came from. get_header_policies does the same for a whole endpoint, grouped by status code. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
responseIdYesPublic ID (GUID) of the endpoint response

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavioral context: the resolution cascade (organization, project, spec policies, local overrides, exclusions) and that each header includes its source. This goes beyond the annotation and gives the agent a precise mental model of what the tool computes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, tightly packed with essential information: what it returns, how it differs from a sibling, and a prerequisite. No filler or repetition. The most critical scope detail is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with no output schema, the description sufficiently conveys what the result includes (headers with origin). It also handles the main disambiguation with get_header_policies and notes the project context requirement. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters have descriptions, so the schema already documents the parameters. The description does not add extra meaning to the parameters themselves; it focuses on the output semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear action ('Get the headers that actually apply to one endpoint response'), the exact scope (one response after full cascade), and details what is returned (with origin). It explicitly distinguishes from the sibling get_header_policies, which covers a whole endpoint grouped by status code, so an agent can easily tell them apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly names the alternative (get_header_policies) and the difference in scope (one response vs. whole endpoint), giving clear when-to-use guidance. It also states a prerequisite ('Requires project context'), which is useful operational guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_response_componentGet Response ComponentA
Read-only
Inspect

Get one reusable response component with its schema, headers and rowVersion. Set includeUsage to also list what references it. Use this when you already have the component id; to browse them or find an id use list_response_components. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
componentIdYesPublic ID (GUID) of the response component
includeUsageNoAlso list what references this component (default false)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates a non-destructive operation, and the description adds useful behavioral details such as requiring project context and the effect of setting includeUsage. No contradictions or hidden 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of three focused sentences with no redundant or irrelevant information. It front-loads the core purpose and then provides necessary usage context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple GET-like tool with no output schema, the description sufficiently explains what will be returned (schema, headers, rowVersion) and the optional includeUsage behavior. It also communicates the project context prerequisite, making it complete enough 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all three parameters with meaningful descriptions. The tool description adds some usage nuance, such as having the component ID beforehand, but does not significantly expand parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a single reusable response component with its schema, headers, and rowVersion. It also distinguishes itself from list_response_components by specifying that it is for when a component ID is already known.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the user to use this tool when they already have the component ID and directs them to list_response_components for browsing or finding an ID. It also notes that project context is required, giving clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_scheduled_publishesGet Scheduled PublishesA
Read-only
Inspect

List the scheduled publishes of a version. Pending ones by default; pass includeExecuted or includeCancelled to see the rest. Use this for publishes that have not run yet; for those already done use get_publish_history. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdYesPublic ID (GUID) of the version
includeExecutedNoInclude schedules that already ran (default false)
includeCancelledNoInclude cancelled schedules (default false)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. It adds useful behavioral detail: default returns pending schedules, includeExecuted/includeCancelled alter filtering, and 'Requires project context' is a prerequisite not captured in annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero redundancy. The core purpose is front-loaded, followed by filter behavior, then usage guidance and prerequisite. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with full schema coverage and a read-only annotation, the description covers purpose, defaults, flags, alternative, and prerequisite. It does not describe the return format or pagination, but these are not critical for a straightforward list operation, and no output schema exists to fill that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaning beyond schema by clarifying the default filter ('Pending ones by default') and that the include flags broaden the result set. This helps the agent understand parameter behavior without opening the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the scheduled publishes of a version') and explicitly differentiates from get_publish_history by scope (pending vs executed). An agent can distinguish it 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use ('publishes that have not run yet') and names the alternative (get_publish_history) for already-run ones. Also notes the default behavior and the flags to broaden results, plus a prerequisite (project context).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_schemaGet SchemaA
Read-only
Inspect

Get detailed information about a schema including its full JSON Schema definition. Optionally include usage details showing which endpoints reference it. Use this when you already have the schema id; to browse a spec's schemas or find an id use list_schemas. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
schemaIdYesPublic ID (GUID) of the schema
includeUsageNoInclude usage details showing which endpoints reference this schema (default false)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates this is a read-only operation, and the description does not contradict that. The description adds useful detail about the response content, including the JSON Schema definition and optional usage information, but does not discuss potential errors or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three focused sentences with no redundant or vague language. It front-loads the primary purpose, then adds optional behavior and usage guidance, making it concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete for this simple read-only tool: it states what is returned, when to use it, when to use the alternative, and the prerequisite of project context. No output schema is present, but the description sufficiently conveys the expected output shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage for all three parameters with clear descriptions. The description adds only marginal context by linking schemaId to the alternative list_schemas workflow and clarifying that includeUsage controls endpoint reference details, but it largely repeats what the parameter descriptions already state.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves detailed schema information including the full JSON Schema definition, and distinguishes it from list_schemas for browsing or finding schema IDs. The verb 'Get' and resource 'schema' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool when the schema ID is already known and directs users to list_schemas for browsing or finding IDs. It also notes that project context is required, providing clear conditions for appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_schema_drift_reportGet Schema Drift ReportA
Read-only
Inspect

Get what a monitor's schema validation found: per check whether it passed, and the drift items with their JSON path, severity, expected and actual value. Only returns something for monitors with schema validation on — see manage_drift_watch. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoOnly checks at or before this UTC timestamp (ISO 8601)
fromNoOnly checks at or after this UTC timestamp (ISO 8601)
takeNoMaximum number of checks to report on, defaults to 50
monitorIdYesPublic ID (GUID) of the monitor, from list_monitors

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals a safe read, and the description adds meaningful behavior beyond that: it returns per-check pass/fail plus drift item details, only returns data when schema validation is enabled, and requires project context. This is valuable context for an operation with no 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and efficiently structured: the core purpose and output details come first, followed by the important precondition and context requirement. Every sentence contributes information without repetition or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description adequately covers return contents and the key prerequisite. Minor gaps remain around exact behavior when schema validation is off (empty result vs. no report) and how to establish project context, but these are not critical for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema documentation covers 100% of the parameters, so the schema itself already explains monitorId, from, to, and take. The description adds no parameter-specific semantics beyond the overall output context, which aligns with the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific verb ('Get'), a specific resource ('a monitor's schema validation'), and the exact output contents ('per check whether it passed, and the drift items with their JSON path, severity, expected and actual value'). This clearly distinguishes the tool from related siblings like get_contract_drift or list_monitor_checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when the tool is meaningful: 'Only returns something for monitors with schema validation on'. It also points to manage_drift_watch for enabling that state. It doesn't explicitly name alternative tools to avoid, but the prerequisite and scoping are clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_security_findingsGet Security FindingsA
Read-only
Inspect

List security findings for the active project, optionally filtered by status, severity, scanner, or a free-text search. Findings are ordered by severity (most severe first). Pass findingId to get one finding in full, including the raw evidence the scanner captured (request and response) — that blob is omitted from the list to keep it small. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of findings to skip (for pagination, default 0)
takeNoNumber of findings to return (default 50, max 100)
searchNoFree-text search over finding title/description
statusNoFilter by status: 'open', 'inProgress', 'fixed', 'falsePositive', 'acceptedRisk', 'duplicate' (omit for all)
severityNoFilter by severity: 'info', 'low', 'medium', 'high', 'critical' (omit for all)
findingIdNoPublic Id (Guid) of a single finding. When given, the filters are ignored.
scannerIdNoFilter by scanner id (omit for all scanners)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses meaningful behaviors: findings are ordered by severity, the list omits the raw evidence blob to stay small, passing findingId returns the full evidence (request/response), and project context is required. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences deliver the core action, filter options, ordering, single-finding behavior, and a key precondition. There is no repetition or filler, and 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with 7 optional parameters and no output schema, the description covers the list-versus-detail modes, ordering, evidence handling, and project context. Remaining details like filter enum values and pagination bounds are fully handled by the schema, so nothing critical is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value by explaining that the list mode purposely omits the raw evidence for size and that findingId switches to a full-detail mode including that evidence. This enriches the findingId parameter beyond the schema's 'filters are ignored' note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('security findings' for the active project), then details optional filters and the distinct single-finding retrieval mode via findingId. This separates it from siblings like export_findings_sarif and get_finding_remediation without requiring schema inspection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context is provided: the tool lists findings with optional filters and can fetch a full finding with raw evidence when findingId is passed. It also notes the 'Requires project context' precondition. However, it does not explicitly name alternatives or state when not to use this tool versus related security tools, so it falls short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_security_scheme_componentGet Security Scheme ComponentA
Read-only
Inspect

Get one security scheme with its type-specific settings and rowVersion. Set includeUsage to also list the endpoints requiring it. Use this when you already have the scheme id; to browse them or find an id use list_security_scheme_components. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
componentIdYesPublic ID (GUID) of the security scheme component
includeUsageNoAlso list what references this scheme (default false)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates no side effects; the description adds no contradictory information. While it doesn't discuss rate limits or auth, the annotation lowers the bar and the description is consistent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. The essential information is front-loaded and every word adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Sufficient for a simple get operation. Mentions project context and differentiates from the list tool. Lacks details on error handling or output format, but these are not critical for a read-only fetch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all three parameters with descriptions. The description reinforces includeUsage's behavior and default value, adding slight value beyond the schema, which has 100% coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States exactly what the tool does: get a single security scheme component with its settings and rowVersion. Clearly differentiates from list_security_scheme_components by explaining the use case for that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance: use when you already have the scheme id; otherwise use the list sibling. Also mentions the optional includeUsage flag and the prerequisite of project context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_security_scoreGet Security ScoreA
Read-only
Inspect

Get the active project's security score (0–100) and the count of open findings by severity. Pass trendDays to also get the daily score history over that many days — that is how you tell whether a project is improving or drifting. Use this for the score and open counts; for the findings behind it use get_security_findings. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
trendDaysNoDays of score history to include, 1-365. Omit for the current score only.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds valuable behavioral context: what is returned (score, counts, optional history) and how trendDays affects the result. It does not contradict the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no filler: main purpose first, then optional parameter behavior, then sibling routing. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description covers the return values, the parameter's effect, and the alternative tool. It could detail the severity breakdown format, but that is a minor omission given the simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter trendDays, so the schema already documents its type, range, and default. The description goes beyond by explaining its purpose ('that is how you tell whether a project is improving or drifting'), adding interpretive value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as retrieving the active project's security score (0–100) and open-finding counts by severity, which is specific and distinct from siblings. It also explicitly names get_security_findings as the tool for underlying findings, further clarifying its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('Use this for the score and open counts') and when not to ('for the findings behind it use get_security_findings'), and it notes the requirement of project context. This is unambiguous routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_session_usageSession UsageA
Read-only
Inspect

Return usage metrics for the current MCP session: total tool calls, error count, aggregate duration and response size, per-tool call counts, and session timestamps. Metrics are in-memory and reset when the server restarts or the session goes idle. Use this for what this session has spent; for which toolsets exist at all use list_toolsets.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that metrics are in-memory and reset on server restart or session idle, which is additional behavioral context beyond the readOnlyHint annotation. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two well-structured sentences: the first lists return contents, the second provides state and usage guidance. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description sufficiently enumerates the returned metrics and includes reset semantics and usage context, making it complete for an agent to decide and invoke.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description need not explain any. The baseline for zero parameters is 4, and the description is consistent with that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns usage metrics for the current MCP session, listing specific metrics (tool calls, errors, duration, response size, timestamps). Explicitly distinguishes from list_toolsets by naming the alternative for toolset existence.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use this tool ('for what this session has spent') and when to use list_toolsets instead. Also notes the reset behavior for context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_shared_responseGet Shared ResponseA
Read-only
Inspect

Get one shared response with its schema, headers, example and rowVersion. Scope 'project' (default) or 'org'. Set includeUsedBy to also list the specs linking it — project scope only. Use this when you already have the response id; to browse the library use list_shared_responses.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhich library to read: 'project' (default) or 'org'project
responseIdYesPublic ID (GUID) of the shared response
includeUsedByNoAlso list the specs using this response — project scope only (default false)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation 'readOnlyHint: true' covers the read-only nature, and the description's 'Get' aligns with that. The description adds context about the 'includeUsedBy' parameter being project-scope only, which is an extra behavioral detail not stated in the annotation. No contradictions; the slight extra context justifies a 4 rather than a 3.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of three short sentences with no redundant information. It includes the essential action, parameters, and usage distinction without fluff, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple GET operation with no output schema, the description provides sufficient context: it lists what the response includes (schema, headers, example, rowVersion), explains scope options, and clarifies the intended use case. No critical missing information for an agent to invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all three parameters have descriptions in the input schema). The description does not add significant meaning beyond the schema—it restates the 'project scope only' constraint for 'includeUsedBy' but otherwise repeats the schema defaults. As per the baseline rule for high schema coverage, a score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Get') and the resource ('shared response') with specific output details (schema, headers, example, rowVersion). It also distinguishes itself from the sibling 'list_shared_responses' by noting it is for when you already have the response ID, making selection unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Use this when you already have the response id' and explicitly points to the alternative for browsing: 'to browse the library use list_shared_responses.' This leaves no ambiguity about when to choose this tool over its sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_shared_schemaGet Shared SchemaA
Read-only
Inspect

Get one shared schema with its full JSON Schema and rowVersion. Scope 'project' (default) or 'org'. Set includeUsedBy to also list the specs linking it — do that before deleting one; it only works in project scope. Use this when you already have the schema id; to browse the library use list_shared_schemas.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhich library to read: 'project' (default) or 'org'project
schemaIdYesPublic ID (GUID) of the shared schema
includeUsedByNoAlso list the specs using this schema — project scope only (default false)

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes non-mutating behavior, and the description adds useful context about using includeUsedBy before deletion and its project-scope-only restriction. It does not contradict the annotation, though it does not explicitly restate the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense, with no filler. Each sentence adds a distinct piece of useful information: what is returned, the scope options, the includeUsedBy behavior, and when to use the alternative tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of an output schema, the description sufficiently describes the returned content (full JSON Schema, rowVersion, optionally linked specs). It also provides appropriate alternative guidance and usage context, making the tool understandable for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers all three parameters with descriptions, and the tool description adds meaningful context beyond the schema, especially the workflow implication of includeUsedBy and the project-scope restriction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a single shared schema with its full JSON Schema and rowVersion, and distinguishes it from browsing via list_shared_schemas. The verb 'Get' and resource identification are precise and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool when the schema ID is already known and to use list_shared_schemas for browsing. It also explains the practical purpose of includeUsedBy before deleting a schema and the project-scope limitation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_specGet SpecA
Read-only
Inspect

Get detailed information about an API specification, including whether its documentation is internal, authenticated or public and under which slug. Includes the spec's versions (newest first, up to 10) — use their id as versionId for create_endpoint and other version-scoped tools. Use this when you already have the spec id; to browse the project's specs or find an id use list_specs. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true aligns with the safe read operation described; description adds useful context about requiring project context and the included version information, though it does not mention error or auth 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences each serve a clear purpose: core functionality, version-id usage hint, and when to use the tool versus list_specs. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies enough detail about what is returned (key spec info and versions) and context requirements, though a fuller return-shape summary could be added.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter specId is fully described in the schema as a public GUID, and the description reinforces it is an existing id, but adds little beyond the schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool retrieves detailed information about a specific API specification, including visibility and slug, and explicitly differentiates from list_specs for browsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use when the spec id is already known and directs to list_specs for browsing/finding ids, plus notes the requirement for project context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_spec_usage_in_docsGet Spec Usage In DocsA
Read-only
Inspect

Find which documentation versions embed a given API specification — read this after publishing a spec to see which snapshots are now stale. By default only mutable (Draft/Review) doc versions are listed; set includePublished to also see the live ones. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesThe public Id (Guid) of the API specification
includePublishedNoAlso list published doc versions, not just mutable ones (default false)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint, and the description reinforces it with 'read this' and explains the read operation's purpose. It goes beyond the annotation by clarifying the use case (after publishing) and default behavior (mutable vs published). No contradictions detected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant wording, and information is front-loaded (purpose first, then use case, then parameter behavior). Very efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides when to use, what it returns (stale snapshots), default behavior, how to change it, and a prerequisite (project context). It doesn't describe output format or error conditions, but for a simple read operation with no output schema, this is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with clear descriptions for both specId and includePublished. The description adds minimal extra meaning beyond the schema; it just restates includePublished's effect. Since schema already carries the load, a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states a clear purpose: find which documentation versions embed a given API specification. It uses a specific verb (find) and resource (documentation versions + spec) and includes distinguishing details like stale snapshots. This is easy to understand and differentiates from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: after publishing a spec to see stale snapshots. Also explains default behavior (only mutable versions) and how to modify it with includePublished. Mentions the project context requirement, providing actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_subscriptionGet SubscriptionA
Read-only
Inspect

Get the organization's subscription: which plan is in force, its status, how many seats are paid for versus actually used, and whether a plan change is already scheduled for the period end. effectiveTier is the field feature limits are gated on — it accounts for a running trial and the grace period and can differ from the subscribed planTier. Use this for the plan in force; while a trial is running use get_trial. Requires organization context. Read-only: plan, seat and top-up changes are not available through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond the readOnlyHint annotation by explaining the effectiveTier vs planTier distinction and why they may differ, which is a subtle behavioral nuance. It reinforces that no modifications are possible, aligning with the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is generally concise and well-structured, with the main purpose first, followed by the effectiveTier clarification, alternative tool guidance, and read-only note. Slight redundancy in the read-only sentence, but it does not detract significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters and no output schema, the description covers all necessary aspects: purpose, key fields, usage distinction, and operational constraints. It is self-contained and answers likely agent questions about when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameters, so there is nothing to elaborate. The description adds the prerequisite 'Requires organization context,' which is helpful for agents to know before calling. This context is not reflected in the schema, so the description adds value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the organization's subscription' and enumerates the specific details it retrieves (plan, status, seat usage, scheduled changes). It distinguishes itself from the sibling tool get_trial, providing a precise scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance is given: 'Use this for the plan in force; while a trial is running use get_trial.' It also clarifies that modifications are not possible via MCP, telling agents that this is a read-only operation and that changes must be done in the web app.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tagGet TagA
Read-only
Inspect

Get a single endpoint tag with its description, icon, display order and endpoint count. Use this when you already have the tag id; to browse a spec's tags or find an id use list_tags. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagIdYesPublic ID (GUID) of the tag
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) the tag belongs to

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations include readOnlyHint=true, so the description doesn't need extra side-effect details. No additional behavioral context needed beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that clearly state purpose, usage, and required context without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Lacks an output schema, but the description enumerates the return fields (description, icon, display order, endpoint count), which compensates. Provides enough context for a single-resource getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all three parameters (100% coverage). The description adds slight context about tag id usage but doesn't significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets a single endpoint tag with specific fields (description, icon, display order, endpoint count). Distinguishes from list_tags for browsing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (already have tag id) and points to list_tags for browsing/finding ids. Also mentions required project context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_testing_settingsGet Testing SettingsA
Read-only
Inspect

Read the project's testing settings. schemaNullMode decides how contract assertions treat null values against a schema. Use this to read the settings; to change them use update_testing_settings. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context beyond the readOnlyHint annotation by explaining what schemaNullMode controls and stating the project-context requirement. It does not describe the return shape, but the annotation already covers the read-only safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the core purpose. Each sentence contributes either the read action, the setting semantics, the alternative tool, or the prerequisite, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool, the description is complete: it states what is read, why the setting matters, how to change it, and the required context. Nothing necessary for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema covers everything; the baseline is 4. The description adds value by explaining the meaning of schemaNullMode, the setting the tool reads.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Read') and resource ('the project's testing settings'), and explicitly names the sibling alternative update_testing_settings to avoid confusion. It clearly distinguishes this tool from the many other get_* tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit usage direction: 'Use this to read the settings; to change them use update_testing_settings.' It also notes the prerequisite that project context is required, which is actionable guidance for when this tool can be invoked.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_resultGet Test ResultA
Read-only
Inspect

Get ONE test case's result inside a run: status code, timing, the response body and headers, every assertion outcome, extracted variables and any script output. This is the read to make when a run failed and you need to know why. The id comes from get_test_run's results[].id, not from get_test_results (run ids). Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testResultIdYesPublic Id (Guid) of the test result

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although readOnlyHint is already annotated, the description adds meaningful behavioral context: it discloses what data the read returns, that it depends on an ID from get_test_run, and that project context is required. This goes well beyond the annotation and helps the agent set correct expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, beginning with the core purpose and payload contents. Every sentence adds useful information: what it returns, when to use it, where the ID comes from, and the context requirement. There is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema present, the description compensates by listing the full set of returned data: status code, timing, body, headers, assertions, extracted variables, and script output. It also covers the single parameter's provenance and usage context, making the tool fully invokable without additional lookups.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents testResultId as a Public Guid of the test result. The description adds valuable semantics by explaining that the id originates from get_test_run's results[].id and not from get_test_results. This is useful extra guidance beyond the schema's basic definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource: 'Get ONE test case's result inside a run' and enumerates exactly what is returned. It clearly distinguishes this tool from get_test_run and get_test_results by emphasizing singular result vs. run-level identifiers. An agent can immediately understand what this tool does and how it differs from nearby siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool: 'This is the read to make when a run failed and you need to know why.' It also provides the critical ID source, get_test_run's results[].id, and warns against confusing it with get_test_results run ids. This gives clear usage direction and prevents common mistakes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_resultsGet Test ResultsA
Read-only
Inspect

List the run history of a test suite: each execution with status, timing and pass/fail counts. Returns run ids — pass one to get_test_run for that run's cases, then get_test_result for one case. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of runs to skip (for pagination, default 0)
takeNoNumber of runs to return (default 20, max 100)
testSuiteIdYesPublic ID (GUID) of the test suite

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description doesn't need to restate that. It adds value by describing the returned data (status, timing, pass/fail counts) and the workflow of run ids, plus the context requirement, going beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, then workflow, then prerequisite. Every word earns its place with zero waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description explains what is returned (run history with details) and how to proceed, making it complete for an agent to use correctly. It also notes the context requirement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all three parameters with 100% coverage, so the description adds no extra parameter semantics. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists run history of a test suite with status, timing, and pass/fail counts, and distinguishes itself from get_test_run and get_test_result by describing the downstream flow. This differentiates it from siblings like get_test_suite or list_test_runs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit routing: pass run ids to get_test_run then get_test_result, and notes the prerequisite of project context. This clearly guides when to use this tool as the entry point for exploring test results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_runGet Test RunA
Read-only
Inspect

Get ONE run with every case it executed: status, timing and a per-case row carrying its own id. testRunId comes from run_test_suite or get_test_results; a case id goes to get_test_result. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testRunIdYesPublic ID (GUID) of the test run

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral detail: it returns one run with every executed case, including status, timing, and per-case IDs. The 'Requires project context' note also informs runtime prerequisites beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences deliver the core behavior, output details, ID provenance, and an alternative tool route. Every sentence earns its place, and the key distinguishing behavior is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, read-only annotation, and no output schema, the description covers the main return contents (status, timing, per-case rows) and the required context. It does not specify the exact response shape, but the described contents are sufficient for an agent to understand what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema describes testRunId as a public GUID. The description adds value by indicating how to obtain a valid testRunId from run_test_suite or get_test_results, which is semantic guidance beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Get ONE run with every case it executed' with concrete details about status, timing, and per-case rows. It clearly differentiates from sibling tools such as get_test_result and get_test_results by specifying the exact granularity and ID routing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names where testRunId comes from ('run_test_suite or get_test_results') and tells the agent when a case id should go to get_test_result instead. It also notes the prerequisite of project context, giving clear usage direction without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_test_suiteGet Test SuiteA
Read-only
Inspect

Get detailed information about a test suite including its test cases. Set includeStats for run history and pass rate, includeExtractionVariables for the variables the suite's cases extract and pass on to later cases. Use this when you already have the suite id; to browse the project's suites use list_test_suites. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testSuiteIdYesPublic ID (GUID) of the test suite
includeStatsNoAlso return run counts, pass rate and last run status. Defaults to false.
includeExtractionVariablesNoAlso return the variables extracted by this suite's cases, with the case that defines each. Defaults to false.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation indicates this is a read-only operation, and the description does not contradict that. As a 'get' tool, it is implicit that no modifications occur. The description adds some detail about optional output flags but does not overpromise side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences to convey the core functionality and usage guidance. It avoids unnecessary detail, though the repetition of parameter meanings in the second sentence is slightly redundant given the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is no output schema, the description usefully indicates what the tool returns (detailed suite info, test cases, and optionally stats and extraction variables). This is sufficient for an agent to understand the tool's functionality, though it does not specify the exact structure of the returned data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides 100% coverage of the three parameters, each with a clear description. The tool description merely restates the purpose of includeStats and includeExtractionVariables without adding new information beyond the schema, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool retrieves detailed information about a test suite, including its test cases. It distinguishes itself from the sibling tool list_test_suites by specifying that it is used when the suite ID is already known, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool ('when you already have the suite id') and provides the alternative for browsing suites ('to browse the project's suites use list_test_suites'). This gives clear guidance on tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_trialGet TrialA
Read-only
Inspect

Get the organization's trial: which tier it grants, whether it is still running, when it expires and how many days are left. Unlike the other billing tools this one only needs organization membership, not billing:read. Use this for the trial; for the paid plan behind it use get_subscription. Requires organization context. Read-only: plan, seat and top-up changes are not available through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses that plan, seat, and top-up changes are not available through MCP by design and are handled by a human in the web app. It also mentions the permission model, adding valuable behavioral context beyond what the annotation provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences, each adding distinct value: what it returns, the permission difference, the sibling routing, and the read-only limitation. It is front-loaded with the core purpose and has no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with a clear return description, the description fully covers what an agent needs: what it does, when to use it, what permissions are needed, and what is intentionally not supported. No gaps remain for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description carries no parameter burden. The baseline for 0 params is 4; the description doesn't need to explain anything about inputs since there are none.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource (the organization's trial) and the specific information it returns: tier, running status, expiry, days left. It explicitly differentiates from get_subscription, naming the sibling and the exact condition for choosing between them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance: 'Use this for the trial; for the paid plan behind it use get_subscription.' Also states the permission requirement (organization membership, not billing:read) and that organization context is required, covering both when to use and when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usage_limitsGet Usage LimitsA
Read-only
Inspect

Get current usage against the plan limits, one entry per category (projects, specs, members, …) with the current count, the maximum and whether the category is unlimited. This is the tool that answers 'why can I not create another one'. Use this for usage against plan limits; for the AI credit balance use get_credit_balance. Requires organization context. Read-only: plan, seat and top-up changes are not available through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, but the description adds meaningful context: the operation is read-only by design, changes are done by a human in the web app, and the return shape is disclosed (one entry per category with count, maximum, and unlimited status). This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: the first sentence states purpose and output shape, the second gives a concrete use case, the third routes to the correct sibling, and the fourth adds context and read-only constraints. The key distinction is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with no output schema, the description is complete: it explains what the tool returns, why it is used, when to prefer a sibling, what context is required, and what is intentionally out of scope. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no input parameters, so the schema carries no parameter semantics. The description adds the important invocation requirement of organization context and explains what the returned entries contain, compensating fully for the empty input schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Get current usage against the plan limits') and adds precise scope: one entry per category with current count, maximum, and unlimited flag. It also distinguishes itself from the close sibling get_credit_balance, so an agent can pick it out from the large get_* sibling set.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use this tool ('Use this for usage against plan limits') and names the alternative for AI credit balance ('use get_credit_balance'). It also states the requirement of organization context and clarifies that plan, seat, and top-up changes are intentionally not available through MCP.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versionGet VersionA
Read-only
Inspect

Get one spec version with its status, release notes, alias, publish and deprecation timestamps, and the rowVersion needed to edit it. Use this when you already have the version id; to browse a spec's versions or find an id use list_versions. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdYesPublic ID (GUID) of the version

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds context beyond that: it reveals that the returned rowVersion is 'needed to edit it', signaling a downstream use case, and mentions the project context requirement. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence front-loads the resource and return fields; the second provides usage guidance and the alternative tool. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 2-parameter read operation, the description covers what the tool returns, when to use it, the alternative, and the prerequisite. Although there is no output schema, the listed fields give the agent a complete mental model of the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents specId and versionId as GUIDs. The description adds a small contextual hint by saying 'when you already have the version id', but it does not add any new semantic detail beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Get one spec version') and enumerates the exact fields returned (status, release notes, alias, timestamps, rowVersion). It explicitly distinguishes itself from list_versions, making the tool's purpose unambiguous among many sibling get_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance: 'Use this when you already have the version id' and directs the agent to the alternative ('to browse a spec's versions or find an id use list_versions'). It also notes the prerequisite of project context, leaving no ambiguity about invocation conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_versioning_strategyGet Versioning StrategyA
Read-only
Inspect

Get the versioning strategy configured for an API specification, including version aliases. Use this to read the strategy; to change it use set_versioning_strategy. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint=true annotation already indicates a read-only operation, and the description reinforces this by saying 'read the strategy.' It adds context about the tool's side-effect-free nature (no mention of modifications) and the requirement for project context. No contradictions exist between the description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: two sentences. The first sentence states the primary function and output scope ('including version aliases'), and the second provides usage guidance and prerequisite. It is front-loaded with the core purpose and contains no irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description partially describes the return by mentioning 'versioning strategy' and 'version aliases' but does not specify the exact format or fields. It also omits error conditions or exceptions. However, for a get operation with clear parameter semantics, this is adequate and the 'requires project context' note adds necessary context. Slightly more detail on return structure would make it fully complete, but it's not lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully covers the single parameter specId with a clear description ('Public ID (GUID) of the API specification') and 100% coverage, so baseline is 3. The tool description does not add any extra semantics about specId itself, only mentioning project context as a prerequisite, which does not directly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get the versioning strategy configured for an API specification, including version aliases.' It uses a specific verb ('Get') and resource ('versioning strategy'), and distinguishes itself from the many other get_* siblings by focusing on versioning strategy. The mention of 'including version aliases' adds specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to read the strategy; to change it use set_versioning_strategy,' which clearly indicates when to use this tool versus the alternative for modifying. It also states a prerequisite: 'Requires project context,' informing the user about necessary setup. This is explicit and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lint_specLint SpecA
Read-only
Inspect

Validate an API specification against style guide rules. Returns violations grouped by severity (error, warning, info) with rule details and affected paths. Use this to check against style guide rules; to check against the OpenAPI standard use validate_spec. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification to lint

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already indicates this is a read-only operation, and the description does not contradict that. The description adds useful behavioral details about the output format (violations grouped by severity with rule details and affected paths) and the requirement for project context, which goes beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, leading with the primary action and resource. It efficiently covers purpose, output, alternative tool, and a key prerequisite in three sentences without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although there is no output schema, the description explicitly states what the return value contains: violations grouped by severity with rule details and affected paths. It also notes the project context requirement, covering the essential operational context an agent needs to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the only parameter, specId, as a public ID/GUID of the API specification. The tool description itself does not add extra parameter-level detail, but because schema coverage is 100%, the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: validating an API specification against style guide rules. It also explicitly distinguishes this from validate_spec, which checks against the OpenAPI standard, reducing ambiguity among sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides direct guidance on when to use this tool ('check against style guide rules') and when to use the alternative ('to check against the OpenAPI standard use validate_spec'). It also notes the prerequisite of project context, which is important for invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_alert_policiesList Alert PoliciesA
Read-only
Inspect

List the alert policies of a project with their rules. Set includeAssignments to also get which environments, specs and monitors each policy is attached to — that is where the assignmentId for unassigning comes from. Use this to browse policies or find an id; to create or change one use manage_alert_policy. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project — defaults to the project in the session context
includeAssignmentsNoInclude the scope assignments of the policies

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint: true, covering the read-only nature. The description adds valuable behavioral context by explaining that includeAssignments is the source of assignmentId for unassigning, and notes that it returns policies 'with their rules'. This goes beyond the annotation and helps the agent understand the tool's output semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the primary purpose. The second sentence adds the key usage nuance without fluff. Every sentence contributes meaning, making it efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with only two optional parameters. The description covers the core action, the key optional parameter behavior, the use case, and the alternative tool. No output schema exists, but the agent can infer the list structure. Nothing essential is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters documented. The description adds significant meaning beyond the schema by explaining the purpose of includeAssignments (to get environments, specs, monitors attached) and where assignmentId comes from. This extra context helps the agent decide when to set it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('List') and resource ('alert policies of a project'), and distinguishes it from the sibling get_alert_policy (which retrieves a single policy) and manage_alert_policy (for mutations). This makes 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('to browse policies or find an id') and explicitly names the alternative for mutations ('to create or change one use manage_alert_policy'). It also notes the requirement for project context, giving clear guidance on when and how to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_artifact_sync_reviewsList Artifact Sync ReviewsA
Read-only
Inspect

List what in this project has fallen out of sync with the specs behind it — mocks, tests and monitors whose endpoint changed or disappeared. Worth reading after changing a draft: these are the follow-ups that change created. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation is consistent with the description's list-only semantics. The description does not explicitly mention side effects, but none are implied and the annotation covers the main behavioral expectation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core purpose in the first sentence. The second sentence adds practical usage guidance without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context for a list operation with no parameters and no output schema. It could optionally detail the exact response shape, but the absence of an output schema makes the current description sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline of 4 applies. The description mentions requiring project context, which is presumably set via another tool rather than a parameter, so no additional parameter explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists project artifacts (mocks, tests, monitors) that have fallen out of sync with their specs. It is specific enough to distinguish from generic list tools, though similar to contract-drift tools it names concrete artifact types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises reading this after changing a draft and notes that it identifies follow-up work. It also states that project context is required, giving clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_available_specsList Available SpecsA
Read-only
Inspect

List the project's API specifications with their published status — the candidates for manage_spec_snapshot(action: 'add'). A spec without a published version cannot be snapshotted. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionIdYesThe public Id (Guid) of the doc version
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While the readOnlyHint annotation already signals a read-only operation, the description adds behavioral nuance by explaining the published-status filter and its relation to snapshotting. This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: two sentences and a short prerequisite note. It delivers the key purpose and an important constraint without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fails to explain the role of documentationId and versionId in the context of listing specs, nor does it mention what the output looks like. The mismatch between the tool's purpose and its required inputs is a significant gap that could mislead the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The required parameters documentationId and versionId are only described as 'public Id', which does not clarify why a list operation needs a specific documentation and version. The description does not reconcile these inputs with the tool's stated purpose, leaving the agent uncertain about what to pass.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists the project's API specifications with their published status, and explicitly positions them as candidates for manage_spec_snapshot. This differentiates it from other list tools like list_specs by focusing on snapshot eligibility.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete condition for use ('A spec without a published version cannot be snapshotted') and notes the prerequisite of project context. It does not explicitly name alternative tools, but the guidance implies when this tool is relevant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_branchesList BranchesA
Read-only
Inspect

List the branches of a draft version, with their status (active, merged or closed). Use this to browse branches or find a branch id; for one branch with its diff use get_branch. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdYesPublic ID (GUID) of the spec version the branches belong to

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the status taxonomy (active/merged/closed) and the project-context requirement, which goes beyond the schema. Minor gap: no mention of pagination or result limits for a browsing tool, but annotations carry the safety burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, then usage routing, then prerequisite. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with 100% schema coverage and readOnlyHint annotation, the description covers purpose, usage routing, and prerequisite. It omits pagination/limit behavior, which could matter when browsing, but this is minor against the strong overall coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters are fully documented in the schema. The description adds the 'draft version' clarification and the project-context requirement, which slightly enriches parameter meaning, but the schema carries the heavy lifting. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List), resource (branches of a draft version), and the returned statuses (active, merged, closed). It explicitly names the sibling get_branch as the alternative for single-branch diff, distinguishing the two without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: browse branches or find a branch id, and explicitly routes to get_branch for a single branch with diff. Also notes the project context prerequisite, leaving nothing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_contract_driftList Contract DriftA
Read-only
Inspect

List the endpoints of a project whose live responses drift from their contract, grouped by endpoint with the drift items, how long it has lasted and the contract version checked against. Resolved events are left out unless asked for. Use get_schema_drift_report for one monitor's history. Use this for the endpoints that drift; for one drift event in full use get_contract_drift. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNo'all' or 'resolved' includes closed events; omit for the open ones
projectIdNoPublic ID (GUID) of the project — defaults to the session context
minSeverityNoLowest severity to report: 'error' or 'warning'. Omit for all
lookbackDaysNoHow far back to list RESOLVED events, in days (1-30, default 7)
environmentIdNoOnly drift in this environment, by its public ID (GUID)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true, and the description adds meaningful behavioral context: resolved events are hidden by default, output is grouped, and project context is required. There are no hidden side effects or contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense, with no filler or redundant wording. It front-loads the main purpose and then adds routing and filtering details efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Even without an output schema, the description conveys what the response will contain: endpoints, drift items, duration, and contract version. Inputs are fully covered by the schema, and sibling alternatives are clearly delineated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All parameters are fully described in the input schema, and the description does not add significant parameter-level meaning beyond that. Schema coverage is 100%, so the baseline applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists endpoints whose live responses drift from their contract, grouped by endpoint with drift items, duration, and contract version. Explicitly distinguishes itself from get_schema_drift_report and get_contract_drift, so an agent can pick the correct tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use guidance: use this for endpoints that drift, use get_schema_drift_report for one monitor's history, and use get_contract_drift for one full drift event. Also discloses that resolved events are excluded unless requested.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_custom_rolesList Custom RolesA
Read-only
Inspect

List the organization's custom roles with the permission strings each one grants and how many members hold it. Use this to browse custom roles; for one role with its permissions use get_custom_role. Requires organization context. Read-only: members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states that the operation is read-only and elaborates that members, roles, teams, and SSO are not changeable via MCP, which aligns with the readOnlyHint annotation. It adds context about the tool's non-destructive nature, though it does not mention potential errors or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences to convey the tool's purpose, usage guidance, and read-only nature. It is well-structured and front-loaded with the core functionality.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema or parameters, the description covers all necessary information: what the tool returns, how to use it vs. alternatives, and its read-only behavior. It is sufficiently complete for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the schema provides complete coverage by default. The description adds no parameter-specific information, but this is unnecessary given the absence of parameters, earning the baseline score for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists custom roles, including permission strings and member counts. It also distinguishes itself from get_custom_role, which retrieves a single role with permissions. This makes 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly recommends using this tool to browse custom roles and refers to get_custom_role for individual role details. It also notes that organization context is required, providing clear guidance on when to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_custom_style_guide_rulesList Custom Style Guide RulesA
Read-only
Inspect

List the organization's own style guide rules with their conditions. The ruleId of each ('custom-') is what the severity tools take. Use this for the organization's own rules; for how rules apply in a project use list_project_style_guide_rules. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers that this is a read-only operation. The description adds that organization context is required, which is a useful precondition. It doesn't mention other side effects or limits, but the annotation suffices for a simple list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using two sentences to convey purpose, output detail, differentiation, and context requirement. It is well-structured and free of unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no parameters, the description provides sufficient context: what it lists, the format of the rule IDs, the distinction from the project-level counterpart, and the requirement for organization context. It fully equips an agent to decide when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is nothing to describe. The description references ruleId in the output, which provides downstream context but doesn't relate to input parameters. A baseline of 4 is appropriate as no parameter details are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists the organization's own style guide rules with their conditions, and explicitly distinguishes it from the sibling list_project_style_guide_rules. This makes the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs to use this tool for organization-level rules and directs users to list_project_style_guide_rules for project-level rules, providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_deprecationsList DeprecationsA
Read-only
Inspect

List everything currently deprecated across the organization — endpoints and published versions — with the phase, the sunset date and how many days are left. The starting point for 'what do I have to migrate off'. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful behavioral context by scoping the list to organization-wide deprecations and specifying the returned data (phase, sunset date, days remaining). It also notes the requirement for organization context, which is helpful beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and front-loaded with the core action and scope, followed by a clear use-case statement and a practical prerequisite. Every sentence adds value and there is no redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list with no parameters and no output schema, the description covers the essential information: what is listed, what fields are returned, when to use it, and a key prerequisite. It could go slightly further by mentioning whether results include pagination or ordering, but given the tool's simplicity this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema is empty, so there are no parameter semantics to explain. The description's note that it 'Requires organization context' adds relevant usage context, satisfying the baseline for a parameter-free tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('List'), a specific resource ('everything currently deprecated across the organization'), and narrows that resource to endpoints and published versions. It also states the output fields (phase, sunset date, days left), making the tool's purpose unmistakable even among many sibling list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly frames this as 'The starting point for what do I have to migrate off', giving clear situational guidance for when to use it. It does not explicitly contrast it with related sibling tools like get_deprecation_policy or get_deprecation_plan, so some exclusion guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_doc_imagesList Doc ImagesA
Read-only
Inspect

List a documentation's inline images: file name, URL, size, dimensions and whether a page still references it — how you find orphaned uploads before calling delete_doc_image. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes that this is a safe read operation, and the description adds meaningful behavioral context: it lists exactly what the response will contain and notes the project-context requirement. This goes beyond the annotation by clarifying scope and output contents, though pagination or error behavior are not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences contain all essential information: action, resource, output fields, use case, and precondition. The most important scoping information ('inline images', 'orphaned uploads') appears up front, and no words are wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only list tool with no output schema, the description covers the necessary details: what is listed, what fields are returned, why an agent would use it, and what context must be set beforehand. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the single parameter 'documentationId' as the public Guid, so schema coverage is 100%. The description adds no additional parameter-level detail beyond associating the parameter with the documentation's inline images. Baseline 3 applies because the schema already carries the semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' with a precise resource ('a documentation's inline images') and enumerates the returned fields (file name, URL, size, dimensions, reference status). It also ties the tool to a concrete workflow ('find orphaned uploads before calling delete_doc_image'), making its purpose unmistakable and distinct from sibling tools like list_doc_snippets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool: to find orphaned uploads before deleting an image. It also gives a clear prerequisite ('Requires project context (call set_context first)'). It lacks an explicit when-not-to-use or alternative-tool comparison, but the context provided is strong enough for an agent to select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_doc_page_revisionsList Doc Page RevisionsA
Read-only
Inspect

List a page's revision history, newest first. Metadata only — read a revision's content with get_doc_page_revision before restoring it via manage_doc_page. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageIdYesThe public Id (Guid) of the page
versionIdYesThe public Id (Guid) of the doc version
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description adds key behavioral details: results are 'newest first,' only metadata is returned, and project context is required. It does not mention pagination or response shape, but the added context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences with no wasted words. It front-loads the core purpose, then adds behavioral and workflow context efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, ordering, metadata-only behavior, and the content/restore workflow, which is sufficient for a simple list operation. It does not describe pagination or return fields, but the metadata-only framing partially mitigates that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters already have descriptions in the input schema ('The public Id (Guid) of the page/version/documentation'), so the schema carries the full burden. The description adds no parameter-specific meaning beyond confirming this is a page-revision operation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List a page's revision history, newest first.' It also explicitly says 'Metadata only,' which distinguishes it from content-reading tools like get_doc_page_revision.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear routing guidance: read content via get_doc_page_revision and restore via manage_doc_page, implying this tool is for browsing history only. It also notes 'Requires project context,' which is a useful precondition, though it does not explicitly explain when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_doc_snippetsList Doc SnippetsA
Read-only
Inspect

List the snippets of a documentation version with their slug, content and how many pages use each one. Use this to browse snippets or find an id; to create, change or delete one use manage_doc_snippet. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionIdYesThe public Id (Guid) of the doc version
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers non-mutating behavior. The description adds useful operational context by mentioning required project context and the data content returned, but does not discuss potential errors or pagination. With the annotation present, the description is appropriately transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured, with the primary action and result stated first, followed by use-case and prerequisite guidance. No unnecessary words or redundant details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context to understand the purpose and expected output fields, and notes the project context requirement. However, since there is no output schema and the tool is a list operation, a brief mention of response shape (e.g., array of snippets) would make it slightly more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully described in the schema as public GUIDs, so the description adds no additional parameter semantics. The relationship between documentationId and versionId is implicit but not elaborated; schema coverage is complete, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists snippets of a documentation version and specifies the returned fields (slug, content, page usage count). The intended use cases of browsing snippets or finding an ID are explicit, and it is easily distinguished from get_doc_snippet in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides direct guidance on when to use the tool (browsing snippets or finding an ID), points to manage_doc_snippet for create/change/delete operations, and notes the prerequisite of project context. This is sufficient for an agent to select the appropriate action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_documentationsList DocumentationsA
Read-only
Inspect

List all documentations in the active project with their versions. Returns documentation settings, branding info, and version summaries (status, visibility, dates). Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is known. The description adds value by describing what the response includes (settings, branding, version summaries with status/visibility/dates) and the project context requirement. This is useful context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundancy. The main action is front-loaded, followed by return details and the prerequisite. Every sentence earns its place, and it is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description covers the purpose, the scope, the return content, and the prerequisite. Nothing essential is missing 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100% by default. The description doesn't need to explain parameters, but it adds semantic context by noting the project context prerequisite and the return structure, which goes beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific verb and resource ('List all documentations'), scopes it to the active project, and notes it includes versions. It distinguishes itself from the many sibling list_* tools by naming the specific entity (documentations) and the included details (settings, branding, version summaries).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides an explicit prerequisite: 'Requires project context (call set_context first).' This is clear guidance for when to call it. It doesn't mention alternatives or exclusions, but given the uniqueness of the tool among siblings, this is adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_endpointsList EndpointsA
Read-only
Inspect

List all endpoints of an API specification. Optionally filter by version. Set scope to 'project' to look across every spec in the project instead — that returns the groups of endpoints colliding on method and path (gateway routing conflicts) plus counts, not the full list, and specId is then ignored. Use this to browse endpoints or find an endpoint id; for one endpoint in full use get_endpoint. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of endpoints to skip (for pagination, default 0)
takeNoNumber of endpoints to return (default 50, max 100)
scopeNoWhat to look at: 'spec' (default) or 'project'spec
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter endpoints by a specific version

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, so the bar is lower. The description discloses non-obvious behavior not captured by annotations: when scope='project', it returns groups of endpoints colliding on method and path plus counts, not the full list, and ignores specId. It also mentions the set_context prerequisite, which an agent needs to know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each carrying unique information: listing behavior, the project-scope alternative, and guidance versus get_endpoint. It is dense but not verbose; the only slight complexity is the project-scope explanation, which condenses multiple details about conflicts, counts, and specId being ignored.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, parameter interplay, prerequisites, and distinguishes the tool from get_endpoint. It does not specify output format, but there is no output schema and pagination defaults are in the schema. Overall, it gives enough context for an agent to use the tool correctly without requiring additional lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all five parameters, so the baseline is 3. The description adds crucial interaction semantics: specId is ignored when scope='project', versionId filters by a specific version, and skip/take control pagination—clarifications not inferable from the individual parameter descriptions alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'List all endpoints of an API specification' with a specific verb and resource, and clarifies the project-scope behavior that returns routing-conflict groups. It explicitly contrasts with get_endpoint ('for one endpoint in full use get_endpoint'), making the tool's purpose distinct among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives direct when-to-use guidance: 'Use this to browse endpoints or find an endpoint id; for one endpoint in full use get_endpoint.' It also explains the alternative 'scope' mode and notes the prerequisite 'Requires project context (call set_context first),' leaving no ambiguity about when to call this vs. other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_environmentsList EnvironmentsA
Read-only
Inspect

List all environments of a project with variable counts. Use this to browse a project's environments; for the variables of one use get_environment_variables. Requires organization context. If no projectId is given, uses the active project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project. If omitted, uses the active project context.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds context about organization context requirement and the fallback to active project context, which are useful behavioral traits beyond the schema. It does not contradict annotations and adds meaningful info, though it stops short of describing response structure or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The main action is front-loaded, followed by usage guidance and context requirements. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only list tool with no output schema, the description covers purpose, usage, default behavior, and alternative routing. An agent has everything needed to invoke it correctly without ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes projectId fully with 100% coverage, including the default behavior of using active project context. The description repeats this without adding new semantics, so the baseline of 3 for high coverage applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('environments of a project') with added detail ('with variable counts'). It explicitly names the sibling get_environment_variables and distinguishes its scope, so an agent can immediately tell it 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Use this to browse a project's environments' and routes to the alternative tool when needed ('for the variables of one use get_environment_variables'). It also notes the requirement for organization context and the default behavior for projectId.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_fixture_importsList Fixture ImportsA
Read-only
Inspect

List the organization fixtures the active project has imported, with the alias each is referenced by. Use this for what this project has imported; for what is available to import use list_org_fixtures. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint: true, so the read-only nature is covered. The description adds the prerequisite of project context and clarifies the output includes aliases, which is useful behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The core action is front-loaded, followed by the alternative usage, then the requirement. Every word contributes to effective agent guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with readOnlyHint annotation, the description covers the purpose, the alternative, and the prerequisite. No return format is specified, but the output is implied by the description (aliases), and no other details are needed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (schema coverage is vacuously 100%), so the baseline of 4 applies. The description doesn't need to explain parameters, and it doesn't attempt to add irrelevant details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('organization fixtures the active project has imported'), and specifies the output ('with the alias each is referenced by'). It explicitly differentiates from list_org_fixtures, making the tool's scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance ('Use this for what this project has imported') and an alternative with a clear distinction ('for what is available to import use list_org_fixtures'). Also notes the prerequisite 'Requires project context', leaving no ambiguity about invocation conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_fixturesList FixturesA
Read-only
Inspect

List all project-owned fixtures in the active project. Fixtures are structured test data (YAML/JSON) reusable across tests, mocks and docs. Use this for project-owned fixtures; for the shared organization ones use list_org_fixtures. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of fixtures to skip (default 0).
takeNoNumber of fixtures to return (default 50, max 100).
tagFilterNoOptional tag filter (comma-separated list is not supported — single tag only).

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already conveys the read-only nature. The description adds useful context about what fixtures are and clarifies the project scope, but does not go into additional behavioral details such as pagination or output shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, using three focused sentences to cover purpose, fixture definition, scope distinction, and context requirement without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with fully described parameters and a readOnly annotation, the description is complete enough. It explains the fixture concept, project scope, and alternate tool, though it does not describe the output format or result fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully describes all three parameters with defaults and constraints, so the description adds no additional parameter meaning. Baseline 3 applies because schema description coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all project-owned fixtures in the active project, with a specific verb and resource. It also distinguishes itself from the organization-level fixture listing tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use this tool for project-owned fixtures and to use list_org_fixtures for shared organization fixtures, giving clear when-to-use and when-not-to-use guidance. It also notes the project context requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_foldersList FoldersA
Read-only
Inspect

List the folder structure of an API specification. Each folder has a parentFolderId for hierarchical nesting. Pass folderId to get just that one, with its rowVersion for update_folder. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
folderIdNoOptional public ID (GUID) of a single folder to return
versionIdNoOptional version ID (GUID) to filter folders by a specific version

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses useful behavioral context: the returned hierarchy uses parentFolderId, a single folder can be retrieved with its rowVersion (which feeds into update_folder), and a project context prerequisite exists. It doesn't describe the full response shape, but for a read-only listing tool the added context is meaningful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with zero filler. The core purpose is front-loaded, followed by hierarchical structure, then parameter-specific behavior and prerequisite. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, 3-parameter list tool without an output schema, the description covers the core purpose, hierarchy semantics, folderId behavior, and the set_context prerequisite. It does not describe versionId's behavior in prose, but the schema already covers that, and the key response elements (parentFolderId, rowVersion) are mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all parameters. The description adds behavioral semantics beyond the schema, particularly for folderId (returns a single folder) and the implication of versionId for version filtering. It also links folderId output to rowVersion usage in update_folder, which enriches the agent's understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List the folder structure of an API specification.' It further clarifies the hierarchical organization via parentFolderId, and the tool is clearly distinguished from siblings like list_test_folders and list_specs by focusing on folders within an API specification. The purpose is unambiguous and specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear usage context, including how to scope the call ('Pass folderId to get just that one') and a prerequisite ('Requires project context (call set_context first)'). However, it does not explicitly name alternative tools or state when not to use this tool, leaving some routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_governance_alertsList Governance AlertsA
Read-only
Inspect

List the organization's governance alerts — quality drops, breaking-change spikes, stale drafts, blocked publishes. Unresolved only by default; capped at the 100 most recent. Use this to browse alerts; to mark one resolved use resolve_governance_alert. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
unresolvedOnlyNoOnly alerts nobody has resolved yet (default true)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, so the bar is lower. The description adds useful behavioral details: unresolved-only default and a cap of 100 most recent alerts, which are not visible in the schema or annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief and well-structured, using a dash list for alert types and clear sentences. It packs essential information without redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with one optional parameter and no output schema, the description covers purpose, default behavior, limitation, alternative tool, and required context. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the only parameter (unresolvedOnly, boolean, default true) and the description echoes the default behavior without adding extra meaning beyond the schema. Baseline of 3 applies given complete schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists governance alerts with concrete examples (quality drops, breaking-change spikes, stale drafts, blocked publishes). It explicitly distinguishes from resolve_governance_alert and implies distinction from list_alert_policies.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to browse alerts; to mark one resolved use resolve_governance_alert', providing direct guidance on when to choose this tool over its named alternative. Also notes the requirement for organization context, which is important for proper invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_header_componentsList Header ComponentsA
Read-only
Inspect

List the header components defined at one level: 'spec' (needs specId) or 'project'. Set includeUsageCounts to see how often each is referenced — spec level only. Returns the ids and rowVersions needed to change them or assign them in a header policy. Requires project context. Use this for spec or project level; for the organization level use list_org_header_components.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesWhich level to read: 'spec' or 'project'
specIdNoPublic ID (GUID) of the API specification — required for level 'spec'
versionIdNoOptional version ID (GUID) to filter by a specific version — spec level only
includeUsageCountsNoAlso return how often each component is referenced — spec level only (default false)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, it states that the call returns ids and rowVersions and explains the effect of includeUsageCounts. It also clarifies that versionId and includeUsageCounts only apply at the spec level, so there are no surprise side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded, with no redundant filler. Each sentence carries distinct information about scope, parameters, returns, and alternatives.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

It covers the essential call context, including level, required specId, project context, and return purpose. Since there is no output schema, a little more detail about the response shape beyond 'ids and rowVersions' would make it fully complete, but the core usage is clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the schema already describes each parameter, the description adds practical semantics: specId is required for level='spec', versionId and includeUsageCounts are spec-level-only, and includeUsageCounts controls reference counts. This goes beyond the baseline schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a clear verb-resource pairing, 'List header components', and immediately scopes it by level (spec/project). It also distinguishes itself from the organization-level alternative, list_org_header_components, and from related tools like get_header_component.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to use the tool ('Use this for spec or project level') and names the alternative for organization level. It also notes the requirement for project context, which orients an agent before calling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_header_exclusionsList Header ExclusionsA
Read-only
Inspect

List the headers excluded from the policy cascade. Level 'response' (needs specId and responseId) covers one endpoint response, 'project' the whole project. Requires project context. Use this to see what is excluded from the cascade; to add or drop an exclusion use manage_header_exclusion.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesWhich level to read: 'response' or 'project'
specIdNoPublic ID (GUID) of the API specification — required for level 'response'
responseIdNoPublic ID (GUID) of the endpoint response — required for level 'response'

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares the tool is read-only, and the description uses non-mutating language like 'List' and 'see'. It adds useful context about level scoping and project context, but does not disclose additional behavioral details such as return format or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, well-organized, and front-loaded with the primary purpose. Every sentence adds useful information: what is listed, how levels work, what context is required, and when to use a different tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with no output schema, the description provides enough context: the resource being listed, the level distinction, required parameters, and the relevant alternative tool. It is complete without being verbose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description mostly reinforces the schema's existing parameter explanations. It adds the relationship between 'level' and the required IDs, but that relationship is already present in the schema descriptions, so the added semantic value is limited.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('List'), a clear resource ('headers excluded from the policy cascade'), and distinguishes the two coverage levels ('response' vs 'project'). It is clearly differentiated from related tools and from the mutating manage_header_exclusion tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('Use this to see what is excluded from the cascade') and directs users to manage_header_exclusion for adding or dropping exclusions. It also explains the required level-based parameters, leaving little room for misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_header_policiesList Header PoliciesA
Read-only
Inspect

List the header policies defined at one level: 'spec' (needs specId) or 'project'. Returns the ids, priorities and rowVersions needed to change them. This lists the policy objects — for the resolved header cascade on an endpoint use get_header_policies, for one response get_resolved_headers. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesWhich level to read: 'spec' or 'project'
specIdNoPublic ID (GUID) of the API specification — required for level 'spec'

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds valuable context beyond that: it returns ids, priorities, and rowVersions intended for changing policies, and requires project context. It also clarifies this is a listing of policy objects, not resolved header values. Minor gaps remain (e.g., pagination), but the description meaningfully supplements the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with zero waste. Core function is front-loaded, followed by return value summary and sibling routing. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter list tool with no output schema, the description covers the essentials: what it returns, level options, specId requirement, project context prerequisite, and when to use sibling tools. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents both parameters: level accepts 'spec' or 'project', and specId is required for level 'spec'. The description restates the specId requirement and adds the functional purpose of the returned fields, but no significant parameter semantics beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'List the header policies defined at one level: spec or project.' It clearly distinguishes itself from siblings by noting it lists policy objects, while get_header_policies is for the resolved cascade and get_resolved_headers for one response. An agent can tell exactly what this tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use this tool vs alternatives: 'for the resolved header cascade on an endpoint use get_header_policies, for one response get_resolved_headers.' It also states prerequisites: specId needed for level 'spec' and requires project context. No inference needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_incidentsList IncidentsA
Read-only
Inspect

List incidents across the organization, newest first, with the monitor that raised each one and its event timeline. Filter by status, by monitor, by environment or spec, and by time window. Works across the organization, no project context needed. Use this to browse incidents; to acknowledge or resolve one use manage_incident.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoOnly incidents started at or before this UTC timestamp (ISO 8601)
fromNoOnly incidents started at or after this UTC timestamp (ISO 8601)
skipNoNumber of incidents to skip, defaults to 0
takeNoMaximum number of incidents to return, defaults to 50
statusNoOnly incidents in this state: 'open', 'acknowledged' or 'resolved'
apiSpecIdNoPublic ID (GUID) of an API specification to filter by
monitorIdNoPublic ID (GUID) of a monitor to filter by
environmentIdNoPublic ID (GUID) of an environment to filter by

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds behavioral details beyond that: it states the output includes 'the monitor that raised each one and its event timeline' and that results are 'newest first'. It also mentions filtering options. These details enrich the agent's understanding of what the call returns and how results are ordered, which is valuable context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, with the primary action and key return attributes front-loaded. It efficiently covers the tool's purpose, scope, filtering, and the alternative for mutation, with no unnecessary words. Each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with 8 parameters (all optional) and no output schema, the description is fairly complete. It explains the scope (organization-wide), the return content (monitor and event timeline), ordering (newest first), and the main filtering dimensions. It does not explicitly mention pagination or that results are limited by the 'take' parameter, but the schema documents that. Given that the schema covers parameter details, the description is sufficient 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, meaning every parameter already has a description in the schema. The tool description adds a high-level summary of filtering capabilities ('Filter by status, by monitor, by environment or spec, and by time window') but does not provide any syntax or format details beyond what the schema already offers. Since the schema carries the full burden, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'List incidents across the organization, newest first, with the monitor that raised each one and its event timeline.' It uses a specific verb (list) and resource (incidents), and differentiates from the sibling manage_incident by explicitly naming it as the alternative for acknowledging or resolving incidents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Works across the organization, no project context needed. Use this to browse incidents; to acknowledge or resolve one use manage_incident.' This tells the agent when to use this tool (browse) and when not to (acknowledge/resolve), and names the alternative tool. It also clarifies the scope (organization-wide).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_linkable_endpointsList Linkable EndpointsA
Read-only
Inspect

List the endpoints of an API spec that a test case can be linked to, with path, method and the version they come from. Use link_endpoint to establish the link. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic Id (Guid) of the API specification
versionIdNoPublic Id (Guid) of a specific spec version. Omit for the current one.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as read-only, so no safety burden is on the description. The description adds useful behavioral context beyond the schema: it reveals the returned content (path, method, version), scopes results to endpoints linkable to a test case, and notes that project context is required. This is meaningful additional transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The main purpose is front-loaded, and the second sentence adds the two essential extras: how to act on the result and the project-context requirement. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the read-only annotation, the absence of an output schema, and a modest two-parameter input schema, the description covers the key missing pieces: what is returned (path, method, version), the prerequisite context, and the next action. It could be slightly more explicit about how project context is established or which sibling should be used for non-linkable endpoints, but it is sufficiently complete for reliable invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are already well described in the input schema: specId is the API specification Public Id, and versionId is an optional spec version with default behavior. Schema description coverage is high, so the description does not need to repeat parameter details. The description adds minimal parameter meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and identifies the exact resource: endpoints of an API spec that a test case can be linked to. It also states the returned attributes (path, method, version), which clearly distinguishes this from generic endpoint-listing tools like list_endpoints or list_specs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: it lists linkable endpoints, not arbitrary endpoints, and it explicitly directs the next step with 'Use link_endpoint to establish the link.' It also states the prerequisite 'Requires project context.' It does not explicitly name sibling alternatives to avoid, but the scope is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_maintenance_windowsList Maintenance WindowsA
Read-only
Inspect

List the maintenance windows of a project across all scopes, with the window ids needed to cancel them. Set activeOnly to see just the ones in effect right now. Requires project context. Use this to browse windows or find an id; to plan or cancel one use manage_maintenance_window.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project — defaults to the project in the session context
activeOnlyNoOnly windows that are in effect right now

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description does not need to repeat that. It adds valuable context about the output containing window ids and the 'across all scopes' behavior, which goes beyond the structured metadata. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, tightly packed with relevant details: purpose, scope, output hint, parameter filter, and cross-reference to the management tool. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description provides a useful hint about the returned ids and their purpose. It also clarifies scope behavior (across all scopes) and the activeOnly filter. It could have mentioned other output fields, but for a list tool this is sufficient to guide correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have full descriptions in the schema (projectId and activeOnly), so schema coverage is 100%. The description adds only a general note about requiring project context, but does not significantly enhance the parameter-level understanding already present.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists maintenance windows of a project across all scopes, and explicitly mentions the returned window ids are needed for cancellation. It differentiates itself from the sibling manage_maintenance_window tool by focusing on browsing and id lookup.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to browse windows or find an id; to plan or cancel one use manage_maintenance_window,' which provides direct guidance on when to use this tool versus the alternative. It also notes the requirement for project context and the activeOnly filter for current windows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_media_type_componentsList Media Type ComponentsA
Read-only
Inspect

List the reusable media type components (OpenAPI 3.2 components/mediaTypes) of a spec version. A media type component holds schema, itemSchema and example; a response, request body or component references it by id and keeps only its own content type. Use this to browse or find an id; to create, change or delete one use manage_media_type_component. Only 3.2 specs have them. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter by a specific version

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given readOnlyHint=true already covers the safe read-only nature, the description adds useful behavioral context: what a media type component contains, how references work, that only 3.2 specs support it, and that project context is required. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and stays reasonably compact. Each sentence contributes value, though the component-model explanation is slightly more detailed than strictly necessary for invoking the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with a clear schema, annotations, and explicit constraints (3.2-only, project context, alternatives), the description is nearly complete. It could additionally state what the returned list contains (e.g., ids and component metadata), but the component description largely covers that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters (specId and versionId) already have clear schema descriptions. The tool description adds no parameter-specific detail beyond mentioning 'spec version' and 'id', so the schema carries the burden and the description neither helps nor hurts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('List') and a precise resource ('reusable media type components (OpenAPI 3.2 components/mediaTypes) of a spec version'), and clarifies the component model. It also distinguishes itself from mutation-oriented tools by saying it is for browsing/finding an id.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('to browse or find an id') and names the alternative for create/change/delete ('manage_media_type_component'). It also warns that only 3.2 specs have them and that project context is required. However, it does not mention the closely related get_media_type_component sibling, so the read-versus-get distinction is 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_membersList MembersA
Read-only
Inspect

List the organization's members with their role, the custom role if they have one, when they joined and when they last logged in. Use this for the organization's members; for the teams they belong to use list_teams. Requires organization context. Read-only: members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true. The description reinforces this with 'Read-only: members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app,' adding context about the design rationale. No contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences that directly state the purpose, usage condition, and read-only nature. It avoids fluff and is well-structured with a clear first sentence on function and a second on constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and no output schema, the description covers the function, the usage context (organization members), the alternative (list_teams), the requirement (organization context), and the read-only nature. This is sufficient for an agent to decide when to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema covers all parameters (100%). The description does not need to add parameter semantics, and indeed does not mention any parameters. The mention of 'organization context' is a usage requirement rather than a parameter explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists organization members with their role, custom role, join date, and last login. It also distinguishes itself from list_teams, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this for the organization's members' and contrasts with 'for the teams they belong to use list_teams.' It also notes 'Requires organization context,' providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_merge_requestsList Merge RequestsA
Read-only
Inspect

List the merge requests of a spec with their status (open, inReview, approved, merged, rejected, closed) and how many of the assigned reviewers have approved. Requires project context. Use this to browse merge requests or find an id; for one with its reviews use get_merge_request.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already declares the read-only nature, so no additional side-effect disclosure is needed. The description adds output details but no extra behavioral traits beyond what the annotation covers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and information-dense, with no wasted words. It front-loads the core purpose, includes useful output specifics, and provides cross-referencing in a single sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned data (statuses and approval counts) and stating the prerequisite and cross-tool usage. It could mention pagination or filtering, but for this simple list operation it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema fully describes the only parameter (specId) as 'Public ID (GUID) of the API specification.' The description does not add further parameter-level information, so the baseline of 3 applies because schema coverage is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 (merge requests of a spec), and the key output details (status values and reviewer approval counts). It also distinguishes itself from get_merge_request by indicating that list is for browsing/finding IDs while get_merge_request is for individual reviews.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('browse merge requests or find an id') and names the alternative for a different need ('for one with its reviews use get_merge_request'). It also notes the prerequisite 'Requires project context,' giving agents actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_mock_rulesList Mock RulesA
Read-only
Inspect

List all mock rules for a mock server with pagination. Returns rules sorted by priority (lower = higher precedence) with path pattern, method, status code, and active status. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of rules to skip (for pagination, default 0)
takeNoNumber of rules to return (default 50, max 100)
mockServerIdYesThe public Id (Guid) of the mock server

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds meaningful behavior beyond that: deterministic sort order, the specific attributes returned, and the project-context dependency on set_context. This gives an agent expectations about output ordering and preconditions without contradicting the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each carrying distinct information: scope plus pagination, return and sort behavior, and prerequisite. The most decision-relevant facts are front-loaded and there is no filler or repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with no output schema, the description covers the return fields, ordering rule, pagination intent, and the required prior state (set_context). Defaults and maximums already live in the schema, so nothing essential an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents skip, take (including default 50, max 100), and mockServerId. The description's use of 'pagination' and the project-context note add peripheral color but no new syntax or constraints beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('List all mock rules') with scope ('for a mock server') and augments it with pagination and sorting semantics ('sorted by priority (lower = higher precedence)'). The returned fields are enumerated (path pattern, method, status code, active status), making it identifiable against siblings such as list_smart_mock_matching_rules 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides an explicit prerequisite: 'Requires project context (call set_context first)', which tells an agent what state must be established before invoking. However, it does not name alternatives or conditions that would favor a different sibling tool, so no exclusion guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_monitor_checksList Monitor ChecksA
Read-only
Inspect

List the individual checks a monitor ran, newest first — status code, response time and the timing breakdown (DNS, connect, TLS, first byte). Set onlyErrors to see just the failures. Use from and to to narrow the window. Use this for the individual checks of one monitor; for the monitor itself use get_monitor. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoOnly checks at or before this UTC timestamp (ISO 8601)
fromNoOnly checks at or after this UTC timestamp (ISO 8601, e.g. '2026-07-31T00:00:00Z')
skipNoNumber of checks to skip, defaults to 0
takeNoMaximum number of checks to return, defaults to 50
monitorIdYesPublic ID (GUID) of the monitor, from list_monitors
onlyErrorsNoOnly return checks that failed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the primary behavioral trait, and the description does not contradict it. The description adds useful behavioral detail such as 'newest first' and the effect of onlyErrors, but does not mention potential pagination limits or context-requirement implications beyond 'Requires project context'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences, front-loaded with the core purpose and result contents, then immediately covering the key filters and the sibling alternative. There is no fluff or redundant repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list operation with all parameters documented, the description is nearly complete: it states what is returned, the ordering, filtering options, and the sibling tool to use instead. It does not describe pagination behavior beyond the take/skip defaults, but those are present in the schema and are self-explanatory.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaningful semantics by clarifying monitorId as 'Public ID (GUID) of the monitor, from list_monitors' and by explaining the filtering intent of onlyErrors and the time window semantics of from/to, going beyond bare property names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List the individual checks a monitor ran'), the resource (checks for a monitor), and the result contents (status code, response time, timing breakdown). It also distinguishes itself from get_monitor and list_monitors by specifying it is for individual checks of one monitor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('Use this for the individual checks of one monitor') and names the alternative ('for the monitor itself use get_monitor'). It also explains the optional filters onlyErrors, from, and to, leaving no ambiguity about selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_monitorsList MonitorsA
Read-only
Inspect

List the monitors of a project with their current status. Set grouped to see them as an environment → spec tree the way the sidebar shows them (paging does not apply then). Set includeStats to add 24h uptime, p95 latency and the response-time sparkline per monitor. Use this to browse monitors or find a monitor id; for one monitor with its checks use get_monitor. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of monitors to skip, defaults to 0
takeNoMaximum number of monitors to return, defaults to 100
groupedNoGroup as an environment → spec → monitor tree instead of a flat list
isEnabledNoOnly enabled (true) or only disabled (false) monitors — omit for all
projectIdNoPublic ID (GUID) of the project — defaults to the project in the session context
includeStatsNoInclude 24h uptime, p95 latency and sparkline buckets per monitor

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses that grouping changes the response to an environment → spec tree and that paging does not apply in that mode. It also explains what includeStats adds (24h uptime, p95 latency, sparkline). This adds meaningful behavioral context that the annotation does not cover, with no contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, then the two optional behaviors, then the alternative and prerequisite. Every sentence earns its place; there is no filler or redundancy. The structure is efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with six optional parameters and no output schema, the description covers the main behaviors (grouping, stats), the intended use cases, and the alternative. It does not explicitly describe the return structure beyond 'current status' and the stat fields, but given the tool's simplicity and the pointer to get_monitor for details, this is largely sufficient. A mention of the response format would push it to 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents each parameter. The description adds extra nuance for grouped (environment → spec tree, sidebar appearance, paging behavior) beyond the schema's one-line description. For includeStats, it largely echoes the schema but confirms the intent. This adds some value beyond the schema, so a 4 is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'List the monitors of a project with their current status.' It clearly distinguishes from the sibling get_monitor by explicitly stating that get_monitor is for a single monitor with its checks. The optional grouping and stats flags are also mentioned, making the tool's function unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Use this to browse monitors or find a monitor id; for one monitor with its checks use get_monitor.' It also states a prerequisite, 'Requires project context,' and explains the effect of the grouped flag on paging. This is clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_notificationsList NotificationsA
Read-only
Inspect

Get notifications for the authenticated user in the active organization. Supports filtering for unread only and pagination. Returns notifications with type, title, message, action URL, and read status. Requires organization context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of notifications to skip (for pagination, default 0)
takeNoNumber of notifications to return (default 20, max 100)
unreadOnlyNoIf true, return only unread notifications (default true)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context beyond that: it is scoped to the authenticated user and active organization, requires set_context first, supports unread filtering and pagination, and returns specific fields (type, title, message, action URL, read status). This gives the agent a clear picture of the operation's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences cover purpose, capabilities, return contents, and a prerequisite with no filler. The most important information is front-loaded, and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a simple read-only listing tool with three optional, fully documented parameters and no output schema. The description covers the key operational detail (set_context prerequisite), the filtering/pagination behavior, and the returned fields, so an agent has enough information to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters with descriptions and defaults. The description mentions filtering for unread only and pagination, which aligns with the parameters but does not add meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get'), a clear resource ('notifications'), and a scope ('for the authenticated user in the active organization'). It also states capabilities like unread filtering and pagination, making it easy to distinguish from sibling tools such as mark_notification_read, mark_all_notifications_read, and get_notification_preferences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to call it: to retrieve notifications for the authenticated user in the active organization, with optional unread-only filtering and pagination. It also explicitly states a prerequisite: organization context must be set first via set_context. It does not explicitly name alternatives or exclusions compared to sibling notification tools, so it misses the top score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_oauth2_tokensList OAuth2 TokensA
Read-only
Inspect

List the OAuth 2.0 tokens cached for an environment, with their grant type and expiry. Access and refresh token values are never returned. Use this to see cached tokens; to request, refresh or drop one use manage_oauth2_token. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
environmentIdYesPublic Id (Guid) of the environment

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation is reinforced by the description's statement that access and refresh token values are never returned. The tool's non-destructive nature is clear, and the 'Requires project context' note adds relevant 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using only three sentences to convey purpose, limitations, and usage guidance. No redundant information is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation, the description provides sufficient context: what is listed, what is excluded, and the required environment context. The absence of an output schema is not a gap because the description already specifies the returned information (grant type and expiry).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, environmentId, is clearly described as the Public Id (Guid) of the environment. Schema coverage is complete, and no additional parameter semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing OAuth 2.0 tokens cached for an environment, including grant type and expiry. It also explicitly notes that token values are not returned, removing ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs when to use this tool ('Use this to see cached tokens') and points to the alternative for mutations ('to request, refresh or drop one use manage_oauth2_token'), providing clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_organizationsList OrganizationsA
Read-only
Inspect

List all organizations the authenticated user is a member of, including their role in each. Use this to find an organization id; to make one active use set_context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds that the result includes the user's role in each organization, which is useful behavioral detail. It does not mention pagination or ordering, but for a simple list operation this is acceptable given the 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short sentences with no filler. The purpose is front-loaded, and the usage guidance is packed into the second sentence. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and no output schema, the description fully covers what it does, what it returns (organizations and roles), and how it fits into a workflow (finding an ID, then setting context). Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 does not need to explain parameters, and the schema coverage is 100% (vacuously). No additional parameter semantics are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (list) and resource (organizations), with clear scope: organizations the authenticated user is a member of, including roles. It also distinguishes from the sibling set_context by noting its purpose is to find an organization ID, which is exactly what an agent needs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly provides a use case: 'Use this to find an organization id' and names the alternative for the next step: 'to make one active use set_context.' This gives clear when-to-use and when-not-to-use guidance, and references a sibling tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_org_doc_templatesList Organization Doc TemplatesA
Read-only
Inspect

List the organization's documentation page templates, optionally filtered to one page type. Returns each template's full content. Use this to browse templates or find an id; to create or change one use manage_org_doc_template.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageTypeNoOptional page type filter: custom, gettingStarted, authentication, environments, errorCodes, rateLimits, webhooks, sdks, changelog

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The read-only nature is already indicated by readOnlyHint annotation. The description adds that it returns each template's full content, but does not disclose other behavioral traits such as rate limits or authentication requirements; consistent with the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, leading with the main verb 'List' and providing usage guidance in three short sentences without unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 optional parameter, no output schema), the description sufficiently covers what the tool does, when to use it, and what to expect (full content), enabling 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter pageType is fully described in the schema ('Optional page type filter: custom, gettingStarted, authentication, environments, errorCodes, rateLimits, webhooks, sdks, changelog'). The description only reiterates the optional filter without adding new meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists organization documentation page templates with an optional filter, and explicitly contrasts with manage_org_doc_template for creating or changing templates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use this to browse templates or find an id; to create or change one use manage_org_doc_template,' which tells the agent exactly when to use this tool versus the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_parameter_componentsList Parameter ComponentsA
Read-only
Inspect

List the reusable parameter components of a spec version. Set includeUsageCounts to see how often each one is referenced. Use this to browse or find an id; to create, change or delete one use manage_parameter_component. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter by a specific version
includeUsageCountsNoAlso return how often each component is referenced (default false)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds the optional includeUsageCounts behavior and the project context requirement, which are not in the annotations. It does not mention pagination or return format, but for a read-only list tool with a clear name, the additional context is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the first states the core purpose, the second explains an optional parameter, and the third routes to the alternative and states the prerequisite. No fluff, purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list operation with three documented parameters, the description covers the primary use case, the mutation alternative, and the context requirement. It does not describe the return shape, but the tool name and purpose imply a list of components, and the lack of an output schema makes this a minor gap. Overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — all three parameters are fully described in the input schema. The description reiterates includeUsageCounts's purpose but adds no new information beyond what the schema already provides. Baseline 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and a specific resource ('reusable parameter components of a spec version'), and explicitly contrasts with manage_parameter_component for mutations and get_parameter_component for single-component retrieval. This clearly distinguishes it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance ('Use this to browse or find an id'), an explicit exclusion ('to create, change or delete one use manage_parameter_component'), and a prerequisite ('Requires project context'). No inference needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_personal_variablesList Personal VariablesA
Read-only
Inspect

List your personal variables for one environment. They override both organization and environment variables and are visible only to you. Secret values are always masked. Use this for your own layer; for the merged result of all three use resolve_variables. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project. If omitted, uses the active project context.
environmentIdYesPublic ID (GUID) of the environment

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key behaviors beyond the readOnlyHint annotation: secret values are always masked, personal variables override organization and environment variables, and they are visible only to the user. Also mentions the requirement for organization context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with zero fluff. Core purpose is front-loaded, followed by usage guidance and behavior notes. Every sentence contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a simple list operation with two parameters and no output schema. Covers purpose, usage, behavioral nuances, and context requirements. Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both projectId and environmentId have descriptions). The description adds no extra parameter-specific detail, but neither is any needed; baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states what the tool does: lists personal variables for one environment. Highlights distinguishing traits (overrides org/env variables, visible only to you) and differentiates from sibling tools like resolve_variables.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides when-to-use guidance ('Use this for your own layer') and names the alternative for the merged result ('for the merged result of all three use resolve_variables'). Also notes the organizational context requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_personasList PersonasA
Read-only
Inspect

List the security personas of the active project — the identities the authorization scanners impersonate. Pass personaId to get a single one. Secret values in the auth config are always returned masked as '********'; the plain values never leave the server. Use this to browse personas; to create, change or delete one use manage_persona. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
personaIdNoPublic Id (Guid) of a single persona. When given, only that persona is returned.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description discloses that secret values in the auth config are always returned masked and never leave the server, which is important behavioral context. It also mentions the project context requirement, adding useful transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, using just three sentences to cover purpose, filtering capability, masking behavior, and usage alternative. Every sentence contributes meaningful information with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool, the description provides sufficient context: what it returns, how to filter, a behavioral note on masking, and a prerequisite (project context). It does not require an output schema, so the lack of output details is not a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, personaId, is fully described in the schema with its type, default, and meaning (Public Id Guid). The tool description merely repeats 'Pass personaId to get a single one', adding no new information beyond the schema, so it meets the baseline but does not enhance semantic understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists security personas for the active project and optionally retrieves a single persona by ID. It also differentiates itself from manage_persona, making its purpose unambiguous and distinct from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool for browsing personas and to use manage_persona for creating, changing, or deleting them. It also notes that project context is required, providing clear when-to-use guidance with an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_projectsList ProjectsA
Read-only
Inspect

List all projects in the active organization. Use this to browse projects or find a project id; for one project in full use get_project. Requires organization context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of projects to skip (for pagination, default 0)
takeNoNumber of projects to return (default 50, max 100)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only nature, and the description adds the prerequisite of organization context, which is useful behavioral context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose and immediately provide usage guidance and the alternative tool, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list operation, the description gives the essential context: scope, use case, alternative, and prerequisite. No output schema is needed and none is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions fully cover both parameters (skip, take) with defaults and maximum, and the description adds no extra parameter-specific semantics, matching the baseline for full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists projects in the active organization, and distinguishes itself from get_project which retrieves a single project in full.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use (browse projects or find an ID), when to use an alternative (get_project for one project in full), and the prerequisite (set_context first).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_style_guide_rulesList Project Style Guide RulesA
Read-only
Inspect

List the style guide rules as they apply in this project: the built-in default, the organization override, the project override and the effective severity of each, plus the organization's custom rules. Use get_style_guide_rules for the organization-level view. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already covering the read-only safety profile, the description adds useful behavioral context: the result is a merged view with effective severity, and project context must already be established. This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences: the first front-loads the resource and the exact layers returned, and the second adds routing and prerequisite. There is no filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple zero-parameter read tool, the description covers purpose, returned contents, prerequisite, and an organization-level alternative. It loses a point because the alternative tool name may not exist in the current tool set and because the custom-rules sibling is not disambiguated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the no-parameter baseline is 4. The description supplies the relevant invocation constraint ('Requires project context'), which is the only semantic detail an agent needs beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('List') and resource ('style guide rules as they apply in this project') and enumerates the layered contents returned (built-in default, organization override, project override, effective severity, custom rules). It does not explicitly differentiate itself from the close sibling list_custom_style_guide_rules, which prevents 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear routing hint for the organization-level view ('Use get_style_guide_rules for the organization-level view') and states the prerequisite 'Requires project context.' However, the referenced get_style_guide_rules tool does not appear in the supplied sibling list, and the closest listed sibling list_custom_style_guide_rules is never mentioned, leaving the agent uncertain about when to prefer that sibling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_project_teamsList Project TeamsA
Read-only
Inspect

List the teams that reach the active project and with which role. The other direction of list_team_projects — this is the tool for 'who can write here'. Requires project context. Read-only: members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint annotation, the description adds important context: it states that members, roles, teams, and SSO are not changeable through MCP by design, and that humans handle changes in the web app. It also notes the requirement for project context, which is not in the schema. This goes well beyond the annotation's simple hint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no fluff. It front-loads the core purpose and direction, then adds the read-only and context requirements. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there are no parameters and no output schema, the description covers everything an agent needs: purpose, usage direction, read-only behavior, and a prerequisite. It is complete for the tool's simplicity and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema already fully covers them (100% coverage vacuously). The description adds value by mentioning the need for 'project context', which is not a formal parameter but a contextual prerequisite. This gives the agent actionable information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and resource ('teams that reach the active project') and clarifies the role inclusion. It explicitly distinguishes itself from the sibling tool list_team_projects by calling itself 'the other direction' and providing a memorable heuristic ('who can write here'). This leaves 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear usage context: it is the inverse of list_team_projects and is for determining write access. It also notes the requirement for project context. This is explicit enough for an agent to select this tool appropriately without extra reasoning.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_promotionsList PromotionsA
Read-only
Inspect

List how versions of a spec reached their environments: which version, which environment, whether it was a rollback and whether it froze the version. get_environment_pins shows the current state; this is how it got there. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
takeNoHow many entries to return, newest first (default 50)
specIdYesPublic ID (GUID) of the API specification
environmentIdNoOptional environment ID (GUID) to filter by

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description doesn't need to repeat that. It adds behavioral details about what fields are returned and the project context requirement, which goes beyond the schema. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences that front-load the purpose, mention the alternative, and include the prerequisite. No redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 params, no output schema, and read-only annotation, the description covers purpose, alternative, and prerequisite. It doesn't describe return format but that's implied from the fields listed. Minor gap but adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The description adds minimal parameter-specific context beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists promotion history with specific attributes (version, environment, rollback, frozen). It also explicitly contrasts with get_environment_pins, distinguishing its purpose from that sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by contrasting with get_environment_pins (current state vs history) and notes the prerequisite of project context. However, it doesn't explicitly state when not to use it or mention other alternatives, so it's slightly above average.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_request_body_componentsList Request Body ComponentsA
Read-only
Inspect

List all reusable request body components (OpenAPI components/requestBodies) of an API specification. Optionally include usage counts showing how many endpoints link each component. Use this to browse or find an id; for one component with its schema use get_request_body_component. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter components by a specific version
includeUsageCountsNoInclude usage counts per component (default false, slightly slower)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes that this is a read-only operation, and the description aligns by saying 'List'. The description adds the behavioral prerequisite that project context is required, which is useful. It does not elaborate on pagination or response shape, but the read-only nature is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loads the primary purpose, and includes only relevant details about optional usage counts, the alternative tool, and the context prerequisite. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has three parameters and no output schema, the description sufficiently covers the tool's purpose, the optional flag, the alternative get tool, and the project context prerequisite. It does not describe the response format, but for a list operation this is a minor omission and the provided context is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all three parameters with 100% coverage, including specId, versionId filtering, and includeUsageCounts default behavior. The description adds extra meaning by clarifying that usage counts reflect how many endpoints link each component, which slightly enhances the schema-provided semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'reusable request body components' scoped to an API specification. It also distinguishes itself from the singular get_request_body_component by noting it is for browsing or finding an id, and the sibling list_response_components/list_parameter_components context reinforces this differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to browse or find an id' and directs users to get_request_body_component for a single component with its schema. It also mentions the optional includeUsageCounts behavior and the prerequisite that project context is required, giving clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_response_componentsList Response ComponentsA
Read-only
Inspect

List the reusable response components of a spec version. Set includeUsageCounts to see how often each one is referenced. Use this to browse or find an id; to create, change or delete one use manage_response_component. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter by a specific version
includeUsageCountsNoAlso return how often each component is referenced (default false)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description does not need to restate that. It adds value by explaining the optional includeUsageCounts behavior and the project-context requirement, which goes beyond the schema and annotations. It does not describe return format, but that is not essential for a list operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first states the action and scope, the second adds usage guidance and an alternative. It is front-loaded and every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with moderate parameters and no output schema, the description is sufficient: it covers the purpose, the key optional parameter, the required context, and the alternative tool. It lacks pagination or sorting details, but these are not explicitly expected for a list endpoint and the description is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all three parameters have descriptions), so the baseline is 3. The description adds minimal meaning beyond the schema—it reiterates the includeUsageCounts effect and the general purpose but does not provide additional syntax or format details. It stays at the baseline because the schema already carries the semantic weight.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List the reusable response components of a spec version' with a specific verb and resource, and immediately distinguishes itself from the sibling tool manage_response_component by stating its read-only purpose. This lets an agent pick it without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says 'Use this to browse or find an id; to create, change or delete one use manage_response_component', giving a direct when-to-use versus alternative. It also notes 'Requires project context', an important precondition for calling this tool correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scan_profilesList Scan ProfilesA
Read-only
Inspect

List the security scan profiles configured for the active project. A scan profile bundles the target spec/environment and the enabled scanners; its public ID is required by run_security_scan. Pass scanProfileId to get one profile with its full configuration instead. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
scanProfileIdNoPublic Id (Guid) of a single scan profile. When given, returns it in full.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is established. The description adds meaningful behavioral detail: the tool operates on the 'active project,' requires project context, and changes behavior when scanProfileId is provided—returning a full configuration instead of a list. That is valuable beyond the annotations, though it stops short of describing response envelopes 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and every sentence earns its place: it states the purpose, defines the domain concept, explains the parameter-driven alternative, and notes a prerequisite. It front-loads the primary action and avoids filler, making it easy for an agent to scan quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list operation with one optional parameter and no output schema, the description covers the essential context: what is listed, how the optional parameter changes behavior, and the precondition about project context. It does not describe pagination or result fields, but those may be self-evident for a list operation. Overall it is complete enough for confident invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter is already documented as an optional public ID (Guid) that returns the profile in full. The description reinforces this by saying 'Pass scanProfileId to get one profile with its full configuration instead,' which adds behavioral context about how the parameter alters the operation. This is a reasonable addition on top of an already clear schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'List the security scan profiles configured for the active project.' It clearly distinguishes this tool from related siblings like list_scan_runs by focusing on profiles rather than runs, and it defines what a scan profile bundles. The optional single-profile behavior is also stated, leaving no ambiguity about the tool's core function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides useful context by stating that a scan profile's public ID is required by run_security_scan, which tells an agent why they might call this tool. It also explains the parameter-driven alternative (pass scanProfileId to get a single full profile) and notes the prerequisite 'Requires project context.' It doesn't explicitly name when to avoid this tool, but for this simple listing tool that exclusion is less critical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scan_runsList Scan RunsA
Read-only
Inspect

List the security scan runs of the active project, newest first. Pass scanRunId to get a single run with its live progress instead — that is how you poll a scan started by run_security_scan. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, 1-based (default 1)
statusNoOnly runs in this state: 'queued', 'running', 'completed', 'failed' or 'cancelled'
pageSizeNoRuns per page (default 25, max 100)
scanRunIdNoPublic Id (Guid) of a single scan run. When given, the filters are ignored.
scanProfileIdNoOnly runs of this scan profile (public Guid)

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation covers safety, and the description adds useful behavioral context: newest-first ordering, a project-context requirement, and live progress semantics for the single-run mode. No contradiction exists between the description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each with a distinct purpose: the list behavior, the single-run alternative and its polling use case, and the prerequisite. No filler, no repetition of schema details, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list/single-fetch tool with fully documented parameters and a readOnly annotation, the description covers ordering, project context, alternative usage, and the polling workflow. No output schema is present, but the tool's behavior is simple enough that return-field documentation is not necessary for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds genuine value for scanRunId by linking it to the run_security_scan polling workflow and 'live progress,' going beyond the schema's note that filters are ignored. Other parameters are adequately documented by the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb-resource pair: 'List the security scan runs of the active project' with explicit ordering ('newest first'). It also distinguishes the single-run mode via scanRunId, making it easy to separate from the many sibling list_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit guidance for when to use the scanRunId variant: to get a single run with live progress and to poll a scan started by run_security_scan. It also states a clear prerequisite with 'Requires project context,' so the agent knows when this tool is applicable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scenario_runsList Scenario RunsA
Read-only
Inspect

List the runs of a scenario with pass/fail counts per run. Pass runId to get one run with its per-step results instead — scenarioId is then not needed. Use this for a scenario's run history; to start a new run use run_scenario. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of runs to skip (for pagination, default 0)
takeNoNumber of runs to return (default 20, max 100)
runIdNoPublic Id (Guid) of a single run. When given, returns that run with its step results.
scenarioIdNoPublic Id (Guid) of the scenario. Required unless runId is given.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers safety, and the description adds useful behavioral context by mentioning pass/fail counts and per-step results. It also notes the project context prerequisite.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences convey purpose, alternative usage, and context without redundancy. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context for an agent to choose and call the tool correctly, including output nature and prerequisites. Since no output schema exists, a bit more detail about the response shape would be useful but is not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is complete, and the description reinforces the relationship between runId and scenarioId. It adds operational meaning by explaining when runId is used instead of scenarioId.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action and resource: listing scenario runs with pass/fail counts. It clearly distinguishes itself from run_scenario and explains that passing runId returns a single run with per-step results.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use this for a scenario's run history and to use run_scenario for starting a new run. It also gives the runId alternative and notes the project context requirement.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_scenariosList ScenariosA
Read-only
Inspect

List all test scenarios in the active project. Scenarios are multi-step workflows that chain test cases with variable passing and conditional execution. Use this to browse scenarios or find an id; to create one use create_scenario. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of scenarios to skip (for pagination, default 0)
takeNoNumber of scenarios to return (default 50, max 100)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only nature, lowering the bar. The description adds the prerequisite of project context, which is useful behavioral information. No side effects or destructive actions are mentioned, and nothing contradicts the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, tightly packed with purpose, context, usage, and a prerequisite. There is no redundant information or filler. It is well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple listing tool, the description is complete: it states the action, the resource, when to use it, and a necessary precondition. It does not describe the output format, but that is often implicit for list operations and covered by the schema. The only minor gap is lack of differentiation from list_scenario_runs, which could cause ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides full descriptions for both parameters (skip and take) with clear pagination semantics. Since schema coverage is 100%, the baseline is 3. The tool description does not add any additional parameter-related information beyond the schema, so it remains at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists test scenarios and provides context on what scenarios are. It distinguishes from create_scenario, though it does not explicitly differentiate from list_scenario_runs, a sibling tool. The verb 'list' and resource 'test scenarios' are specific enough for most use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Use this to browse scenarios or find an id' and directs creation to create_scenario. It also notes the prerequisite of 'Requires project context.' This is clear but does not cover alternative list tools for related entities like scenario runs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_schemasList SchemasA
Read-only
Inspect

List all schemas of an API specification. Optionally include usage counts showing how many endpoints reference each schema. Set scope to 'project' to look across every spec in the project instead — that returns the groups of structurally identical schemas (candidates for the shared library) plus counts, not the full list, and specId is then ignored. Every entry carries the rowVersion update_schema needs, so a batch of updates does not need a get_schema per schema first. Use this to browse schemas or find a schema id; for one schema with its full definition use get_schema. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhat to look at: 'spec' (default) or 'project'spec
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter schemas by a specific version
includeUsageCountsNoInclude usage counts per schema (default false, slightly slower)

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only provide readOnlyHint=true, so the description carries the burden of behavioral disclosure. It adds substantial context: the project scope returns structurally identical groups (not a full list), includeUsageCounts is 'slightly slower', every entry carries rowVersion to avoid extra get_schema calls, and the tool 'requires project context.' These details go well beyond the annotation and prepare the agent for real-world behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact despite carrying dense information. The core purpose is front-loaded, the alternative (get_schema) is named, and every sentence adds distinct value: project-scope behavior, rowVersion benefit, and usage guidance. No fluff or repetition; it reads as a well-edited paragraph.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given four parameters, no output schema, and only a readOnly annotation, the description covers all critical aspects: the default spec-scope list, the project-scope alternative, the rowVersion hint for update workflows, and the prerequisite of project context. An agent can correctly invoke the tool and interpret the returned data without missing key behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema: it explains how the scope parameter changes the entire response shape (groups vs. full list, specId ignored), and it clarifies that includeUsageCounts affects performance. These are valuable semantics not present in the JSON schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb+resource: 'List all schemas of an API specification.' It clearly distinguishes the tool from get_schema ('for one schema with its full definition use get_schema') and explains the project-scope variant that returns groups rather than a full list. This leaves no ambiguity about what the tool does and how it differs from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool: 'Use this to browse schemas or find a schema id,' and when not to: 'for one schema with its full definition use get_schema.' It also documents the project-scope behavior, including that specId is ignored, giving clear routing criteria without needing to open other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_script_snippetsList Script SnippetsA
Read-only
Inspect

List the project's reusable pre-request and post-response script snippets, with their code and how often each is used. Use this to browse snippets or find an id; to create, change or delete one use manage_script_snippet. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of snippets to skip (for pagination, default 0)
takeNoNumber of snippets to return (default 50, max 100)
searchTermNoFilter by name or description containing this text

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already declared, the description adds useful behavioral context: it states the output includes code and usage frequency and that project context is required. It does not describe pagination or ordering, but the schema covers skip/take. This is adequate but not richly detailed beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with no redundancy. The core purpose is front-loaded, and the usage guidance is direct. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with three optional, well-documented parameters, the description covers the essential behavioral aspects: what is returned, when to use it, and the alternative for mutations. The absence of output schema is fine since the description states the content. Slight lack of mention of pagination defaults is covered by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific guidance beyond the schema, though it implies searchTerm could be used for finding an id. No extra value is provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a precise resource ('the project's reusable pre-request and post-response script snippets'), and details what is returned (code and usage count). It also explicitly differentiates from the mutation tool manage_script_snippet, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit when-to-use guidance: 'Use this to browse snippets or find an id' and clearly directs to manage_script_snippet for create/change/delete. It also notes the prerequisite 'Requires project context', which is actionable for the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_security_guidanceList Security GuidanceA
Read-only
Inspect

List the static security guidance library — one entry per OWASP API-security issue with its remediation text, code examples and references. Pass guidanceId (the guidanceId of a finding) for a single entry. The library is global, not project-specific. Use this for the general library; for advice on one finding use get_finding_remediation.

ParametersJSON Schema
NameRequiredDescriptionDefault
guidanceIdNoId of a single guidance entry, e.g. 'api2-jwt-alg-none'. Returns it with code examples.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes the tool's read-only nature, and the description adds meaningful behavioral details: the library is global and static, and passing guidanceId returns a single entry instead of the full list. This complements the annotation without any contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with three sentences, covering purpose, parameter behavior, and usage guidance. It is slightly verbose in repetition (e.g., mentioning 'guidanceId' twice and the global scope), but overall it is clear and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All essential context is present: what the tool returns, the effect of the optional parameter, the library's global/static nature, and the recommended alternative for finding-specific advice. Given the tool's simplicity and lack of output schema, no further information is needed for correct use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides a description for guidanceId with an example ('api2-jwt-alg-none') and notes it returns the entry with code examples, giving 100% coverage. The tool description further clarifies the parameter's effect (single entry vs. list), adding value beyond the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists the static security guidance library with one entry per OWASP API-security issue, and it explicitly contrasts this with get_finding_remediation. The verb 'List' and the resource 'security guidance' are specific, and 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'Use this for the general library; for advice on one finding use get_finding_remediation.' It also explains how to retrieve a single entry by passing guidanceId, covering both main usage scenarios and the alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_security_scheme_componentsList Security Scheme ComponentsA
Read-only
Inspect

List the security schemes a spec version defines (OpenAPI components/securitySchemes). Set includeUsageCounts to see how often each is referenced. Use this to browse or find an id; to create, change or delete one use manage_security_scheme_component. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter by a specific version
includeUsageCountsNoAlso return how often each scheme is referenced (default false)

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although the read-only hint is already in annotations, the description adds that includeUsageCounts affects the output (how often each is referenced) and that project context is required. This provides behavioral insight beyond the annotation, though it doesn't detail error handling or side effects, which is acceptable given the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, with clear structure: what it does, then a note about the parameter, then usage guidance. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is complete enough for a list operation given the schema. It mentions project context and the optional parameter. It lacks details on response format or pagination, but since there's no output schema, it's acceptable. However, it doesn't mention sorting or filtering beyond versionId, which is a minor omission.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes each parameter fully. The description adds specific behavior for includeUsageCounts, clarifying its effect. It doesn't add much for specId/versionId, but it reinforces the purpose. Since schema coverage is 100%, the baseline is 3, and this addition brings it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 (security schemes of a spec version), and distinguishes from the create/update/delete sibling by referencing manage_security_scheme_component. It is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool (to browse or find an id) and when to use the alternative (manage_security_scheme_component for create/change/delete). It also notes the requirement of project context, providing clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_seedsList SeedsA
Read-only
Inspect

List the seeds of the active project — the request sequences that set up and tear down test data. Pass seedId to get one seed with its full step lists and rowVersion. Use this to browse seeds or find a seed id; to execute one use run_seed. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of seeds to skip (for pagination, default 0)
takeNoNumber of seeds to return (default 100, max 100)
seedIdNoPublic Id (Guid) of a single seed. When given, returns that seed with its steps.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds useful context beyond annotations by explaining that passing seedId returns full step lists and rowVersion, and that project context is required. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The purpose is front-loaded, the alternative is given, and the requirement is stated. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with full schema coverage, readOnlyHint annotation, and no output schema, the description covers all necessary aspects: purpose, usage distinction, seedId behavior, and project context. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, giving a baseline of 3. The description adds extra meaning by specifying that seedId returns 'full step lists and rowVersion', which goes beyond the schema's 'returns that seed with its steps'. This enriches the parameter's semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists seeds of the active project, defines what seeds are, and distinguishes the browse/find-id use from execution via run_seed. The verb 'list' plus the resource 'seeds' makes 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use this tool ('browse seeds or find a seed id') and when not to ('to execute one use run_seed'). Also notes the prerequisite 'Requires project context', leaving no ambiguity about the intended use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_shared_component_usagesList Shared Component UsagesA
Read-only
Inspect

List which shared-library components a spec links, including whether the library has a newer version than the spec is pinned to (hasUpdate). The usage ids returned here are what manage_shared_component_link needs for 'unlink' and 'accept_update'. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter by a specific version

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers safety, and the description adds meaningful behavior: results include whether a newer library version exists (hasUpdate), and returned ids are intended for later unlink/accept_update operations. It also discloses the project-context requirement. A full return-shape description is absent, but the read-only nature lowers the burden.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two focused sentences with no filler. The core purpose is front-loaded, the hasUpdate detail adds behavioral value, and the note about manage_shared_component_link is essential downstream context. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple two-parameter read-only list operation, the description conveys the main output value (hasUpdate), the downstream consumer of returned ids, and the required context. Without an output schema, a bit more return-shape detail could help, but the description is sufficiently complete for an agent to select and call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both specId and versionId are already documented in the schema. The description only indirectly references these via 'a spec links' and 'pinned to' without adding new parameter-level semantics, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies a clear verb+resource: 'List which shared-library components a spec links'. It also includes a distinguishing detail (hasUpdate) and notes the returned usage ids are inputs for manage_shared_component_link, setting it apart from sibling list_shared_* tools like list_shared_schemas or list_shared_responses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 need to see a spec's shared-library component links or need usage ids for unlink/accept_update via manage_shared_component_link. It also notes 'Requires project context', which is a useful prerequisite. It does not explicitly mention alternatives or when not to use it, but the context is clearly conveyed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_shared_reportsList Shared ReportsA
Read-only
Inspect

List the share links that exist for a test run, with their access level and expiry. Use this to see existing share links; to create, extend or revoke one use manage_shared_report. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testRunIdYesPublic Id (Guid) of the test run

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the lack of side effects, and the description does not contradict it. It adds behavioral context by stating the output includes access level and expiry. While it omits potential error conditions or authentication requirements, the core behavior is well communicated beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two sentences with no redundant information. It front-loads the main action and output, then immediately addresses usage and alternative tools. Every word serves a purpose, making it easy for an agent to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions the requirement for project context and references the alternative tool, which is essential for routing. It does not list permissions or prerequisites, but for a read-only list operation, this is not critical. The absence of an output schema is not a gap since the description already indicates the returned fields. Overall, it provides sufficient context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides a complete description for testRunId ('Public Id (Guid) of the test run'), so coverage is 100%. The tool description does not add further detail about the parameter, but the schema description is sufficient. This aligns with the baseline for high schema coverage, where the description adds minimal value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists share links for a test run, including access level and expiry. It also distinguishes itself from manage_shared_report, which handles creation, extension, or revocation. This makes the tool's purpose unambiguous and easily distinguishable from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use this tool (to see existing share links) and when to use the alternative (manage_shared_report for create/extend/revoke). The note about requiring project context adds practical guidance. This leaves no ambiguity about the appropriate invocation scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_shared_responsesList Shared ResponsesA
Read-only
Inspect

List the reusable responses of the shared library. Scope 'project' (default) reads the current project's library, 'org' the organization-wide one. Each entry carries the id and rowVersion needed to update or link it. Use this to browse or find an id; to create, change or delete one use manage_shared_response.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhich library to read: 'project' (default) or 'org'project

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Consistent with readOnlyHint true, and adds extra behavioral detail about each entry carrying id and rowVersion for updates/links, going beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences pack all necessary information without redundancy, front-loading the primary purpose and then clarifying scope and usage.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description sufficiently covers what the tool returns (entries with id/rowVersion) and how to use it, making it complete 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'scope' is fully explained in both schema and description, including default value and meaning of each option, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 (reusable responses of the shared library), distinguishing it from siblings like list_shared_schemas and get_shared_response.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides usage context: browsing or finding an id, and directs mutations to manage_shared_response. Also explains the scope parameter's two options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_shared_schemasList Shared SchemasA
Read-only
Inspect

List the reusable schemas of the shared library. Scope 'project' (default) reads the current project's library, 'org' the organization-wide one. Each entry carries the id and rowVersion needed to update or link it. Use this to browse or find an id; to create, change or delete one use manage_shared_schema.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhich library to read: 'project' (default) or 'org'project

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description does not need to repeat that. It adds useful behavioral context that each entry carries the id and rowVersion needed for updates or linking. However, it does not disclose potential pagination, sorting, or limits, which are common for list operations. With annotations covering the read-only safety, this is an adequate but not rich 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, with the purpose front-loaded in the first sentence. Every sentence earns its place: the scope explanation, the return content, and the usage routing to manage_shared_schema. There is no redundant or filler text, making it efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description covers the essential aspects: what it lists, scope options, what each entry contains, and when to use it versus the mutation alternative. It does not mention pagination or ordering, but these are minor for a list tool and not critical for correct invocation. The description is sufficiently complete for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter 'scope' already has a description and default value. The description repeats the scope meanings but adds nuance by specifying 'current project's library' for 'project' and 'organization-wide' for 'org', which is a slight addition. Since the schema already explains the parameter, the description adds marginal value, consistent with a baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists reusable schemas from the shared library and explicitly mentions the scope parameter. It differentiates itself from manage_shared_schema by naming the alternative for mutations. However, it does not explicitly distinguish itself from other list_shared_* siblings (e.g., list_shared_responses, list_shared_reports), though the resource type (schemas) makes the distinction implicit. This is clear but not fully explicit on sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage guidance: 'Use this to browse or find an id; to create, change or delete one use manage_shared_schema.' It also clarifies the two scope options and their meanings ('project' for current project's library, 'org' for organization-wide). This tells the agent exactly when to use this tool and when to use the alternative, leaving no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_smart_mock_matching_rulesList Smart Mock Matching RulesA
Read-only
Inspect

List the Smart Mock matching rules of one mock server — the rules that decide which faker value a field name gets. Includes the built-in catalog unless you filter it out. Use this for one mock server's rules; for the organization-wide ones use list_org_smart_mock_rules. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of rules to skip (for pagination, default 0)
takeNoNumber of rules to return (default 50, max 100)
categoryNoFilter by category: person, location, internet, date_time, finance, identifier, media or misc
isBuiltInNotrue for built-in rules only, false for custom rules only. Omit for both.
mockServerIdYesThe public Id (Guid) of the mock server

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotation readOnlyHint: true already covers the read-only nature. The description adds context that built-in rules are included unless filtered out and that project context is required, but does not mention pagination or return format. This is a reasonable addition beyond the annotation without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three tight sentences, front-loaded with the main action, and contains no redundant or filler content. It efficiently packs purpose, behavior, and usage guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list operation with no output schema, the description covers the key aspects: what it lists, scope, filtering behavior, and distinguishing from a sibling. It does not state the return structure, but that is not mandatory here; still, a brief mention of the result type would have made it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description subtly hints at the isBuiltIn filter ('unless you filter it out') and the project context requirement, which adds slight value beyond the raw parameter docs. No contradiction.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Smart Mock matching rules for one mock server, defines what those rules do, and explicitly distinguishes it from the org-wide variant. This gives a precise, unambiguous purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells the agent when to use this tool (for one mock server) and when to use the alternative (list_org_smart_mock_rules for org-wide), and also notes that project context is required. This is strong, actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_snapshotsList SnapshotsA
Read-only
Inspect

List the project's data snapshots — recorded resource states that can be restored to return an environment to a known point. Pass snapshotId to get one snapshot with its recorded resources. Use this to browse snapshots; to record a new one use record_snapshot. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of snapshots to skip (for pagination, default 0)
takeNoNumber of snapshots to return (default 100, max 100)
snapshotIdNoPublic Id (Guid) of a single snapshot. When given, returns its recorded resources.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description need not repeat that. It adds useful context beyond the annotation: snapshots are restorable states, and passing snapshotId returns recorded resources. This clarifies the tool's behavior without contradicting the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no redundancy. It front-loads the primary purpose, then explains the optional parameter, then gives the usage alternative. Every sentence earns its place, making it efficient and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (3 optional parameters, no nested objects, no output schema), the description covers all necessary usage aspects: the main action, the snapshotId behavior, and the distinction from record_snapshot. The 'Requires project context' note adds essential context. No critical information is missing 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds meaning for snapshotId by explaining it returns recorded resources, which goes beyond the schema's terse description. skip and take are adequately described in the schema, so the description does not need to elaborate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'snapshots', and defines what snapshots are ('recorded resource states that can be restored'). It differentiates from the sibling record_snapshot by explicitly naming it as the alternative for recording, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states when to use this tool ('Use this to browse snapshots') and when to use an alternative ('to record a new one use record_snapshot'). It also notes the prerequisite 'Requires project context', giving the agent concrete guidance on when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_specsList SpecsA
Read-only
Inspect

List all API specifications in the active project. Set scope to 'org' to list the published APIs across every project in the organization instead — each entry carries the projectId and specId to pass to set_context. Use this to browse specs or find a spec id; for one spec by id use get_spec. Requires project context for scope 'project'.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of specs to skip (for pagination, default 0)
takeNoNumber of specs to return (default 50, max 100)
scopeNoWhat to list: 'project' (default) or 'org'project

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Read-only behavior is declared via the readOnlyHint annotation, and the description adds a behavioral requirement ('Requires project context for scope project') and notes the output carries projectId and specId. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, uses clear sentences, and logically separates the primary purpose, scope variation, use case, and alternative tool. No redundant or vague wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides enough context for an agent to know what the tool does, when to use it, and what to expect in the output (projectId and specId for set_context). It also states the context requirement, making it self-sufficient despite lacking an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters have descriptions in the schema, and the tool description adds context for scope ('Set scope to org...') and clarifies skip/take as pagination controls. This exceeds the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists API specifications in the active project, with an option to list across the organization. It specifies the verb 'List' and the resource 'API specifications', and differentiates from get_spec.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly tells when to use this tool for browsing or finding spec IDs, and directs to get_spec for single-spec retrieval. It also explains the scope parameter to switch between project and org listings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_tagsList TagsA
Read-only
Inspect

List the endpoint tags of an API specification, including their Markdown descriptions and display order. Tag descriptions are exported as root-level OpenAPI tags and shown in the documentation portal. Use this to browse tags or find a tag id; for one tag by id use get_tag. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdNoOptional version ID (GUID) to filter tags by a specific version

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds useful behavioral context: that tags are exported as root-level OpenAPI tags and shown in the documentation portal, and that it requires project context. It doesn't contradict annotations and enriches them with prerequisite and output semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all substantive. The core purpose is front-loaded, then the export behavior adds context, and finally usage guidance and prerequisite are given. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with only two parameters and no output schema, the description covers what it returns (tags with descriptions and order), how to use it, the prerequisite, and the alternative. It doesn't mention pagination or limits, but these are not critical for a simple list operation. Minor gap, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (specId and versionId) are well-documented in the schema. The description does not add parameter-level meaning beyond the schema, but it does not need to since the schema covers it. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear verb+resource: 'List the endpoint tags of an API specification, including their Markdown descriptions and display order.' It also distinguishes the tool from get_tag by explicitly stating its use case. This is unambiguous and differentiates it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: 'Use this to browse tags or find a tag id; for one tag by id use get_tag.' It also states a prerequisite: 'Requires project context (call set_context first).' This provides clear routing among alternatives and necessary setup.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_team_projectsList Team ProjectsA
Read-only
Inspect

List the projects a team is assigned to and with which role (read or write). Unlike list_teams this only needs organization membership. Requires organization context. Read-only: members, roles, teams and SSO are not changeable through MCP by design — a human does those in the web app.

ParametersJSON Schema
NameRequiredDescriptionDefault
teamIdYesPublic ID (GUID) of the team

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, and the description adds beyond that by explaining the read-only design: members, roles, teams, and SSO are intentionally not changeable through MCP. It also notes organization context is required. This is useful behavioral context, though it omits return-format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler, with the core action first. The read-only design note earns its place, though it is slightly tangential and makes it a bit less tight than a two-sentence definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read-only list tool, the description covers purpose, prerequisites, differentiation from a sibling, and safety behavior. Without an output schema, a brief note about return shape could have been added, but the output is fairly self-evident from the purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter teamId is already described as the public GUID. The description adds no additional parameter semantics, but it doesn't need to for such a simple parameter. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: lists the projects a team is assigned to, including the role (read or write). This is distinct from other sibling list tools like list_projects and list_project_teams, and the reference to list_teams reinforces the differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear usage condition: requires organization context and only needs organization membership, contrasted with list_teams. It doesn't spell out a complete when-to-use/when-not-to-use decision tree, but the comparison and prerequisite are enough for an agent to select it correctly in most cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_test_casesList Test CasesA
Read-only
Inspect

List the test cases of a suite in execution order. Pass testCaseId to get one case in full instead — with its request config, assertions and response extractions — and then testSuiteId is not needed. Use this to browse a suite's cases in order; to change that order use reorder_test_items. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of test cases to skip (for pagination, default 0)
takeNoNumber of test cases to return (default 100, max 100)
testCaseIdNoPublic Id (Guid) of a single test case. When given, returns that case in full.
testSuiteIdNoPublic Id (Guid) of the test suite. Required unless testCaseId is given.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Read-only hint is provided and the description is consistent with it. Description adds behavioral details like execution order and that a single-case retrieval includes request config, assertions, and response extractions, which are meaningful but not covered by annotations alone. No side effects or destructive actions are implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient and well-structured, covering purpose, alternatives, parameter relationships, and context requirements in three sentences without extraneous detail. Slightly verbose due to the parenthetical example, but all content is relevant and useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description adequately explains the return type (list of test cases or full case details) and key behaviors like execution order and project context requirement. It leaves out explicit mention of pagination, but skip/take parameters are documented in the schema, so the description covers the essential context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions cover all parameters, but the description adds important semantics beyond schema, such as the mutual exclusivity of testCaseId and testSuiteId (testSuiteId not needed when testCaseId is given) and the execution-order nature. This enriches parameter understanding beyond the basic field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists test cases of a suite in execution order. It also distinguishes it from reorder_test_items by explicitly mentioning that alternative for changing order, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use for browsing a suite's cases in order, and use reorder_test_items for changing order. Also clarifies conditional usage for a single test case via testCaseId and notes the requirement for project context, covering both when and when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_test_data_setsList Test Data SetsA
Read-only
Inspect

List the data sets of a test suite — the tables that drive data-driven runs. The list gives names and row counts; pass dataSetId to get one set including its columns and rows. Use this to browse data sets; to create, change or import one use manage_test_data_set. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of data sets to skip (for pagination, default 0)
takeNoNumber of data sets to return (default 100, max 100)
dataSetIdNoPublic Id (Guid) of a single data set. When given, returns that set with its rows.
testSuiteIdNoPublic Id (Guid) of the test suite. Required unless dataSetId is given.

TDQS

A4.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although readOnlyHint is already declared, the description adds behavioral context by explaining the return shape (names and row counts, or columns and rows with dataSetId) and the prerequisite of project context. It does not mention error cases or edge behavior, but the read-only nature is clearly implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with no redundant information. It packs essential details (what it lists, when to use, what dataSetId does, prerequisite) into three clear sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description summarizes the return format (names and row counts, or columns and rows for a single set). It also covers the prerequisite for project context and the alternative to manage, making it self-contained for an agent to decide and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already describes each parameter, but the description adds crucial relationships: testSuiteId is required unless dataSetId is provided, and dataSetId returns the set with rows. This goes beyond the schema and helps the agent choose parameters correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists test data sets of a test suite, and contrasts with manage_test_data_set for creation/import. It also explains the behavior when dataSetId is provided (returns rows), making the purpose specific and distinct from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this to browse data sets' and directs to manage_test_data_set for create/change/import. Also notes requirement for project context and clarifies testSuiteId is required unless dataSetId is given, providing clear when-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_test_foldersList Test FoldersA
Read-only
Inspect

List the folders of the active project's test suite tree or scenario tree, flat with parentFolderId per entry. Use this to browse the folder tree; to create, rename or move a folder use manage_test_folder. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderTypeNoWhich tree: 'suite' (default) for test suite folders, 'scenario' for scenario folderssuite

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, which covers the main behavioral aspect. Description adds minor details like 'flat with parentFolderId' but does not describe return format or pagination, consistent with the example of a moderate score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, no redundancy. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter, read-only annotation, and no output schema, the description fully covers what the tool does, its scope, and the required context ('active project').

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a descriptive comment for folderType. The description itself does not add extra parameter context beyond the schema, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('list'), resource ('folders'), and scope ('test suite tree or scenario tree'), and distinguishes from manage_test_folder. 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('browse the folder tree') and when not to ('to create, rename or move a folder use manage_test_folder'), providing clear alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_test_schedulesList Test SchedulesA
Read-only
Inspect

List the schedules of a test suite with their cron expression, timezone and next run time. Pass scheduleId to get one schedule instead — testSuiteId is then not needed. Use this to browse schedules; to create, change or run one use manage_test_schedule. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of schedules to skip (for pagination, default 0)
takeNoNumber of schedules to return (default 100, max 100)
scheduleIdNoPublic Id (Guid) of a single schedule. When given, returns only that schedule.
testSuiteIdNoPublic Id (Guid) of the test suite. Required unless scheduleId is given.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the read-only nature is covered. The description adds that it requires project context, a behavioral prerequisite, and clarifies it does not create/change/run schedules, implying no side effects. This adds value beyond annotations, though it omits details on return format or errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose, then usage alternatives, then the context requirement. No fluff; every sentence contributes essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The schema already documents skip/take with defaults and max, and the description covers both list-all and single-schedule modes, the alternative tool, and the context requirement. It mentions returned fields (cron, timezone, next run time) but doesn't describe the full output shape or pagination details, though pagination is in the schema. Overall adequate 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds the relationship between scheduleId and testSuiteId – that scheduleId makes testSuiteId unnecessary – which is not present in the schema's individual parameter descriptions. This clarifies mutual exclusivity and enriches parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists schedules of a test suite with specific fields (cron expression, timezone, next run time). It distinguishes itself from manage_test_schedule, which handles creation, changes, or runs, making the purpose unambiguous and distinct from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to use this tool versus alternatives: 'Use this to browse schedules; to create, change or run one use manage_test_schedule.' It also explains the scheduleId alternative, providing clear context for selecting the appropriate invocation mode.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_test_suitesList Test SuitesA
Read-only
Inspect

List all test suites in the active project with stats (test case count, auth mode). Use this to browse suites or find a suite id; for one suite with its cases use get_test_suite. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of suites to skip (for pagination, default 0)
takeNoNumber of suites to return (default 50, max 100)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already communicates the read-only nature. The description adds the precondition of requiring project context, which is helpful. It does not mention pagination or other behavioral details, but nothing is hidden or contradictory, so a slight deduction 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the main purpose, and uses no unnecessary words. It is well-structured with two sentences covering the action and the usage caveat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that no output schema is provided and the tool is relatively simple, the description covers all necessary context: what it does, what data it includes, how to use it, and the prerequisite. No additional information is needed for an agent to decide when and how to call it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters (skip, take) are fully described in the schema with defaults and maximums, giving 100% schema coverage. The description does not add extra semantic meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists test suites in the active project and specifies that stats include test case count and auth mode. It also distinguishes this tool from get_test_suite, 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool ('browse suites or find a suite id') and when to use the alternative ('for one suite with its cases use get_test_suite'). It also notes the prerequisite of setting project context via set_context, giving clear usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_toolsetsList ToolsetsA
Read-only
Inspect

List all toolsets (tool groups) with slug, tool count and whether they are visible in this session. Core toolsets are always visible; enable others with enable_toolset. Full-access API keys see every tool; scoped keys and OAuth sessions automatically see every tool their scopes or role allow. Hidden tools stay callable — enabling only affects what tools/list advertises.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation is reinforced, but the description adds crucial nuance beyond it: 'Hidden tools stay callable — enabling only affects what tools/list advertises.' This discloses an important behavioral trait that annotations alone do not convey, and also explains the visibility rules for different auth contexts.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all front-loaded with the primary purpose first. Each subsequent sentence adds meaningful context about visibility and enabling, with no filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless list tool with no output schema, the description fully explains what is returned (slug, tool count, visibility) and the behavioral semantics around visibility and callability. Nothing essential is missing for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema fully covers that with an empty object, so the description has no parameter burden. A baseline of 4 is appropriate because there is nothing to compensate for and the no-parameter nature is clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'toolsets', and the exact output fields (slug, tool count, visibility). It distinguishes itself from sibling list_* tools by focusing specifically on toolsets and by naming enable_toolset as the related action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'enable others with enable_toolset', giving a direct pointer to the sibling tool for the complementary action. It also clarifies when tools are visible based on key type and session, and notes that hidden tools remain callable, so the agent knows when listing is relevant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_versionsList VersionsA
Read-only
Inspect

List all versions of an API specification with their status (draft/review/published/deprecated). Set includeSuggestions for the next major, minor and patch number under this spec's versioning strategy — what create_version expects. Use this to browse versions or find a version id; for one version by id use get_version. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of versions to skip (for pagination, default 0)
takeNoNumber of versions to return (default 50, max 100)
specIdYesPublic ID (GUID) of the API specification
includeSuggestionsNoAlso return the suggested next version numbers (default false)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, so the description doesn't need to restate that. It adds valuable behavioral context: the statuses returned, the includeSuggestions behavior for next version numbers, and the project context requirement. It does not contradict annotations and goes beyond the schema by explaining the purpose of includeSuggestions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences and reasonably concise. It front-loads the primary purpose and then packs usage guidance and a prerequisite into the second sentence. While the second sentence is somewhat dense, every phrase adds information and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description should convey what the return includes. It mentions statuses and that a version id can be found, giving a hint at the output shape. It also covers pagination via parameters and the prerequisite context. For a list tool, this is sufficiently complete, though it could detail the exact fields per version.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds meaning to includeSuggestions by explaining it returns the next major/minor/patch numbers expected by create_version, which is more informative than the schema's generic description. Other parameters (specId, skip, take) are adequately described in the schema, so the description adds just enough value to warrant a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing all versions of an API specification with their status. It differentiates from the sibling get_version by explicitly noting the distinction between browsing all versions and fetching a single one. The verb 'list' and resource 'versions' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit usage guidance: 'Use this to browse versions or find a version id; for one version by id use get_version.' It also states a prerequisite: 'Requires project context (call set_context first).' This clearly instructs when to use this tool and when to use an alternative, leaving no ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_webhook_deliveriesList Webhook DeliveriesA
Read-only
Inspect

List delivery attempts of one webhook — event type, status, attempt count, HTTP status and error message. This is where you look when a webhook 'does not fire'. Get the webhookId from list_webhooks. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of deliveries to skip (for pagination, default 0)
takeNoNumber of deliveries to return (default 50, max 100)
webhookIdYesPublic ID (GUID) of the webhook

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true already declaring the safety profile, the description adds genuine behavioral context beyond annotations: the organization-context requirement and the inventory of what the result contains. It does not disclose ordering of delivery attempts or error behavior for invalid webhook IDs, but for a read-only listing tool the annotation plus these additions are solid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: core purpose with return fields up front, then the troubleshooting scenario, then prerequisites. There is zero filler and the most decision-relevant information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 3-parameter, read-only listing tool with full schema coverage and a readOnlyHint annotation, the description covers everything needed for correct invocation: purpose, return fields, prerequisite ID sourcing, and the org-context requirement. The only notable gap is the lack of ordering semantics (e.g., whether attempts are returned newest-first), which an agent troubleshooting a non-firing webhook would benefit from knowing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; all three parameters (webhookId, skip, take) are already documented in the schema. The description adds value beyond that baseline by telling the agent where to obtain the required webhookId ('Get the webhookId from list_webhooks'), which is directly actionable parameter-sourcing information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource ('List delivery attempts of one webhook') and enumerates the returned fields (event type, status, attempt count, HTTP status, error message). The scope 'of one webhook' clearly differentiates it from the large sibling family, especially list_webhooks, which lists webhooks themselves rather than their delivery attempts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit troubleshooting scenario ('This is where you look when a webhook does not fire') and a concrete prerequisite flow ('Get the webhookId from list_webhooks'). It stops short of explicitly naming tools not to use or stating when-not-to-use conditions, but the scenario framing gives an agent clear grounds to select it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_webhooksList WebhooksA
Read-only
Inspect

List configured webhooks for the organization, optionally filtered by project. Returns webhook details including URL, subscribed events, and enabled status. Only accessible by organization admins and owners. Requires organization context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
skipNoNumber of webhooks to skip (for pagination, default 0)
takeNoNumber of webhooks to return (default 50, max 100)
projectIdNoOptional project public Id (Guid) to filter webhooks by project

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, and the description adds value beyond that: it discloses the admin/owner access requirement, the prerequisite organization context, and the shape of the returned data. No contradiction with the read-only annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: core purpose, return contents, then access and context requirements. The purpose is front-loaded and the whole description is under 50 words with zero redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with no output schema, the description covers the important returned fields and the pagination parameters are fully documented in the schema. It is nearly complete, but could go further by explicitly naming list_webhook_deliveries as the sibling to use when delivery logs are needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so skip, take, and projectId are already fully documented with defaults, range, and format. The description merely echoes the project-filter concept without adding new parameter-level detail, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List configured webhooks for the organization, optionally filtered by project.' The term 'configured webhooks' plus the return details (URL, subscribed events, enabled status) clearly distinguish it from the closely named sibling list_webhook_deliveries, which would cover delivery history rather than configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: it names the prerequisite ('call set_context first') and the access restriction (organization admins and owners only). It does not explicitly name an alternative tool for when delivery history is needed, so it stops short of full when-to-use/when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_all_notifications_readMark All Notifications ReadA
Destructive
Inspect

Mark EVERY unread notification of the authenticated user in the active organization as read. This cannot be undone — to clear a single one use mark_notification_read. Requires organization context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark this as destructive, and the description adds important behavior: the action cannot be undone, it applies only to unread notifications, and it requires active organization context. This goes beyond the annotation and warns the agent about irreversibility.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences deliver the operation, scope, irreversibility warning, alternative, and prerequisite. Every clause adds value and the key action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter destructive tool, the description covers what the tool does, its irreversible nature, the prerequisite context call, and how to handle the single-notification case. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema documents that completely, so there is no parameter information missing. The description adds contextual scope (authenticated user, active organization) but no parameter-specific semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: marks every unread notification as read for the authenticated user in the active organization. The scope is clearly distinguished from mark_notification_read, making the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the alternative for single notifications ('to clear a single one use mark_notification_read') and states the required prerequisite of setting organization context first. This gives an agent clear direction on when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mark_notification_readMark Notification ReadA
Destructive
Inspect

Mark one notification as read. Get the id from list_notifications. Requires organization context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
notificationIdYesPublic ID (GUID) of the notification

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description reinforces the mutating nature of the action. It adds useful context beyond annotations by specifying the prerequisite organization context and the source for the notification ID.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler. Every sentence contributes either the action, the ID source, or the prerequisite call.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter mutation tool with annotations and no output schema, the description fully covers what the tool does, where the parameter comes from, and the required setup. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents notificationId as the Public ID (GUID), so the baseline is 3. The description adds extra value by telling the agent to obtain this ID from list_notifications, which helps with correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Mark one notification as read.' It clearly distinguishes this tool from mark_all_notifications_read by specifying 'one,' and it tells the agent where to get the identifier (list_notifications).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: get the id from list_notifications and call set_context first. It does not explicitly call out mark_all_notifications_read as the alternative for bulk operations, but the 'one' wording implies the distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pre_publish_impactPreview Publish ImpactA
Read-only
Inspect

Check what publishing or promoting this version would do to dependent projects: how many are affected, at which severity, and whether the impact has to be acknowledged. Run this before promote_version when the version carries breaking changes. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
specIdYesPublic ID (GUID) of the API specification
versionIdYesPublic ID (GUID) of the version to analyse

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description aligns with the readOnlyHint annotation and adds valuable behavioral context: the tool is a pre-publication analysis, it reports impact at various severities, it indicates whether acknowledgment is needed, and it requires project context. It does not mention rate limits or auth details, but for a read-only preview the annotation plus this context is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loads the core behavior first, then gives the usage trigger and prerequisite. Every phrase earns its place: 'how many are affected', 'at which severity', 'whether the impact has to be acknowledged', and 'requires project context'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only analysis tool with no output schema, the description adequately covers what the tool returns, when to invoke it, and what context is needed. The mention of dependent-project impact, severity, acknowledgment, and the promote_version dependency gives an agent enough to call it correctly without additional schema or annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters already documented as public GUIDs for the spec and the version to analyze. The description adds no new parameter-level detail beyond framing them as 'this version' and dependent projects, so the schema carries the semantic burden as expected.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('Check what publishing or promoting this version would do') and a specific resource ('dependent projects'), then details the kind of information returned: affected count, severity, and acknowledgment requirement. This distinguishes the tool from generic list/get tools and makes its purpose immediately obvious.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: 'Run this before promote_version when the version carries breaking changes.' It lacks explicit when-not-to-use guidance or named alternatives, but the trigger condition and ordering are concrete enough to route an agent correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

preview_smart_mockPreview Smart MockA
Read-only
Inspect

Render a response body template with its {{faker.*}} placeholders replaced by generated values, using the active project's Smart Mock settings. Use this to check a template before saving it on a rule. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
responseBodyYesThe response body template containing {{faker.*}} placeholders

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, covering the safety profile. The description adds useful context about using active project Smart Mock settings and the 'before saving' intent, but does not describe output format, error behavior, or what happens when project context is missing. Given the annotation coverage, the added behavioral detail is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no filler: the first states the action and behavior, the second gives the use case and prerequisite. Essential information is front-loaded and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity read-only tool with one fully documented parameter and no output schema, the description covers what the tool does, why to use it, and a prerequisite. It does not explicitly state the return value, but 'Render... replaced by generated values' sufficiently implies the rendered result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents responseBody as a template containing {{faker.*}} placeholders. The description reinforces this by explaining the placeholders are replaced with generated values, but adds little new semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb ('Render') and resource ('response body template with {{faker.*}} placeholders replaced'), and clarifies the tool's purpose as checking a template before saving it on a rule. This distinguishes it from related mock/test tools in the sibling list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States a clear use case ('check a template before saving it on a rule') and a key prerequisite ('Requires project context'). It does not explicitly name alternatives like test_smart_mock or say when not to use this tool, but the context is strong enough for an agent to infer appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_governance_alertResolve Governance AlertA
Destructive
Inspect

Mark a governance alert as resolved. This cannot be undone, and it does not fix what raised the alert. Alert IDs come from list_governance_alerts. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
alertIdYesPublic ID (GUID) of the alert

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true, but the description adds meaningful behavioral context beyond that: the action 'cannot be undone,' it 'does not fix what raised the alert,' and it requires organization context. The irreversibility and root-cause caveat are exactly the kind of consequences an agent needs to know before invoking a destructive tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each doing distinct work: the core action, the consequences, and the prerequisite/source. The main verb is front-loaded, and there is zero filler. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one required parameter, no output schema, no enums, and annotations already covering the destructive profile, the description is complete. An agent knows what it does, what the side effects are, where the ID comes from, and what context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents alertId as a GUID string. The description adds value by telling the agent where valid values come from ('Alert IDs come from list_governance_alerts'), which goes beyond the baseline for fully-covered schema parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb plus resource: 'Mark a governance alert as resolved.' It clearly anchors the tool in the governance-alert domain, distinguishing it from siblings like list_governance_alerts (listing) and resolve_variables (a different resource). The action is unambiguous and not a tautology of the name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: 'Alert IDs come from list_governance_alerts' tells the agent the prerequisite workflow, and 'Requires organization context' sets an invocation precondition. It does not explicitly name alternatives or when-not-to-use conditions, but for this action there is no obvious sibling alternative to exclude.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_variablesResolve VariablesA
Read-only
Inspect

Show the effective variable set for one environment after merging all three scopes — organization, then environment, then your personal overrides — with the scope each winning value came from. This is what a test run or mock request actually sees. Secret values are masked.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project. If omitted, uses the active project context.
environmentIdYesPublic ID (GUID) of the environment

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already covers the read-only nature. The description adds useful behavioral details like 'Secret values are masked' and the merging order, going beyond a simple verb phrase.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, two sentences, and clearly structured. It front-loads the primary purpose and immediately adds the key nuance about scopes and masking.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description sets expectations for the return: the effective variable set, the scope per winning value, and the masking of secrets. This is sufficient for an agent to understand what will be returned.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema provides a description for projectId and the tool description mentions 'one environment' for environmentId. While environmentId lacks an explicit schema description, its meaning is clear from the context and the sibling tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb 'Show' and the resource 'effective variable set for one environment', distinguishing it from similar tools like get_environment_variables and export_variables by emphasizing the merged, resolved view.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains when to use the tool ('This is what a test run or mock request actually sees') but does not explicitly contrast it with alternatives such as get_environment_variables or list_personal_variables. The context is implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_portal_docsSearch Portal DocsA
Read-only
Inspect

Full-text search across a PUBLISHED documentation portal. Searches page titles, headings, and body text of the latest published version and returns matching pages (slug, title, section, snippet). Chain get_portal_page with a returned slug to read the full page. Keyword search only (no semantics). Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (default 10, max 50)
queryYesThe search query (case-insensitive keyword match)
documentationIdYesThe public Id (Guid) of the documentation

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the description correctly focuses on additional behavioral context: it searches only the latest published version, returns matching pages with specific fields, and requires set_context. This adds meaningful transparency beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact sentences front-load the core purpose, then add return details, follow-up guidance, and prerequisites. Every sentence earns its place and there is no redundant repetition of schema or annotation information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema, the description names the returned fields (slug, title, section, snippet), covers the prerequisite context, and tells the agent how to proceed to full-page retrieval. Combined with full schema coverage for parameters, this is complete for correct tool selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters. The description reinforces the keyword-match nature but does not add significant new parameter-level meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('search'), a scoped resource ('PUBLISHED documentation portal'), and the search surface (page titles, headings, body text). It clearly distinguishes this tool from get_portal_page by describing search-and-return behavior rather than full-page retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent when to use this tool and what to do next: chain get_portal_page with a returned slug to read the full page. It also states limitations (keyword search only, no semantics) and the prerequisite of setting project context first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_contextSet Session ContextA
Read-only
Inspect

Set the active organization and optionally a project for this session. Must be called before using any module-specific tools. Pass the organization's public ID (GUID) and optionally a project's public ID. Two areas are deliberately incomplete: billing and organization/access are read-only (an agent must not grant rights or trigger cost), and gateway, service catalog and AI assist have no tools at all while they are not generally available. Most toolsets start hidden — call list_toolsets to see them and enable_toolset to add them.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectIdNoPublic ID (GUID) of the project to set as active context (optional)
organizationIdYesPublic ID (GUID) of the organization to set as active context

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds context beyond the readOnlyHint annotation by explaining that billing and organization/access are read-only and that certain toolsets are unavailable. It also mentions that most toolsets start hidden, which is useful behavioral info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is slightly long but each sentence adds value: the purpose is front-loaded, the prerequisite is clear, and the additional notes about incomplete areas and hidden toolsets are relevant. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a session-setup tool, the description covers the purpose, prerequisite, and important limitations. It doesn't explain return values, but that's not necessary for a set operation. It adequately prepares 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for parameters, but the description adds specific guidance by stating that IDs are public GUIDs and clarifies the optional projectId. This adds value beyond the schema's generic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 (active organization/project context). It distinguishes itself from sibling tools by being a session prerequisite, not a data retrieval or modification tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly states 'Must be called before using any module-specific tools,' giving a clear when-to-use condition. It also points to related tools (list_toolsets, enable_toolset) for enabling hidden toolsets, providing practical usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_personaTest PersonaAInspect

Probe a persona's credentials against an environment before a scan relies on them — one GET to probePath with the persona's resolved auth. A 2xx, 401 or 403 counts as success: the headers reached the target. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
personaIdYesPublic Id (Guid) of the persona to probe (from list_personas)
probePathNoPath to probe, default '/'
environmentIdYesPublic Id (Guid) of the environment supplying the base URL (from list_environments)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=false and destructiveHint=false, the description adds meaningful behavioral context: it performs a single HTTP GET and defines which status codes (2xx, 401, 403) count as success. This goes beyond the annotations by specifying the method and success criteria. However, it does not disclose whether the probe has any side effects (e.g., logging) or what happens on failure, but the given information is valuable and not contradicting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences with no fluff. The core purpose is front-loaded, the success criteria are clearly stated, and the prerequisite is mentioned. Every sentence adds value, and the structure is logical: purpose, mechanics, and success definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter tool with no output schema, the description covers the essential aspects: what it does, how it does it (one GET), success criteria, and a prerequisite. It does not specify the exact return format, but since the success criteria are defined, an agent can infer it returns a boolean or status. The absence of output schema is mitigated by the clear success definition. The description is complete enough for correct invocation and interpretation of results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents personaId, environmentId, and probePath. The description adds context by explaining that the GET goes to probePath and uses the persona's resolved auth, but it doesn't provide additional details beyond what the schema says. It reinforces the relationships between parameters but does not compensate for any missing schema info, as none is missing. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: probing a persona's credentials against an environment via a single GET to probePath. It specifies the verb (probe), resource (persona credentials), and the precise action (GET). It also distinguishes itself from siblings like get_resolved_auth by focusing on the actual probe rather than just retrieving auth. The success criteria further clarify the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case: 'before a scan relies on them'. It also notes a prerequisite: 'Requires project context.' While it doesn't explicitly name alternative tools or state when not to use it, the context is sufficiently clear for an agent to know this is a pre-scan validation step. It lacks explicit comparison to get_resolved_auth or other auth-related tools, but the intent is apparent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

test_smart_mockTest Smart MockA
Read-only
Inspect

Test Smart Mock matching for a given field name. Returns which matching rule would apply and what value it would generate. Useful for verifying Smart Mock configuration before generating rules. Requires project context (call set_context first).

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldNameYesThe field name to test matching for (e.g., 'email', 'firstName', 'createdAt')
schemaTypeNoOptional JSON Schema type hint (e.g., 'string', 'integer', 'number', 'boolean')
mockServerIdYesThe public Id (Guid) of the mock server
schemaFormatNoOptional JSON Schema format hint (e.g., 'date-time', 'email', 'uri', 'uuid')

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already signals a safe read operation. The description adds useful state-dependent context: it requires project context and explains the output conceptually (which matching rule applies and what value would be generated). This goes beyond the annotation without contradicting it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each carrying distinct value: what the tool does, what it returns, and when/how to use it. No redundant phrasing or filler. The most important action is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only testing tool with complete parameter schema coverage, this description covers the purpose, output behavior, and prerequisite state. It does not mention edge cases like no matching rule or error responses, but those are not critical for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all four parameters well. The description adds only general context around 'field name' and does not explain parameter relationships or formats, so it meets the baseline but does not exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: testing Smart Mock matching for a given field name, and explains what it returns. It is specific enough to distinguish from most sibling list/get tools, though it does not explicitly differentiate itself from the closely named 'preview_smart_mock' sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear use case ('verifying Smart Mock configuration before generating rules') and a required prerequisite ('call set_context first'). It lacks explicit when-not-to-use guidance or named alternatives, so it stops short of a perfect usage-route score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_notification_preferencesUpdate Notification PreferencesA
Destructive
Inspect

Set YOUR notification preferences for one or more categories. Categories you do not mention keep their current setting. Use resetCategories to drop your override so a category follows the organization default again — an entry in categoriesJson can only set an override, never remove one. Valid categories: api_design, testing, project, mock_server, style_guide, team, portal, monitoring, security, billing, deprecation. Use this for your own preferences; for the organization defaults use update_org_notification_defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoriesJsonYesJSON array of category settings. Each item: { "category": string, "inAppEnabled": bool, "emailEnabled": bool }.
resetCategoriesNoComma-separated categories whose personal override should be removed

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag readOnlyHint=false and destructiveHint=true, but the description goes further by detailing that unmentioned categories retain their settings, that categoriesJson only sets overrides (never removes), and that resetCategories drops overrides. This adds meaningful behavioral context beyond the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact, front-loaded with the primary action, and every sentence carries useful information: scope, default behavior, reset semantics, valid categories, and the alternative tool. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema, the description is comprehensive: it specifies the categories, the parameters' behavior, the scope, and the sibling tool. An agent has everything needed to call it correctly, including the distinction between personal and org defaults.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Even though the schema covers both parameters (100% coverage), the description enriches their meaning by explaining the override semantics and the interaction between categoriesJson and resetCategories. It clarifies that categoriesJson can only set overrides, and resetCategories is the only way to remove them, which the schema descriptions do not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Set YOUR notification preferences'), clearly identifies the scope (personal vs. org), and explicitly names the sibling tool (update_org_notification_defaults) it is not. An agent can instantly distinguish it from get_notification_preferences and other notification tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides explicit when-to-use guidance ('Use this for your own preferences') and points to the alternative for org defaults. It also explains the behavior for unmentioned categories and the role of resetCategories, leaving no ambiguity about when each parameter is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_specValidate SpecA
Read-only
Inspect

Validate an OpenAPI specification against the standard. Provide either content to validate directly, or specId to validate an existing spec. Set mode to 'import' for a dry run of import_spec instead: same errors and warnings, plus what would be created (endpoint, schema and folder counts), the detected format and whether a 3.0 → 3.1 conversion happened. Nothing is written either way.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoWhat to check: 'openapi' (default) or 'import'openapi
formatNoFormat hint: 'yaml', 'json', or omit for auto-detection
specIdNoPublic ID (GUID) of an existing spec to validate. If provided, the spec is exported first and then validated.
contentNoThe OpenAPI specification content to validate (YAML or JSON). Provide either content or specId, not both.
convertToOpenApi31NoFor mode 'import': convert a 3.0 document to 3.1 (default false)
shortenSchemaNamesNoFor mode 'import': shorten generated schema names (default false)

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation is reinforced and expanded by the description's explicit 'Nothing is written either way.' The description also discloses what the import mode returns: same errors and warnings, endpoint/schema/folder counts, detected format, and whether a 3.0 to 3.1 conversion happened. This is valuable behavioral context beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two information-dense sentences with no filler. It front-loads the core purpose, then covers input modes, the import alternate, output details, and the no-write guarantee. Every clause contributes necessary information for correct tool selection and invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given six parameters, no required fields, no output schema, and a readOnly annotation, the description is complete enough for an agent to invoke correctly. It explains the primary validation path, the specId path, the import-mode dry run, what results are returned, and the side-effect profile. The default-mode return is reasonably inferable from the phrase 'same errors and warnings.'

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds meaningful context by explaining the mode='import' behavior, the content-or-specId exclusivity, and what the dry run reports. It mostly leaves individual parameter nuances like format, convertToOpenApi31, and shortenSchemaNames to the schema, which is acceptable given the high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb, object, and criterion: 'Validate an OpenAPI specification against the standard.' It clearly differentiates this from sibling tools like get_spec, export_spec, and lint_spec by emphasizing conformance validation. The two input modes (content or specId) are stated directly, so an agent can understand what the tool operates on.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains when to provide content versus specId, and when to use the import dry-run mode: 'Set mode to 'import' for a dry run of import_spec instead.' It also adds a critical safety clarification—'Nothing is written either way'—which helps an agent decide to use this tool without side-effect concerns. This gives clear decision guidance relative to the closest related behavior.

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.

  1. 2 tool updates
    • Addedget_media_type_component
    • Addedlist_media_type_components
  2. 165 tool updates
    • First observedcheck_schema_drift
    • First observedcompare_versions
    • First observedenable_toolset
    • First observedexport_findings_sarif
    • First observedexport_spec
    • First observedexport_test_run
    • First observedexport_variables
    • First observedgenerate_changelog
    • First observedget_alert_policy
    • First observedget_audit_log
    • First observedget_branch
    • First observedget_breaking_changes
    • First observedget_cli_run_status
    • First observedget_contract_drift
    • First observedget_contract_summary
    • First observedget_credit_balance
    • First observedget_custom_role
    • First observedget_dashboard
    • First observedget_deprecation_plan
    • First observedget_deprecation_policy
    • First observedget_doc_page
    • First observedget_doc_page_revision
    • First observedget_doc_settings
    • First observedget_doc_snippet
    • First observedget_doc_tree
    • First observedget_doc_version_publish_state
    • First observedget_endpoint
    • First observedget_environment_auth
    • First observedget_environment_pins
    • First observedget_environment_variables
    • First observedget_environment_verification
    • First observedget_finding_remediation
    • First observedget_fixture
    • First observedget_fixture_usage
    • First observedget_governance_score
    • First observedget_header_component
    • First observedget_header_policies
    • First observedget_header_policy
    • First observedget_linked_endpoint_contract
    • First observedget_merge_policy
    • First observedget_merge_request
    • First observedget_mock_rule_diagnostics
    • First observedget_mock_server
    • First observedget_mock_usage
    • First observedget_monitor
    • First observedget_monitoring_settings
    • First observedget_monitoring_sync_status
    • First observedget_my_permissions
    • First observedget_notification_preferences
    • First observedget_org_doc_template
    • First observedget_parameter_component
    • First observedget_portal_page
    • First observedget_project
    • First observedget_publish_history
    • First observedget_request_body_component
    • First observedget_request_config
    • First observedget_request_logs
    • First observedget_resolved_auth
    • First observedget_resolved_headers
    • First observedget_response_component
    • First observedget_scheduled_publishes
    • First observedget_schema
    • First observedget_schema_drift_report
    • First observedget_security_findings
    • First observedget_security_scheme_component
    • First observedget_security_score
    • First observedget_session_usage
    • First observedget_shared_response
    • First observedget_shared_schema
    • First observedget_spec
    • First observedget_spec_usage_in_docs
    • First observedget_subscription
    • First observedget_tag
    • First observedget_test_result
    • First observedget_test_results
    • First observedget_test_run
    • First observedget_test_suite
    • First observedget_testing_settings
    • First observedget_trial
    • First observedget_usage_limits
    • First observedget_version
    • First observedget_versioning_strategy
    • First observedlint_spec
    • First observedlist_alert_policies
    • First observedlist_artifact_sync_reviews
    • First observedlist_available_specs
    • First observedlist_branches
    • First observedlist_contract_drift
    • First observedlist_custom_roles
    • First observedlist_custom_style_guide_rules
    • First observedlist_deprecations
    • First observedlist_doc_images
    • First observedlist_doc_page_revisions
    • First observedlist_doc_snippets
    • First observedlist_documentations
    • First observedlist_endpoints
    • First observedlist_environments
    • First observedlist_fixture_imports
    • First observedlist_fixtures
    • First observedlist_folders
    • First observedlist_governance_alerts
    • First observedlist_header_components
    • First observedlist_header_exclusions
    • First observedlist_header_policies
    • First observedlist_incidents
    • First observedlist_linkable_endpoints
    • First observedlist_maintenance_windows
    • First observedlist_members
    • First observedlist_merge_requests
    • First observedlist_mock_rules
    • First observedlist_monitor_checks
    • First observedlist_monitors
    • First observedlist_notifications
    • First observedlist_oauth2_tokens
    • First observedlist_org_doc_templates
    • First observedlist_organizations
    • First observedlist_parameter_components
    • First observedlist_personal_variables
    • First observedlist_personas
    • First observedlist_project_style_guide_rules
    • First observedlist_project_teams
    • First observedlist_projects
    • First observedlist_promotions
    • First observedlist_request_body_components
    • First observedlist_response_components
    • First observedlist_scan_profiles
    • First observedlist_scan_runs
    • First observedlist_scenario_runs
    • First observedlist_scenarios
    • First observedlist_schemas
    • First observedlist_script_snippets
    • First observedlist_security_guidance
    • First observedlist_security_scheme_components
    • First observedlist_seeds
    • First observedlist_shared_component_usages
    • First observedlist_shared_reports
    • First observedlist_shared_responses
    • First observedlist_shared_schemas
    • First observedlist_smart_mock_matching_rules
    • First observedlist_snapshots
    • First observedlist_specs
    • First observedlist_tags
    • First observedlist_team_projects
    • First observedlist_test_cases
    • First observedlist_test_data_sets
    • First observedlist_test_folders
    • First observedlist_test_schedules
    • First observedlist_test_suites
    • First observedlist_toolsets
    • First observedlist_versions
    • First observedlist_webhook_deliveries
    • First observedlist_webhooks
    • First observedmark_all_notifications_read
    • First observedmark_notification_read
    • First observedpre_publish_impact
    • First observedpreview_smart_mock
    • First observedresolve_governance_alert
    • First observedresolve_variables
    • First observedsearch
    • First observedsearch_portal_docs
    • First observedset_context
    • First observedtest_persona
    • First observedtest_smart_mock
    • First observedupdate_notification_preferences
    • First observedvalidate_spec

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    7 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables tracking competitor websites, changelogs, blog feeds, and pricing pages with meaningful diffs, classification, and Markdown digests via MCP tools for listing, adding, removing competitors, running checks, and retrieving digests or changes.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources