Skip to main content
Glama

routebase-mcp

Connect your AI agent to your Routebase APIs. This is the connector for Routebase — an API lifecycle platform where documentation, mock servers, contract tests and monitoring are all derived from one OpenAPI spec. Agents work that same spec: designing endpoints and schemas, running contract and security test suites, managing mocks, publishing docs and reading monitors — under the same role-based permissions as the human team. Billing and organization access stay read-only.

There are two ways to connect. Pick the hosted endpoint unless your client only speaks stdio.

https://mcp.routebase.dev

Streamable HTTP, with OAuth 2.1 and dynamic client registration — you sign in with your Routebase account, nothing to install and no key to rotate. Clients that prefer a static credential can send an X-API-Key header instead.

US-region accounts use https://mcp.routebase.dev/?region=us. Getting this wrong shows up as a connector with no tools, not as an error.

Related MCP server: EasyPeasyMCP

stdio bridge

For clients that only launch local processes:

ROUTEBASE_API_KEY=rb_… npx routebase-mcp

Generate an API key in Routebase under Settings → API Keys. The interactive setup writes the right config for you:

npx routebase-mcp init

Or add it by hand — Claude Code (.mcp.json), Cursor (.cursor/mcp.json) and VS Code (.vscode/mcp.json) all take the same block:

{
  "mcpServers": {
    "routebase": {
      "command": "npx",
      "args": ["-y", "routebase-mcp", "--stdio"],
      "env": {
        "ROUTEBASE_API_KEY": "rb_…"
      }
    }
  }
}

Environment variable

Required

Description

ROUTEBASE_API_KEY

API key for authentication. Create one under Settings → API Keys.

ROUTEBASE_REGION

US accounts

Home region of your account: us or eu (default: eu). Without it, a US key fails as if it were invalid.

ROUTEBASE_LOG_LEVEL

verbose · debug · info · warning · error · fatal (default: warning). Logs go to stderr — stdout is reserved for the MCP protocol.

How the stdio bridge works

The npm package is a small shim. On first run it downloads the self-contained CLI binary for your platform from releases.routebase.dev, verifies it against a SHA-256 checksum baked into the package at publish time (it refuses to run on mismatch — fail-closed), and caches it under ~/.routebase/bin/<version>/.

Supported platforms: macOS (arm64, x64), Windows (x64), Linux (x64). Requires Node.js ≥ 18.

What's in this repository

File

Purpose

bin/routebase-mcp.js

The stdio shim published as the routebase-mcp npm package

server.json

Manifest for the MCP Registry (dev.routebase/routebase)

plugin.json, mcp.json

Agent Plugins 1.0 manifests

This repository mirrors the connector as published. The shim is built and released from Routebase's own repository, so changes made here won't reach npm — please open an issue instead of a pull request against bin/.

License

The shim in this repository is MIT. The downloaded Routebase CLI binary is governed by the Routebase Terms.

Available Tools

162 tools
check_schema_driftCheck Schema DriftA
Read-only

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. 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 is true, and the description aligns with that by noting the check operation. The description adds valuable behavioral context by stating the requirement for project context and the mutual exclusivity of the two parameters. It could have added more about what the output looks like or how drift is reported, but the annotation already covers the 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 concise, well-structured, and front-loaded with the core purpose. It then explains the two modes in a clear, logical sequence, followed by the constraint and prerequisite. Every sentence contributes essential 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?

Given that there is no output schema, the description could have been slightly more explicit about the return value (e.g., a list of drifted fields or a boolean). However, the description covers purpose, modes, constraints, and context requirements, which is sufficient for an agent to select and invoke the tool correctly in most cases.

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 reinforces the critical parameter semantics, especially the mutual exclusivity of testCaseId and specId and the meaning of checkAgainstLinkedVersion in single mode. The description adds interpretive value beyond the raw schema by clarifying the mode selection logic, which is the most important semantic aspect here.

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: checking for schema drift between a test case's linked endpoint snapshot and the current spec. It also distinguishes between two distinct modes (single test case vs. batch check for all linked test cases of a spec), which differentiates it from sibling tools like get_schema_drift_report or get_contract_drift.

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 and how to invoke each: provide testCaseId for single mode or specId for batch mode. It also clearly states the constraint that exactly one of testCaseId or specId must be provided, and notes that project context is required. This is excellent routing guidance relative to alternatives.

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

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.

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.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 behavior is consistent with a read-only comparison. Beyond the annotation, the description discloses the two output modes and their size/behavior trade-off ('full returns the changed entities; flags returns only what changed and how'), plus the project-context prerequisite. This adds meaningful behavioral detail beyond what annotations 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, each earning its place: the first states purpose, the second covers the key optional parameter, and the third explains the detail modes and their trade-off. Purpose is front-loaded and there is no redundant repetition of schema or annotations.

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 adequately covers what the tool returns (added/removed/modified endpoints and schemas, changed entities vs flags). It also covers defaults, the optional parameter behavior, and the project-context prerequisite. For a read-only comparison tool of this complexity, 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 description coverage is 100%, so the schema already documents all four parameters. The description goes further by explaining the semantic meaning of omitting sourceVersionId (compare against latest published) and the difference between 'full' and 'flags' for detail, which complements the schema's terse 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 opens with a specific verb+resource: 'Compare two specification versions and show their differences: added/removed/modified endpoints and schemas.' This clearly identifies the tool's operation and output, and distinguishes it from siblings like list_versions (listing versions) and get_version (fetching a single version) without needing to open 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?

The description gives concrete usage context: 'Omit sourceVersionId to compare against the latest published version' and explains when to choose detail 'full' vs 'flags' with the guidance that 'flags' is 'enough to decide where to look.' It also states the prerequisite 'Requires project context.' It does not explicitly name alternatives or exclusion conditions, 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.

enable_toolsetEnable ToolsetA
Read-only

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

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. Requires project context.

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

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark this as read-only, and the description adds useful behavior beyond that: the default status is open findings 'so the export reflects the current posture,' and project context is required. 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?

The description is compact, front-loaded with the core action and resource, and every sentence adds value: format, intended consumers, default behavior, and prerequisite context. No filler or redundant restating 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?

For a single-optional-parameter export tool with readOnlyHint and full schema coverage, the description is complete: it identifies the output format, the scope, the default filter, and the required context. No output schema exists, but the SARIF document nature is stated directly.

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 documents the single optional 'status' parameter with valid values and its 'open' default. The description adds no parameter-specific meaning beyond restating that default, so it does not exceed 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?

The description clearly states the verb ('Export'), the resource ('the active project's security findings'), and the output format (SARIF 2.1.0). It also explains the tool's purpose for CI ingestion, which distinguishes it from other security-finding tools like get_security_findings.

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: the tool exports security findings as SARIF, defaults to open findings, and requires project context. It does not explicitly name alternatives or exclusion conditions, but the intended use for SARIF consumers 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_specExport SpecA
Read-only

Export an API specification as OpenAPI YAML, JSON, or Postman Collection. 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.0
Behavior3/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 valuable behavioral context by naming the supported formats and the project-context requirement, but it does not clarify how the exported content is returned (e.g., inline text, file artifact, download URL). With no output schema, a bit more behavioral detail would have been helpful.

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 a single, front-loaded sentence that states the core purpose and the key requirement without filler. 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 two-parameter, read-only export tool, the description covers the operation, supported formats, and a necessary precondition. It does not describe the return payload, which would have been useful given there is no output schema, but the definition is still adequate for a simple 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?

Schema description coverage is 100%, so the schema already documents both parameters and the format enum/default. The description reinforces the mapping between formats and the format parameter but adds no new semantics beyond what the schema provides. 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 uses a specific verb ('Export'), identifies the resource ('API specification'), and specifies the exact output formats (OpenAPI YAML, JSON, Postman Collection). This clearly distinguishes it from sibling export tools like export_variables and export_findings_sarif.

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: 'Requires project context.' This tells an agent the tool cannot be used without an active project context. It stops short of naming alternative tools or explicit when-not-to-use conditions, but for a simple export operation the context requirement is valuable and clear.

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

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

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

Generate a structured changelog for a specification version by comparing it with the previous version. Returns a Markdown changelog. 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

A3.5/5.0
Behavior3/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 stating it returns Markdown and requires project context, but it does not explain what count_project_context means or what happens if it is missing.

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 the primary action front-loaded and the return format and prerequisite stated directly. Every sentence earns its place without unnecessary elaboration or redundancy.

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

Completeness3/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 well-defined parameters and a read-only annotation, but the lack of an output schema means the description should clarify more about the changelog structure and the meaning of 'project context'. It is adequate for basic invocation but has notable gaps around prerequisites and return details.

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 specId and versionId as GUIDs. The description adds only implicit meaning by referring to 'specification version' and 'previous version', but it does not materially 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?

The description states a specific verb ('Generate'), a resource ('changelog for a specification version'), and the method ('by comparing it with the previous version'). It also distinguishes the output as structured Markdown, which separates it from sibling tools like compare_versions that would provide raw comparison data.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives such as compare_versions. The phrase 'Requires project context' hints at a prerequisite but does not explain how to establish it or when this tool should be preferred over others.

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

Get one alert policy with its full rule set and how many scopes it is assigned to. Requires project context.

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

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, so safety is covered. The description adds value by stating the project-context prerequisite and specifying what the response includes (full rule set and scope count), which is useful since there is no output schema. Failure modes are not covered, but this is minor for a simple read 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?

One sentence with no wasted words. The verb, resource, key output details, and precondition are all included concisely and in a sensible order.

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 operation, the description is complete: it names the resource, the distinguishing output, and the required context. The schema covers the parameter source, so 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?

Schema coverage is 100% and the policyId parameter is already well documented in the schema as a GUID from list_alert_policies. The description adds no additional parameter 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: 'Get one alert policy' with its 'full rule set' and scope count. This clearly distinguishes it from list_alert_policies and other policy-related 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 makes clear this is for retrieving a single alert policy with full detail, and adds the prerequisite 'Requires project context.' It does not explicitly name alternatives or exclusions, 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_audit_logGet Audit LogA
Read-only

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

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

Identify and classify breaking changes between two specification versions. Returns changes classified as Breaking, NonBreaking, or Deprecated with migration hints. 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

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safe-read nature is covered without needing restatement. The description adds useful context by stating the output categories and migration hints, as well as the project-context requirement. It omits minor details like optional inputs or permission needs, but those are less critical given 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?

The description is two short sentences with no filler. It leads with the action, immediately describes the result categories, and ends with the 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?

With no output schema, the description wisely states the return shape: changes classified as Breaking, NonBreaking, or Deprecated with migration hints. It also covers the project-context prerequisite, and all three required parameters are documented in the schema. Minor gaps around the meaning of project context or behavior when there are no changes prevent a perfect score.

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 provides 100% coverage, documenting each parameter as a public GUID for the spec, source version, and target version. The description's phrase 'between two specification versions' aligns with the schema but does not add new format, default, or relationship semantics beyond what the schema already states. Therefore the baseline of 3 applies.

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?

States a specific verb+resource: identify and classify breaking changes between two specification versions. It also explains the classification categories (Breaking, NonBreaking, Deprecated) and migration hints. However, it does not explicitly distinguish itself from siblings like compare_versions or get_contract_drift, so it falls short of full 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 Guidelines3/5

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

The description makes the core use case obvious and includes the prerequisite 'Requires project context.' It does not say when to prefer this tool over compare_versions, get_contract_drift, or generate_changelog, and it names no alternatives or exclusions. This provides only implied usage guidance beyond the prerequisite.

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

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

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 SummaryB
Read-only

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. Requires project context.

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

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already mark this as read-only, so the description does not need to restate safety. It adds a useful behavioral note about requiring project context and describes the kind of summary returned, but it does not disclose potential error conditions, data freshness, or how the summary is computed.

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, stating the core purpose in the first sentence and then adding the key output metrics and the project context requirement. Every sentence earns its place with no 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 read-only summary tool with one well-documented parameter and no output schema, the description adequately conveys what the call returns. It could be more complete by stating the format or granularity of the coverage summary, but the current content is sufficient for basic 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 already fully describes the single parameter as 'Public ID (GUID) of the test suite' with 100% coverage. The description references the test suite but does not add meaning beyond the schema, so the baseline of 3 applies.

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 operation: getting a contract test coverage summary for a test suite, listing the key metrics returned. It is distinct enough from siblings like get_contract_drift or get_test_suite, though it does not explicitly name or contrast any sibling.

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

Usage Guidelines2/5

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

The only usage guidance is 'Requires project context,' which is a prerequisite rather than guidance on when to choose this tool over alternatives. It does not explain when to use this versus get_contract_drift, get_schema_drift_report, or get_test_results.

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

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

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

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

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

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

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

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

Get one snippet with its full Markdown content and rowVersion. Set includeUsages to also list the pages embedding it — do that before deleting one. 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

A3.8/5.0
Behavior4/5

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

The description adds context beyond the readOnlyHint by explicitly calling out that includeUsages is useful before deletion, signaling that this read operation can inform a destructive workflow. It also states a requirement ('Requires project context'), which helps set expectations about invocation prerequisites. There is no contradiction with readOnlyHint=true.

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?

Two informative sentences, front-loaded with the core result ('full Markdown content and rowVersion') and the key usage caveat. The deletion advice is actionable and compact. It could slightly improve structure by separating the context requirement, but it is still 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 read tool with 3 required IDs and one optional flag, the description covers the critical behavioral clue (includeUsages before deletion) and the project-context requirement. There is no output schema, but the description does state that the response includes full Markdown content and rowVersion, so the agent knows the primary return shape. It doesn't explain how to get the required IDs, but that is a minor gap for this kind of docs snippet 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 already covers all 4 parameters with descriptions, so the baseline is 3. The description adds extra value by clarifying that includeUsages also lists embedding pages and advises doing that before deletion, which goes beyond the schema's 'Also list the pages using this snippet.' It does not describe the snippetId/versionId/documentationId relationship, but the schema already names them clearly.

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 identifies a specific verb and resource: fetching one snippet with its full Markdown content and rowVersion. It also mentions an optional flag, includeUsages, to list embedding pages. It doesn't explicitly distinguish it from list_doc_snippets in the same sentence, but the singular 'one snippet' and the focus on full Markdown content and rowVersion clarify its core purpose.

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?

The phrase 'set includeUsages to also list the pages embedding it — do that before deleting one' gives a specific pre-deletion usage hint, and 'Need project context' implies when it can be called. However, it doesn't explicitly say when to use this tool over list_doc_snippets or get_doc_page, nor does it state 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_doc_treeGet Doc TreeA
Read-only

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

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

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. 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

A5/5.0
Behavior5/5

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

The readOnlyHint annotation is consistent with the description's 'Get' and 'fetch' language. The description adds behavioral nuance beyond the annotation by noting that multiple endpoints are returned 'in one call' with identical detail, and that endpointIds is used 'instead of' endpointId, clarifying the expected call 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?

The description is two sentences with no redundant wording. Every clause adds value: what info is returned, how to fetch multiple endpoints, the batch limit, and the environment prerequisite.

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 an agent to decide and call the tool: it lists the returned content categories, the required project context, the batch behavior, and the parameter selection rule. No output schema is needed since the expected content is described directly.

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 coverage is 100% and each parameter has a description that explains its role. The descriptions explicitly clarify the relationship between endpointId and endpointIds, including when to omit each, which fully conveys 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?

States a specific verb ('Get') and resource ('endpoint'), enumerates the returned details (parameters, request body, responses, security schemes), and differentiates from siblings like list_endpoints and get_spec by emphasizing detailed per-endpoint information. The mention of fetching multiple endpoints via endpointIds further clarifies 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?

Provides explicit when-to-use guidance by contrasting endpointIds with endpointId, specifies the maximum batch size (up to 25), and states the prerequisite ('Requires project context'). This leaves no ambiguity about when to call this tool versus alternatives.

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

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

List which version each environment currently pins for this spec, whether the pin is frozen, and where it came from. Requires project context.

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

TDQS

A4/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 useful behavioral context beyond that: it states the kind of information returned (version, frozen state, origin) and notes the project context requirement. This aligns with the read-only annotation and gives the agent a clearer picture of the tool's behavior without contradicting the structured metadata.

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 a single sentence that front-loads the action and resource, adds the distinct output fields, and notes the required prerequisite. Every part earns its place without 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 one-parameter, read-only listing tool, the description covers the purpose, the key output fields, and the project context prerequisite. It does not spell out the return structure or define 'frozen' or 'pin' in more detail, but the schema and sibling context provide enough orientation 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.

Parameters3/5

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

The input schema fully describes specId as 'Public ID (GUID) of the API specification' with 100% coverage, so the parameter meaning is already documented in the schema. The description adds no further parameter-level semantics, which matches the baseline of 3 for fully covered schema 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 opens with a specific verb ('List') and a specific resource ('which version each environment currently pins for this spec'), followed by the exact output attributes (frozen status, provenance). This clearly differentiates it from sibling tools like list_environments or get_environment_variables, which would be about listing environments or variables rather than pin states.

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?

The only usage guidance is 'Requires project context,' which communicates a prerequisite but does not explain when to prefer this tool over alternatives or when not to use it. It does not name any competing tool or exclusion condition, so usage is implied rather than explicitly directed.

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

Get resolved variables for a specific environment. Secret values are always masked for security. 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

A3.6/5.0
Behavior4/5

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

The readOnlyHint annotation already establishes the safe read-only nature, and the description adds valuable behavioral details: variables are resolved, secret values are always masked, and organization context is required. This goes beyond the structured annotations, though it does not disclose permissions or failure 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?

Two short sentences deliver the core operation, a security-relevant behavior, and a context requirement with no filler. 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?

For a two-parameter read-only tool, the description covers the operation, masking behavior, and the organization context requirement, while the schema handles parameter semantics. The lack of an output schema leaves minor ambiguity about the return structure, but the description is largely complete for this simple use case.

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 projectId and environmentId are already well documented in the input schema. The description only reinforces the idea of a specific environment and resolved values without adding any new parameter-level detail.

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 operation ('Get'), the resource ('resolved variables'), and the target scope ('a specific environment'). It also adds useful security behavior about masking, but it does not explicitly differentiate this tool from related sibling tools like resolve_variables or export_variables.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as resolve_variables, list_personal_variables, or get_environment_auth. The only stated condition, 'Requires organization context,' is a prerequisite rather than a usage rule, so an agent gets little help selecting between similar tools.

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

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. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

readOnlyHint already signals a safe read, and the description adds meaningful behavior beyond that: it reports per-environment aggregates, contract-test outcomes, spec versions, and pending cases. It also discloses the 'requires project context' precondition, which helps the agent set context before invoking.

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 deliver the core purpose, the specific returned fields, the trustworthiness interpretation, and a required precondition with no filler. 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 zero-parameter read-only tool, the description fully covers what data will be returned and what context is needed. Since there is no output schema, the description appropriately names the fields the agent should expect, and the readOnlyHint covers safety concerns.

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 burden for the description to carry. The description handles this correctly by not inventing parameters, and the 'requires project context' note is a context-level clarification rather than a parameter requirement.

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') and resource ('environment verification'), and enumerates the exact data returned: last contract-test run time, result, spec version, and pending case count. The trustworthiness phrase further distinguishes it from general test-result or contract-drift tools.

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?

The description implies when to use this tool: when you need environment-level verification status and trustworthiness of contract-test results. However, it does not explicitly state when not to use it or name alternative tools such as get_test_results or get_contract_drift.

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

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. Requires project context.

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

TDQS

A4.5/5.0
Behavior5/5

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

Even though readOnlyHint=true, the description importantly discloses that this read can spend AI budget, which annotations alone would not convey. It also explains the fallback to static guidance text and the 'source' field, giving the agent a clear mental model of non-obvious 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 but information-dense: every sentence contributes either to purpose, cost behavior, fallback semantics, or a precondition. It is front-loaded with the core action and output format, 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.

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 with no output schema, the description covers what the tool returns, the format, the source distinction, the budget implication, and the required context. Nothing essential for an agent to decide whether and how to invoke this tool 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% and the single parameter findingId is already well documented as the Public Id from get_security_findings. The description adds little parameter-specific meaning beyond confirming the tool operates on a single finding, 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 names a specific verb and resource ('Get remediation advice for a single finding') and adds the output format (GitHub-flavored markdown). It distinguishes this tool from list-style reads like get_security_findings by emphasizing it targets one finding and can produce an AI-generated suggestion.

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 appropriate, including the AI Assist budget condition and fallback behavior. It also explains why it is separate from other reads ('Unlike the other reads this one can spend AI budget') and notes the prerequisite of project context, though it does not name specific alternative tools.

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

E84: Get a fixture by its public ID including its raw source and normalized JSON content. Requires project context.

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

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 a meaningful prerequisite: 'Requires project context.' It also discloses what the response will contain (raw source and normalized JSON), which goes beyond the schema and helps the agent anticipate the result.

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 one sentence and front-loads the core action and resource. The only blemish is the unexplained 'E84:' prefix, which adds noise without helping an agent understand the 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?

For a single-parameter read-only tool with no output schema, the description is complete: it states what is retrieved, the identifier used, the content shape returned, and the project-context prerequisite. No critical information for invoking this tool 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%, and the schema already documents fixtureId as the public GUID. The description adds little beyond restating 'public ID,' so it does not meaningfully expand 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 ('Get'), a specific resource ('a fixture'), the identifier type ('public ID'), and the expected content ('raw source and normalized JSON content'). This clearly distinguishes it from sibling tools like list_fixtures or get_fixture_usage.

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: use this tool to retrieve a single fixture by its public ID, and project context must be set. It does not explicitly name alternatives or state when-not-to-use, but the singular-resource purpose is unambiguous enough for basic selection.

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 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

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. 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.8/5.0
Behavior1/5

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

The annotations declare readOnlyHint: true, but the description explicitly states that scope 'spec' writes a new snapshot, may raise alerts, and is not a free read. This is a direct contradiction between the described behavior and the annotation, which is a serious inconsistency for an agent relying on safety hints.

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 all essential information: what the tool returns, the default scope, the per-spec behavior, and the context requirement. The format is front-loaded and every sentence carries meaningful content without 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?

Given the moderate complexity and the absence of an output schema, the description covers the main behavioral differences, side effects, and prerequisites. The only notable gap is that it doesn't explain what happens when project context is missing for scope 'spec', but overall it is sufficiently complete 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 schema fully documents both parameters, so the baseline is 3. The description adds value by clarifying that specId triggers a live recalculation with side effects and that project context is required, going beyond the schema's simple 'required for spec' 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 uses the specific verb 'Get' and identifies the resource as a quality score, with clear scoping distinctions between org-level averaging and per-spec recalculation. It distinguishes itself from sibling tools like get_security_score by describing the aggregation behavior and breakdown output.

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 both scopes: org is the default and aggregates, while spec requires specId and carries side effects. It also states the project context prerequisite for scope 'spec', giving an agent actionable conditions for choosing the right invocation, though it does not explicitly 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_header_componentGet Header ComponentA
Read-only

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. 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.6/5.0
Behavior5/5

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

Annotations already mark readOnlyHint=true, so the safety profile is covered. The description adds meaningful behavioral context: the returned data includes rowVersion, includeUsage behaves differently at spec vs project level, and the tool is positioned as a pre-deletion check. This 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.

Conciseness5/5

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

The description is brief and front-loaded, with every sentence carrying distinct information. It avoids repeating schema details and packs the essential usage caveats into a compact form.

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 partially explains the return value by mentioning schema details and rowVersion. It also covers key prerequisites and level-specific behavior. It could be more explicit about response shape or possible errors, but it is sufficient for correct selection and 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 extra semantics by explaining that specId is needed for 'spec' level, that includeUsage lists references and is spec-only, and that project context is required. This exceeds baseline without replacing 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 and resource: "Get one header component with its schema details and rowVersion." It distinguishes itself from list-style siblings by emphasizing 'one' component and naming the component resource rather than policies or resolved headers.

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 operational guidance: choosing level 'spec' requires specId, includeUsage is spec-level only, and it should be used before deleting a component. It does not explicitly name alternative sibling tools like list_header_components, but the guidance is sufficient for correct invocation.

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

Get resolved headers for an endpoint, showing the full cascade of header policies (organization → project → specification). Requires project context.

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

TDQS

A3.6/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 behavioral context about the cascade resolution and the project-context requirement. It does not describe error behavior or output format, but that is partially mitigated by 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?

The description is a single sentence with no filler. It front-loads the main action, then adds the cascade behavior and the prerequisite in a compact way.

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 getter with two fully documented parameters and no output schema, the description covers what is returned (resolved headers with cascade) and an important precondition (project context). It is reasonably complete, though it could mention what happens when project context is not set.

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 input schema already documents specId and endpointId. The description does not add parameter-level detail beyond referencing an endpoint and project context, which keeps this at the baseline for fully covered schemas.

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 resolved headers for an endpoint'. It adds detail about the full cascade (organization → project → specification). However, it does not explicitly differentiate this from sibling 'get_resolved_headers', so it is clear but lacks 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 Guidelines3/5

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

The description implies usage by saying 'Requires project context', which tells the agent a precondition. It does not state when to use this tool over alternatives such as list_header_policies or get_resolved_headers, so guidance is only implied rather than explicit.

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

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.

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.7/5.0
Behavior5/5

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

The description aligns with the readOnlyHint annotation and adds behavioral details such as the spec-only constraint on includeImpact and the requirement for project context. It clearly communicates a read operation with no 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 concise and well-structured: it starts with the primary purpose, then explains parameters in a logical order, and includes a note on prerequisites. Each sentence contributes meaningful information 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?

Given the absence of an output schema, the description sufficiently describes what the tool returns (scopes, components, rowVersion, and optionally impact). It also covers prerequisites (project context) and parameter-specific constraints, making it complete for an agent to decide when and how to invoke 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 already provides full descriptions for all parameters (100% coverage). The description adds extra value by explaining the relationship between levels and specId, and by mentioning the spec-only limitation for includeImpact, which enhances 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?

The description clearly states the action (get), the resource (one header policy), and the specific fields returned (scopes, assigned header components, rowVersion). It also distinguishes from sibling tools by emphasizing 'one' policy, aligning with the singular name versus plural alternatives like get_header_policies.

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 usage context by explaining the 'spec' vs 'project' levels, the need for specId, and the spec-only behavior of includeImpact. It also notes that project context is required. However, it does not explicitly compare with sibling tools (e.g., when to use this over list_header_policies), leaving some inference up to the agent.

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

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_merge_policyGet Merge PolicyA
Read-only

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. Requires project context.

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

TDQS

A4/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 interpretation of the isDefault field, clarifying what it means when no policy was configured. No side effects are described, but none are expected for a read-only 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 two sentences, front-loaded with the core purpose, and adds a meaningful clarification about isDefault 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?

With no output schema, the description gives enough context about what the policy contains and the meaning of isDefault. It also notes the project context prerequisite. It could elaborate further on response shape, but the essentials are present.

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 specId as 'Public ID (GUID) of the API specification.' The description adds little beyond the schema, but the 100% schema coverage keeps this at the 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?

Clearly states a specific action (get) and resource (merge policy of a spec), and describes what the policy includes (reviewers required and guards). This distinguishes it from sibling tools like get_merge_request and list_merge_requests.

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?

Provides a prerequisite by noting 'Requires project context,' which implies the agent must ensure a project context is set. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

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

get_merge_requestGet Merge RequestA
Read-only

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). 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.5/5.0
Behavior5/5

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

Beyond the readOnlyHint=true annotation, the description discloses the return composition (reviewers, decisions, comment thread), the cross-tool contract that reviewer userId values are what manage_merge_request('create') expects, the semantics of includeAuditTrail ('who-did-what history'), and the project-context prerequisite. All statements are consistent with the readOnlyHint annotation, so there is 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?

Four short sentences, each earning its place: front-loaded purpose, the output cross-tool contract, the optional-parameter effect, the sibling alternative, and the prerequisite. There is no filler or repetition of the title, and the most decision-relevant scoping constraint comes first.

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 3-parameter, read-only tool with no output schema, the description covers what will be returned, what the optional parameter adds, the call prerequisite (project context), and the sibling to use when the diff is needed. 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.

Parameters3/5

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

Schema description coverage is 100%, so specId, mergeRequestId, and includeAuditTrail are already fully documented. The description adds only mild color for includeAuditTrail ('who-did-what history of the spec's merge requests') beyond the schema's 'also return the audit trail', and nothing for the two required IDs. Baseline 3 is appropriate because the schema carries the parameter-documentation burden.

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') and resource ('one merge request') and enumerates the exact contents returned: reviewers, their decisions, and the comment thread. The singular 'one' also differentiates it from list_merge_requests, and the closing sentence explicitly distinguishes it from get_branch, so an agent can disambiguate without opening either 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?

It explicitly names get_branch(includeDiff) as the alternative when the caller wants what the merge would actually change, and it warns that project context is required as a prerequisite. However, the when-not guidance is partial: it routes diff-seeking callers away but does not explicitly mention list_merge_requests for browse-all scenarios.

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 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. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoWhat to inspect: 'drift' (default) or 'state'drift
ruleIdYesThe public Id (Guid) of the mock rule

TDQS

A4.3/5.0
Behavior4/5

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

The description discloses the behavior of both views ('drift' compares against the latest spec version, 'state' returns the stored state) and notes it requires project context. The readOnlyHint annotation already covers the read-only nature, and the description does not contradict that. It could mention error cases or side effects, but none exist for a read-only inspection.

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 primary action 'Inspect one mock rule' leading and the two view options explained compactly. Every sentence adds useful 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?

The description provides sufficient context for a simple read-only tool: it states the required project context, explains both view options, and indicates what each returns. There is no output schema, so the description's mention of 'lists what changed' and 'returns the stored state' gives a reasonable preview. It does not address error conditions or edge cases, but those are not essential for a basic inspection tool.

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?

Both parameters (ruleId and view) are fully documented in the schema with clear descriptions: ruleId is the public GUID of the mock rule, and view specifies whether to inspect drift or state. The description reinforces the meaning of the view values, leaving no ambiguity.

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: 'Inspect one mock rule.' It distinguishes itself from sibling tools by specifying it operates on mock rules and offers two distinct views (drift and state), making its scope unambiguous.

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?

The description explains what the tool does and mentions it requires project context, but it does not explicitly compare it to alternatives like list_mock_rules or get_mock_server. The guidance is implicit – a user would infer this is for inspecting a single mock rule – but not explicit about when to choose this over related tools.

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

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

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. 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?

ReadOnlyHint is already declared, and the description reinforces it with 'Read'. It adds meaningful behavioral detail beyond annotations: what each view returns (limit/reset date, monthly totals, per-project breakdown) and the requirement for organization context. No contradictions found.

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 concise coverage of views and a practical trigger for use. Every sentence contributes information 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 read-only usage tool with two optional parameters and no output schema, the description covers the available views, the default behavior, the plan-limit context, and the organizational scope. 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%, which sets the baseline at 3. The description adds value by explaining what each view value semantically produces, such as 'current' returning the limit and reset date and 'breakdown' returning the current month split by project. The months parameter is already well documented 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 uses a specific verb ('Read') and resource ('the organization's mock request usage against its plan limit'), and enumerates the three view variations. This clearly differentiates it from sibling tools like get_fixture_usage and get_session_usage, which target different usage types.

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 concrete usage context: 'This is what to check when mock requests start being rejected.' It does not explicitly list alternative tools or exclusion conditions, but the resource-specific scope and the rejection cue are strong enough guidance for an agent to select this tool.

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

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. 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

A4.2/5.0
Behavior4/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 valuable behavioral context: it returns recent checks, lists the include flags' effects, and notes the project context requirement. It does not contradict annotations and provides extra detail about what gets fetched, earning a strong 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?

The description is two sentences, with the core purpose front-loaded and the include flags explained succinctly. Every clause adds value, and it avoids redundancy with the schema. It is well-structured for quick parsing.

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 get tool with one required parameter and five optional booleans, the description is nearly complete. It states the return scope (monitor with recent checks) and the effect of each include flag, and notes the project context prerequisite. The absence of return-format details is acceptable given no output schema exists and the tool is straightforward.

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 every parameter is already documented. The description adds meaning by explaining that the include flags mirror the monitor detail page, which helps an agent understand their combined effect. However, this is contextual rather than essential, keeping it at the baseline of 3.

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, using a specific verb and resource. It distinguishes itself from list_monitors (which lists all monitors) and list_monitor_checks (which likely focuses on checks alone) by framing the include flags as what the monitor detail page shows. 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 Guidelines4/5

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

The description implies usage for retrieving one monitor's details, and mentions the prerequisite 'Requires project context.' It does not explicitly name alternatives like list_monitors for bulk retrieval, but the context signals are clear enough for an agent to infer when to use this tool. The absence of explicit exclusions keeps it from a 5.

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

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. Requires project context.

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

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the read-only behavior is covered. The description adds useful detail about which settings are returned and the project-context requirement, but it does not describe output shape, error behavior, or what happens when projectId is null. There is 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 a single compact sentence that front-loads the purpose, lists the specific settings returned, and ends with the context requirement. Every clause contributes information and there is 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?

This is a simple one-parameter, read-only getter with full schema coverage and no output schema. The description enumerates the returned settings and states the context requirement, so nothing critical is missing for correct invocation.

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

Parameters3/5

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

The only parameter, projectId, is already fully documented in the schema with its type, default, and meaning. The description's reference to 'project context' reinforces but does not add new 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 uses a specific verb and resource: 'Get the project's monitoring defaults' and enumerates exactly what is included (check history retention, default interval, timeout, incident threshold, schema validation mode, auto-creation). This clearly distinguishes it from sibling tools like get_monitor, list_monitors, and get_monitoring_sync_status.

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 clearly indicates this tool is for project-level monitoring defaults and explicitly notes that project context is required. It does not name alternatives or state when not to use it, but the context is clear enough for an agent to select it appropriately.

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

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

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

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. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhose settings to read: 'user' (default) or 'org'user

TDQS

A4.5/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 covered. The description adds value beyond that by explaining the isUserOverride semantics — that the response signals whether a category follows the org default or a personal override — and by flagging that organization context is required. It doesn't contradict the annotations, and the added behavioral context is meaningful for interpreting the result.

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 the core purpose front-loaded in the first clause and the scope nuances following. Every sentence carries distinct information — purpose, scope behavior, response interpretation, and a prerequisite — with no filler 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?

For a simple read-only tool with one optional parameter and no output schema, the description is complete: it states what is read, how each scope behaves, what a key response field means, and the context prerequisite. The agent has everything needed to decide whether and how to call this tool without further investigation.

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 with the schema already documenting the 'scope' parameter. The description earns an extra point by elaborating on what each scope value actually returns (own settings with isUserOverride interpretation vs. org defaults), adding behavioral meaning beyond the schema's brief 'Whose settings to read' phrasing.

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 pair — 'Read notification preferences per category' — which precisely states what the tool does. It further differentiates the two scope modes ('user' vs 'org'), making the purpose unambiguous and implicitly distinguishing it from the sibling write tool update_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, actionable guidance on which scope to select based on intent: 'user' for one's own settings, 'org' for organization defaults, plus the prerequisite that organization context is required. It does not explicitly name alternatives or when-not-to-use conditions, but the scope semantics effectively tell the agent how to invoke the tool correctly for each situation.

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

Get one organization documentation template with its full content and rowVersion.

ParametersJSON Schema
NameRequiredDescriptionDefault
templateIdYesThe public Id (Guid) of the template

TDQS

A4/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, and the read-only 'Get' verb is consistent. The description adds useful behavioral context beyond annotations by specifying that the response includes the full content and rowVersion, giving the agent a clear expectation of the output surface.

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 a single, tightly worded sentence with no filler. The verb, resource, and return contents are all front-loaded, making it immediately scannable for an agent.

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 get operation, the description is nearly complete: it states what is returned (full content and rowVersion), and the schema handles parameter documentation. It lacks explicit error or edge-case behavior, but that is not critical for this straightforward 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?

The schema documents templateId with 100% coverage, so the description does not need to add parameter details. The description adds no extra meaning 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 names a specific verb ('Get'), a precise resource ('one organization documentation template'), and the key return contents ('full content and rowVersion'). This clearly distinguishes it from sibling list_org_doc_templates and other 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 Guidelines3/5

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

No explicit alternatives or 'when to use' guidance is provided. The wording 'one ... template' implies this tool is for retrieving a single template as opposed to listing them, but the description does not explicitly route the agent away from list_org_doc_templates.

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

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. 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.5/5.0
Behavior4/5

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

With readOnlyHint=true already declaring this as a safe read, the description adds useful behavior beyond annotations: it returns schema details and rowVersion, optional usage listing, and a meaningful precondition ('Requires project context'). It is consistent with the annotation and adds practical operational 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?

Two sentences carry all the essential information with no filler. The main purpose is front-loaded, and the optional parameter behavior plus prerequisite are compactly appended.

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 tool with complete schema coverage and a readOnly annotation, the description is sufficient: it names the returned data, explains the optional usage flag, and states a prerequisite. 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.

Parameters4/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, so the baseline is 3. The description adds extra semantic value by explaining the includeUsage parameter's effect and its recommended timing ('do that before deleting one'), which goes beyond the schema's simple default 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 ('get'), a specific resource ('one reusable parameter component'), and the key returned content ('schema details and rowVersion'). It clearly distinguishes itself from list_parameter_components and sibling get_*_component 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 provides clear usage context: use includeUsage to list referencing endpoints, and do so before deleting a component. It also notes the prerequisite of project context. It does not explicitly contrast with list_parameter_components, but the singular 'one' implies the appropriate use case.

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

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

Get detailed information about a project, including its environments. 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

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safe-read profile is covered. The description adds behavioral context beyond the annotations: the set_context prerequisite and the active-project fallback behavior when projectId is omitted.

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 filler: the main purpose is front-loaded, followed by the prerequisite and the default argument behavior. 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 single-optional-parameter getter with readOnlyHint=true and no output schema, the description covers purpose, the required precondition, and the parameter fallback — everything needed to call it correctly. The only minor gap is the lack of return-shape detail, which is acceptable for a simple getter 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?

Schema description coverage is 100%, with projectId already documented as an optional GUID defaulting to null. The description's parameter guidance largely restates the schema's 'If omitted, uses the active project context', so the schema carries the heavy lifting and the description adds little new meaning.

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 detailed information about a project' — and adds scope detail ('including its environments'). It is clear enough to distinguish from sibling list tools like list_projects, though it does not name any sibling explicitly.

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?

The description gives a concrete prerequisite ('Requires organization context (call set_context first)') and documents the no-argument fallback ('If no projectId is given, uses the active project context'). However, it gives no explicit guidance on when to choose this tool over alternatives such as list_projects or get_branch.

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

List when a version was published, to which target and by whom. 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

A3.8/5.0
Behavior3/5

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

Annotations already establish readOnlyHint=true, and the description consistently describes a read-only listing operation, adding the contextual detail that project context is required. It does not go into pagination behavior, ordering, or empty-result semantics, but for a simple read-only tool the annotation covers the main safety 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 a single front-loaded sentence that immediately states the action and outputs, plus a short prerequisite clause. No filler; every word adds 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?

For a simple listing tool with a fully described schema, the description tells the agent what data will be returned and what context must be established. With no output schema, a small explicit note about default ordering or pagination would make it fully complete, but the essentials are present.

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 four parameters with descriptions at 100% coverage, so the description does not need to repeat them. It adds no extra meaning about skip/take or GUID formats, 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 opens with the verb 'List', identifies the resource ('a version was published'), and names the concrete data returned ('when', 'to which target', 'by whom'). This makes it easy to distinguish from siblings like get_version or get_scheduled_publishes 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 Guidelines3/5

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

It states a clear prerequisite, 'Requires project context', which tells the agent that set_context must be called first. It does not, however, name alternatives or state when this tool should be preferred over similarly named publish/version tools, leaving that to inference.

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

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. 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.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/return context: the tool returns inline schema or linked schemaId, rowVersion for update workflows, and optionally usage details. It also discloses the project-context prerequisite, with no contradiction to 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 compact sentences with no filler. The main purpose and return content are front-loaded, the optional behavior is stated second, and the prerequisite is separated clearly. Every sentence contributes useful 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?

With no output schema, the description appropriately explains the return values (schema definition, rowVersion, optional usage). It covers the required parameters indirectly and states the project-context prerequisite. Minor gaps remain around not-found/error behavior and how to establish project context, but the core calling information is present.

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 input schema already documents all three parameters clearly. The description does not add new parameter-level meaning beyond mentioning the optional usage details behavior, which is already in the includeUsage schema description. 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 uses a specific verb and resource: 'Get a request body component' and goes beyond by detailing exactly what is returned—schema definition (inline schemaJson or linked schemaId) and rowVersion. This clearly distinguishes it from sibling list/get tools for other component types like get_response_component or get_parameter_component.

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?

The description implies usage context: you need a single request body component's schema/rowVersion, and includeUsage is for when endpoint linkage details are needed. It also notes 'Requires project context.' However, it does not explicitly state when to prefer this over list_request_body_components or mention any exclusions/alternatives.

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

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

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

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

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

Get one reusable response component with its schema, headers and rowVersion. Set includeUsage to also list what references it. 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.3/5.0
Behavior4/5

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

The readOnlyHint annotation already declares this as a read operation, and the description adds useful behavioral context: the response includes schema, headers, and rowVersion, and includeUsage optionally lists referencers. It does not contradict annotations and provides meaningful details beyond the structured fields.

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 front-load the action and resource, then add the optional usage and prerequisite. Every clause earns its place 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 read-only tool with no output schema, the description sufficiently covers the return contents, the optional parameter behavior, and the required project context. Combined with full schema descriptions and the readOnlyHint annotation, an agent has what it needs to call the 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 coverage is 100%, so the baseline is 3. The description adds value by explaining what the response contains and explicitly clarifying the includeUsage parameter's effect, 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 states a specific verb and resource: 'Get one reusable response component' and explicitly names what is returned (schema, headers, rowVersion). The word 'one' distinguishes it from the sibling list_response_components, making the tool's scope clear.

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?

The only usage guidance is 'Requires project context,' which is a prerequisite but not a routing rule. It implies use when a specific componentId is known, but it never names alternatives like list_response_components or says 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_scheduled_publishesGet Scheduled PublishesA
Read-only

List the scheduled publishes of a version. Pending ones by default; pass includeExecuted or includeCancelled to see the rest. 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

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotenceHint, so the safety profile is covered. The description adds the pending-by-default filtering behavior and the project-context requirement, which are useful. Still, it does not mention return format, pagination, or other runtime behavior, so the added context is moderate but not rich.

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

Conciseness5/5

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

Two sentences with no fluff. The primary action is front-loaded, followed by the most relevant behavioral detail and a context requirement. 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 read-only filtered-list tool, the description covers required parameters, optional flags, defaults, and a context prerequisite. The absence of an output schema is not a major gap for invocation. Minor ambiguity remains around what 'project context' entails and how results are returned, but nothing essential to calling the tool 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 baseline is 3. The description confirms that includeExecuted and includeCancelled control which schedules are shown and that pending is the default, but the schema already documents these defaults. No additional meaning is added for specId or versionId.

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: 'List the scheduled publishes of a version.' It identifies the operation and its scope. It does not explicitly differentiate from sibling tools like get_publish_history or list_test_schedules, but 'scheduled publishes' is specific enough to avoid major ambiguity.

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

Usage Guidelines3/5

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

The description explains the default behavior ('Pending ones by default'), the optional flags for seeing other results, and a prerequisite ('Requires project context'). However, it does not say when to prefer this tool over alternatives or when not to use it, so the guidance is implied rather than explicit.

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

Get detailed information about a schema including its full JSON Schema definition. Optionally include usage details showing which endpoints reference it. 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

A3.6/5.0
Behavior3/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. The description adds useful context beyond the annotation: project context is required, and the response can optionally include endpoint usage details. It does not describe response format details or error behavior, but given annotation coverage, 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?

Two sentences with no filler. The core purpose is front-loaded, the optional behavior follows naturally, and the prerequisite is stated clearly. 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 read-only get-by-ID tool, the description conveys what the tool returns (schema definition plus optional endpoint usage) and a key precondition (project context). The input schema covers the parameters. It could be more explicit about what 'requires project context' means operationally, but the description is 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?

Schema description coverage is 100%, so the input schema fully documents specId, schemaId, and includeUsage. The description reinforces the meaning of the key parameters by mentioning the full JSON Schema definition and optional endpoint usage details, but it adds no information beyond the schema descriptions.

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 detailed information about a schema including its full JSON Schema definition.' This is clear and gives an agent a concrete sense of the return payload. However, it does not explicitly distinguish get_schema from sibling tools like get_shared_schema or list_schemas, so it stops short of full differentiation.

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?

Usage is implied: an agent would call this when it needs a schema's full JSON Schema definition or endpoint usage details. The description also gives an explicit prerequisite with 'Requires project context.' It does not mention when to prefer alternatives such as list_schemas or get_shared_schema, so the guidance is only partially complete.

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

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

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

Get one security scheme with its type-specific settings and rowVersion. Set includeUsage to also list the endpoints requiring it. 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.4/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 nature is established. The description adds useful behavioral context beyond that: the response includes type-specific settings and rowVersion, includeUsage toggles endpoint usage listing, and project context is a prerequisite. This is meaningful supplementary information 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.

Conciseness5/5

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

Two tightly written sentences carry the whole definition. The core action and return payload are front-loaded, and the optional flag and prerequisite are separated into the second sentence with no filler or repetition of schema fields.

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 tool with full schema coverage and a readOnlyHint annotation, the description covers the core return content, the optional usage behavior, and a contextual prerequisite. It does not describe the exact response envelope or error cases, but those are less critical given the tool's low complexity and read-only nature.

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 value by clarifying that includeUsage lists 'the endpoints requiring it,' which is more specific than the schema's 'what references this scheme,' and by flagging the project context prerequisite that affects call validity.

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 specific resource ('one security scheme'), and the key returned content ('type-specific settings and rowVersion'). It clearly reads as a singular retrieval operation, visually distinct from the sibling list_security_scheme_components, and the includeUsage note clarifies an additional capability without obscuring the core purpose.

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

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 fetches one scheme, optionally with usage endpoints, and requires project context. It does not explicitly name list_security_scheme_components as the alternative for fetching all schemes, but the singular 'one' plus the existence of that sibling makes the intended scope reasonably clear.

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

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. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
trendDaysNoDays of score history to include, 1-365. Omit for the current score only.

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 agent knows it's a safe read operation. The description adds value by disclosing what data is returned (score and open findings by severity, plus optional daily history) and the semantic of trendDays. It doesn't mention any side effects (none expected), and the read-only nature is consistent. 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 with zero filler. The main purpose is front-loaded, the optional parameter is explained with its purpose, and the prerequisite is noted. Every word earns its place, making it easy to scan and comprehend 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?

Given the tool has only one optional parameter and no output schema, the description provides enough information: what it returns (score, open findings count by severity, optional daily history) and the prerequisite of project context. It doesn't detail the exact JSON structure of the response, but for a read-only score retrieval tool, that's acceptable. The absence of an output schema is compensated by the description's explicit mention of the returned data.

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 trendDays with a clear description ('Days of score history to include, 1-365. Omit for the current score only.'), giving 100% coverage. The tool description adds extra meaning by explaining why you'd pass it ('to also get the daily score history... how you tell whether a project is improving or drifting'), which goes beyond the schema's syntactic definition and helps the agent understand the parameter's purpose.

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: getting the active project's security score (0-100) and count of open findings by severity. It distinguishes itself from siblings like get_security_findings (which likely returns the list of findings) and get_governance_score (which is a different metric) by specifying the exact resource and output. The verb 'Get' plus resource 'security score' 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 Guidelines4/5

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

The description explains when to use this tool: when you need the security score and open findings count, and explicitly describes how to use trendDays to get history for trend detection ('that is how you tell whether a project is improving or drifting'). It also states a prerequisite ('Requires project context'). It doesn't explicitly name alternative tools or when not to use it, but the context is clear enough for an agent to decide.

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the tool is read-only. The description adds valuable context by explaining that metrics are in-memory and reset on server restart or idle session, which clarifies the transient nature of the data. 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, with the primary action and target stated upfront. It uses two sentences without redundant phrases, listing the metrics in a clear and scannable manner. No fluff or unnecessary detail 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?

Given the tool's simplicity (no parameters, no output schema), the description fully covers what the tool returns (specific metrics) and its lifecycle behavior (in-memory, reset conditions). It provides enough context for an agent to call it correctly without additional clarifications.

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 coverage is 100% (empty schema). Per the rubric, a baseline of 4 is appropriate for 0 parameters. The description does not add parameter-specific meaning because there are none, but it correctly mentions session-bound behavior, which is not parameter-related.

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 with a specific verb ('Return') and a well-defined scope ('usage metrics for the current MCP session'), enumerating the exact metrics returned. This distinguishes it from the many sibling get_* and list_* tools, which focus on other entities.

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?

The description implies usage context by specifying 'for the current MCP session' and noting the reset behavior, but it does not explicitly state when to prefer this tool over alternatives or when not to use it. No mention of alternative tools like search or list operations is made, so guidance is only implicit.

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

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.

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.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-redundant behavioral context: the return payload (schema, headers, example, rowVersion), the scope selector, and the includeUsedBy restriction to project scope. There is no contradiction between the description and 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 short sentences, front-loaded with the core action and return payload, then the two behavioral knobs. Every sentence earns its place with no filler and no repetition of schema content.

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 getter with no output schema, the description covers the return content, scope semantics, and the includeUsedBy constraint. Minor gap: no stated error or edge-case behavior for invalid scope values or includeUsedBy=true at org scope, but 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 description coverage is 100%, so all three parameters are already well documented. The description adds modest reinforcement (scope values, includeUsedBy meaning and its project-only limit) but no parameter-level detail beyond what the schema provides, 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 ('Get one shared response') and itemizes the returned content (schema, headers, example, rowVersion), which distinguishes it from siblings like list_shared_responses and get_shared_schema. The scope qualifier ('project'/'org') further pins down what the operation acts on.

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?

Provides clear operational context (default scope, includeUsedBy behavior, project-scope-only restriction) but never tells an agent when to choose this over its close siblings such as list_shared_responses or get_shared_schema. The when-to-use guidance is implied rather than explicit, and no exclusions or alternatives are named.

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

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.

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.5/5.0
Behavior4/5

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

With no readOnlyHint or destructiveHint annotations, the description must carry behavioral context. It discloses return content (full JSON Schema and rowVersion), the project-only limitation of includeUsedBy, and a deletion-workflow warning. It doesn't state error behavior in org scope, but the key caveats are present.

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 no filler: the core action is front-loaded, then scope and includeUsedBy add the only necessary caveats. 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 single-record GET with three documented parameters, the description covers the returned data, scope semantics, and the important includeUsedBy restriction. No output schema exists, but the description supplies the essential return information.

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 explaining that includeUsedBy lists the specs linking a schema and should be used before deletion, which clarifies the parameter's real-world purpose.

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: 'Get one shared schema with its full JSON Schema and rowVersion.' It names the object and the scope options, distinguishing this single-item retrieval from siblings like list_shared_schemas without needing to open 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?

It gives concrete usage context: which scope to choose, that includeUsedBy should be set before deleting a schema, and that includeUsedBy works only in project scope. It doesn't explicitly name alternatives or say when not to use the tool, 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_specGet SpecA
Read-only

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. Requires project context.

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

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, and the description adds meaningful behavior: it returns documentation visibility, slug, and up to 10 versions newest first, plus the project-context precondition. No contradiction exists, and the added detail goes beyond the annotation alone.

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 tool's purpose and key output fields come first, the version-id usage tip is second, and the project-context requirement closes it. 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 single-parameter read tool with no output schema, the description is complete: it explains what the spec returns, the ordering and limit of versions, downstream usage, and a required precondition. Nothing critical 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.

Parameters3/5

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

The schema fully documents specId as 'Public ID (GUID) of the API specification', so the description does not need to redefine it. The description adds useful context about returned version ids, but that is output behavior rather than parameter semantics, 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 opens with 'Get detailed information about an API specification' and enumerates specific outputs: documentation visibility (internal/authenticated/public), slug, and versions. This clearly distinguishes get_spec from sibling list_specs, get_version, and validate_spec.

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 clear context by stating 'Requires project context' and tells the agent to use the returned version ids as versionId for create_endpoint and other version-scoped tools. It does not explicitly state when not to use this tool versus alternatives, but the intended usage is well implied.

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

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_tagGet TagA
Read-only

Get a single endpoint tag with its description, icon, display order and endpoint count. 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/5.0
Behavior3/5

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

Annotations already signal readOnlyHint=true, so the read-only nature is covered. The description adds that project context must already be set and what data the response includes, but does not cover error behavior, authentication specifics, or versionId semantics. This is adequate but not rich.

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

Conciseness5/5

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

One sentence that front-loads the tool's purpose ('Get a single endpoint tag') and packs in the returned fields plus a prerequisite without any 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 tool, the description covers its action, key return fields, and the context prerequisite. It does not explain the behavior when versionId is omitted or when the tag is not found, but the 100% schema coverage and readOnlyHint compensate for most gaps.

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 all three parameters are described in the schema with GUID types and optionality. The description adds no parameter-level information 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?

States a specific verb and resource ('Get a single endpoint tag') and enumerates the returned fields (description, icon, display order, endpoint count), distinguishing it from list_tags by the 'single' qualifier.

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 context requirement ('Requires project context') and implies single-item retrieval, but it does not explicitly name list_tags as the alternative for listing multiple tags or state 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_testing_settingsGet Testing SettingsA
Read-only

Read the project's testing settings. schemaNullMode decides how contract assertions treat null values against a schema. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, and the description's 'Read' aligns with that. The description adds useful behavioral context beyond annotations by explaining that project context is required and by defining what schemaNullMode controls.

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 filler. The main action is front-loaded, and the additional schemaNullMode explanation is directly relevant and compact.

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 zero-parameter read-only tool, the description covers the essential points: what is read, a prerequisite, and the meaning of a key setting. The lack of an output schema is partially mitigated by this explanation, though the full set of testing settings is not enumerated.

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 is empty, so there are no parameters to document; the baseline for zero-parameter tools is 4. The description still adds meaning by explaining a key setting returned by the tool, which helps the agent interpret the response.

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 ('project's testing settings'), and further clarifies the domain by mentioning schemaNullMode. This clearly distinguishes it from sibling getters like get_monitoring_settings or get_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 Guidelines3/5

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

The description provides a prerequisite ('Requires project context'), which gives some usage guidance. However, it does not explicitly state when to prefer this tool over alternatives or when not to use it, leaving the context to be inferred.

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

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. Get the id from get_test_results. 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?

The annotation already declares readOnlyHint=true, and the description adds substantial behavioral detail beyond that: it lists the exact categories of data returned and positions the tool as a diagnostic read for failed runs. This enriches the agent's understanding of what to expect 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?

The description is three sentences with no waste. It front-loads the primary purpose and the data returned, then gives the usage scenario and prerequisite. Every sentence earns its place, and the structure is logical.

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 no output schema, the description is remarkably complete. It enumerates all the return categories (status code, timing, response body/headers, assertion outcomes, extracted variables, script output) and provides the source of the id. The only minor omission is how to establish project context, but that is likely a global convention and does not hinder 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% and the parameter 'testResultId' is already described as 'Public Id (Guid) of the test result.' The description adds value by pointing to the sibling tool get_test_results as the source for this id, which is not present in the schema. This compensates beyond the baseline 3, though it doesn't add format or syntax 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?

The description uses a specific verb ('Get') and a precise resource ('one test case's result inside a run'), and enumerates exactly what data it returns (status code, timing, response body/headers, assertion outcomes, extracted variables, script output). It clearly differentiates from siblings like get_test_results (plural) and get_test_run (the run itself) by specifying this is for a single test case within a run.

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: 'This is the read to make when a run failed and you need to know why.' It also tells the agent where to get the required id: 'Get the id from get_test_results.' Additionally, it notes the prerequisite 'Requires project context,' giving a clear operational condition. No explicit exclusion is needed because the usage context is unambiguous.

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 ResultsB
Read-only

Get the test run history for a test suite. Shows past executions with their status and pass/fail counts. 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

B3.2/5.0
Behavior3/5

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

The annotation readOnlyHint: true already signals a safe read operation. The description adds that the tool shows past executions with status and pass/fail counts, which is useful behavioral context, and notes the requirement for project context. No contradiction with annotations, but it doesn't go deeper into pagination or response structure.

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. It front-loads the core purpose and the key output (status and counts), making it easy for an agent to quickly parse. Every word earns its place.

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?

With no output schema, the description should give a clearer picture of the return format beyond just 'status and pass/fail counts'. It omits details like the structure of each run entry, ordering, or how pagination parameters affect the result. It also doesn't explain what 'project context' means or how it relates to the required testSuiteId. These gaps make it insufficient for an agent to fully understand the response or prerequisites.

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 all three parameters (testSuiteId, skip, take) are already documented in the schema with clear meanings and defaults. The description adds no additional parameter details, which is acceptable given the schema's completeness, but it also doesn't reinforce the pagination behavior.

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 (Get), the resource (test run history), and the scope (for a test suite), plus what is returned (status and pass/fail counts). It distinguishes itself from likely siblings like get_test_run (which likely returns a single run) by focusing on history, though it doesn't 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 Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like get_test_run or export_test_run. The only contextual hint is 'Requires project context', which is a prerequisite but not a usage comparison. An agent must infer from the tool name and description alone when to choose this over similar tools.

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

Get the results of a specific test run including status, timing and per-case results. Use the testRunId returned by run_test_suite. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
testRunIdYesPublic ID (GUID) of the test run

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, so the read-only nature is covered. The description adds the requirement for project context and clarifies the content of the response (status, timing, per-case results), which goes beyond the structured 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 with no redundancy. The main purpose is front-loaded, followed by a specific usage hint and a prerequisite, making it 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?

Given the tool's simplicity (one parameter, no output schema), the description covers the key elements: what it does, what it returns, and a prerequisite. It could be more explicit about edge cases or pagination, but for a single-ID retrieval it is adequately 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 schema documents testRunId as a GUID. The description adds value by indicating the parameter is obtained from run_test_suite, providing a practical source hint beyond the schema's static description.

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 retrieves results for a specific test run, listing the included content (status, timing, per-case results). It uses a specific verb and resource, and the 'specific test run' wording helps distinguish it from plural variants like get_test_results, though it doesn't explicitly name the sibling.

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?

The description provides the source of the required testRunId (returned by run_test_suite) and notes that project context is required. However, it does not explicitly state when to use this tool versus alternatives like get_test_results or get_test_result, nor does it mention any exclusions.

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

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. 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/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, so the safety profile is covered, and the description does not contradict it. The description adds genuinely useful behavioral context beyond the annotation: the 'Requires project context' precondition and what each flag changes in the response (run history/pass rate; extracted variables passed to later 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?

Two sentences with zero filler. The main purpose is front-loaded in sentence one, and sentence two earns its place by explaining both optional flags and the project-context prerequisite in a compact form.

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 retrieval tool with 3 fully documented parameters, the description covers the core purpose, the behavior of both optional flags, and the key precondition. With no output schema present, more return-shape detail would be marginally helpful, but 'detailed information about a test suite including its test cases' plus the flag clauses give an agent enough 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 description coverage is 100%, so the schema already fully documents testSuiteId, includeStats, and includeExtractionVariables, including defaults. The description re-echoes the two flags ('run history and pass rate', 'variables... pass on to later cases') but adds no format, default, or syntactic detail beyond the schema and omits testSuiteId entirely. 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 ('Get') and resource ('detailed information about a test suite'), with the scope 'including its test cases' adding a distinguishing detail. This differentiates it from siblings like list_test_suites (a listing operation) and get_test_run/get_test_results (which are run/result-focused rather than suite-definition-focused).

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?

The description gives within-tool usage guidance — 'Set includeStats for run history and pass rate, includeExtractionVariables for the variables the suite's cases extract and pass on to later cases' — and notes the precondition 'Requires project context.' However, it never names alternatives or states when to prefer this over siblings like list_test_suites, get_test_run, or get_test_results; the selection context is only implied.

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

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. 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?

The description adds substantial behavioral context beyond the readOnlyHint annotation: 'plan, seat and top-up changes are not available through MCP by design — a human does those in the web app.' This discloses limitations and redirects the agent appropriately, making the tool's behavior fully transparent.

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

Conciseness5/5

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

Three sentences, each earning its place: the first states the purpose and output, the second differentiates from siblings and notes permissions, the third discloses read-only design and web-app fallback. No redundancy or fluff; the 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 no-parameter, read-only tool with no output schema, the description covers all necessary context: what is returned, what permissions are needed, what context is required, and what actions are intentionally unavailable. An agent has everything needed to call and interpret 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 tool has zero parameters, so the description correctly does not attempt to explain any. Per the rubric, 0 params warrants a baseline of 4; the description adds no unnecessary parameter detail, and the baseline 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 resource (the organization's trial) and enumerates the specific information returned: tier, running status, expiry, and days left. It is distinct from sibling tools by explicitly contrasting with 'other billing tools' and specifying the permission difference.

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 this tool vs alternatives: 'Unlike the other billing tools this one only needs organization membership, not billing:read.' It also states the prerequisite 'Requires organization context.' This fully informs an agent on selection and prerequisites.

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

Get one spec version with its status, release notes, alias, publish and deprecation timestamps, and the rowVersion needed to edit it. Requires project context.

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

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, so the description does not need to restate read-only behavior. It adds meaningful context by disclosing the exact fields returned and the dependency on project context. The mention of rowVersion also clarifies that this read operation returns a token for future edits, without contradicting 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?

The description is two compact sentences with no filler. The primary purpose and returned fields are front-loaded, and the prerequisite is stated separately. Every sentence contributes useful 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?

For a simple read-only get operation with two well-documented parameters and no output schema, the description covers the returned fields and the required project context. It could be even more complete by pointing to how to set the project context or how to locate versionId, but nothing essential for invoking 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 explains specId and versionId. The description reinforces that this targets a single version, but it does not add meaningful parameter-level detail beyond what the schema provides. 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-resource pair ('Get one spec version') and enumerates exactly what is returned: status, release notes, alias, publish and deprecation timestamps, and rowVersion. This clearly distinguishes it from list_versions or compare_versions by emphasizing a single version retrieval.

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 appropriate: when a single version's full metadata is needed, especially the rowVersion required for editing. It also states the prerequisite 'Requires project context.' It does not explicitly name alternatives, but the single-version framing implies the contrast with list_versions.

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

Get the versioning strategy configured for an API specification, including version aliases. Requires project context.

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

TDQS

A4.4/5.0
Behavior3/5

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

The readOnlyHint annotation already signals that this is a safe read operation. The description adds useful context about the returned data (version aliases) and the prerequisite (project context), but does not add explicit read-only wording. Since the annotation covers the safety aspect, this is adequate but not highly detailed.

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 a single sentence with no unnecessary words. It efficiently conveys the essential information 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 is complete for this simple read operation. It mentions the key requirement (project context) and the specific content (versioning strategy, version aliases). No additional information is needed 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.

Parameters5/5

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

The sole parameter specId is clearly described as 'Public ID (GUID) of the API specification', providing complete and unambiguous meaning. There is no ambiguity about what value to supply.

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 resource 'versioning strategy' for an API specification. It also mentions 'including version aliases', which adds specificity and distinguishes it from related tools like get_version and compare_versions.

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 notes 'Requires project context', which is a useful usage hint. However, it does not explicitly differentiate when to use this tool versus alternatives like get_version or compare_versions, though the name and description make the purpose fairly obvious.

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

Validate an API specification against style guide rules. Returns violations grouped by severity (error, warning, info) with rule details and affected paths. Requires project context.

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

TDQS

A3.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 behavior beyond that: it discloses the returned data shape (violations grouped by severity with rule details and affected paths) and the important prerequisite of project context. This goes beyond what the structured 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 short sentences with no redundancy: purpose, return format, and prerequisite. 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.

Completeness4/5

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

For a simple single-parameter tool with a readOnly annotation, the description covers purpose, return structure, and the project-context requirement. The only notable gap is not addressing the closely related sibling validate_spec, which could leave an agent uncertain about tool selection.

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 fully documents specId with a clear description and 100% coverage, so the baseline is 3. The tool description adds no additional detail about the parameter, but none is needed given the schema coverage.

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 a specific action ('Validate an API specification') against a specific resource ('style guide rules'), which distinguishes it from generic validation tools like validate_spec. However, it does not explicitly name or contrast any sibling tool, so it stops short of full differentiation.

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

Usage Guidelines2/5

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

The only usage guidance is 'Requires project context,' which is a precondition rather than a when-to-use instruction. It does not explain when to choose lint_spec over validate_spec or other specification-related tools, and it offers no exclusions or alternative routing.

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

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. 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.1/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 useful behavior beyond it: the default returns policy rules, includeAssignments additionally returns scope attachments (environments, specs, monitors), and the origin of assignmentId for unassigning is disclosed. This adds meaningful context without contradicting 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 filler: the core action and scope come first, followed by the key parameter's effect and the prerequisite. Every clause earns its place, and the structure is logical and 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 tool with two optional parameters and no output schema, the description covers the action, the behavioral difference of the main parameter, and the project-context prerequisite. It omits return-format and pagination details, but these are minor gaps for a simple list operation.

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 specifying what 'scope assignments' means (environments, specs, monitors) and connecting includeAssignments to the assignmentId/unassigning workflow, which the schema description does not mention.

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: 'List the alert policies of a project with their rules,' which unambiguously conveys the tool's function. It does not explicitly differentiate from siblings like get_alert_policy, though the list-vs-get naming convention makes the distinction reasonably apparent.

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?

'Requires project context' states a clear prerequisite, and the includeAssignments sentence gives a concrete condition for when to enable extra scope data. It provides clear context but does not explicitly name alternatives or exclusion conditions, e.g., when to use get_alert_policy instead.

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

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

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

List the branches of a draft version, with their status (active, merged or closed). 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/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the read-only safety profile, and the description is consistent with that. It adds a useful context precondition but does not disclose other behavioral details such as pagination, empty results, or error 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 a single focused sentence that front-loads the core action and scope, then adds the status detail and a necessary context requirement. There is no redundant or filler language.

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 fully documented parameters, the description provides purpose, scope, and expected output content. It could be slightly richer about the exact branch fields returned, but the low complexity and readOnlyHint make the current description 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?

Schema description coverage is 100%, with both specId and versionId clearly documented as GUIDs. The description adds no additional parameter-level meaning, which is acceptable since the schema already provides full semantic context.

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 specific resource ('branches of a draft version'), and the key output detail (status: active, merged, or closed). This clearly distinguishes it from siblings like get_branch, which targets a single branch.

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 phrase 'Requires project context' gives an explicit precondition, and 'branches of a draft version' indicates the intended scope. It does not explicitly name alternative tools or when not to use it, so it falls just short of a top score.

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

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. 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.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 specifics: it filters out resolved events by default, groups by endpoint, and includes drift duration and contract version—context that goes beyond the annotation and helps the agent anticipate 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 two sentences, front-loads the core purpose, and efficiently includes the filtering behavior, the alternative tool, and a prerequisite. Every sentence earns its place with 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?

For a read-only list tool with all-optional parameters and no output schema, the description conveys the key output fields (grouping, drift items, duration, contract version) and the default filtering. It omits details like pagination or empty-result behavior, but those are not critical for correct invocation. The note on project context is important and included.

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 all five parameters are documented in the schema itself. The description does not add new parameter-level meaning; it only implies the output grouping. Per the rubric, with high coverage the baseline is 3, and there is no extra parameter context to raise 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 the resource 'endpoints of a project whose live responses drift from their contract', with specific details on grouping and fields included. It distinguishes itself from get_schema_drift_report by noting that tool covers a single monitor's history, making its scope 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 'Resolved events are left out unless asked for' and directs users to 'Use get_schema_drift_report for one monitor's history', providing clear when-to-use vs. alternative guidance. It also notes 'Requires project context', setting expectations for invocation.

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

List the organization's custom roles with the permission strings each one grants and how many members hold it. 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.5/5.0
Behavior5/5

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

Beyond the readOnlyHint annotation, the description explicitly states that members, roles, teams, and SSO are not changeable through MCP by design and points to the web app for human-managed changes. It also discloses the return content (permission strings and member counts), providing context the annotation alone does not.

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 purpose and then add the organization-context and read-only caveats. Every clause carries useful information with no repeated schema or annotation 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 zero-parameter, read-only list operation with no output schema, the description covers what the tool returns, the required context, and the mutation boundary. 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 accepts zero parameters, so the description correctly has no parameter details to add. With no params, the baseline is 4 and the schema coverage is effectively 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 uses a specific verb and resource: 'List the organization's custom roles' and states exactly what is included (permission strings and member counts). This clearly differentiates it from sibling tools like list_members or get_custom_role by resource type 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 Guidelines3/5

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

It identifies a prerequisite ('Requires organization context') and implies use whenever a full listing of custom roles is needed, but it does not contrast with alternatives such as get_custom_role for a single role or other list tools. There is no explicit when/when-not guidance.

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

List the organization's own style guide rules with their conditions. The ruleId of each ('custom-') is what the severity tools take. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 useful behavioral context: rules include their conditions, ruleId has the format 'custom-<guid>', and it is the identifier consumed by severity tools. This tells the agent what to expect and how results are used.

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: main purpose, additional output detail, and an operational requirement. The most important facts are 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 list tool, the description is complete: it states what is returned, the required context, and how the returned ruleId relates to other tools. No critical behavior is left unexplained.

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 cannot add parameter-level meaning. The schema coverage is complete for the empty schema, and the description uses that freedom to clarify what the returned rules contain.

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 ('List'), a resource ('organization's own style guide rules'), and their conditions. The phrase 'organization's own' distinguishes this from the sibling list_project_style_guide_rules and signals organizational scope.

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?

The description gives context that organization context is required and implies the organizational scope, but it does not explicitly state when to prefer this over the sibling project-level style guide rule tool. The usage guidance is implied rather than explicit.

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

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

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

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

List the snippets of a documentation version with their slug, content and how many pages use each one. 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?

Annotations already provide readOnlyHint=true, and the description adds useful behavioral context beyond that: it specifies what is returned (slug, content, page-usage count) and the need for project context. It does not contradict the annotations, though it omits details like pagination or ordering.

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 entire description is one efficient, front-loaded sentence. It conveys the core action, the relevant resource scope, the returned fields, and a key prerequisite without 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?

For a simple read-only list operation with fully described parameters and no output schema, the description covers the main points: what is listed, what fields are included, and a critical context requirement. Minor omissions such as pagination, sorting, or response wrapping prevent a perfect score.

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 versionId and documentationId are already well documented in the input schema. The description does not add further parameter-level meaning beyond the implied 'documentation version' relationship, so the baseline score of 3 applies.

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 a specific verb ('List'), resource ('snippets of a documentation version'), and the fields returned (slug, content, usage count). It is understandable on its own, though it does not explicitly name sibling tools like get_doc_snippet or list_script_snippets to differentiate 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 a clear prerequisite ('Requires project context') that helps an agent know when this tool is callable. It does not explicitly state when to prefer this over alternatives like list_script_snippets, but the documentation-version scoping implies its context.

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

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

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. 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.6/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 behavioral nuances: setting scope to 'project' changes the return shape and causes specId to be ignored. It also surfaces an operational dependency—"Requires project context (call set_context first)"—which the annotation does not convey. This goes well beyond what readOnlyHint implies and helps an agent anticipate surprising 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 four sentences with no filler: purpose, version filtering, the project-scope alternative with its behavioral consequence, and the required context. Each sentence introduces a distinct piece of information. Front-loading the main purpose and then layering conditional behavior keeps it both concise and highly informative.

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 two distinct modes and the description fully explains both, including the special collision-grouping output and the ignored specId. It also provides the set_context prerequisite, which is critical for correct invocation. It stops short of describing the default mode's return envelope (e.g., whether it is a bare array or a paginated object), but the presence of skip/take and the explicit contrast with project mode make the behavior sufficiently clear.

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?

Input schema coverage is 100% for all five parameters, so the baseline is 3. The description adds real semantic value on top of the schema by explaining the interplay between scope and specId: in project mode, specId is ignored and the result is not the full list. This clarifies the most complex parameter relationship in the tool, even though skip, take, and versionId remain adequately described by 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 opens with a specific verb and resource: "List all endpoints of an API specification," making the core action unmistakable. It further distinguishes behavior by clarifying the default spec scope versus the project scope, which sets it apart from sibling list operations. Optional version filtering and the special project-mode output are stated clearly, leaving no ambiguity about what the tool does.

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

Usage Guidelines4/5

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

The description gives clear situational guidance: use the default scope for a single spec, or set scope to 'project' to cross specs and detect routing conflicts. It explains the trade-off (grouped collisions plus counts instead of the full list) and notes the prerequisite to call set_context first. However, it does not explicitly compare against sibling tools such as list_linkable_endpoints or get_endpoint, so alternative-tool selection is left to inference.

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

List all environments of a project with variable counts. 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.2/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 useful behavioral context: organization context is required, and the active project context is used when no projectId is supplied. It does not go into depth about return structure or pagination, but it adds value 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 no fluff. The core purpose is front-loaded, and the conditional behavior and context requirement are stated 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?

For a simple read-only list operation with one optional parameter, the description covers the essential context: what is listed, the organization requirement, and the projectId fallback. The absence of an output schema is partially mitigated by mentioning variable counts.

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 essentially reiterates the parameter behavior already present in the schema. It does not add new meaning beyond reinforcing that omitting projectId falls back to the active project context.

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 environments of a project with variable counts.' It also clarifies scope with the projectId/active-project behavior, making it easy to distinguish from the many other list_* 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 clearly explains the organizational context requirement and the behavior when projectId is omitted. It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to decide 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.

list_fixture_importsList Fixture ImportsA
Read-only

List the organization fixtures the active project has imported, with the alias each is referenced by. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, and the description's 'List' verb is consistent with that. The description adds the behavioral precondition that project context is required, which is useful, but it does not disclose error behavior or what happens when no project context exists. The annotation lowers the bar, and the description clears it without adding much depth.

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 a single sentence that front-loads the action and resource, and includes only essential qualifiers: organization fixtures, active project, imported, and alias. Every phrase 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 zero-parameter read-only list tool, the description is complete: it identifies what is listed, the scope, the output alias, and the required context. No output schema exists, but the description adequately conveys the essential return information.

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 schema description coverage is 100%, so the baseline of 4 applies. There is no parameter semantics for the description to add; it correctly focuses on the operation and output.

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 specific resource ('organization fixtures the active project has imported'), and the key output detail ('the alias each is referenced by'). It clearly distinguishes this tool from siblings like list_fixtures and get_fixture_usage by scoping to imported fixtures with aliases.

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 identifies a prerequisite: 'Requires project context,' which tells the agent it must have an active project selected before calling. It does not name alternatives or state when not to use this tool, so it stops 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.

list_fixturesList FixturesA
Read-only

E84: List all project-owned fixtures in the active project. Fixtures are structured test data (YAML/JSON) reusable across tests, mocks and docs. 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

A3.7/5.0
Behavior4/5

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

With readOnlyHint=true already declared, the description correctly avoids repeating that. It adds meaningful behavioral context: the operation is scoped to 'project-owned' fixtures, requires project context, and clarifies what fixtures are. 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.

Conciseness4/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. The second sentence explaining fixtures is helpful context, and the final requirement is stated concisely. The 'E84:' prefix adds no apparent value and slightly dilutes clarity, keeping it from a 5.

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 operation with no required parameters and a well-documented schema, the description covers purpose, scope, and a key prerequisite. It does not describe the return format, but no output schema is present and the tool is straightforward enough that this is a minor gap. Explicit sibling differentiation would make it fully 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 the schema already documents skip, take, and tagFilter with descriptions and defaults. The tool description adds no parameter-level detail beyond defining fixtures, which aligns with the baseline of 3 when the schema carries the semantic load.

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 a specific verb ('List') and a specific resource ('project-owned fixtures in the active project'), and adds a concise definition of fixtures as structured test data. It is clear and unambiguous, but it does not explicitly differentiate itself from siblings like list_fixture_imports, get_fixture, or get_fixture_usage, so it stops short of a 5.

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?

The prerequisite 'Requires project context' gives a useful condition for when this tool can be called, and the scope 'in the active project' implies the intended environment. However, the description offers no guidance on when to use this tool instead of a sibling such as list_fixture_imports or get_fixture, so the usage guidance is only implied rather than explicit.

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

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

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. Requires organization context.

ParametersJSON Schema
NameRequiredDescriptionDefault
unresolvedOnlyNoOnly alerts nobody has resolved yet (default true)

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 read-only safety profile is covered; the description adds genuinely useful behavior beyond that: unresolved-only by default, a 100-item cap, and the organization-context requirement. 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 tight sentences: the core action with examples first, then constraints (default filter, cap), then the prerequisite. Every sentence earns its place 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.

Completeness4/5

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

For a single-optional-parameter list tool, the description covers scope, default filtering, result cap, and the org-context prerequisite. Minor gaps exist (sort order, response shape, how to establish org context), but nothing critical 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.

Parameters3/5

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

Schema coverage is 100% — unresolvedOnly is fully documented in the schema including its default value. The description's 'Unresolved only by default' reinforces rather than extends the schema, 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?

States a specific verb and resource ('List the organization's governance alerts') and disambiguates the domain with concrete examples ('quality drops, breaking-change spikes, stale drafts, blocked publishes'). This clearly differentiates it from siblings like get_governance_score or resolve_governance_alert 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 Guidelines3/5

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

Provides one operational prerequisite ('Requires organization context') and states the default filtering behavior, which implies when the tool is relevant. However, it does not explicitly name alternatives or give when-not-to-use conditions relative to related siblings such as resolve_governance_alert or get_governance_score, so usage context is implied rather than explicit.

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

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.

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.4/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 safe read operation. The description adds value by explaining that it returns ids and rowVersions, and clarifies level-specific behavior for includeUsageCounts. 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, front-loaded with the core purpose, then adding prerequisites and return value. Every sentence contributes, 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?

Given no output schema, the description explains what is returned (ids and rowVersions) and the key conditions (level, project context). It lacks explicit pagination or error details, but for a list tool with annotations covering safety, this 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%, so all parameters have descriptions. The description goes beyond the schema by explaining that specId is required for 'spec' level and that includeUsageCounts only applies at the spec level, clarifying the interplay between 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 states the tool lists header components at either 'spec' or 'project' level, with specific prerequisites for each. It distinguishes itself from sibling tools like get_header_component or list_header_exclusions by describing its scope and return value (ids and rowVersions).

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 usage context: requires project context, and notes that includeUsageCounts and versionId are spec-level only. It implies when to use this tool (to get components for policies) but does not explicitly name alternative tools or state when not to use it. This is better than no guidance but lacks explicit exclusions.

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

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.

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
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 meaningful behavioral context: the concept of a 'policy cascade', the level-dependent scope, and the requirement for project context. It does not mention pagination or output shape, but that is a minor gap for a simple list 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 short, focused sentences with no filler. The main action is stated first, then level semantics, then the 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?

For a read-only list operation with three parameters, one required, and conditional dependencies, the description covers the key preconditions and scoping. There is no output schema, and the description doesn't describe the return format, but the name and phrasing imply a list of headers, which is likely 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?

Schema description coverage is 100%, so the schema already documents all three parameters. The description reinforces that 'response' needs specId and responseId and adds the broader project-context requirement, but it does not substantially go beyond what the input schema already states.

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 operation ('List the headers excluded') and the resource ('from the policy cascade'). It also distinguishes the two scopes ('response' vs 'project'), making it distinct from sibling tools like list_header_policies or get_resolved_headers even though no sibling is named.

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 use each level, including the precondition that 'response' requires specId and responseId and that project level covers the whole project. It does not explicitly name alternatives or exclusions, but the intended usage is well implied.

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

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

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.

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.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, lowering the bar. The description adds genuine behavioral context beyond that: return order ('newest first'), return shape ('monitor... and its event timeline'), and cross-organization scope. Minor omissions like pagination behavior exist, but the added context is solid for a read-only list 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: core behavior and return shape, available filters, and scope caveat. The most decision-relevant information is front-loaded, with zero repetition of schema content and 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?

With 8 documented optional params, a readOnly annotation, and no output schema, the description covers everything critical: purpose, sort order, return contents (monitor and timeline), filter options, and org-wide scope. A brief note on pagination limits or default behavior would make it fully complete, but nothing essential is missing for an agent to call it correctly.

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

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 of 3 applies. The description adds only light value by grouping filters ('by status, by monitor, by environment or spec, and by time window'), which helps the agent see the filter categories but provides no syntax or format details 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?

Specific verb ('list'), resource ('incidents'), and scope ('across the organization') are clearly stated, with additional detail on sort order ('newest first') and return content ('monitor that raised each one and its event timeline'). This clearly distinguishes it from the many list_* siblings (list_monitors, list_test_results, list_scan_runs) without needing to open 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?

'Works across the organization, no project context needed' gives clear context for when this tool applies — it can be called without project scoping, unlike many siblings. However, it does not name alternatives or state explicit exclusions (e.g., when to prefer get_test_results or list_monitors), 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.

list_linkable_endpointsList Linkable EndpointsA
Read-only

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

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.

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.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's 'List' is fully consistent with that. The description adds useful behavioral detail beyond the annotation: it returns windows across all scopes, includes cancellation ids, supports an active-only filter, and requires project context. It does not describe pagination or output shape, but this is minor for a simple 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?

Two sentences carry the full purpose, the filtering guidance, and the prerequisite with no filler. The purpose is front-loaded, followed by the relevant parameter hint and 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.

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 tool with two optional parameters and no output schema, the description covers scope, filtering behavior, prerequisites, and even the downstream use of the returned ids. An agent has enough information to select and invoke the tool correctly without additional inference.

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

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 are already documented with defaults and descriptions. The description reinforces that activeOnly means 'in effect right now' and mentions the project context prerequisite, but it does not add substantial 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?

States a specific verb ('List'), a precise resource ('maintenance windows of a project'), and the scope ('across all scopes'). It also clarifies the practical value by noting the window ids needed to cancel them. No sibling tool targets maintenance windows, so 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 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 use the tool: listing maintenance windows for a project, with optional filtering via activeOnly. It also states the prerequisite of project context. It does not explicitly name alternatives or exclusions, but none of the sibling tools appear to overlap with this resource.

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

List the organization's members with their role, the custom role if they have one, when they joined and when they last logged in. 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.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 adds meaningful behavioral context: members, roles, teams, and SSO cannot be changed through MCP by design, and humans perform those actions in the web app. This goes beyond the annotation and helps the agent avoid attempting unsupported mutations.

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 efficient sentences with no filler. The core action and returned fields are front-loaded, and the read-only/web-app context earns its place by preventing misuse.

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 zero-parameter list tool, the description is nearly complete: it names the resource, the returned fields, and the context requirement. It does not describe pagination or ordering, but those are minor given the simple shape of the tool and the lack of 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?

The tool has zero parameters and 100% schema coverage, so the baseline is 4. The description's note about requiring organization context is not parameter-specific but is still useful setup 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?

States a specific verb ('List') and resource ('the organization's members'), and enumerates the returned attributes: role, custom role, join date, and last login. This clearly distinguishes it from siblings like list_custom_roles, which target a different resource.

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 context: this is for reading organization members and requires organization context. It does not explicitly name alternative tools or give exclusion criteria, but it does signal that member management is intentionally outside MCP's scope, which prevents inappropriate use.

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

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.

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

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so the description does not need to reiterate safety. It adds the context that project context must be set, and discloses that the response includes status and reviewer approval counts. However, it does not describe pagination, ordering, or error behavior. Given the read-only annotation, this level of transparency is adequate but not rich.

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

Conciseness5/5

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

The description is a single, focused sentence that front-loads the core action and resource, then specifies the returned details. It includes the necessary prerequisite ('Requires project context') without verbosity. Every part earns its place, making it concise and well-structured.

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

Completeness3/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 one parameter and no output schema, the description provides the essential return information (status and approval counts) and a prerequisite. However, it does not clarify whether the result is a full list with pagination, whether it returns only summary fields, or how errors are handled. Since there is no output schema, the description should carry more of this burden, so it falls short of 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 covers the only parameter, specId, with a clear description ('Public ID (GUID) of the API specification'). Since schema coverage is 100%, the description need not add parameter details. The description does not reference the parameter, so it adds no extra meaning beyond the schema, aligning with the baseline of 3.

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 resource ('merge requests of a spec'), and specifies the returned information (status and reviewer approval counts). It is distinct from siblings like get_merge_request, which presumably fetches a single merge request. The mention of 'Requires project context' adds a prerequisite but does not confuse 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 Guidelines2/5

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

The description does not explicitly state when to use this tool versus alternatives, nor does it name any sibling tools. It implies its use by describing what it does, but there is no guidance on when not to use it or which alternative to choose (e.g., get_merge_request for a single item). The only usage hint is 'Requires project context', which is a prerequisite rather than a selection criterion.

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

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

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. 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/5.0
Behavior4/5

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

Annotations only declare readOnlyHint, so the description carries the behavioral burden. It adds concrete details: newest-first ordering, included metrics (status code, response time, timing breakdown), and the project-context requirement. It does not disclose pagination behavior, but that is exposed in the schema. No contradiction with readOnlyHint.

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?

One dense sentence front-loads the purpose and then packs the key output fields and filters. Every clause earns its place; no 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 read-only list tool with 6 schema-documented parameters and no output schema, the description covers the core purpose, ordering, returned fields, available filters, and a prerequisite. It does not describe the exact JSON list shape or error behavior, but the absence of an output schema and the simple list semantics make that acceptable. A small gap is the lack of mention of skip/take pagination, though the schema covers 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?

Schema coverage is 100%, so the baseline is 3. The description paraphrases the onlyErrors and from/to semantics ('see just the failures', 'narrow the window') but adds no new information beyond the schema's parameter descriptions. It does help a human/agent quickly map the important filters.

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 individual checks a monitor ran' with ordering and key fields. This clearly differentiates from sibling tools like list_monitors and get_monitor, which concern monitors themselves rather than their check history.

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?

Provides usage context: 'Requires project context' is a precondition, and explains when to use onlyErrors and from/to filters. However, it does not explicitly contrast with alternatives such as list_monitors or get_monitor, so alternative selection is left implied.

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

list_monitorsList MonitorsB
Read-only

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. 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

B3.4/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, so this is already known to be a safe read operation. The description adds useful behavior details: the 'grouped' mode changes paging behavior ('paging does not apply then') and 'includeStats' adds uptime/latency/sparkline data. It does not explain default paging limits or any rate limits, but the core behavioral nuances are disclosed.

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

Conciseness4/5

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

The description is three sentences and front-loads the primary purpose, then explains the two optional flags. Every sentence carries information about behavior or usage. It could be slightly more compact by trimming 'the way the sidebar shows them' but overall it's efficient.

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

Completeness3/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 main filtering/grouping/stat options and project context requirement. However, it does not mention pagination defaults (skip/take) or that 'grouped' overrides paging, which an agent might need to know for large projects. The schema covers the parameter defaults, so the gap is moderate.

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 six parameters. The description adds meaning for 'grouped' (environment → spec tree, paging does not apply) and 'includeStats' (what stats are included), which exceeds what the schema says. Overall, the description adds some value beyond the schema but does not need to compensate for missing parameter docs.

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 ('List') and resource ('monitors of a project') and adds scope ('current status') and the sourced 'grouped' and 'includeStats' behaviors. It is distinct from the sibling tools (e.g., list_monitor_checks, get_monitoring_settings), although it does not explicitly name another sibling it is not.

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?

The description says 'Requires project context' and explains when to use 'grouped' and 'includeStats', giving clear context for flag usage. However, it does not explicitly contrast this tool with alternatives like list_monitor_checks or get_monitoring_settings, so the when-vs-alternatives guidance is implied rather than explicit.

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

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

List the OAuth 2.0 tokens cached for an environment, with their grant type and expiry. Access and refresh token values are never returned. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
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 signals a safe read operation, and the description adds meaningful behavioral disclosure: token values are never returned. This is important security-relevant context beyond what annotations provide. It also clarifies the scope as cached tokens, though it does not cover pagination or error 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 two concise sentences with no filler. The primary purpose is front-loaded, followed by a critical non-disclosure guarantee and a note about project 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 one-parameter listing tool with no output schema, the description adequately communicates what is returned (grant type, expiry) and what is intentionally omitted (token values). The project context requirement is also included. It does not explain list formatting or empty-result behavior, but those are minor for this 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?

Schema description coverage is 100%, and the single parameter environmentId is fully documented as the Public Id (Guid) of the environment. The description reinforces the environment-scoping relationship but does not add substantial semantics 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?

Description uses a specific verb 'List' with a clear resource: 'OAuth 2.0 tokens cached for an environment.' It also specifies the returned attributes (grant type and expiry) and differentiates the tool from generic auth-related siblings by emphasizing cached tokens and environment scoping.

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 clearly indicates this is for listing cached OAuth 2.0 tokens for a specific environment and notes that project context is required. It does not explicitly mention alternative tools or exclusions, but the context is clear enough for an agent to select it appropriately among many list_* siblings.

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

List all organizations the authenticated user is a member of, including their role in each.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/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. The description adds scoping information about membership and the included role field, but it does not describe the response shape, ordering, or any pagination behavior. This matches a basic read-only list disclosure but not a richer behavioral explanation.

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 a single, front-loaded sentence with no filler or redundancy. Every part contributes essential information: the action, the resource, the membership filter, and the included role field.

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 list operation with no output schema, the description is sufficient. It tells the agent exactly what will be returned: all organizations the user belongs to and their role in each. No critical detail appears to be 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?

There are no parameters, so the input schema is trivially complete. The description adds meaningful context about what the returned list represents, which is all that is needed here.

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 clear resource ('organizations'), and a precise scope ('the authenticated user is a member of'). It also adds the useful detail that the role in each organization is included, which distinguishes it from sibling tools like list_members or list_projects.

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 clearly implies this tool is for the common task of finding which organizations the current user belongs to. It does not explicitly name alternatives or exclusion criteria, but for a zero-parameter list tool 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.

list_org_doc_templatesList Organization Doc TemplatesA
Read-only

List the organization's documentation page templates, optionally filtered to one page type. Returns each template's full content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageTypeNoOptional page type filter: custom, gettingStarted, authentication, environments, errorCodes, rateLimits, webhooks, sdks, changelog

TDQS

A3.8/5.0
Behavior4/5

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

Annotations mark this read-only, and the description adds that each template's full content is returned, which is useful beyond the annotation. It does not cover pagination or result size, but those are not critical for a simple list 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?

A single 17-word sentence states the action, the optional filter, and the return payload. 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 simple list tool with one optional parameter and no output schema, the description is sufficient: it names the resource, the filter, and what is returned. Minor omissions like pagination or a pointer to get_org_doc_template for single-template retrieval are not critical.

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 pageType description already lists all valid values, so the schema carries the parameter semantics. The description only restates the optional filter without adding new detail.

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 verb 'List' and resource 'organization's documentation page templates' clearly identify a read-only enumeration. The optional pageType filter adds precision, but it does not explicitly differentiate from sibling get_org_doc_template or list_documentations.

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?

The description implies use for listing all or filtered templates, but it never states when to choose this over get_org_doc_template or list_documentations. The only usage guidance is the optional pageType filter, which is parameter-level rather than tool-selection guidance.

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

List the reusable parameter components of a spec version. Set includeUsageCounts to see how often each one is referenced. 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

A3.7/5.0
Behavior3/5

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

The readOnlyHint=true annotation already covers the safety profile, and the description adds useful context beyond it: the project-context prerequisite is a genuine behavioral requirement not visible in annotations or schema. However, the description does not disclose return format, pagination behavior, or what version is used when versionId is null. It adds some value but not rich 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?

Two sentences with zero filler: the first states the core purpose and scope, the second adds the optional-flag behavior and the prerequisite. The most load-bearing information is front-loaded ahead of the usage note. Every word earns its place.

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

Completeness3/5

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

For a three-parameter list tool with readOnlyHint=true, the description covers purpose, the optional flag's purpose, and the project-context prerequisite. However, with no output schema present, the description does not explain the return shape or pagination, and it does not clarify the behavior when versionId is omitted (which version is listed). These are meaningful gaps for an agent invoking 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 three parameters. The description's note about includeUsageCounts essentially restates the schema's param description ('Also return how often each component is referenced') without adding syntax, format, or interaction details. Baseline 3 is appropriate since the schema carries 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), a specific resource (reusable parameter components), and scope (of a spec version). It distinguishes itself from sibling tools like list_header_components, list_request_body_components, and list_response_components by naming the component type explicitly. An agent can route to the right tool without opening any schema.

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?

The description provides a prerequisite ('Requires project context') and explains when to set includeUsageCounts ('to see how often each one is referenced'). However, it does not explicitly address when to prefer this tool over get_parameter_component or the sibling list_*_components tools, and it offers no exclusions or when-not-to-use guidance. Usage context is implied rather than explicit.

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

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. 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?

Annotations already declare readOnlyHint=true, and the description adds valuable context: personal variables override others, are private, secret values are masked, and organization context is required. These behavioral details go beyond what annotations provide, though it does not cover pagination or return format.

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 that front-load the core action, then add scope, behavior, and requirements. No filler or redundancy; 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 a read-only annotation and two well-documented parameters, the description covers the key aspects: scope, behavior, visibility, masking, and context requirement. While it omits response format or pagination, these are minor for a list 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?

Schema description coverage is 100%, so both projectId and environmentId are already documented in the schema. The description does not add parameter-specific semantics, so it stays at the baseline of 3 where 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 resource ('personal variables'), scoped to 'one environment', which clearly distinguishes it from sibling tools like list_environment_variables or export_variables. The purpose is immediately unambiguous.

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 this tool by noting personal variables override org/environment variables, are visible only to the user, and require organization context. It does not explicitly mention alternatives, but the scoping and override behavior provide clear contextual guidance for selection.

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

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. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
personaIdNoPublic Id (Guid) of a single persona. When given, only that persona is returned.

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. The description adds valuable behavioral details: secret values are always masked, plain values never leave the server, and project context is required. This exceeds what annotations provide, though it could mention pagination or the default list 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, front-loaded with the primary purpose, then the optional parameter, then the masking behavior and requirement. Every sentence earns its place with 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?

For a simple list tool with one optional parameter and no output schema, the description covers purpose, parameter usage, security masking, and a prerequisite. It does not explicitly state that omitting personaId returns all personas, but this is implied by 'List.' Overall, it is sufficiently 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%, and the schema already explains personaId as a Guid that returns a single persona. The description's 'Pass personaId to get a single one' adds no new meaning beyond the schema, so it stays at the 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 states a specific verb ('List'), resource ('security personas'), and scope ('of the active project'), and clarifies what personas are ('the identities the authorization scanners impersonate'). This clearly differentiates it from sibling tools like test_persona or list_security_guidance.

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 indicates when to use the tool (to list personas) and notes the prerequisite 'Requires project context.' It does not explicitly contrast with alternatives, but the purpose is self-evident and the context requirement is a clear guideline.

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

List all projects in the active organization. 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.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 safety profile is covered. The description adds a valuable behavioral detail beyond the annotation: the tool depends on prior state set by set_context, meaning an agent must sequence calls correctly. This is meaningful context that the annotation alone would 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?

Two sentences, zero filler: the first delivers the purpose and scope, the second delivers the critical prerequisite. Every word earns its place and the most essential 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 read-only list tool with two fully documented optional parameters and a readOnlyHint annotation, the description covers the key operational context: the set_context dependency and the org-scoped semantics. Minor gaps remain — no hint about response shape and no failure-mode note for when context is missing — but these are not critical for a simple list call.

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 skip and take are fully documented with defaults (0 and 50) and take even states a max of 100. The description adds no parameter-specific information, so it correctly rests at the baseline where 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?

States a specific verb ('List'), resource ('all projects'), and scope ('in the active organization'), which clearly separates it from org-scoped listing versus the team-scoped sibling list_team_projects and the single-item get_project. The word 'all' reinforces the bulk-listing nature of the call.

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 a clear and actionable prerequisite: organization context must be established via set_context before invoking. It does not explicitly name alternatives or state when not to use it, so it stops short of the full when/when-not guidance, but the precondition is concrete and useful.

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

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

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

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

List all reusable request body components (OpenAPI components/requestBodies) of an API specification. Optionally include usage counts showing how many endpoints link each 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/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, so the read-only nature is covered. The description adds meaningful behavioral context: optional usage counts ('showing how many endpoints link each component') and the project-context requirement. These go beyond what 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?

Two focused sentences: the first states the core behavior, the second adds optional behavior and a key prerequisite. There is no fluff, redundant phrasing, or wasted words. 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?

Given full schema coverage for parameters and a readOnly annotation, the description is sufficiently complete for a list tool. It names the resource, optional usage counts, and the project-context requirement. No output schema exists, so missing return-value details are not a significant 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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds only a natural-language restatement of includeUsageCounts ('showing how many endpoints link each component'), which does not meaningfully exceed the schema's own description. Thus 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 ('List') and names a precise resource: 'reusable request body components (OpenAPI components/requestBodies) of an API specification.' This clearly distinguishes it from sibling component-list tools like list_header_components and list_response_components.

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?

The description implies when to use the tool—when listing reusable request body components—and adds a prerequisite ('Requires project context'). However, it does not explicitly contrast with sibling tools or state when not to use it, leaving the agent to infer from the name.

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

List the reusable response components of a spec version. Set includeUsageCounts to see how often each one is referenced. 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/5.0
Behavior3/5

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

The annotation readOnlyHint=true is consistent with the 'list' action. The description adds no extra behavioral detail (e.g., pagination, sorting), but given the annotation coverage, the baseline is acceptable.

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 no unnecessary words. It front-loads the primary action and resource, then adds the optional parameter behavior.

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 is simple and has no output schema. The description covers the essential purpose and parameter behavior. It lacks details about response format or pagination, but these are not critical for such a straightforward list operation.

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 each parameter has a clear description (e.g., specId as 'Public ID (GUID)', versionId as 'Optional version ID...', includeUsageCounts as 'Also return how often...'). The descriptions add practical meaning beyond the raw 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'), the resource ('reusable response components'), and the scope ('of a spec version'). This distinguishes it from sibling tools like list_header_components and list_request_body_components.

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?

The description provides a hint about the includeUsageCounts parameter but does not explicitly state when to use this tool over alternatives like list_shared_responses or list_shared_schemas. The purpose is clear but the usage context is implicit.

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

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

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

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. 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.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 value beyond that: it discloses that the tool depends on an active project context, and that the return shape changes depending on which parameter mode is used (pass/fail counts per run vs per-step results). 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, roughly 45 words, with the core purpose front-loaded. The alternate mode and the project-context prerequisite each earn their place, and there is zero 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 4-parameter list tool with readOnlyHint=true and full schema coverage, the description covers the main operating modes, the return shape difference, and the project-context prerequisite. The absence of an output schema means the exact run object shape is undocumented, but the description gives enough for an agent 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.

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 earns a 4 by adding cross-parameter semantics the schema can't express: the conditional exclusivity between runId and scenarioId, and the behavioral consequence of choosing runId (returns per-step results). This gives the agent decision logic, not just field definitions.

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 runs of a scenario with pass/fail counts per run' — and immediately clarifies what each call mode returns (aggregate pass/fail counts vs per-step results for a single run). This distinguishes the tool's two behaviors internally and separates it from siblings like list_scenarios or get_test_run by making the resource and result shape explicit.

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 invocation guidance: it tells the agent when to pass runId versus scenarioId ('Pass runId to get one run with its per-step results instead — scenarioId is then not needed') and states the prerequisite that project context must be set. It stops short of naming sibling tools or explicit when-not-to-use conditions, so it doesn't earn a 5.

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

List all test scenarios in the active project. Scenarios are multi-step workflows that chain test cases with variable passing and conditional execution. 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
Behavior3/5

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

The readOnlyHint annotation already declares this as a safe read operation. The description adds useful context by defining scenarios and stating that project context is required, but it does not disclose additional behavioral details such as response shape, ordering, or pagination behavior beyond what the schema 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?

Two sentences with no filler. The main action is front-loaded, and the scenario definition and context requirement are useful additions that earn their 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 fully documented pagination parameters, the description covers the core behavior, scope, and prerequisite. The absence of an output schema and return-value description is not a major gap because the tool's purpose is straightforward.

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 skip and take both documented directly in the input schema. The description adds no parameter-specific meaning 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?

States a specific verb and resource: 'List all test scenarios in the active project.' It also defines what a scenario is ('multi-step workflows that chain test cases with variable passing and conditional execution'), which differentiates it from sibling tools like list_test_cases and list_scenario_runs.

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 a clear prerequisite: 'Requires project context,' telling the agent that the active project must be set before invocation. It does not explicitly name alternatives or exclusion conditions, so it falls 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.

list_schemasList SchemasA
Read-only

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. 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

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 behavioral detail beyond that: project mode returns groups of structurally identical schemas rather than the full list, specId is ignored in that mode, and usage counts are included. This is valuable context about output shape and parameter handling.

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 organized: the main behavior comes first, optional behavior second, and the project-scope behavioral change is explained in a clearly marked clause. The final prerequisite sentence adds essential context 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?

Given the read-only annotation, full parameter schema coverage, and the absence of an output schema, the description covers the important decisions an agent must make: choosing scope, understanding the different return shape, knowing specId is ignored in project mode, and knowing a project context is required. 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 extra meaning beyond the schema by explaining what usage counts represent ('how many endpoints reference each schema') and clarifying that specId is ignored in project scope. It does not add detail for versionId, but the schema already documents that parameter adequately.

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 action and resource: 'List all schemas of an API specification.' It clearly differentiates the default spec scope from the project scope, where the semantics change to grouping structurally identical schemas. This distinguishes it from siblings like list_shared_schemas 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 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 use the tool and how the project scope changes behavior: 'Set scope to project to look across every spec in the project instead.' It also notes the project-context prerequisite. It does not explicitly name alternative tools or exclusion criteria, so it stops 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.

list_script_snippetsList Script SnippetsA
Read-only

List the project's reusable pre-request and post-response script snippets, with their code and how often each is used. 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.3/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 useful behavioral context: the tool returns snippets along with their code and usage frequency, and it requires project context to be set. This is meaningful 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?

One efficient sentence that front-loads the core purpose, adds return content detail, and ends with the prerequisite. Every clause earns its place, and there is no fluff or repetition of the tool name beyond the natural verb use.

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 is complete: it identifies the resource, the project-scoped context requirement, and the key returned fields (code and usage count). Pagination semantics are already fully covered by the input 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.

Parameters3/5

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

Schema description coverage is 100%, so the input schema fully documents the three parameters (skip, take, searchTerm). The description adds no parameter-specific guidance, but per baseline it doesn't need to since 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 states a specific verb ('List'), a specific resource ('the project's reusable pre-request and post-response script snippets'), and what is included ('code and how often each is used'). This clearly distinguishes it from sibling tools like list_doc_snippets and other list_* tools without needing to open 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?

The description provides clear usage context by stating 'Requires project context,' which tells the agent a prerequisite before invoking the tool. It does not explicitly name alternatives or exclusions, but the resource scope is specific enough that the intended use case is clear.

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
guidanceIdNoId of a single guidance entry, e.g. 'api2-jwt-alg-none'. Returns it with code examples.

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 cover safety. It adds useful behavioral context: the library is global, entries are per OWASP issue, and passing guidanceId returns a single entry with code examples. This goes beyond the annotation to explain return scope and filtering 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 compact sentences with no filler. The verb and resource are front-loaded, the optional-parameter behavior is stated clearly, and the global scope qualifier earns its place by preventing misuse. The parenthetical '(the guidanceId of a finding)' is slightly repetitive but adds clarifying 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 read-only list tool with one optional parameter and no output schema, the description is complete. It explains what is returned (entries with remediation, code examples, references), the optional single-entry behavior, and the global scope. No critical calling 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 documents guidanceId with an example and behavior, so the baseline is 3. The description adds meaning by explaining that guidanceId is 'the guidanceId of a finding', connecting the parameter to findings and helping the agent know where the ID comes from. This is a meaningful addition over the schema's 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 ('List') and a specific resource ('static security guidance library'), and clarifies the content ('one entry per OWASP API-security issue with its remediation text, code examples and references'). It distinguishes itself from siblings by emphasizing 'static' and 'global, not project-specific', which separates it from dynamic security findings or project-scoped guidance 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 gives clear context for when to use the tool: it is a global, static guidance library, and optionally accepts guidanceId for a single entry. It does not explicitly name alternatives or exclusions, but the 'static' and 'global' framing implies when this tool is appropriate versus project-specific or dynamic security tools.

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

List the security schemes a spec version defines (OpenAPI components/securitySchemes). Set includeUsageCounts to see how often each is referenced. 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/5.0
Behavior3/5

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

Annotations already mark it readOnly; the description adds the project-context requirement and the effect of includeUsageCounts. It does not disclose pagination/return shape, but for a read-only list tool the annotation coverage 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 tight sentences, front-loaded with the core action, with no filler. The parenthetical and prerequisit are placed economically.

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 listing with a fully described schema, the description is sufficient: it defines the resource, the optional toggle, and a key prerequisite. Lacking an output schema, a hint of the return shape would be nice but is not critical.

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 3 parameters with descriptions (coverage 100%), so baseline is 3. Description reinforces includeUsageCounts and the spec-version concept but does not add much 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 names a precise verb ('List') and resource ('security schemes'), and clarifies the OpenAPI location ('components/securitySchemes'). This clearly distinguishes the bulk list operation from the singular sibling get_security_scheme_component.

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 clear context: list for a spec version, optionally with usage counts. It also surfaces a prerequisite ('Requires project context') but does not explicitly mention alternatives or when not to use it.

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

list_seedsList SeedsA
Read-only

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. 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.4/5.0
Behavior4/5

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

readOnlyHint=true already signals a safe read operation, so the description only needs to add value beyond that. It does so by explaining what seeds are, that seedId returns a single seed, and that the result includes full step lists and rowVersion. This is useful 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 two sentences with no filler. It front-loads the core action and resource, then adds the key parameter 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 simple read-only list tool with three optional parameters and no output schema, the description covers the main behavior, the single-seed variant, and the project-context requirement. It does not describe the list response shape, but the schema documents pagination and the tool name makes the list return clear enough.

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 beyond the schema by stating that passing seedId returns one seed with its full step lists and rowVersion, details not present in the schema. skip/take are already well described 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 states a specific verb ('List') and resource ('seeds of the active project'), then clarifies what seeds are ('request sequences that set up and tear down test data'). This clearly distinguishes it 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 Guidelines4/5

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

The description gives clear context: it operates on the active project and requires project context. It also explains the alternative behavior when seedId is supplied. It does not explicitly name alternative tools or state when not to use it, but the usage 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.

list_shared_component_usagesList Shared Component UsagesA
Read-only

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

List the share links that exist for a test run, with their access level and expiry. Requires project context.

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

TDQS

A3.8/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 project context requirement and specifies the output fields (access level, expiry), which are behavioral traits beyond the annotation. 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?

A single sentence that front-loads the core action and output, with the prerequisite stated efficiently. 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?

For a simple read-only list tool with one well-documented parameter and no output schema, the description covers the essential return info (share links, access level, expiry) and the requirement for project context. It lacks pagination or error details, but these are minor for such a 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?

The schema provides 100% coverage with a clear description for testRunId ('Public Id (Guid) of the test run'). The description adds no parameter-specific detail beyond what the schema already states, so baseline 3 is appropriate.

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 action (list share links) and the resource (a test run), specifying the output includes access level and expiry. It is distinguishable from sibling list_shared_* tools by the 'for a test run' qualifier, though it doesn't 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 Guidelines3/5

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

It notes the prerequisite 'Requires project context,' which is a useful usage condition. However, it provides no guidance on when to prefer this tool over siblings like list_shared_schemas or list_shared_responses, nor any exclusions.

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

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhich library to read: 'project' (default) or 'org'project

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 safety, so the description's burden is lower. It adds useful behavioral context by stating that each entry includes the id and rowVersion needed for subsequent update or link operations. This goes beyond the schema and helps an agent understand the return 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 two sentences with no filler. The primary action and resource are front-loaded, the scope semantics are explained compactly, and the return value hint earns its place by being directly actionable.

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 one optional parameter, the description is complete. It explains the scope choices and the key return fields. No output schema exists, but the description's mention of id and rowVersion supplies the essential information an agent needs to chain follow-up calls.

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 beyond the schema by clarifying that 'project' means the current project's library and 'org' means the organization-wide library, enriching the otherwise terse schema description.

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 and resource: 'List the reusable responses of the shared library.' It clearly indicates the tool's purpose and scope options. However, it does not explicitly distinguish itself from sibling tools like list_shared_reports or list_shared_schemas, though the noun 'responses' provides implicit 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?

The description gives clear context on when to use each scope value: 'project' reads the current project's library and 'org' the organization-wide library. It does not mention exclusions or alternatives like get_shared_response, but for a simple listing tool 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_shared_schemasList Shared SchemasA
Read-only

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoWhich library to read: 'project' (default) or 'org'project

TDQS

A4.2/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates read-only behavior. The description adds that entries carry id and rowVersion, which slightly informs output, but does not detail pagination or other side effects. 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 sentences, directly conveying the purpose, the scope option, and the output contents 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?

Given the tool's simplicity (one parameter, no output schema), the description is complete: it states the action, resource, scope variants, and what the returned entries include. It lacks only minor details like pagination, which are not critical for a list operation.

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 scope parameter is fully described in both the schema and the description, clarifying the meaning of 'project' and 'org' values. The description reinforces this, adding value beyond the bare 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 schemas of the shared library'), distinguishing it from similar tools like list_schemas by emphasizing 'shared' and 'reusable' and noting the returned id and rowVersion.

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 the scope parameter with default 'project' versus 'org', giving clear guidance on when to use each. It could have explicitly contrasted with list_schemas but the context is sufficient.

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

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. 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/5.0
Behavior4/5

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

With readOnlyHint=true already covering safety, the description adds meaningful behavior: it reveals that the built-in catalog is included by default unless filtered out, and that 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 short sentences deliver the essential purpose, the distinguishing concept, and a key behavioral default without filler. The main action and scope are 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 5 parameters, 100% schema coverage, and no output schema, the description covers the core purpose, scope, and notable default behavior. It slightly under-specifies pagination behavior and relationships to sibling tools, but remains sufficient 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?

Schema description coverage is 100%, so the baseline is 3. The description adds value by tying the isBuiltIn parameter to a concrete behavior ('Includes the built-in catalog unless you filter it out'), which the schema alone does not convey as 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 ('List'), a specific resource ('Smart Mock matching rules'), and a scope ('of one mock server'). It also explains what those rules do ('decide which faker value a field name gets'), which clearly distinguishes this tool from the sibling 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 Guidelines2/5

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

No explicit guidance is given about when to use this tool versus alternatives like list_mock_rules or get_mock_rule_diagnostics. The note 'Requires project context' provides a prerequisite but not a usage context or exclusion.

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

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. 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

A5/5.0
Behavior5/5

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

The description is fully consistent with the readOnlyHint annotation: both indicate a read-only operation (list/get). It explicitly describes the action as listing and retrieving, with no side effects or contradictions, and the annotation reinforces the 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 concise, using two sentences to convey the core functionality and the optional parameter behavior. No unnecessary words or repetition; it gets straight to the point.

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 read-only nature and the clear parameter descriptions, the description provides all necessary context for an agent to invoke the tool correctly. It mentions the required project context, the main function, and the special case for snapshotId—sufficient for correct usage.

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 (skip, take, snapshotId) are described in the schema with clear meanings: pagination controls for skip/take and a filter for snapshotId. The description additionally explains that snapshotId returns a single snapshot, fully covering each parameter's purpose.

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 primary action ('List') and resource ('data snapshots'), and distinguishes this tool from sibling list tools by specifying the snapshot resource. It also clarifies the optional single-snapshot retrieval behavior, leaving no ambiguity about what the tool does.

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

Usage Guidelines5/5

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

The phrase 'Requires project context' provides a clear prerequisite for use. Since sibling tools are all distinct resources (e.g., projects, environments, tags), no alternative selection guidance is necessary—the resource name alone is sufficient to route correctly.

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

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. 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

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 discloses that listing is tied to the active project unless scope='org', that org entries are published APIs, that each entry carries projectId/specId for set_context, 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?

Two sentences front-load the primary behavior, then add the org alternative and the prerequisite. There is no filler or repetition of schema details.

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, this is complete: it defines both scopes, the project-context prerequisite, and the relevant fields in returned entries. Pagination is already documented in the schema, and there is no output schema to rely on.

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 skip/take/scope, so the baseline is 3. The description adds meaning for the scope parameter by explaining what 'project' vs 'org' lists, and it notes the project-context prerequisite, though skip/take semantics are left 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 clearly states a specific action (list) and resource (API specifications) with explicit project vs org scope, and it ties results to set_context. However, it does not name or contrast any sibling tools (e.g., list_available_specs), so the sibling-differentiation bar for a 5 is not fully met.

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 concrete usage context: use scope='org' to list published APIs across every project, and scope='project' requires project context. It does not state explicit exclusions or alternative tools, but the conditions are clear enough for an agent to choose the right scope.

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

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. 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.3/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true; the description adds the prerequisite of project context and explains that tag descriptions are exported as root-level OpenAPI tags and shown in the documentation portal. This provides useful state-dependency context beyond the safety 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 no filler: main action, output contents, and required prerequisite are each conveyed efficiently. 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.

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, the description covers the input precondition, the resource scope, and the returned content (descriptions and display order). No output schema is present, but the description sufficiently describes the return values; no critical call-time 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 specId and versionId are already well documented. The description adds no parameter-specific meaning beyond the schema, though it does reinforce the overall listing purpose. 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 uses a specific verb-resource pair ('List the endpoint tags of an API specification') and states scope (all endpoint tags, including Markdown descriptions and display order). This distinguishes it from sibling get_tag and other list tools 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 Guidelines4/5

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

It clearly states a required precondition: 'Requires project context (call set_context first)'. It does not explicitly name alternatives or when-not conditions, but the purpose is clear enough that an agent can infer when to use this tool versus a singular get_tag.

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

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

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. 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.2/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. The description adds useful behavioral context beyond that: results are returned in execution order, testCaseId returns a full case with request config, assertions, and response extractions, and project context is required. This gives the agent a meaningful picture of tool 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?

Two tightly written sentences cover the main use case, the alternate single-case mode, the dependency between the two identifiers, and the project-context prerequisite. Every clause earns its place, 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.

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 read-only listing tool: it explains both modes, the required context, and what the detailed mode returns. There is no output schema, so a bit more detail about the list response shape could be helpful, but the description combined with the thorough input schema covers the essential invocation decisions.

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 has 100% parameter description coverage, including defaults and the relationship between testCaseId and testSuiteId. The description reinforces that relationship and adds the execution-order nuance, but it does not substantially deepen parameter meaning beyond what the schema already provides. 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 a specific action and resource: listing the test cases of a suite in execution order. It also distinguishes the two modes of the tool (list vs. single test case in full), making it easy to differentiate from the many sibling list_* tools such as list_test_suites or list_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 Guidelines4/5

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

The description provides clear guidance on when to use the testCaseId mode versus the testSuiteId mode, including that testSuiteId is unnecessary when testCaseId is provided. It also notes that project context is required. It does not explicitly name alternative sibling tools or state when not to use the tool, but the usage conditions are clear enough.

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

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. 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.2/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 useful behavioral detail: the list returns 'names and row counts,' while the dataSetId variant returns 'columns and rows.' It also discloses the project-context requirement. It stops short of covering pagination caps or error behavior, but those are partially visible in 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?

Two sentences with no filler. The main action and return contents are front-loaded, the drill-down variant is stated efficiently, and the prerequisite is appended in a short clause.

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 a fully documented schema, the description covers the output shape, the single-set mode, and the context prerequisite. It does not explicitly say testSuiteId is required for listing, but the schema states that, so the description is sufficiently 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 all four parameters are already documented. The description adds a little extra meaning by clarifying the dataSetId mode includes columns and rows, but it does not meaningfully expand on skip/take/testSuiteId beyond what the schema already states.

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 data sets of a test suite' and clarifies what those are ('the tables that drive data-driven runs'). It also distinguishes the drill-down mode via dataSetId, making it clear this is about data sets, not test suites or other sibling resources.

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: list all data sets of a suite, or pass dataSetId to retrieve one full set. It also states a prerequisite ('Requires project context'). It does not explicitly contrast with alternatives like get_test_suite or list_test_suites, but the intended use is unambiguous.

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

List the folders of the active project's test suite tree or scenario tree, flat with parentFolderId per entry. Requires project context.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderTypeNoWhich tree: 'suite' (default) for test suite folders, 'scenario' for scenario folderssuite

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true. The description adds that results are flat with parentFolderId per entry and that project context is required, which is useful given no output schema. It doesn't overpromise or conflict.

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 action and resource, no 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 single optional parameter, read-only tool with no output schema, the description covers purpose, output shape, and prerequisite. No missing detail that would prevent 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 description coverage is 100% and the folderType schema text explains the two trees. The tool description reinforces this but adds no new parameter-level semantics, so baseline 3.

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 ('folders of the active project's test suite tree or scenario tree'), and adds the flat-with-parentFolderId detail. This distinguishes it from generic sibling list_folders and content 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 clearly frames when it applies: listing test suite/scenario folders for the active project. It does not explicitly name alternatives or exclusion conditions, 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.

list_test_schedulesList Test SchedulesA
Read-only

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. 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.4/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 value by stating the scheduleId-vs-testSuiteId conditional behavior and the required project context. It does not over-promise or contradict the annotation, and the mention of returned fields helps set expectations despite the absence of an output schema.

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

Conciseness5/5

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

Three short sentences with no filler. The primary purpose and returned fields come first, the single-schedule alternative second, and the prerequisite third. Every sentence contributes distinct 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?

For a read-only listing tool with fully documented parameters, the description covers the main call modes and return content. The only minor gap is not stating the behavior when both scheduleId and testSuiteId are supplied, but the schema and conditional wording largely disambiguate this.

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 covers all four parameters with full descriptions, so the baseline is 3. The description adds meaningful overlap semantics: passing scheduleId makes testSuiteId unnecessary, which clarifies the relationship between the optional parameters beyond the schema's individual 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 uses a specific verb ('List') with a clear resource ('schedules of a test suite') and identifies the key returned fields (cron expression, timezone, next run time). It is distinct from sibling tools like list_test_suites and list_test_runs, and the scheduleId alternative is explicitly described.

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 usage context: list schedules for a suite, or pass scheduleId to get a single schedule and drop the testSuiteId requirement. It also notes that project context is required. It lacks an explicit comparison to sibling list tools, but the within-tool routing guidance is strong.

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

List all test suites in the active project with stats (test case count, auth mode). 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.2/5.0
Behavior4/5

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

The readOnlyHint annotation correctly indicates a read-only operation, and the description reinforces a non-mutating action. It also transparently notes the dependency on a previously set project context, which will cause failure if absent.

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 with no redundancy. It front-loads the main action and then adds the prerequisite, making it easy 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?

For a simple list operation, the description covers the essential context: the scope (active project), the prerequisite (set_context), and the output highlights (stats). It does not describe response formatting, but skip/take parameters imply standard pagination, and no output schema exists to demand further detail.

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 two parameters (skip and take) have complete schema coverage with descriptions, defaults, and maximums. The tool description does not add extra semantic detail beyond the schema, but none is needed since the parameters are self-explanatory.

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 operation ('List test suites'), the resource ('test suites'), and the scope ('in the active project'). It also mentions the returned statistics and the prerequisite, making the purpose unmistakable.

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

Usage Guidelines4/5

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

Explicitly states the precondition ('Requires project context') and instructs to call set_context first, which is key usage guidance. It does not enumerate alternative tools, but the instruction is sufficient for correct invocation.

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

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

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. 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.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 safety. It adds behavioral value beyond annotations by disclosing that the tool requires project context and that includeSuggestions returns the next major, minor, and patch numbers aligned with the spec's versioning strategy.

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 focused sentences with no filler. The core purpose is front-loaded, the optional flag's significance is explained, and the prerequisite is stated 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?

For a read-only list tool, the description covers purpose, statuses, the meaning of the optional flag, and the required context setup. It does not describe the exact return shape, and there is no output schema, but the missing details are minor given the simple list semantics and pagination parameters already documented in the 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 coverage is 100%, so the schema already documents skip, take, specId, and includeSuggestions. The description adds meaning beyond the schema by explaining that includeSuggestions returns the next version numbers expected by create_version, which is non-obvious 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 a specific verb and resource: list versions of an API specification, and adds the key differentiator of status values (draft/review/published/deprecated). This distinguishes it from siblings like get_version, compare_versions, and list_specs without needing to inspect schemas.

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

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 is needed to obtain suggested version numbers for what create_version expects, and it explicitly calls out the prerequisite of calling set_context first. It does not explicitly name alternatives or exclusions, but the context is strong enough for an agent to decide 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_webhook_deliveriesList Webhook DeliveriesA
Read-only

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

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

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

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

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

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

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

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

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

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 PersonaA

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

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

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.

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

A4.5/5.0
Behavior4/5

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

Annotations already mark this as mutating and destructive, but the description adds critical nuance: partial updates preserve unmentioned categories, categoriesJson can only set overrides, and resetCategories removes them. It also lists valid categories, enriching behavioral understanding beyond the annotation flags.

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 main purpose, then the behavioral details. No filler or redundant phrasing; every sentence contributes actionable 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 mutation tool with no output schema, the description covers purpose, both parameters, valid values, and edge-case behavior (override semantics). An agent has all the information needed to call it correctly, including the list of acceptable categories.

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 at 100%, but the description adds meaning by explaining the relationship between categoriesJson and resetCategories: one sets overrides, the other removes them. This goes beyond the schema's basic type definitions and clarifies the intended usage.

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 ('Set') and resource ('notification preferences'), clearly distinguishing from read operations like get_notification_preferences. Scope is explicit ('YOUR'), and it lists valid categories, leaving no ambiguity about the tool's function.

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

Usage Guidelines4/5

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

Provides strong usage context: categories not mentioned keep current settings, and resetCategories drops overrides. This implies when to use each parameter and contrasts with read tools, though it doesn't explicitly name alternatives. The guidance is clear enough for an agent to decide 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.

validate_specValidate SpecA
Read-only

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. Dates show when Glama detected each change.

  1. 162 tool updatesv1.1.1
    • 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_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_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_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

TDQS

B3.4/5.0
Disambiguation3/5

Most tools target a distinct resource, but pairs like get_header_policies/get_resolved_headers and get_test_results/get_test_runs/get_test_result require careful reading. Several plural get_* tools behave like list_* tools, so selection is not always obvious without reading the descriptions.

Naming Consistency4/5

The dominant <verb>_<resource> snake_case pattern is consistent and readable throughout. The main deviations are semantic: get_* tools sometimes return lists and list_* tools sometimes return single details when passed an ID, but the naming style itself does not become chaotic.

Tool Count1/5

162 tools is an extreme mismatch for a single MCP server, even for a broad platform. The toolset mechanism helps discoverability, but the agent still faces a massive namespace and prohibitive context overhead.

Completeness2/5

Read coverage is deep, but the write surface is almost absent: descriptions repeatedly reference import_spec, create_version, update_folder, link_endpoint, run_test_suite, promote_version and manage_* tools that are not present. These documented next steps are dead ends, preventing full API-life cycle workflows from being executed via MCP.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/routebase-dev/routebase-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server