Skip to main content
Glama
MarkAC007

mcp-server-scf

by MarkAC007

mcp-server-scf

CI Security OpenSSF Scorecard Socket.dev

npm version npm downloads install size License: MIT MCP

MCP Registry

TypeScript Node.js

Security compliance controls, frameworks, and risk management for AI agents.

Give your AI assistant access to 1,451 SCF security controls, 354+ framework mappings (NIST 800-53, ISO 27001, SOC 2, FedRAMP, GDPR), evidence tracking, risk registers, and vendor risk management β€” all through the Model Context Protocol.

Built for the SCF Controls Platform. Maintained by ComplianceGenie.io.

πŸ†• The platform is now open-source, self-hosted software. The SCF Controls Platform β€” SCF-native GRC tooling for the free Secure Controls Framework content β€” is published under AGPL-3.0 at scf-controls-platform-oss. Companies download and host it themselves via Docker Compose.

Having trouble? β†’ docs/troubleshooting.md Β· API key setup β†’ docs/authentication.md Β· How it works β†’ docs/architecture.md


Overview

mcp-server-scf connects AI assistants to the SCF Controls Platform via MCP, enabling natural language interaction with your compliance program. Your AI can browse the full SCF control catalog, track implementation progress, manage evidence collection, assess risks, and monitor third-party vendors β€” all without leaving your editor or chat.

196 tools across 14 domains β€” click through for full parameter tables and example prompts:

Domain

Tools

Description

Catalog

8

Browse 1,451 controls, 354+ frameworks, 5,736 assessment objectives, domains and evidence definitions

Control Scoping

10

Track implementation status across an 8-state workflow; bulk scope and unscope by framework; framework coverage, scope-change preview and per-control overrides

Evidence

41

Evidence tracking (single + batch), tasks, file review, health, validation, AI assessments and review queues

Risk Management

17

5x5 risk matrix, risk register, scoring updates, custom risks, control↔risk traceability, risk profile

Vendor Risk (TPRM)

23

Vendor registry, AI research and assessments, certifications, action items, compensating controls

Organization

10

Users, orgs, audit trail, change cursor, work queues, notifications

Capabilities

19

KSI themes, scorecards, evidence posture, systems inventory, system evidence capabilities, catalog + AI recipes

Webhooks

6

Webhook endpoints, delivery logs, secret rotation

Documents

15

ISMS document generation, section editing, merge resolution, lifecycle transitions, export

Audit Engagements

16

Engagement workspaces, frozen scope, framework-native presentation, auditor access, structured queries

Catalog Reconciliation

9

Preview, decide, apply and roll back an SCF catalog version upgrade for your org

Teams

11

Business functions, teams and rosters, team accountability for controls and evidence (single + batch)

Collaboration

7

User assignments to controls, evidence and tasks; comment threads

Guided Journey

4

The staged path an organisation walks, journey templates, import, and named stage attestation

Which platform operations became tools, which are deferred, and which stay out on purpose is recorded in docs/tool-scope.md.


Related MCP server: Fianu Compliance Intelligence MCP Server

Try it with MCP Inspector

Kick the tires without adding the server to a client β€” MCP Inspector launches a local UI that introspects every tool, its schema, and its description:

npx @modelcontextprotocol/inspector npx -y mcp-server-scf

Inspector opens on http://localhost:6274 and connects to mcp-server-scf over stdio. You'll see all 196 tools, grouped by domain, with their Zod schemas rendered as a live form.

Live tool calls need your instance's URL and an API key β€” export SCF_API_URL and SCF_API_KEY in the same shell before launching Inspector, or set them under the "Environment Variables" tab inside the Inspector UI. Without them, you can still browse schemas and descriptions; tool calls return a configuration error.


Quick Start

1. Self-host the platform & get an API key

The SCF Controls Platform is open-source software you host yourself β€” there is no sign-up. Deploy it from scf-controls-platform-oss (a Docker Compose stack with bundled PostgreSQL, Redis, and MinIO), then:

  1. Set an API_KEY in the platform's .env (generate one with openssl rand -hex 32), or create a key in Settings β†’ API Keys once the app is running.

  2. Note your instance's API URL β€” http://localhost:8000 by default, or your deployed host.

Use that key as SCF_API_KEY and the instance URL as SCF_API_URL (see Configuration).

2. Install β€” one-click

Pick the route for your client.

Claude Desktop β€” the one-click path is the signed .mcpb Desktop Extension below. Claude Desktop does not register a custom URL scheme, so there is no clickable deeplink; instead you drag the .mcpb onto Settings β†’ Extensions and paste your API key once. See anthropics/claude-code#26952 for the upstream tracking issue.

Cursor β€” click the badge below. Cursor registers the cursor:// scheme, so the deeplink opens the IDE with the server config pre-filled:

Install in Cursor

After install, edit the pre-filled SCF_API_URL to point at your instance β€” there is no hosted default.

Prefer to edit config by hand, or on a client without a deeplink (Windsurf, Docker)? See 3. Manual config below.

Claude Desktop Extension (.mcpb)

For Claude Desktop β‰₯ 0.11.0, the easiest install is a signed .mcpb bundle β€” no JSON editing, no npx runtime, no Node required on the host:

  1. Download mcp-server-scf-<version>.mcpb from the latest GitHub release.

  2. Double-click the file (or drag it onto Claude Desktop β†’ Settings β†’ Extensions).

  3. When prompted, paste your scf_… API key. It's stored in your OS keychain, not in a config file.

  4. Claude Desktop restarts the server and all 196 tools are available.

To uninstall or update the API key later: Settings β†’ Extensions β†’ SCF Controls Platform β†’ Configure.

3. Manual config

Claude Desktop β€” edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "scf": {
      "command": "npx",
      "args": ["-y", "mcp-server-scf"],
      "env": {
        "SCF_API_KEY": "your_api_key_here",
        "SCF_API_URL": "http://localhost:8000"
      }
    }
  }
}

Claude Code:

claude mcp add scf -- npx -y mcp-server-scf
export SCF_API_KEY="your_api_key_here"
export SCF_API_URL="http://localhost:8000"

Cursor / Windsurf β€” same JSON shape as Claude Desktop in .cursor/mcp.json (or the equivalent Windsurf path).

Docker:

{
  "mcpServers": {
    "scf": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "SCF_API_KEY", "-e", "SCF_API_URL", "markac007/mcp-server-scf"],
      "env": {
        "SCF_API_KEY": "scf_your_api_key_here",
        "SCF_API_URL": "https://scf.your-domain.example"
      }
    }
  }
}

Configuration

Variable

Required

Default

Description

SCF_API_KEY

Yes

β€”

API key from your self-hosted platform instance

SCF_API_URL

Yes

β€”

Base URL of your self-hosted platform (e.g. http://localhost:8000). The former hosted default is decommissioned.


Example Prompts

Once connected, try asking your AI assistant:

  • "What NIST 800-53 controls apply to access control?"

  • "Show me my organization's control implementation progress."

  • "List all critical vendors and their risk scores."

  • "Create a risk assessment for our cloud migration."

  • "What evidence do I need to collect for SOC 2 audit?"

  • "Show the 5x5 risk matrix for my organization."

  • "Run a DPSIA on our cloud provider vendor."

More examples live in each per-domain doc under docs/tools/.


Documentation


Security

  • API keys are never logged or included in error messages.

  • Keys are SHA-256 hashed server-side. Use HTTPS for any instance reachable beyond localhost.

  • Rate limiting: 100 req/min read, 20 req/min write.

  • Multi-tenant β€” all operations scoped to your organization.

  • npm package published with provenance attestation via OIDC trusted publishing.

  • CI includes Gitleaks secret detection, CodeQL analysis, and Semgrep SAST.

See SECURITY.md to report a vulnerability.


Privacy Policy

mcp-server-scf is a stateless connector β€” it stores no user data itself. All data flows directly between your MCP client and your own SCF Controls Platform instance, authenticated with your API key; nothing is sent to, or retained by, any third party. See the full privacy policy for details.


Development

git clone https://github.com/MarkAC007/mcp-server-scf.git
cd mcp-server-scf
npm install
npm run build
npm run dev        # Watch mode
npm run lint       # ESLint
npm test           # Vitest

Testing with MCP Inspector

SCF_API_KEY=scf_your_key npx @modelcontextprotocol/inspector node build/index.js

Contributing

Contributions welcome! Please read CONTRIBUTING.md before submitting PRs.

This project follows the Contributor Covenant β€” see CODE_OF_CONDUCT.md. By participating, you are expected to uphold this code.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request


License

MIT β€” see LICENSE.


Available Tools

196 tools
scf_add_custom_risk_controlA

Link a scoped control to a custom risk (write β€” editor+ role). The control must already be scoped (in-scope) for this organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idYesSCF control ID to link (e.g., 'AST-01') β€” obtain from scf_list_scoped_controls
risk_codeYesCustom risk code in R-ORG-N format (e.g., 'R-ORG-1') β€” obtain from scf_list_custom_risks

TDQS

A4.2/5.0
Behavior4/5

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

The description adds permission context ('editor+ role') and a prerequisite ('control must already be scoped') beyond what the annotations provide. Since readOnlyHint=false and destructiveHint=false are consistent with a non-destructive write operation, 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?

Two telegraphic sentences, with the core operation and role in the first and the key prerequisite in the second. 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?

The definition covers operation, permission, and prerequisite, and the schema provides complete parameter semantics. It does not describe success/error response, but for a simple additive link operation with no output schema this is a minor 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 are fully documented in the input schema, including UUID format, examples, and source tool names. The description itself adds no extra parameter 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?

The description states a precise action ('Link a scoped control to a custom risk') and specifies the operation type (write) and required role. The verb 'Link' and the noun phrases distinguish it from sibling list/remove operations 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 gives an explicit precondition: the control must already be scoped (in-scope) for the organization. It also indicates the editor+ role requirement. It does not explicitly name an alternative for unscoped controls, but the condition is clear enough for an agent to route correctly.

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

scf_add_engagement_auditorA

Grant an existing user read access to one engagement (write β€” admin role). Scoped to that engagement's frozen scope and queries only; re-granting a revoked auditor reactivates the grant.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
user_idYesUUID of an existing user to grant engagement access to β€” obtain from scf_list_members
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A4/5.0
Behavior4/5

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

The description discloses that re-granting a revoked auditor reactivates the grant, a behavioral nuance not covered by annotations. It also clarifies that access is scoped to frozen scope and queries. Since annotations only indicate non-read-only and non-destructive, the description adds valuable behavioral context 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?

The description is two sentences, front-loads the main action, and provides essential details without redundancy. Every clause adds informationβ€”the action, the scope, and the reactivation behaviorβ€”making it highly efficient.

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

Completeness4/5

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

For a simple grant operation with three fully documented parameters and no output schema, the description covers the action, scope, and a key edge case (re-granting). It does not explicitly state prerequisites like required admin permissions, but the 'write β€” admin role' hint implies this. Overall, it is sufficiently complete for an agent to call the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a clear description including how to obtain the UUID (e.g., from scf_list_organizations). The tool description does not add parameter-specific details 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 clearly states the action: granting an existing user read access to one engagement. It specifies the resource (engagement) and the recipient (existing user), and distinguishes from sibling tools like remove_engagement_auditor. The phrase 'write β€” admin role' adds a slight ambiguity but does not obscure the core purpose.

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

Usage Guidelines3/5

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

The description explains the scope of access (frozen scope and queries only) and mentions the re-grant behavior for revoked auditors, which gives context on when this tool is appropriate. However, it does not explicitly compare to alternatives such as scf_remove_engagement_auditor or scf_list_engagement_auditors, leaving the agent to infer 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.

scf_add_team_memberA
Destructive

Add an organization member to a team as primary, delegate or member (write β€” admin role). Adding a primary or delegate when the seat is taken demotes the incumbent to member.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
team_idYesTeam UUID β€” obtain from scf_list_teams
user_idYesUser UUID β€” obtain from scf_list_members
membership_roleYesSeat on the team

TDQS

A4.4/5.0
Behavior4/5

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

The description discloses the demotion side-effect (incumbent becomes member) and notes it's a write operation requiring admin. This goes beyond the annotations, which already mark destructiveHint=true, and provides meaningful 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 no filler. The critical behavioral detail (demotion) is included, and the sentence structure front-loads the action and role options.

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 write operation with four well-documented parameters and an explicit demotion rule, the description covers the essential context an agent needs. It doesn't specify return values, but no output schema exists and the behavior is 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?

The schema already describes all four parameters with sources for IDs. The description adds semantic meaning for membership_role by explaining the three roles and the demotion rule, which clarifies the enum values beyond the schema's generic 'Seat on the team'.

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

Purpose5/5

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

The description states a specific action ('Add an organization member to a team'), the resource involved, and the allowable roles. It clearly distinguishes from siblings like scf_remove_team_member and scf_update_team by focusing on the add operation and the role semantics.

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 the operation requires an admin role and explicitly notes the demotion behavior when a seat is taken. It doesn't name specific alternatives, but the context makes when to use this tool unambiguous given the sibling set.

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

scf_apply_catalog_reconciliationA
Destructive

Apply a previewed reconciliation run (write β€” admin role). Asynchronous. The run must be 'previewed' and expected_to_version must match, so a stale preview is refused rather than applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
run_idYesReconciliation run UUID β€” obtain from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation
expected_to_versionYesThe target catalog version from the run detail β€” guards against applying a stale preview

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=true), the description adds valuable behavioral context: admin role requirement, asynchronous execution, and the stale-preview guard. It also explains a failure mode (refusing stale previews), which is exactly the kind of info annotations don't convey. This is rich, non-redundant disclosure.

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

Conciseness5/5

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

The description is compact and front-loaded: the core action, authorization, and async nature appear in the first sentence, followed by the key precondition and rationale. Every sentence earns its place; 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.

Completeness4/5

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

For a destructive, async write operation with no output schema, the description covers the essential preconditions, auth, and failure behavior. It doesn't explicitly state how to track the async result, but the sibling tool scf_get_catalog_reconciliation_status is present in context, so the agent can discover the next step. Minor gap: no mention of what a successful apply returns or whether it is undoable.

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 covers all three parameters with descriptions, including expected_to_version's role in guarding stale previews. The tool description reiterates the expected_to_version matching condition but adds no new parameter-level semantics. With 100% schema coverage, 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 opens with a specific verb and resource: 'Apply a previewed reconciliation run'. It adds context that this is a write operation requiring an admin role, and the 'previewed' qualifier distinguishes it from preview, list, rollback, and cancel siblings. This is a clear, unambiguous statement of what the tool does.

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

Usage Guidelines4/5

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

The description provides clear preconditions: the run must be 'previewed' and expected_to_version must match, with a concrete reason ('a stale preview is refused rather than applied'). This implicitly tells the agent to first obtain a preview before applying. It does not explicitly name alternative tools or exclusions, but the workflow implication is strong enough to guide usage.

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

scf_attest_journey_stageA
Destructive

Pass a journey stage by named attestation (write β€” editor+). The ONLY way a stage passes β€” nothing advances on computed evidence β€” and who attested is recorded. A conditional pass needs target_date.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoWhat was checked, and by whom, in the attester's own words
org_idYesOrganization UUID β€” obtain from scf_list_organizations
stage_idYesJourney stage UUID β€” obtain from scf_get_journey
conditionalNoPass with named items still outstanding (default false). Requires target_date.
target_dateNoWhen outstanding items are due (YYYY-MM-DD) β€” required when conditional is true

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=false and destructiveHint=true; the description reinforces this with 'write β€” editor+' and adds that the attester is recorded. It also flags the exclusive side effect ('The ONLY way a stage passes') and the conditional-pass constraint, giving the agent behavioral context 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?

Three short sentences: purpose, exclusivity/side effect, and conditional-pass rule. No filler or repetition of schema property descriptions.

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 and a write/destructive tool, the description covers permission level, what happens when called, and the condition for target_date; the schema covers identifier sourcing. It is complete enough to invoke correctly, though it does not spell out reversibility or response shape.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters, including that conditional requires target_date. The description reinforces the conditional/target_date dependency but does not add new parameter-level 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?

Description opens with 'Pass a journey stage by named attestation' β€” a specific verb, resource, and mechanism. It further distinguishes itself by declaring it is 'The ONLY way a stage passes β€” nothing advances on computed evidence', so an agent can see this is the write pathway, not a computed assessment.

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 when-to-use context: passing is manual/named and nothing advances automatically, so the agent knows not to wait for computed evidence or use a read-only journey tool. It also states conditional passes require target_date. It does not name an alternative tool, but within this domain there is no equivalent stage-passing sibling, so no exclusion is needed.

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

scf_batch_create_team_assignmentsA
Destructive

Assign one team to up to 500 controls or evidence items in one transaction with one aggregate notification (write β€” admin role). The bulk accountability tool.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesItem kind
org_idYesOrganization UUID β€” obtain from scf_list_organizations
team_idYesTeam UUID β€” obtain from scf_list_teams
item_idsYesItem UUIDs to assign, max 500
is_accountableNoMake this the accountable team (default false)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false and destructiveHint=true, but the description adds valuable behavior beyond that: it is explicitly a write operation, requires an admin role, executes in one transaction, and produces one aggregate notification. It does not elaborate on side effects like overwriting existing assignments, but it meaningfully exceeds the annotation baseline.

Agents need to know what a tool does to the world before 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 with no filler: the core action and limits are front-loaded, followed by a memorable one-line purpose tag. Every clause carries 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 batch write tool with five parameters and no output schema, the description covers the essential operational constraints: max batch size, item types, transaction semantics, notification behavior, and role requirement. It could be more complete by mentioning whether prior assignments are replaced, but the essentials for correct invocation 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?

Schema description coverage is 100%, so the baseline is 3; the schema already documents org_id, team_id, type, item_ids, and is_accountable. The description reinforces that item_ids target controls or evidence and caps at 500, but it does not add deeper meaning such as the default false behavior of is_accountable or interaction with existing assignments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Assign'), a precise resource ('one team to up to 500 controls or evidence items'), and a clear transactional scope. It also adds the tagline 'bulk accountability tool' that distinguishes it from the single-item sibling scf_create_team_assignment and the read-only scf_list_team_assignments.

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 communicates clear usage context: this is the batch variant, capped at 500 items, for assigning one team across controls or evidence. It does not explicitly name scf_create_team_assignment as the alternative for single assignments, nor 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.

scf_batch_update_controlsA

Batch-update up to 500 scoped controls in one transaction (write β€” editor+ role). Each operation identifies its target by scf_id; status values are lowercase.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
operationsYesUpdate operations to apply (1–500 per call)

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds that this is a write operation requiring editor+ role, executes in one transaction, and caps at 500 operations. It also flags the lowercase status-value convention, which helps avoid validation 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?

Two sentences front-load the core purpose and constraints: limit, transaction, role, target key, and status format. There is no filler or redundant restatement of schema details.

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

Completeness4/5

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

The description covers the critical behavioral context: write access, editor+ role, transaction semantics, batch limit, and scf_id targeting. Since parameter details are fully captured in the schema and there is no output schema, this is sufficient 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?

The input schema already documents every parameter with descriptions, enums, and formats (100% coverage), so the description adds little new field-level meaning. It reinforces that scf_id is the operation target and that status values must be lowercase, but those facts already appear 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?

States a specific action ('Batch-update'), resource ('scoped controls'), and a concrete bound ('up to 500') in one transaction. The write designation and editor+ role further distinguish it from read-only siblings like scf_list_scoped_controls.

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 'batch' framing and 'up to 500' limit clearly indicate when this tool should be used for multi-control updates, and the editor+ role requirement sets an authorization precondition. It does not explicitly name the single-update sibling scf_update_scoped_control as an alternative, but the context is clear.

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

scf_batch_update_evidenceA

Create or update up to 500 evidence tracking records in one transaction (write β€” editor role). Each upserts by evidence_id; only fields given change. Use instead of 500 scf_update_evidence calls.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
operationsYesUpsert operations, max 500 β€” each keyed by evidence_id

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already signal write (readOnlyHint=false) and non-destructive (destructiveHint=false), and the description adds meaningful context beyond that: it runs in one transaction, requires editor role, and applies partial updates so only provided fields change. The 'one transaction' wording also implies all-or-nothing behavior, which is valuable for an agent deciding whether to call this 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 dense sentences with no filler. The first sentence delivers scope, capacity, atomicity, and role; the second adds upsert semantics and points to the appropriate sibling tool. Every clause 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 2-parameter batch write with a fully described schema, the description covers capacity, transactionality, permissions, partial-update behavior, and sibling routing. No output schema exists, but nothing essential for selecting or calling the tool 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 valuable cross-parameter semantics by stating that each operation is keyed by evidence_id and that only given fields changeβ€”information not fully expressed by individual parameter descriptions. This elevates it above 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 and resource: create or update up to 500 evidence tracking records in one transaction. It further clarifies the upsert key (evidence_id) and distinguishes this batch operation from single-record tools like scf_update_evidence. There is 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 explicitly frames when to use the tool: 'Use instead of 500 scf_update_evidence calls.' It also indicates an access prerequisite (editor role), giving an agent both the trigger condition and the relevant alternative. This is clear routing guidance with no inference required.

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

scf_bulk_assess_evidenceA

Queue AI assessments for multiple evidence files (write β€” editor+ role, async, max 50). Provide evidence_id, file_ids, and/or assess_unassessed. Returns count queued.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idsNoSpecific evidence file UUIDs to assess
evidence_idNoEvidence ID β€” assesses every file under this evidence item
assess_unassessedNoAlso assess every file that has no existing assessment (default false)

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false; the description adds meaningful behavior: the operation is a write, requires editor+ role, is asynchronous, caps at 50 files, and returns a queued count. This goes well 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?

Three short sentences pack the essential facts: purpose, role, async behavior, batch limit, input options, and return value. Every clause earns its place and the most important constraints 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?

For a four-parameter tool with no output schema, the description covers the operation, permissions, async behavior, limits, selector inputs, and return value. It is slightly incomplete in not stating explicitly that at least one of evidence_id/file_ids/assess_unassessed is practically needed to do useful work.

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 each parameter. The description's 'Provide evidence_id, file_ids, and/or assess_unassessed' adds minimal grouping guidance but does not meaningfully clarify syntax or semantics beyond the schema.

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

Purpose5/5

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

The description names a specific verb ('Queue'), a specific resource ('AI assessments for multiple evidence files'), and key constraints (write, editor+ role, async, max 50). The bulk scope clearly distinguishes it from single-file assessment 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 tells the agent what to provide ('evidence_id, file_ids, and/or assess_unassessed') and conveys the async nature and batch limit. It does not explicitly contrast with close siblings like scf_trigger_evidence_assessment, 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.

scf_bulk_assess_windowsA

Queue windowed AI assessments for up to 25 evidence IDs (write β€” editor+ role, async). Items without tracking or a frequency set are reported under skipped_detail in the response.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idsYesEvidence IDs to assess (e.g., ['E-IAM-01','E-BCM-11']); 1–25 per request

TDQS

A4/5.0
Behavior4/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses that this is a write operation requiring editor+ role, that it is async, and that items lacking tracking or a frequency set appear under `skipped_detail`. This meaningfully explains side effects and edge-case behavior, though it does not detail post-queue tracking or partial failure semantics.

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

Conciseness5/5

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

Two sentences with no filler; the core operation is front-loaded, and the parenthetical captures role and async behavior efficiently. The skipped-item behavior is placed where it is actionable.

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 2-parameter async queue operation, the description covers inputs, role requirement, async behavior, and a key response field (`skipped_detail`). It does not mention how to check the outcome of the queued assessments, but sibling tools exist for that and no output schema is expected.

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 adds the skipped_detail behavior tied to evidence_ids, but does not add new syntax, format, or selection guidance beyond what the input schema already documents.

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

Purpose5/5

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

The description uses a specific verb ('Queue') and resource ('windowed AI assessments'), and scopes the operation to 'up to 25 evidence IDs.' This clearly distinguishes it from the single-item trigger/list/get siblings like scf_trigger_window_assessment and scf_get_window_assessment.

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 batch usage with 'up to 25 evidence IDs' and notes the async write nature, but it does not explicitly state when to prefer this over scf_bulk_assess_evidence or scf_trigger_window_assessment. No exclusions or alternative routing are provided, so the agent has to infer the intended use case.

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

scf_bulk_unscope_frameworkA
Destructive

Remove from scope every control mapped only to the given frameworks (destructive write β€” editor role). Controls shared with another in-scope framework are kept; notes and status survive.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
frameworksYesFramework slugs to remove, e.g. ['iso_27017_2015'] β€” obtain from scf_list_frameworks
removal_reasonNoWhy these controls leave scope β€” recorded in the audit trail

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, and the description reinforces this with 'destructive write' and 'editor role'. It adds valuable behavioral context beyond annotations: the precise removal condition (controls mapped only to given frameworks), the preservation of shared controls, and that 'notes and status survive'. This is strong disclosure for a destructive operation.

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

Conciseness5/5

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

Two sentences with zero waste. The destructive warning and role requirement are front-loaded, followed by the precise scoping rule and the survival guarantee. 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 destructive bulk operation with no output schema, the description covers the key facts an agent needs: what gets removed, what gets kept, what survives, and the required role. It does not mention audit trail behavior (though removal_reason param hints at it) or whether the operation is reversible, but the core decision-making context is 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 all three parameters. The description adds context about the overall operation but does not add meaning beyond the schema for individual parameters. 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 ('Remove from scope'), a precise resource ('every control mapped only to the given frameworks'), and the exact condition that distinguishes it from related scoping tools ('Controls shared with another in-scope framework are kept'). This clearly differentiates it from siblings like scf_scope_framework and scf_update_scoped_control.

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 semantics of the operation: only controls mapped exclusively to the given frameworks are removed, while shared controls are kept. It also notes the destructive nature and editor role requirement. However, it does not explicitly name alternative tools or state when to use this vs. scf_scope_framework or scf_update_scoped_control, so it falls just 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.

scf_cancel_catalog_reconciliationA

Cancel a reconciliation run that has not been applied (write β€” admin role). The organization stays on its current catalog version.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
run_idYesReconciliation run UUID β€” obtain from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description carries the burden of explaining behavior. It adds that this is a write operation requiring admin role, that it applies only to unapplied runs, and that the catalog version is unchanged β€” useful context 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 a single, compact sentence that front-loads the core action, then provides the precondition, permission, and safety outcome. Every clause earns its place with no redundant wording.

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 mutation tool with no output schema, the description covers the essential context: what is cancelled, when it can be cancelled, who is allowed to cancel it, and what happens to the catalog. It could be slightly more complete by pointing to rollback as the alternative for applied runs, but overall it is well-rounded.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have descriptive provenance (org_id from scf_list_organizations, run_id from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation). The description adds no additional parameter-level meaning, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Cancel') and resource ('a reconciliation run'), and adds the key condition 'that has not been applied.' It also signals the write nature and admin role requirement, making the tool's purpose distinct from related reconciliation operations like apply or rollback.

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 states the precondition 'has not been applied' and the outcome 'The organization stays on its current catalog version,' which gives an agent clear context for when cancellation is appropriate. However, it does not explicitly name alternatives such as scf_rollback_catalog_reconciliation for runs that have already been applied, so it stops short of full when-not/alternative guidance.

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

scf_complete_evidence_taskA

Mark an evidence collection task completed (write β€” editor role). Sets status to completed and stamps the completion date; optional completion notes are stored with it.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesEvidence task UUID β€” obtain from scf_list_evidence_tasks
completion_notesNoNotes recorded on completion

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already mark it as a write operation (readOnlyHint=false, destructiveHint=false). The description adds meaningful context beyond the annotations: it explicitly states the editor role requirement, that the status is set to completed, that a completion date is stamped, and that notes are persisted. It does not mention reversibility or idempotency, but for a simple status transition 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?

A single sentence with no filler. The purpose and role are front-loaded, followed by the two behavioral effects and the notes detail. 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?

The tool is a simple state transition with two simple parameters and no output schema, so the description covers the essential call context: what changes, who can call it, and what inputs matter. It could mention error cases or idempotency, but nothing required for a correct call 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 both parameters already have good descriptions β€” task_id even points to how to obtain it (scf_list_evidence_tasks) and completion_notes says 'Notes recorded on completion'. The description adds minor value by clarifying that completion notes are optional and that a completion date is stamped, but 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 opens with a specific verb-resource pair: 'Mark an evidence collection task completed (write β€” editor role)', which unambiguously identifies the action and target. It further specifies what the operation does β€” sets status to completed, stamps the completion date, stores optional notes β€” making it distinct from sibling tools like create/update/delete evidence task variants.

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 context is clear: use this tool when an evidence collection task should be transitioned to completed, with optional notes. It does not explicitly name alternatives or exclusions (e.g., 'for other edits use scf_update_evidence_task'), so it misses the top tier, but the described purpose makes the usage situation obvious 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.

scf_create_assignmentA

Assign a user to a control, evidence item or task as primary or collaborator (write β€” editor role). Use scf_batch_update_evidence for evidence owners in bulk.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoAssignment role (default primary)primary
user_idYesAssignee β€” obtain from scf_list_members
assignable_idYesScoped control, evidence tracking or task UUID
assignable_typeYesItem kind

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description's 'write' is consistent but adds little new information. The 'editor role' provides a permission nuance not in the annotationshola, but there is no disclosure of idempotency, duplicate-handling, or post-creation effects. With annotations covering the primary safety profile, this is a minimal but acceptable addition.

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

Conciseness5/5

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

Two sentences with zero waste. The action is front-loaded, the parameters are implied, and the alternative tool is mentioned at the end as a pointer. Every word contributes to selecting or invoking the tool correctly.

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 flat create operation with no output schema)Skip, the description is sufficient for correct invocation: it names the resources, roles, and the relevant bulk alternative. It could mention reversibility via scf_delete_assignment or behavior on duplicate assignments, but those are not necessary for correct selection or 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%: each parameter (assignable_type, assignable_id, user_id, role) has a detailed description including UUID format and source (scf_list_members). The tool description merely mirrors the enum values (control, evidence, task; primary, collaborator) without adding new parameter-level details. Baseline 3 is appropriate when the schema carries the full 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 ('Assign') and resource ('a user to a control, evidence item or task'), lists the allowed roles (primary or collaborator), and includes a permission note ('write β€” editor role'). It clearly differentiates from the bulk update sibling by naming it directly, so an agent can identify what this tool does at a glance.

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 points to scf_batch_update_evidence for bulk evidence owner updates, which is an exclusion condition for this tool. It also conveys the role options that affect behavior. While it doesn't mention team assignments, the schema's user_id parameter implicitly limits to individual users, and the explicit alternative satisfies the requirement.

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

scf_create_commentA

Post a comment on a control, evidence item or task (write β€” any member). Mention users by UUID to notify them; set parent_comment_id to reply in a thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesComment body
mentionsNoUser UUIDs to notify
commentable_idYesScoped control, evidence tracking or task UUID
commentable_typeYesItem kind
parent_comment_idNoReply to this comment

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the safety profile is covered. The description adds context about permission ('any member') and side effects (notifying mentioned users, threading), which goes beyond annotations. However, it does not disclose details like immediate visibility, idempotency, or rate limits, leaving some gaps.

Agents need to know what a tool does to the world before 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 primary action first, then efficiently adds two key usage notes (mentions and threading). Every word earns its place 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 simple create operation with a fully documented schema, the description covers the essential behavior: what it creates, the permission context, and the two special features. It does not mention the return value, but that is not critical for a create tool and no output schema exists. The description is 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.

Parameters3/5

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

Schema description coverage is 100%, so all parameters are documented in the schema. The description largely restates schema details (mentions notify users, parent_comment_id is a reply) without adding new meaning. It meets the baseline for full schema coverage but does not enrich parameter understanding further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Post a comment' and the specific resource types (control, evidence item, task). It also includes a permission note ('any member') and distinguishes from sibling comment tools like list, update, and delete by focusing on creation. 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 Guidelines3/5

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

The description does not explicitly contrast with alternatives such as scf_update_comment or scf_list_comments, but the creation intent is clear. It does provide a specific use case (replying via parent_comment_id) and mention behavior, which implies when to use it. However, it lacks explicit guidance on when not to use it or when to choose a sibling tool.

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

scf_create_compensating_controlA

Record a compensating control for a vendor gap (write β€” editor role): what the gap is, what offsets it, and how effective that is (full, partial or minimal β€” default partial).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
gap_descriptionYesThe gap the control offsets
compensating_controlYesThe control that offsets the gap
effectiveness_ratingNoEffectiveness (default partial)
risk_reduction_notesNoHow much residual risk this removes

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false and destructiveHint=false, indicating a non-destructive write. The description adds value by explicitly stating '(write β€” editor role)', which clarifies the permission requirement, and it mentions the default effectiveness rating ('default partial'), which is not present in the schema annotations. 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 primary purpose and includes the role and default behavior. There is no waste; every clause contributes meaning. It is appropriately concise for a create operation with a well-documented schema.

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

Completeness4/5

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

The description is complete for a create tool with no output schema. It explains the core purpose, the role requirement, and the default effectiveness. It relies on the schema to document parameter details, which it does well. It could mention that this creates a new record, but the name and verb make that clear. Overall, 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 coverage is 100% with each parameter described, so the baseline is 3. The description adds some semantic clarity by summarizing the core fields: gap_description is 'what the gap is', compensating_control is 'what offsets it', and effectiveness_rating is 'how effective that is'. It also notes the default for effectiveness. However, it does not add new meaning for org_id, vendor_id, or risk_reduction_notes beyond what the schema already provides.

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 'Record' and the resource 'compensating control' with the specific context 'for a vendor gap'. It also lists the key inputs (what the gap is, what offsets it, effectiveness) which makes the purpose unambiguous. However, it does not explicitly contrast with the sibling update/delete tools, so it relies on the name and context for 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 the tool is for creating a new compensating control by using 'Record', and it provides context ('for a vendor gap'). It does not explicitly state when to use it versus scf_update_compensating_control or scf_delete_compensating_control, nor does it mention any exclusions or prerequisites beyond the editor role. 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.

scf_create_custom_riskA

Create a custom org-defined risk (write β€” editor+ role). Auto-generates an R-ORG-N code and creates the matching risk assessment record.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesRisk title (required, max 100 chars)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
descriptionYesRisk description (required)
category_nameNoCategory label shown in UI (default 'Custom')
category_colorNoHex color for the category badge, e.g., '#6b7280' (default '#6b7280')

TDQS

A4.2/5.0
Behavior5/5

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

Annotations already signal write (readOnlyHint=false) and non-destructive, and the description goes well beyond them: it discloses the editor+ role requirement, the auto-generation of the R-ORG-N code, and the non-obvious side effect of also creating the matching risk assessment record. That side effect is exactly the kind of behavioral context an agent needs 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 tightly packed sentences: the first delivers the verb, resource, and permission requirement; the second discloses the two side effects. No filler, no repetition of schema content, 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 moderate-complexity create tool with full schema coverage and annotations, the description covers purpose, permission, code generation, and side effects. The only notable gap is return-value behavior (does it return the created risk object or the generated code?), which matters because there is no output schema to fill that in.

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 fully documents all five parameters, giving a baseline of 3. The description adds marginal value by implying no code parameter is needed (the R-ORG-N code is auto-generated), but it does not elaborate on title, org_id, description, or the two category defaults 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?

States a specific verb ('Create'), resource ('custom org-defined risk'), and key side effects (auto-generated R-ORG-N code, matching assessment record). The 'org-defined' qualifier plus 'Custom' in the title clearly distinguishes this from the sibling scf_create_risk, so an agent can tell them apart 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 Guidelines3/5

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

Implies when to use it β€” when an org-defined custom risk is needed rather than a standard risk β€” and states the editor+ role prerequisite. However, it never explicitly names the alternative (scf_create_risk) or states when not to use this tool, leaving the contrast to inference.

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

scf_create_engagementA

Create an audit engagement in draft (write β€” editor role). Freezes the in-scope controls for the named frameworks against the current catalog version, so the scope renders after deprecations.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesEngagement name, e.g. a framework and audit period
org_idYesOrganization UUID β€” obtain from scf_list_organizations
end_dateNoFieldwork end date, ISO 8601 (YYYY-MM-DD)
frameworksYesFramework identifiers in scope β€” obtain from scf_list_frameworks
start_dateNoFieldwork start date, ISO 8601 (YYYY-MM-DD)

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate write and non-destructive, but the description adds key behavior: freezes in-scope controls against current catalog version and requires editor role. This adds context beyond the annotations.

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

Conciseness5/5

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

One concise sentence, front-loaded with purpose and includes the important scope-freezing side effect without verbosity.

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?

Complete for a creation tool: explains purpose, draft status, scope freezing, and permission. No output schema is present, but that is not required. Minor lack of return value details is acceptable.

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

Parameters3/5

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

Schema coverage is 100% with each parameter described. The description does not add meaning beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb (Create) and resource (audit engagement), and distinguishes from siblings like scf_update_engagement and scf_delete_engagement by specifying draft creation and editor role. The purpose is unmistakable.

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?

Implies usage for creating new engagements, but does not explicitly mention alternatives or conditions for not using it. No reference to scf_update_engagement for modifications, leaving some inference required.

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

scf_create_engagement_queryA

Raise an auditor query against one control in the engagement's scope (write β€” org member or assigned auditor). The control must be in the engagement's frozen scope.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesFull text of the query
titleYesShort summary of what is being asked
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idYesSCF control the query is about, in DOMAIN-NN format β€” must be in scope, see scf_get_engagement_scope
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A3.8/5.0
Behavior4/5

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

The description explicitly notes 'write β€” org member or assigned auditor', adding permission context beyond the readOnlyHint annotation (which only says false). It also discloses the constraint that the control must be in the engagement's frozen scope. It does not describe return values or error behavior, but for a write operation this is acceptable given annotations.

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

Conciseness4/5

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

The description is a single sentence that efficiently conveys the core action, permission, and scope constraint. It is front-loaded with the verb 'Raise' and packs necessary context without fluff. A slightly clearer separation of the scope constraint could improve readability, but it is still concise.

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 create operation with 5 required parameters and no output schema, the description covers the essential purpose, permission, and a key precondition (frozen scope). However, it does not mention what happens on success (e.g., whether a query ID is returned) or any failure conditions, which an agent might need to know for a write action. This leaves some 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?

All 5 parameters have schema descriptions (100% coverage), so the schema already documents them. The tool description adds no extra parameter-specific details beyond what the schema provides, such as the format for scf_id or the purpose of title/body. Therefore, it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description clearly states the action ('Raise an auditor query') against a specific resource ('one control in the engagement's scope'), and distinguishes it from related tools like scf_respond_to_engagement_query or scf_update_engagement_query_status by focusing on the creation act. The permission note and scope constraint further sharpen its 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 description implies when to use the tool (to create a new query) but does not explicitly mention alternatives or contrast with sibling tools such as scf_list_engagement_queries, scf_respond_to_engagement_query, or scf_update_engagement_query_status. It does state the prerequisite that the control must be in the frozen scope, which is helpful but not a full usage guideline.

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

scf_create_evidenceA

Create an evidence tracking record from a catalog evidence ID (write β€” editor+ role). Starts tracking an evidence item for the organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoPerson accountable for this evidence item
org_idYesOrganization UUID β€” obtain from scf_list_organizations
commentsNoFree-text notes or context
frequencyNoCollection cadence: 'daily', 'weekly', 'monthly', 'quarterly', or 'annually'
system_idNoSystem UUID to link this evidence to β€” obtain from scf_list_systems
is_trackedNoStart actively tracking this item (default false)
evidence_idYesCatalog evidence ID (e.g., 'E-IAM-01') β€” obtain from scf_list_evidence_catalog
maturity_levelNoEvidence maturity level L0–L5 (e.g., 'L3'); omit to leave unset
collecting_systemNoName of the tool or system that collects the evidence
method_of_collectionNoCollection approach: 'automated', 'manual', or 'hybrid'

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive. The description adds value by specifying the editor+ role requirement and the behavioral effect: it starts tracking an evidence item for the organization. This gives the agent useful context 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?

The description is one tight sentence with the core action and role front-loaded. The second sentence adds a useful behavioral clarification without redundancy. No filler or unnecessary detail is present.

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

Completeness4/5

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

For a create operation with no output schema, the description covers the action, the role requirement, and the intended effect. All parameter meaning is fully handled by the schema, and annotations cover the safety profile. The only minor gap is that the description does not hint at what the tool returns, but this is acceptable for a straightforward create-with-2-required-params 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 fully documents all 10 parameters. The description adds only that evidence comes from a catalog ID, which is already in the evidence_id parameter description. This is the baseline 3 case where the schema carries the parameter meaning.

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

Purpose5/5

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

The description states a specific verb ('Create'), a specific resource ('evidence tracking record'), and a clear source ('from a catalog evidence ID'). It also distinguishes this creation action from the many list/update tools in the sibling set, especially scf_list_evidence and scf_update_evidence.

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 clearly communicates that this tool is for creating or starting to track evidence, and even notes the editor+ role requirement. However, it does not explicitly say when to use this instead of alternatives like scf_update_evidence, scf_list_evidence, or scf_list_evidence_catalog, 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.

scf_create_evidence_taskA

Create a manual evidence collection task against a tracking record (write β€” editor role). Due date and evidence_tracking_id are required; status defaults to not_started, priority to medium.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTask title
statusNoInitial status (default not_started)
due_dateYesDue date, YYYY-MM-DD
priorityNoPriority (default medium)
task_typeNoTask type (default collection)
descriptionNoWhat has to be collected and how
owning_team_idNoTeam that owns the task β€” obtain from scf_list_teams
assigned_user_idNoAssignee user UUID β€” obtain from scf_list_members
evidence_tracking_idYesEvidence tracking record UUID (the id field from scf_list_evidence, not the E-xxx catalog id)

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already mark this as a non-read-only, non-destructive operation. The description adds the editor-role authorization requirement and the fact that the task is attached to a tracking record, which is useful behavioral context beyond annotations.

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

Conciseness5/5

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

A single sentence that front-loads the action and resource, then packs the critical facts (role, required fields, defaults) with no fluff.

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 9-parameter create tool with no output schema, the description covers core invocation facts but omits what the call returns, how to handle errors, and relationship to related evidence-task tools. The rich parameter schemas compensate partially.

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 repeats the required parameters and defaults already present in the schema, adding no new parameter-level meaning beyond highlighting them as key.

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 ('Create a manual evidence collection task against a tracking record') and clarifies it is a write operation requiring editor role. It is clear but does not explicitly differentiate from siblings such as scf_create_evidence or scf_update_evidence_task.

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 context is implied: this is the tool for manually creating an evidence task, and the editor-role note restricts who should call it. However, it provides no explicit when-to-use guidance, exclusions, or alternative tools such as scf_list_evidence_tasks or scf_update_evidence_task.

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

scf_create_riskA

Create a new risk assessment in the risk register (write β€” editor+ role). Likelihood and impact scores populate the 5Γ—5 risk matrix.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoName or identifier of the risk owner
titleYesRisk title (required, max ~100 chars)
impactYesInherent impact on a 1–5 scale
org_idYesOrganization UUID β€” obtain from scf_list_organizations
control_idNoSCF control ID to link (e.g., 'AST-01') β€” obtain from scf_list_controls
likelihoodYesInherent likelihood on a 1–5 scale
descriptionYesRisk description (required)
treatment_statusNoTreatment workflow status (default identified)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, so the description correctly implies a mutation but not destructive. It adds the 'editor+ role' requirement and the fact that likelihood/impact populate the 5x5 matrix. This goes beyond annotations by specifying who can call it and the resulting matrix behavior. However, it doesn't warn about side effects like creating a default treatment_status or triggering notifications, but that's minor given annotations.

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

Conciseness4/5

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

The description is concise, with two sentences that are front-loaded with the primary action and key constraints. It avoids redundancy. Slight deduction because it doesn't mention the optional parameters (owner, control_id, treatment_status) that an agent might need to infer, but overall it's well-structured and quickly digestible.

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?

Given the 8 parameters (5 required) and no output schema, the description could have provided more context on how the risk assessment integrates with the risk register, such as the significance of the treatment workflow or how the matrix is used downstream. However, the schema's thorough parameter descriptions and the explicit mention of the matrix partially compensate. The description is complete enough for an agent to call correctly, but not exhaustive about side effects or return values.

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, including required fields and valid ranges. The description adds no additional parameter-level context beyond what the schema provides. Baseline 3 is appropriate because the schema fully covers semantics, and the description doesn't need to repeat them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Create a new risk assessment in the risk register'), specifies the target resource, and distinguishes it from related tools like scf_create_custom_risk by focusing on the risk register's 5x5 matrix. It also notes the write nature and required role, making its 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 Guidelines3/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 creating a new risk assessment in the risk register. However, it does not explicitly contrast with alternatives like scf_create_custom_risk or distinguish from scf_update_risk_assessment. No explicit 'when not to use' guidance is provided, leaving some ambiguity for an agent comparing siblings.

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

scf_create_systemA

Create a system in the organization's infrastructure inventory (write β€” editor+ role). Systems can be linked to capabilities and evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable system name (required)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoLifecycle status (default: active)active
vendorNoLegacy free-text vendor name (prefer vendor_id for a structural link)
categoryNoFree-text category (e.g., 'SIEM', 'Endpoint', 'Identity')
vendor_idNoVendor UUID to structurally link this system to β€” obtain from scf_list_vendors (same org)
descriptionNoFree-text description of the system
system_typeYesSystem classification β€” one of: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, endpoint_management, vulnerability_management, email_security, security_awareness, password_manager, communication, hr_system, custom
catalog_template_idNoSystem-catalog template ID to link β€” obtain from scf_list_system_catalog

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=false and destructiveHint=false, so the write behavior is expected. The description adds useful context beyond annotations by naming the editor+ permission requirement and noting that systems can later be linked to capabilities and evidence. It does not contradict 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 two concise sentences with no filler. The first sentence front-loads the core purpose and permission requirement, and the second adds relevant linking context without unnecessary detail.

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

Completeness4/5

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

For a straightforward create operation, the description plus the fully documented schema covers the essential invocation context. The only notable gap is that the description does not state what the create call returns, especially since there is no output schema, but this is minor given the tool's simple create behavior.

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 9 parameters and their meanings. The description adds no new parameter-level semantics, and the baseline of 3 is appropriate when 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 the precise action ("Create"), the resource ("system"), and the context ("organization's infrastructure inventory"). It also clearly signals the write nature and editor+ role, distinguishing this from read-only and mutation siblings like scf_list_systems and scf_update_system.

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: creating a system in the org inventory and requiring editor+ permissions. It does not explicitly contrast with scf_update_system for existing systems, but the "Create" verb and inventory context make the appropriate scenario obvious. No misleading usage guidance is present.

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

scf_create_system_capabilityA

Declare that a system can provide one evidence type (write β€” editor role). One entry per evidence_id per system; status defaults to potential, confidence to medium.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoFree-text notes about the capability
org_idYesOrganization UUID β€” obtain from scf_list_organizations
system_idYesSystem UUID β€” obtain from scf_list_systems
data_formatNoFormat of the collected data, e.g. 'csv', 'json', 'pdf'
evidence_idYesCatalog evidence ID, e.g. E-IAM-01
confidence_levelNoConfidence in evidence quality (default medium)
capability_statusNoCapability status (default potential)
collection_methodNoHow the evidence is collected

TDQS

A3.9/5.0
Behavior4/5

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

Annotations establish this is a write but not destructive operation; the description adds useful behavioral context by indicating an editor role is required, stating the one-capability-per-evidence/system constraint, and giving defaults for status and confidence. It does not discuss duplicate handling or returned values, but 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 sentences with no filler; the core action, permission requirement, uniqueness constraint, and defaults are all front-loaded. Every clause contributes information the agent needs.

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 create operation with fully documented parameters and clear annotations, the description covers the conceptual model and constraints sufficiently. The only notable omissions are duplicate/error behavior and explicit return information, but these are secondary when the schema and annotations already carry most of the load.

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 all parameters with 100% coverage, so the baseline is 3. The description adds value by linking evidence_id and system_id to the uniqueness rule and by clarifying default behavior for capability_status and confidence_level beyond the schema entries.

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 clear action β€” declaring/creating a link between a system and one evidence type β€” and adds the key granularity rule (one entry per evidence_id per system). It is distinguishable from related tools like scf_update_system_capability by the create semantics, though it does not explicitly name a sibling alternative.

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 intended use is implied: call this when a system should be recorded as providing an evidence type, and the uniqueness constraint hints that an existing capability should not be recreated. However, it does not explicitly state when to prefer scf_update_system_capability or what to do if the entry already exists.

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

scf_create_teamA

Create a team aligned to a business function (write β€” admin role). The team is born empty; that is legal and reported through health warnings, not refused.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesTeam name (1–255 characters)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
descriptionNoWhat the team is responsible for
function_idYesPrimary business function β€” obtain from scf_list_functions
function_idsNoAdditional functions the team serves

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description adds meaningful context: it is a write requiring admin role, and empty teams are allowed but reported through health warnings rather than rejected. This is useful non-obvious behavior beyond the schema.

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

Conciseness5/5

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

Two sentences, front-loaded with the core action, and every clause earns its place. The behavioral caveat about empty teams is concise and relevant.

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

Completeness4/5

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

For a create operation with fully documented parameters and minimal annotations, the description covers the essential action, authorization, and a notable behavioral edge case. It does not mention the return value, which would be useful since there is no output schema, but this is a minor 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 five parameters. The description adds only general context about business-function alignment, not additional parameter-level meaning, 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: 'Create a team aligned to a business function.' It also signals the operation type ('write β€” admin role') and is clearly distinguishable from sibling tools like scf_update_team, scf_list_teams, and scf_add_team_member.

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 the intended use clear: creating a new team, not updating or populating one. The 'born empty' note implies member management belongs elsewhere, though it does not explicitly name alternatives such as scf_update_team or scf_add_team_member.

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

scf_create_team_assignmentA
Destructive

Assign a team to one scoped control or evidence item (write β€” admin role). is_accountable makes it the accountable team and demotes any incumbent to consulted.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesItem kind
org_idYesOrganization UUID β€” obtain from scf_list_organizations
item_idYesScoped control or evidence tracking record UUID
team_idYesTeam UUID β€” obtain from scf_list_teams
is_accountableNoMake this the accountable team (default false)

TDQS

A3.9/5.0
Behavior4/5

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

The description aligns with the annotations (readOnlyHint=false, destructiveHint=true) by explicitly labeling the tool as 'write β€” admin role'. It goes beyond annotations by disclosing a specific side effect: is_accountable makes the team accountable and demotes any incumbent to consulted. This is exactly the kind of behavioral context that adds value.

Agents need to know what a tool does to the world before 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 wasted words: the first front-loads the action, scope, and role, and the second covers the key behavioral nuance. Every clause earns its place, making the description 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?

Given five parameters, full schema coverage, annotations, and no output schema, the description covers the essential purpose, the administrative requirement, and the most important side effect. It could mention the response shape or what happens when is_accountable is false, but the absence of an output schema lowers that burden. Overall it is adequate for confident tool 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 description coverage is 100%, so the baseline is 3. The description adds meaningful semantic value for is_accountable by explaining the demotion of an incumbent team, which is not stated in the schema property. It also clarifies the item scope (control or evidence), reinforcing the type enum without repeating it verbatim.

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: 'Assign a team to one scoped control or evidence item', which clearly states what the tool does. The scope 'one' implicitly differentiates it from scf_batch_create_team_assignments, and the '(write β€” admin role)' qualifier adds context. It does not explicitly name sibling alternatives, so it falls 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 description provides a clear operational context: it is a write operation requiring an admin role, and it is for assigning to a single scoped control or evidence item. However, it does not state when to prefer this over scf_batch_create_team_assignments or how it relates to scf_delete_team_assignment, so 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.

scf_create_vendorA

Create a vendor in the TPRM registry (write β€” editor+ role). Platform auto-scores risk based on criticality and data handling.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesVendor legal or trading name (required)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoLifecycle status (default prospect) β€” one of: prospect, active, under_review, approved, suspended, offboardedprospect
websiteNoVendor website URL
categoryNoCategory label (e.g., 'SaaS', 'Infrastructure', 'Consulting')
criticalityNoBusiness criticality tier (default 'medium')medium
descriptionNoShort free-text description of the vendor
contact_emailNoPrimary contact email address

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, so the description's 'write' is consistent and adds the role requirement (editor+). The description also discloses a non-obvious behavior: the platform auto-scores risk based on criticality and data handling, which tells the agent that risk scoring will happen as a side effect of creation.

Agents need to know what a tool does to the world before 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 with no filler. The first sentence states the action, resource, and permission; the second adds the key behavioral side effect. Every word 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 an 8-parameter creation tool with 100% schema coverage and no output schema, the description is adequate: it states permission, the auto-scoring behavior, and the registry context. It could mention what the response returns, but that's a minor gap for a simple create 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 the schema already documents all eight parameters. The description adds the note that risk auto-scores based on criticality and data handling, which gives semantic weight to criticality, but it does not need to repeat parameter 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?

Description states a specific verb ('Create'), resource ('vendor in the TPRM registry'), and scope ('write β€” editor+ role'), and it is clearly distinct from sibling tools like scf_update_vendor or scf_create_system. The permission note further disambiguates who can invoke it.

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's 'write β€” editor+ role' and the auto-scoring note give useful context about when this tool applies. It does not explicitly name alternatives or exclusions, but the sibling list makes the distinction obvious, and the schema note on org_id ('obtain from scf_list_organizations') provides a prerequisite.

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

scf_create_vendor_action_itemA

Create a remediation action item against a vendor (write β€” editor role), typically from an assessment finding. Priority defaults to medium, status to open.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesAction item title
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoStatus (default open)
categoryNoFree-text category, e.g. 'contractual', 'technical'
due_dateNoYYYY-MM-DD
priorityNoPriority (default medium)
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
owner_nameNoOwner name
descriptionNoAction item detail
owner_user_idNoOwner β€” obtain from scf_list_members
completed_dateNoYYYY-MM-DD

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses the write nature ('write β€” editor role') which goes beyond the annotations (readOnlyHint=false, destructiveHint=false) by specifying the required role. It also states defaults for priority and status, which are additional behavioral details. No contradictions with annotations; the description adds useful 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?

A single, tightly worded sentence that states the main purpose, the role requirement, the typical use case, and two defaults. No fluff, front-loaded with the primary action. Every element 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 11 parameters and no output schema, the description plus the fully documented schema provide enough for correct invocation. It covers the role, defaults, and typical workflow. It does not mention what the tool returns on success, but that is not critical since no output schema exists and the annotations clarify this is a write operation. Strong overall.

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 each parameter having a description, so the schema already carries the parameter semantics. The description only reiterates defaults that are already in the schema (e.g., 'default medium', 'default open'), adding no new parameter-specific information. Baseline 3 as 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 ('Create'), a resource ('remediation action item'), and a target ('against a vendor'). It also adds typical provenance ('typically from an assessment finding') which distinguishes it from other create tools like scf_create_evidence_task or scf_create_risk. No ambiguity about 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 Guidelines4/5

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

The description provides a clear typical scenario ('typically from an assessment finding') which tells an agent when to use this tool. It does not explicitly name alternatives like scf_update_vendor_action_item or scf_delete_vendor_action_item, nor state when not to use it, but the context is sufficient for the intended use. Lacks explicit exclusion but is otherwise clear.

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

scf_create_vendor_certificationA

Record a certification a vendor holds (write β€” editor role), e.g. ISO 27001 or SOC 2 Type II. Status defaults to valid; track expiry_date so renewals surface.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoCertification scope statement
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoStatus (default valid)
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
issue_dateNoYYYY-MM-DD
expiry_dateNoYYYY-MM-DD
verification_urlNoPublic verification URL
certificate_numberNoCertificate number
certification_bodyNoIssuing body
certification_nameYesCertification name, e.g. 'ISO 27001:2022'

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declare readOnlyHint=false and destructiveHint=false. The description adds that it is a write operation and defines the editor role requirement, and notes status default and expiry tracking. However, it doesn't mention whether the operation is additive/substitutive or if it affects existing vendor data, but this is minor given annotations are clear about mutation.

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 sentences, front-loaded with the main action and examples, then key behavioral notes. Efficient and no filler. Could add a bit more on usage but it's concise enough.

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?

Tool is a straightforward create with 10 params, all well-documented in schema, and no output schema required. Annotations cover mutation. This is adequate but lacks any mention of error conditions or idempotency, and the absence of output schema means the agent doesn't know what response to expect. However, given it's a simple create, it's 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%, and the schema already provides details for all 10 parameters (e.g., org_id source, date format). The description adds the default for status and the purpose of expiry_date (renewals), but does not go beyond schema for most fields, 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 ('Record'), resource ('vendor certification'), and purpose ('a vendor holds'), with examples ('ISO 27001 or SOC 2'). Clearly distinguishes from siblings like scf_update_vendor_certification and scf_list_vendor_certifications.

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 it (recording a new certification) but does not explicitly state when not to use it or when to prefer scf_update_vendor_certification (e.g., for changing existing certifications). No clear 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.

scf_create_webhookA

Create a webhook endpoint for evidence-inbox ingestion (write β€” admin role). Returns the plaintext HMAC signing secret exactly once β€” store it immediately; it cannot be retrieved later.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesHuman-readable label (e.g., 'Splunk SIEM', 'AWS Config')
org_idYesOrganization UUID β€” obtain from scf_list_organizations
descriptionNoFree-text description of what this endpoint is for
allowed_evidence_idsNoRestrict ingestion to specific evidence IDs (e.g., ['ERL-IAM-001']); omit to allow any
rate_limit_per_minuteNoPer-endpoint rate limit in requests/min (1–10000); omit to use the org default

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false and destructiveHint=false, so the description carries the burden of explaining the write nature and admin requirement. It adds critical non-obvious behavior: the plaintext HMAC signing secret is returned exactly once, must be stored immediately, and cannot be retrieved later. This is exactly the kind of behavioral disclosure an agent needs.

Agents need to know what a tool does to the world before 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: the first defines the action and purpose, the second delivers a one-time secret warning. No filler, no repetition of schema content, and the most important operational caveat is front and center.

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 create operation with a fully documented input schema, the description covers the key non-obvious outcome: the one-time return of the HMAC secret. It does not enumerate the full response shape, but no output schema exists and the critical handling instruction is present. Overall, an agent has enough to invoke the tool correctly and handle the result safely.

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 has 100% parameter description coverage, so the description does not need to explain parameters. It does not add much parameter-specific meaning beyond the schema, staying at the baseline for high schema coverage. The mention of HMAC secret is about the response, not the 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?

States a specific verb and resource: 'Create a webhook endpoint' with a clear purpose ('for evidence-inbox ingestion'). The parenthetical '(write β€” admin role)' further clarifies the operation type. Among the many webhook-related siblings (list/get/delete/rotate), this stands out as the creation tool.

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 creating a webhook endpoint and flags that it is a write operation requiring admin role. It does not explicitly name alternatives such as scf_list_webhooks or scf_rotate_webhook_secret, but the creation context is unmistakable and sufficient for basic tool selection.

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

scf_delete_assignmentA
Destructive

Remove a user assignment (destructive write β€” editor role).

ParametersJSON Schema
NameRequiredDescriptionDefault
assignment_idYesAssignment UUID β€” from scf_list_assignments

TDQS

A4/5.0
Behavior4/5

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

It explicitly flags the operation as destructive and states the required editor role, adding auth context beyond the destructiveHint/readOnlyHint annotations. It does not describe side effects or reversibility, but the role and destructive label are valuable.

Agents need to know what a tool does to the world before 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 action and packs the destructive nature and role requirement into a parenthetical. No filler or repetition.

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

Completeness4/5

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

With one well-documented parameter, destructiveHint annotation, and a clear purpose plus role, the description is largely sufficient. It could be more complete by naming deletion alternatives, but the schema and sibling list partially cover that.

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

Parameters3/5

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

Schema coverage is 100%: assignment_id has format, pattern, and a description pointing to scf_list_assignments. The tool description itself adds no parameter-specific 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?

The description uses a specific verb ('Remove') and clarifies the resource as a user assignment, distinguishing it from sibling tools like scf_delete_team_assignment. The destructive-write label reinforces the mutation nature.

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 the tool is for removing a user assignment, and the editor-role note states a prerequisite, but it does not explicitly say when to prefer this over scf_delete_team_assignment or other delete tools. 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.

scf_delete_commentA
Destructive

Retract a comment you authored (write β€” author only). Soft delete: the thread keeps its place, the body is withdrawn.

ParametersJSON Schema
NameRequiredDescriptionDefault
comment_idYesComment UUID β€” obtain from scf_list_comments

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already mark destructiveHint=true, so the description is not expected to restate destructiveness. It adds value by disclosing the soft-delete nature (thread keeps place, body withdrawn) and the authorization requirement (author only). It does not mention reversibility, but this is a minor gap given the annotation already signals destruction.

Agents need to know what a tool does to the world before 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, front-loaded sentence that packs in the action, the permission model, and the structural consequence. Every word contributes information, with no fluff or repetition.

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

Completeness4/5

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

For a one-parameter destructive action, the description covers what, who, and the behavioral effect. It does not describe the returned payload, but since no output schema exists and simple success/failure is expected, the essential context is adequate. Error cases (e.g., non-owned comment) are implied by the author-only constraint.

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 a strong description for comment_id (format and provenance from scf_list_comments). The description adds the semantic constraint that the ID must reference a comment authored by the caller, which meaningfully narrows the valid value domain beyond what the schema describes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'retract' and the resource 'comment', and adds the constraint 'you authored' which immediately distinguishes it from scf_update_comment (which edits body text) and other scf_delete_* tools targeting different resources. The soft-delete clarification removes any ambiguity about the operation's effect.

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: the tool is only for comments the caller authored, and the soft-delete behavior implies when it is appropriate (retract a comment without removing the thread). It does not explicitly name alternatives or state 'use update_comment instead if you want to edit', but the verb and author-only constraint make the usage conditions sufficiently clear.

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

scf_delete_compensating_controlA
Destructive

Delete a vendor compensating control record (destructive write β€” editor role).

ParametersJSON Schema
NameRequiredDescriptionDefault
cc_idYesCompensating control UUID β€” obtain from scf_list_compensating_controls
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the description's 'destructive write' is redundant. It does add one useful piece of contextβ€”the 'editor role' requirementβ€”but it does not disclose irreversibility, cascading effects, or what happens if the record is not found. With annotations covering the core safety profile, 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.

Conciseness4/5

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

The description is a single front-loaded sentence with no filler, but the parenthetical 'destructive write' repeats what annotations already state. The 'editor role' part is valuable. Overall compact, with a minor redundancy preventing 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 delete operation, the definition is largely complete: the resource is clear, the destructive nature is covered by annotations, the role is stated, and all parameters are fully described in the schema. It could add a note on permanence or cascading effects, but these are minor given the 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 each UUID parameter already documented including how to obtain it (e.g., 'obtain from scf_list_compensating_controls'). The description itself adds no parameter semantics, 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 uses a specific verb ('Delete') and names an exact resource ('vendor compensating control record'), which distinguishes it from sibling delete tools like scf_delete_vendor_certification or scf_delete_vendor_action_item. The title also reinforces the resource. No ambiguity about what operation this performs.

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 gives no guidance on when to choose this tool over alternatives such as scf_update_compensating_control or scf_list_compensating_controls. The intended use is only implied by the verb 'Delete'; there are no conditions, exclusions, or mentions of related siblings.

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

scf_delete_custom_riskA
Destructive

Delete a custom risk definition, its assessment record, and every control mapping (destructive write β€” editor+ role). Irreversible.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
risk_codeYesCustom risk code in R-ORG-N format (e.g., 'R-ORG-1') β€” obtain from scf_list_custom_risks

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark destructiveHint=true and readOnlyHint=false, and the description adds meaningful behavioral context beyond that: it deletes the definition, its assessment record, every control mapping, requires editor+ role, and is irreversible. This materially helps an agent predict side effects.

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

Conciseness5/5

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

The description is two short, information-dense sentences. It front-loads the core action and immediately highlights the critical destructive scope, role requirement, and irreversibility with no filler.

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

Completeness5/5

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

For a two-parameter delete operation without an output schema, the description covers the essentials: what is deleted, the permission required, and irreversibility. Nothing necessary for an agent to safely 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 description coverage is 100%, with both org_id and risk_code already described in the schema, including how to obtain them. The tool description adds no parameter-level detail, 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 uses the specific verb 'Delete' with the explicit resource 'custom risk definition' and states the cascade scope: assessment record and every control mapping. This clearly distinguishes it from partial operations like scf_remove_custom_risk_control and other delete tools among siblings.

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

Usage Guidelines4/5

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

The description conveys clear context: it is a destructive write requiring an editor+ role and is irreversible. It implies this tool is for full custom-risk deletion rather than partial mapping removal, but it does not explicitly name alternatives or 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.

scf_delete_engagementA
Destructive

Delete a draft audit engagement and its frozen scope (destructive write β€” admin role). Non-draft engagements are refused with 409 β€” close them instead. Auditor grants are revoked with it.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already mark destructiveHint=true and readOnlyHint=false, and the description adds meaningful behavioral context: admin role requirement, 409 refusal for non-draft engagements, revocation of auditor grants, and deletion of frozen scope. This goes well beyond the annotation 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?

Three dense sentences deliver all essential facts with no filler. Destructive/role information is front-loaded, followed by refusal behavior and side effects.

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 destructive write tool with no output schema, the description covers prerequisites, failure mode, side effects, and scope of impact. The parameter schema completes the picture, making the tool fully callable by an agent.

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 params fully described including how to obtain each UUID. The description adds no additional parameter-level meaning, but none is needed because the schema already carries the 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 ('delete'), a specific resource ('draft audit engagement'), and a scope boundary ('and its frozen scope'). It clearly distinguishes the tool from related siblings like scf_update_engagement and scf_create_engagement by restricting it to draft engagements.

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

Usage Guidelines5/5

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

The description explicitly says when to use it (draft engagements) and when not to (non-draft engagements), and it directs the agent to close non-draft engagements instead. This gives unambiguous selection guidance.

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

scf_delete_evidence_fileA
Destructive

Soft-delete an evidence file (destructive write β€” editor role). The record is marked deleted and drops out of listings; the stored object is retained for audit and retention.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
evidence_idYesCatalog evidence ID the file belongs to, e.g. E-IAM-01

TDQS

A4.5/5.0
Behavior5/5

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

The description goes beyond annotations by explaining the soft-delete behavior: the record is marked deleted, drops out of listings, and the stored object is retained for audit and retention. This adds meaningful behavioral context that annotations alone do 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?

The description is concise, with two sentences that front-load the core purpose and role, then explain the behavioral outcome. No redundant or extraneous information is present.

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

Completeness5/5

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

For a simple delete operation with three well-documented parameters and no output schema, the description covers the essential behavioral aspects and role requirement. It is complete for an agent to invoke correctly.

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

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 does not add any parameter-specific semantics beyond what the schema already provides. The parameter meanings are fully captured in the schema, so no additional value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'soft-delete' and identifies the resource 'evidence file', clearly distinguishing it from other file operations like get or list. It also states the destructive write and editor role, which 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?

It provides clear context on when to use this tool (soft-delete scenario) and the role requirement, but does not explicitly name alternatives or exclusions. The context is sufficient for an agent to select it correctly among sibling file tools.

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

scf_delete_risk_assessmentA
Destructive

Delete an organization's scoring of a risk code (destructive write β€” editor role). The catalog or custom risk definition itself remains; only this org's assessment row is removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
risk_codeYesRisk code β€” catalog R-XX-N or custom R-ORG-N

TDQS

A4.5/5.0
Behavior5/5

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

Even though annotations already mark destructiveHint=true, the description adds valuable context: the required role, the destructive nature, and the precise scope of deletion. It explains that the catalog or custom risk definition is preserved, giving an agent a clear picture of side effects.

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

Conciseness5/5

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

Two sentences with no filler. The destructive warning and role requirement are front-loaded, followed by a precise clarification of what remains versus what is removed.

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 destructive action with annotations covering the safety profile and schema covering parameters, the description is fully adequate. It includes the role requirement, the destructive nature, and the exact scope of the deletion.

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 org_id and risk_code already documented in the input schema. The description reinforces that the deletion is organization-scoped, but it does not need to add more because the schema already carries the parameter meaning.

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

Purpose5/5

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

The description states a specific verb and resource: it deletes an organization's scoring of a risk code. It also clearly distinguishes this from deleting the risk definition itself, which differentiates it from sibling tools like scf_delete_custom_risk.

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: this is a destructive write requiring an editor role, and it explicitly clarifies that the risk definition remains while only the org's assessment row is removed. It does not name an alternative tool explicitly, but the scope is clear enough for an agent to avoid using it for definition deletion.

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

scf_delete_team_assignmentA
Destructive

Remove a team's assignment from a control or evidence item (destructive write β€” admin role).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
assignment_idYesTeam assignment UUID β€” from scf_list_team_assignments

TDQS

A4.1/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 this with 'destructive write.' It adds useful context beyond annotations by specifying the admin-role requirement, which an agent needs to know before invoking 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?

A single sentence front-loads the operation, states the target scope, and appends a compact warning about destructiveness and admin role. Every word 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 simple two-parameter destructive operation, the description is complete: it names the operation, the target resource, the parent scope, and the authorization requirement. Annotations cover the destructive/read-only profile, and the schema fully documents parameter origins, 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 description coverage is 100% and both parameters include provenance guidance ('obtain from scf_list_organizations' and 'from scf_list_team_assignments'). The description itself adds no parameter-level detail, but the schema already carries the full burden, 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 states a specific verb ('Remove'), a clear resource ('a team's assignment'), and the target scope ('from a control or evidence item'). It goes beyond the title by clarifying exactly what object the assignment is removed from, which distinguishes it from sibling delete tools like scf_delete_assignment.

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 when a team assignment needs to be removed and adds an admin-role prerequisite. However, it does not explicitly contrast this with alternatives such as scf_delete_assignment or scf_create_team_assignment, nor does it state conditions like 'use scf_delete_assignment for non-team assignments.'

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

scf_delete_vendor_action_itemA
Destructive

Delete a vendor action item (destructive write β€” editor role). Prefer status=cancelled when the record should stay visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
item_idYesAction item UUID β€” obtain from scf_list_vendor_action_items
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

TDQS

A4.2/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, so the description's 'destructive write' confirms rather than adds. It does add genuinely new context: the editor-role authorization requirement and the visibility-related cancellation alternative.

Agents need to know what a tool does to the world before 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, front-loaded with verb and resource, with no filler. The cancellation guidance is packed into fewer than ten 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 3-parameter destructive delete with no output schema, the description plus rich schema covers the essential call path. It could specify permanence or error behavior, but the destructive annotation and role note already cover the main risk.

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 each UUID given a source via list tools, so the description doesn't need to add parameter details. It adds no extra semantics beyond what the schema already provides.

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

Purpose5/5

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

The description opens with the exact operation ('Delete a vendor action item') and reinforces scope with 'destructive write β€” editor role.' This is clearly distinguishable from sibling tools like scf_update_vendor_action_item or scf_create_vendor_action_item.

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 warns to prefer status=cancelled when the record must remain visible, which is a clear exclusion for soft-delete scenarios. It doesn't name the sibling update tool, but the guidance is sufficient to route an agent away from hard deletion in that case.

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

scf_delete_vendor_certificationA
Destructive

Delete a vendor certification record (destructive write β€” editor role). Prefer status=expired or revoked when the history matters.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
cert_idYesCertification UUID β€” obtain from scf_list_vendor_certifications
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true and readOnlyHint=false, so the 'destructive write' label is redundant. However, the description adds an 'editor role' permission requirement, which is not in the annotations, and it explains the softer alternative of status-based retirement. This adds meaningful context beyond 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 entire description is a single, dense sentence that front-loads the action and resource, then packs in the role and the history-preservation guidance. Every clause earns its place; there is no fluff or repetition of schema details.

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

Completeness4/5

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

For a destructive delete tool with three fully documented UUID parameters, no output schema, and safety cues in annotations, the description covers the core usage: what it deletes, who can do it, and when to avoid it. It could mention cascading effects or audit-log implications, but for the stated scope 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?

Schema description coverage is 100%, with each UUID parameter documented as obtainable from a specific list tool (e.g., 'obtain from scf_list_organizations'). The description itself adds no parameter-level detail beyond what the schema already provides, 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 'Delete a vendor certification record,' a specific verb and resource that unambiguously identifies the operation. It further clarifies this is a destructive write, and the sibling set includes create/update/list vendor certifications, so the tool is easily distinguished 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?

The description gives a clear when-not-to-use condition: 'Prefer status=expired or revoked when the history matters.' This tells the agent to avoid hard deletion when record history is important. It stops short of naming the alternative tool (scf_update_vendor_certification), but the guidance is explicit enough to route behavior.

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

scf_delete_webhookA
Destructive

Revoke a webhook endpoint β€” soft-delete that marks it inactive (destructive write β€” admin role). Future deliveries return 403; the record remains for audit.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
endpoint_idYesWebhook endpoint UUID β€” obtain from scf_list_webhooks

TDQS

A4.5/5.0
Behavior5/5

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

Beyond annotations (destructiveHint=true), the description adds valuable behavioral detail: this is a soft-delete, the endpoint is marked inactive, future deliveries return 403, the record is retained for audit, and admin role is required. This fully informs the agent of the operational consequences.

Agents need to know what a tool does to the world before 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 packed sentence that front-loads the core action and then efficiently conveys soft-delete behavior, permissions, delivery impact, and audit retention. Every clause adds useful information with no waste.

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

Completeness5/5

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

For a destructive two-parameter tool with no output schema, the description covers the essential context: what action is performed, what happens to future deliveries, why the record persists, and who can perform it. The schema fully documents parameters, 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%, with both org_id and endpoint_id documented including how to obtain them. The description adds no further parameter-level meaning, so the baseline of 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

The description states a specific verb ('Revoke') and resource ('webhook endpoint'), and clarifies the soft-delete semantics that distinguish it from a hard delete. It clearly differentiates this from sibling webhook tools like create_webhook, get_webhook, and rotate_webhook_secret by the action of revoking.

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 the usage context clear: use this when you need to revoke a webhook endpoint so it stops receiving deliveries. It does not explicitly name alternative tools or state when not to use it, but the destructive-write and admin-role notes provide enough contextual guidance for an agent.

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

scf_export_documentA
Read-only

Export a document as rendered markdown or HTML text (read β€” viewer role). The platform also renders PDF, but that is a binary download and is not offered here β€” fetch it from the web UI instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format: 'md' for markdown, 'html' for rendered HTMLmd
org_idYesOrganization UUID β€” obtain from scf_list_organizations
document_idYesGenerated document UUID β€” obtain from scf_list_documents

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, and the description reinforces this with '(read β€” viewer role)', adding an authorization requirement beyond the annotation. It also discloses that PDF is a binary download intentionally not offered here, which helps the agent avoid expecting a binary response.

Agents need to know what a tool does to the world before 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 with no filler. The core purpose is front-loaded, and the PDF exclusion is delivered in a clear, useful second sentence. 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 simple read-only export tool with fully documented parameters and no nested objects, the description plus schema covers the essentials: role, format options, parameter sourcing, and the PDF limitation. It does not describe response shape in detail, but the description's 'text' framing makes the expected output sufficiently clear.

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 all three parameters already well documented: format's enum and default, org_id's provenance from scf_list_organizations, and document_id's provenance from scf_list_documents. The description adds minimal parameter-level meaning beyond the schema, 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 action ('Export'), the resource ('a document'), and the exact output forms ('rendered markdown or HTML text'). It also draws a bright line against PDF export, which is explicitly excluded, helping an agent distinguish this tool from any PDF-related expectation.

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 context: use this tool for markdown/HTML text export, and if PDF is needed, fetch it from the web UI instead. It does not specifically route to sibling tools like scf_get_document or scf_preview_document, but the PDF exclusion and format scoping provide clear practical guidance.

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

scf_generate_documentsA

Queue ISMS document generation for one or more generators (write β€” admin role). Returns a task_id; poll scf_get_document_generation_status. Existing documents are skipped unless force is set.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoRegenerate even when a document already exists for that generator and domain (default false)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
requestsYesBetween 1 and 40 generation requests to queue in this batch

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only declare readOnlyHint=false and destructiveHint=false; the description adds meaningful behavioral context beyond them: it is a write requiring admin role, it is asynchronous (returns a task_id), it skips existing documents, and force overrides that skip. No annotation contradiction β€” 'write' aligns with readOnlyHint=false and the skip behavior is consistent with destructiveHint=false.

Agents need to know what a tool does to the world before 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 essential information: operation+role, async contract+follow-up tool, and skip/force edge case. The verb and resource are front-loaded, and there is zero 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 an async write tool with no output schema, it discloses the essential contract: what is queued, the admin role requirement, the returned task_id, the polling endpoint, and idempotency behavior. Remaining details like batch failure semantics are reasonably delegated to the referenced status tool and the well-documented 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%, and the schema already provides strong parameter guidance (org_id sourced from scf_list_organizations, generator from scf_list_document_generators, domain_id from scf_list_document_domains, requests bounded 1-40). The description restates the force behavior already documented in the schema, so it adds no new parameter-level meaning beyond 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?

States a specific verb+resource ('Queue ISMS document generation') with explicit scope ('one or more generators') and clearly differentiates itself from siblings by specifying it returns a task_id to poll rather than a document, separating it from document-read/export tools like scf_get_document and scf_export_document.

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?

Names the intended follow-up explicitly ('poll scf_get_document_generation_status') and gives a usage rule for the force flag ('Existing documents are skipped unless force is set'). It provides clear context but does not explicitly state when-not-to-use versus alternatives like scf_export_document or scf_generate_system_recipes.

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

scf_generate_system_recipesA

Queue AI generation of evidence-collection recipes for a system (write β€” editor+ role, async, HTTP 202). Poll scf_get_recipe_generation_status for progress.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
system_idYesSystem UUID β€” obtain from scf_list_systems

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds valuable behavioral detail: required role (editor+), asynchronous execution, expected HTTP status (202), and follow-up polling behavior. It also clarifies that the tool queues work rather than returning final results synchronously. 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 compact, front-loaded with the primary action, and packs essential operational facts (role, async behavior, HTTP status, polling endpoint) into two short sentences. 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.

Completeness4/5

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

For a two-parameter async tool with no output schema, the description gives the essential call-and-follow-up flow: invoke with org/system IDs, expect 202, poll status endpoint. It could be slightly more complete by stating whether the response includes a generation ID or other correlation token needed for the status poll, but the stated workflow is enough for an agent to proceed.

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 already have descriptive text explaining they are UUIDs obtainable from scf_list_organizations and scf_list_systems respectively. The tool description does not add further parameter-level meaning beyond indicating the action is for a system, 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 opens with a specific verb ('Queue') and resource ('AI generation of evidence-collection recipes for a system'), making the operation's intent unmistakable. It also distinguishes this from sibling retrieval tools like scf_get_system_recipes by framing it as an asynchronous generation action, not a read.

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 is a write operation requiring editor+ role, is asynchronous, and returns HTTP 202. It also explicitly directs the agent to poll scf_get_recipe_generation_status afterward, which is actionable follow-up guidance. It does not mention exclusions or alternative tools for cases like retrieving already-generated recipes, but the core usage context is clear.

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

scf_get_assessment_review_queueA
Read-only

List AI verdicts awaiting a human decision, worst first (read β€” viewer role). tier=file (default) lists per-file verdicts; tier=window is the web app's Awaiting-confirmation queue.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNofile (default): entries carry file_id, act with scf_review_evidence_assessment. window: entries carry window_assessment_id, act with scf_review_window_assessment_verdictfile
limitNoPage size (1–200, default 50)
offsetNoPagination offset (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoQueue filter (default awaiting)awaiting

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=true, so the description goes further by specifying the viewer role, 'worst first' ordering, and the behavioral difference between tier=file and tier=window. It stops short of describing response shape or pagination behavior, but the existing annotation 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?

The description is compact: two sentences with no filler. It front-loads the core purpose, ordering, and access role, then efficiently covers tier 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?

For a read-only list tool, the description covers the essential selection context: what is listed, in what order, with what access, and how tiers differ. The schema fully documents parameters, so invocation details are available; only the absence of an output schema leaves minor uncertainty about exact 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?

The input schema covers 100% of parameters with useful descriptions, so the baseline is 3. The description adds a slight extra meaning for tier by noting it maps to the web app's Awaiting-confirmation queue, but it does not materially improve on the schema for limit, offset, status, or org_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 clear resource: AI verdicts awaiting a human decision. It also conveys ordering ('worst first'), access level ('read β€” viewer role'), and the two tier modes, making it easy to distinguish from nearby review-action 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 this tool: when retrieving AI verdicts that need human review. It also explains the tier distinction between file-level and window-level queues, but it does not explicitly state exclusions or name alternative review tools in the description itself.

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

scf_get_audit_logA
Read-only

Query one organization's append-only audit trail (read β€” viewer role): field-level changes with actor, source and before/after values. Filter by entity, control, action, actor, source, date or text.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–200, default 50)
actionNoFilter by action: create, update or delete
offsetNoPagination offset β€” number of results to skip (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idNoFilter by SCF control ID in DOMAIN-NN format
date_toNoInclude changes at or before this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ)
actor_idNoFilter by actor user UUID β€” platform alias of changed_by_user_id
date_fromNoInclude changes at or after this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ)
entity_idNoFilter by the changed entity's UUID
request_idNoFilter by request correlation ID β€” groups every change one API call made
entity_typeNoFilter by exact entity type as written in the log, e.g. scoped_control, evidence_file, audit_engagement, vendor β€” unsure of the spelling? use search_text
search_textNoCase-insensitive search across entity_type, field_name, old_value and new_value
action_sourceNoFilter by origin of the change: ui, api_key, mcp or system
changed_by_user_idNoFilter by the user who made the change β€” obtain from scf_list_members

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's 'read' is consistent. It adds valuable behavioral context beyond the annotation: the trail is append-only, requires viewer role, and returns field-level changes with actor, source, and before/after values. 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 with no filler. The first sentence states the core purpose and return content; the second enumerates the filter dimensions. All 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?

There is no output schema, but the description partially compensates by naming the returned content (field-level changes with actor, source, and before/after values). The schema fully documents all 14 parameters, and the description covers the filter dimensions. It could add ordering or pagination behavior, but nothing critical is missing 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.

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 grouping the 14 parameters into meaningful filter categories ('entity, control, action, actor, source, date or text'), which helps an agent map intent to the right parameter without reading every schema entry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Query'), a specific resource ('one organization's append-only audit trail'), and the exact content ('field-level changes with actor, source and before/after values'). It also states the access level ('read β€” viewer role'), making it clearly distinguishable from the many mutation 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?

The description makes the tool's context clear: it is for reading audit log entries for a single organization, with filtering by entity, control, action, actor, source, date, or text. It does not explicitly name alternatives or state when not to use it, but the purpose is specific enough that an agent can infer when this is the right tool.

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

scf_get_capability_themeA
Read-only

Get a single capability theme (KSI) with full posture, multi-axis scores, band, and legacy posture_percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
theme_codeYesCapability theme code (e.g., 'ACCESS_CONTROL', 'INCIDENT_RESPONSE') β€” obtain from scf_list_capability_themes

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description aligns with that by describing a read operation. It adds value by specifying what data will be returned (posture, multi-axis scores, band, legacy posture_percentage), which goes beyond the annotation and helps the agent set expectations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that names the operation, the resource, and the key distinguishing return fields. There is 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 two-parameter read-only getter with no output schema, the description gives enough context about what the tool returns and what kind of resource it operates on. Combined with the schema's parameter documentation and the readOnly annotation, nothing essential is missing for correct selection and invocation.

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

Parameters3/5

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

Schema description coverage is 100%, with both org_id and theme_code documented including how to obtain them from list tools. The description itself adds no new parameter 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 uses a specific verb ('Get') and resource ('a single capability theme (KSI)') and enumerates the key returned content: posture, multi-axis scores, band, and legacy posture_percentage. This distinguishes it from sibling list tools like scf_list_capability_themes and related getters like scf_get_capability_theme_scorecard.

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 the use case clear: retrieve one specific capability theme by org_id and theme_code, with rich posture data. It doesn't explicitly name alternatives or state when not to use it, but the 'single theme' framing gives adequate context against the sibling list and scorecard tools.

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

scf_get_capability_theme_evidence_postureA
Read-only

Get per-theme evidence metrics: controls with evidence, file counts by assessment status, average relevance score, and derived confidence (strong/moderate/weak/none). Use for KSI evidence dashboards.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to restate read-only safety. The description adds transparency about what the read returns (metrics and confidence tiers) but does not disclose details like output grouping, potential empty results, or whether org_id must have associated capability themes. It is adequate, 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 filler: the first enumerates the returned metrics, and the second gives the intended use case. All content earns its place and the key 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 single-parameter, read-only tool, the description covers what the call returns and when to use it. There is no output schema, so the metric list is helpful, though it could more explicitly state that results are grouped by capability theme. Overall, an agent has 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%, with org_id already documented as an Organization UUID obtainable from scf_list_organizations. The tool description does not add further parameter-level detail, so the baseline of 3 applies. The phrase 'per-theme' clarifies output granularity but not the input 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?

Description uses a specific verb ('Get') and resource ('per-theme evidence metrics') and lists concrete output content: controls with evidence, file counts by assessment status, average relevance score, and derived confidence levels. This is clearly differentiated from siblings like scf_get_evidence_maturity and scf_get_capability_theme_scorecard by the specific metric set.

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 sentence 'Use for KSI evidence dashboards' provides a clear intended use context. It does not explicitly name alternative tools or exclusion criteria among the many evidence-related siblings, but the dashboard use case is sufficient to guide selection in most situations.

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

scf_get_capability_theme_scorecardB
Read-only

Get the multi-axis KSI scorecard for every capability theme. Returns per-theme Implementation Coverage, Maturity, Evidence Coverage, Evidence Quality, and composite KSI Posture Score bands.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

B3.4/5.0
Behavior3/5

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

readOnlyHint=true already covers the safety profile, so the description need not restate it. It adds useful detail about the returned KSI dimensions and composite bands, though it does not mention pagination, ordering, or behavior for organizations with no capability themes.

Agents need to know what a tool does to the world before 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 focused sentences with zero filler. The main action and scope are front-loaded, and the metric list is compact and information-dense.

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, single-parameter report, the description is largely complete: it names the five returned axes and the composite score. It does not describe response shape or pagination, but no output schema exists and the endpoint is simple enough that this is a minor gap.

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

Parameters3/5

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

The single org_id parameter is already fully documented in the schema, including its source via scf_list_organizations. The description adds no parameter-specific semantics beyond the report's scope, so the baseline 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 action ('Get') and concrete resource ('multi-axis KSI scorecard for every capability theme'), and enumerates the exact metrics returned: Implementation Coverage, Maturity, Evidence Coverage, Evidence Quality, and composite KSI Posture Score bands. It is clearly not a single-theme or evidence-only endpoint, though it does not explicitly call out a sibling for contrast.

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 on when to select this over nearby siblings such as scf_get_capability_theme_evidence_posture or scf_get_control_assessment_composite. The scope 'every capability theme' implies an aggregate view, but alternatives and conditions are left unstated.

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

scf_get_catalog_changelogA
Read-only

Get this organization's catalog changelog (read β€” viewer role): what changed across reconciliations, newest first. Answers 'when did this control change, and what did we decide?'

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1–500 (default 50)
offsetNoRows to skip for pagination (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 reinforces this with 'read β€” viewer role,' adding the required permission level. It also discloses the ordering ('newest first'), scope ('this organization's'), and the nature of the returned data ('what changed across reconciliations... what did we decide?'), which goes beyond the annotation.

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

Conciseness5/5

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

A single, information-dense sentence covers purpose, read-only nature, role requirement, scope, ordering, and the core question the tool answers. 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?

With only three parameters, all fully described in the schema, and a read-only annotation, the description supplies the essential behavioral context: what the changelog contains, how it is ordered, and who can access it. Nothing critical for an agent to invoke the tool correctly 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?

Schema description coverage is 100%, so the schema already fully documents org_id, limit, and offset. The description adds only indirect context through 'this organization's,' which maps to org_id, but provides no additional parameter-level detail beyond what the schema already gives.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 this organization's catalog changelog.' It clearly defines the scope (organization-level), the content (what changed across reconciliations), and the ordering (newest first). It even frames the practical question it answers, distinguishing it from audit logs or reconciliation-run 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 context for when to use the tool: to retrieve catalog change history across reconciliations, focused on control changes and decisions. It does not explicitly name alternatives or exclusions, but the phrasing 'this organization's catalog changelog' and 'across reconciliations' makes the intended use unambiguous among the many sibling tools.

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

scf_get_catalog_evidenceA
Read-only

Get one catalog evidence entry with the controls it maps to (read, no org). The reference definition, not an organization's tracking record β€” see scf_get_evidence for that.

ParametersJSON Schema
NameRequiredDescriptionDefault
evidence_idYesCatalog evidence ID, e.g. E-IAM-01 β€” obtain from scf_list_evidence_catalog

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 reinforces the read-only nature. It adds useful behavioral context beyond annotations: this is the reference definition, not an org tracking record, and it returns mapped controls. 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 tightly written sentences with no filler. The core purpose is stated first, and the distinguishing clarification and sibling pointer are delivered efficiently in the second sentence.

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

Completeness4/5

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

For a simple single-parameter read operation, the description plus schema are sufficient. It states what is returned (one catalog evidence entry with mapped controls), how to obtain the ID, and how this differs from scf_get_evidence. No output schema exists, but the return expectation is adequately described.

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 fully documents evidence_id. The description adds no new parameter-level meaning, though it does clarify the overall return includes mapped controls. Baseline 3 is appropriate because the schema handles parameter documentation.

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

Purpose5/5

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

States a specific verb ('Get') and resource ('one catalog evidence entry') plus the additional behavior of returning mapped controls. It explicitly distinguishes itself from scf_get_evidence by clarifying this is the reference definition, not an organization's tracking record.

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

Usage Guidelines5/5

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

Provides direct usage context: 'read, no org' tells the agent this is a read-only catalog lookup independent of organization. It also names the alternative tool, scf_get_evidence, for the org-specific case, making the selection criteria clear.

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

scf_get_catalog_reconciliation_statusA
Read-only

Get this organization's catalog position (read β€” viewer role): its catalog version, the platform's current version, and whether reconciliation is due or in flight. Start here.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.3/5.0
Behavior4/5

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

Annotations supply readOnlyHint=true, and the description adds value by stating the 'viewer role' requirement and what state the tool reports (due or in flight). These go beyond the annotation while remaining consistent with 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 a single well-structured sentence that front-loads the action, then provides the read-only qualifier, output contents, and the 'Start here' workflow nudge with no filler. 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?

With no output schema, the description compensates by naming the three result components: catalog version, platform version, and reconciliation due/in-flight state. For a one-parameter read-only status endpoint, this is complete: the agent knows input source, required permission, output semantics, and where this tool fits in the workflow.

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 covers org_id completely with a UUID format, required flag, and guidance to obtain it from scf_list_organizations. The description does not add parameter-level meaning beyond 'this organization's', so baseline 3 is warranted.

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

Purpose5/5

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

The description uses a specific verb and resource ('Get this organization's catalog position') and lists exactly what is returned: catalog version, platform's current version, and reconciliation due/in-flight state. The '(read β€” viewer role)' qualifier and the 'Start here' cue distinguish this top-level status check from reconciliation-run-specific 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?

'Start here' explicitly frames this tool as the entry point for catalog reconciliation status, and the viewer-role/read qualifier tells the agent it can be used safely in read-only contexts. It does not enumerate alternatives or exclusions, but the workflow cue is clear and appropriate for this simple status tool.

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

scf_get_change_cursorA
Read-only

Cheap has-anything-changed probe (read β€” viewer role): newest audit timestamp and row count for one organization. Compare with the pair you last saw; poll this before re-pulling the audit log.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only mark readOnlyHint; the description adds operational context: it is a cheap probe, requires only viewer role, and returns two values (timestamp and row count). It also discloses the intended polling pattern, which annotations cannot convey. 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 dense sentences front-load the purpose, cost, and auth level before giving the polling instruction. 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.

Completeness5/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 probe with no output schema, the description covers purpose, return values, role requirement, and the exact usage pattern. The only mild ambiguity is 'the pair you last saw,' but the preceding clause identifies the pair as timestamp and row count.

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 org_id schema already explains it is an Organization UUID from scf_list_organizations. The tool description only restates 'for one organization' and adds no parameter-level detail 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?

Description opens with 'Cheap has-anything-changed probe' and specifies it returns 'newest audit timestamp and row count for one organization', giving a concrete verb, resource, and output. The 'poll this before re-pulling the audit log' line distinguishes it from the audit-log fetching sibling without ambiguity.

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

Usage Guidelines5/5

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

Explicitly instructs when to call: 'poll this before re-pulling the audit log' and how to use results: 'Compare with the pair you last saw.' It also implies the alternative (full audit log fetch) and frames this as the cheap pre-check, so an agent knows when to choose it.

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

scf_get_controlA
Read-only

Get a single SCF control by ID. Returns description, mapped frameworks, assessment objectives, and linked evidence items from the reference catalog.

ParametersJSON Schema
NameRequiredDescriptionDefault
scf_idYesSCF control identifier in DOMAIN-NN format (e.g., 'AST-01', 'IAC-15', 'GOV-02')

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 value by specifying exactly what the read returns: description, mapped frameworks, assessment objectives, and linked evidence items. This gives the agent a concrete picture of the operation 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 a single, information-dense sentence with no filler. The primary action and target are front-loaded, followed by a concise list of returned 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 simple single-parameter read tool with no output schema, the description covers the input format via the schema and the key return categories in prose. It is complete enough for an agent to select and invoke the tool correctly, though exact output structure is not specified.

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 scf_id is already fully described with a format and examples. The description adds no additional parameter semantics beyond restating that the lookup is 'by ID', 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 uses a specific verb ('Get'), a concrete resource ('a single SCF control by ID'), and clarifies the catalog scope ('from the reference catalog'). This clearly distinguishes it from list-style siblings like scf_list_controls and from scf_get_scoped_control, which operates on scoped controls.

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 'from the reference catalog' implies this is the tool for reference-catalog controls rather than scoped controls, providing some contextual guidance. However, it does not explicitly state when to choose this over scf_list_controls, scf_get_scoped_control, or scf_list_assessment_objectives, nor does it provide exclusions.

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

scf_get_control_assessment_compositeA
Read-only

Get the rolled-up assessment composite for one SCF control: composite score, status band, included/missing evidence IDs, mandatory gaps, per-window detail. 404 if no composite row exists yet (async).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idYesSCF control identifier in DOMAIN-NN format (e.g., 'AST-01', 'GOV-02')

TDQS

A4.4/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 404-when-row-not-yet-computed error behavior, the async nature of composite generation, and the exact response composition (five field groups). With no output schema present, this behavioral disclosure carries the return-format burden and notably tells the agent a 404 is a legitimate 'not ready yet' state rather than a malformed request.

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

Conciseness5/5

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

Two sentences with zero waste: the first front-loads the verb, resource, and available return fields; the second delivers the critical error/timing caveat. The field enumeration earns its place because there is no output schema to compensate for missing return-value documentation.

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 2-parameter read-only tool with fully documented parameters and a readOnlyHint annotation, the description covers operation, return content, and error behavior β€” a solidly complete picture. The only gap is the absence of an explicit pointer to scf_list_control_assessment_composites for browsing, and minor ambiguity about status-band value ranges, which keeps it shy of a 5.

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%: org_id already includes cross-tool sourcing guidance ('obtain from scf_list_organizations') and scf_id already gives the DOMAIN-NN format with examples. The tool description adds no parameter-level detail beyond loosely echoing scf_id with 'one SCF control,' so the schema does the heavy lifting β€” 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 uses a specific verb and resource ('Get the rolled-up assessment composite for one SCF control') and enumerates the returned content (composite score, status band, included/missing evidence IDs, mandatory gaps, per-window detail). 'One SCF control' and 'rolled-up' clearly distinguish it from the plural sibling scf_list_control_assessment_composites and from window/evidence-level assessment 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 singular scope ('for one SCF control') gives clear context that this is the single-entity getter versus scf_list_control_assessment_composites, and the async/404 note signals when it is appropriate to call vs wait. However, it never explicitly names an alternative or states when not to use it β€” the routing is implied rather than stated.

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

scf_get_controls_for_riskA
Read-only

List the controls that address a risk code (read β€” viewer role). Works for catalog risks (R-XX-N via the SCF mapping) and custom risks (R-ORG-N via the org's control mappings).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
risk_codeYesRisk code β€” catalog R-XX-N or custom R-ORG-N

TDQS

A4.2/5.0
Behavior4/5

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

The description reinforces the readOnlyHint=true annotation with 'read β€” viewer role' and adds behavioral context about how risk codes are resolved (via SCF mapping for catalog risks and org's control mappings for custom risks). This goes beyond the annotation by explaining the underlying mapping mechanism, with no contradictions.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The first sentence front-loads the core action and read-only nature, and the second clarifies the supported risk code types. It is appropriately concise and well-structured.

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

Completeness4/5

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

For a simple read-only list with fully documented parameters and a clear result type (controls), the description is largely complete. It lacks explicit output structure details, but for a list tool of this simplicity, the description provides enough for an agent to call it correctly 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 descriptions cover both parameters fully: org_id is described as 'Organization UUID β€” obtain from scf_list_organizations' and risk_code includes the format 'catalog R-XX-N or custom R-ORG-N'. The description reiterates these formats but does not add new parameter semantics beyond what the schema already provides, so it meets the baseline for 100% coverage.

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

Purpose5/5

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

The description clearly states the action ('List the controls'), the resource ('controls'), and the scope ('that address a risk code'). It also explicitly differentiates from sibling tools like scf_get_risks_for_control (which does the inverse) and scf_list_controls (which lists all controls) by specifying the risk-code association and supporting both catalog and custom risk 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?

The description provides clear context on when to use this tool: it supports catalog risks (R-XX-N) and custom risks (R-ORG-N), and it is read-only with viewer role. However, it does not explicitly name alternative tools or state when not to use it, though the direction (risk β†’ controls) is unambiguous.

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

scf_get_current_userA
Read-only

Get the authenticated caller's profile: name, email, organization memberships, and per-org role.

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?

The annotations already declare readOnlyHint=true, and the description adds context by tying the operation to the authenticated caller and specifying the profile contents returned. This gives an agent useful behavioral understanding beyond the annotation alone, though it does not discuss error cases or exact 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 a single, front-loaded sentence that names the action, resource, and the key fields returned. Every word 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 zero-parameter read-only profile lookup, the description fully covers purpose, return content, and the authentication context. No output schema exists, but the enumerated fields give an agent sufficient expectation of what the tool returns.

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 there is no parameter burden for the description to carry. The description correctly implies the operation requires no input, which is consistent with 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 states a specific verb ('Get') and a specific resource ('the authenticated caller's profile'), and enumerates the returned fields: name, email, organization memberships, and per-org role. This clearly distinguishes it from sibling tools that list organizations or members.

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 identifies the exact use case: retrieving the current authenticated caller's identity and organization context. It does not explicitly contrast with sibling tools, but no sibling appears to be an alternative for this operation, so the context is sufficiently clear.

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

scf_get_documentA
Read-only

Get one generated document in full (read β€” viewer role): metadata plus every section with its merge state β€” clean, edited, conflicted or pending retirement. Use this to read a document.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
document_idYesGenerated document UUID β€” obtain from scf_list_documents

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag readOnlyHint=true, and the description reinforces this with 'read' and adds extra behavioral context: the required viewer role, full-document scope, and the merge-state values returned (clean, edited, conflicted, pending retirement). 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?

One compact, front-loaded sentence states purpose, required role, return scope, and merge-state vocabulary with 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 two-parameter read with readOnlyHint and fully documented parameters, the description adequately conveys what the caller receives. It could be slightly more complete by pointing to the section-level sibling or mentioning access failure behavior, but 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.

Parameters3/5

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

Schema description coverage is 100%, with both org_id and document_id documented and linked to scf_list_organizations and scf_list_documents. The description itself adds no parameter-level semantics, so it meets the baseline of 3 rather than exceeding 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 names a specific operation ('Get one generated document in full'), the resource (a single generated document), and the scope (metadata plus every section with merge state). This differentiates it from list-style siblings like scf_list_documents and section-level tools like scf_get_document_section_generated, and closes with an explicit invocation cue: 'Use this to read a document.'

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 establishes when to use the tool: when an agent needs to read a full generated document as a viewer. However, it does not explicitly name sibling alternatives or state when not to use it, such as pointing to scf_get_document_section_generated for a single section or scf_get_document_history for history.

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

scf_get_document_generation_statusA
Read-only

Poll this organization's in-flight document generation (read β€” viewer role). Returns {status: 'idle'} when nothing is running. Call after scf_generate_documents until it completes.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, and the description reinforces this with '(read β€” viewer role)'. It adds useful behavioral detail beyond the annotation by documenting the idle sentinel: Returns {status: 'idle'} when nothing is running, and signals that it reflects in-flight work.

Agents need to know what a tool does to the world before 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, purposeful sentences with no filler. The core purpose is front-loaded, the viewer-role note is concise, and the return behavior and usage trigger are each stated in one sentence.

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

Completeness4/5

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

For a simple one-parameter polling tool with no output schema, the description is largely complete: it states the idle return value, the relationship to scf_generate_documents, and when to stop polling. It does not explicitly document the non-idle status values, but 'until it completes' sufficiently implies the polling contract.

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 covers the single org_id parameter with a clear description and source instruction ('obtain from scf_list_organizations'). The tool description itself adds no additional parameter meaning, so a baseline of 3 is appropriate given 100% 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 states a specific verb ('Poll'), a specific resource ('this organization's in-flight document generation'), and clarifies it is a read operation with viewer role. It clearly distinguishes itself from the large sibling set by focusing on document generation status, and even names its companion tool scf_generate_documents.

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 context: call it after scf_generate_documents and keep polling until completion. It does not explicitly name alternative status tools or say when not to use it, but the 'Call after...' instruction is clear enough for correct usage.

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

scf_get_document_historyA
Read-only

Get a document's version and transition history (read β€” viewer role): who moved it between lifecycle states, when, why, and what each generation version changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
document_idYesGenerated document UUID β€” obtain from scf_list_documents

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, and the description reinforces this with 'read β€” viewer role' while adding meaningful behavioral detail about lifecycle transitions and version changes. It does not mention ordering or pagination, but for a simple read tool with no output schema the disclosed behavior 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?

A single sentence front-loads the core purpose and then packs in the specific information the history returns. There is no fluff 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 two-parameter read-only tool with no output schema, the description is complete enough: it states the purpose, the auth role, and the response content. An agent can decide when to call it and what to expect in 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?

The input schema covers both parameters with sourced descriptions (org_id from scf_list_organizations, document_id from scf_list_documents), so schema coverage is 100%. The tool description adds no additional parameter-level meaning, keeping this at the 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?

The description uses a specific verb and resource ('Get a document's version and transition history') and enumerates exactly what the history covers: who moved it, when, why, and what changed per generation. This clearly distinguishes it from related tools like scf_get_document or scf_get_audit_log.

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 by marking the operation as a read for viewer-role users, so an agent knows it is a safe read-only retrieval of document history. It does not explicitly 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.

scf_get_document_section_generatedA
Read-only

Get the generator's own version of a section, ignoring any human edit (read β€” viewer role). Use it to see what the platform would produce before resolving a conflict.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
versionNoGeneration version number to read; omit for the latest
section_idYesSection identifier from the document detail (scf_get_document). May contain slashes β€” pass it exactly as returned, unescaped.
document_idYesGenerated document UUID β€” obtain from scf_list_documents

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, and the description adds useful context: 'read β€” viewer role' clarifies permission expectations, and 'ignoring any human edit' reveals a key behavioral trait. It does not contradict annotations and adds value beyond them.

Agents need to know what a tool does to the world before 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 purpose, read-only role, behavioral distinction, and intended usage context without fluff. The important 'ignoring any human edit' qualifier is front-loaded in the first sentence.

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

Completeness4/5

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

For a simple read-only get tool with well-documented parameters, the description covers what the tool does, who can use it, and when to use it. There is no output schema, but the return concept is clear from 'get the generator's own version of a section'; a bit more return-shape detail 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%, and each parameter already has meaningful descriptions (source tool, formatting warning for slashes, optional version behavior). The tool description itself adds no parameter-level detail, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource: 'Get the generator's own version of a section', and crisply distinguishes it from human-edited content by stating 'ignoring any human edit'. This makes the tool's unique purpose clear against similar document/section 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?

It gives an explicit use case: 'Use it to see what the platform would produce before resolving a conflict.' This tells the agent when to invoke it, though it does not explicitly name alternatives like scf_get_document or scf_resolve_document_section for contrast.

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

scf_get_document_settingsA
Read-only

Get the organization's document-generation settings (read β€” viewer role): whether doc-gen is enabled, whether derivative generators are enabled, and the SCF licence acknowledgement state.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context: the viewer-role requirement and the specific settings that will be returned. It also implicitly conveys there are no side effects, which is consistent with the read-only 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 entire description is a single sentence that front-loads the operation and resource, then compactly lists the three settings returned. There is no redundant or filler content.

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

Completeness5/5

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

For a simple getter with one well-documented parameter, the description covers role, operation, resource, and return contents. No output schema exists, but the list of returned settings compensates adequately, so nothing important 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%, and the org_id parameter already has a helpful description pointing to scf_list_organizations. The tool description does not need to add parameter semantics; the schema carries the full burden, 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.

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 names the exact resource ('organization's document-generation settings') with the precise fields returned. It clearly differentiates from the sibling 'scf_update_document_settings' by emphasizing the read-only nature.

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 by stating this is a read operation appropriate for a viewer role and enumerates what it returns. It does not explicitly name alternatives or exclusions, but the read vs. update contrast with sibling tools is evident.

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

scf_get_domainA
Read-only

Get one SCF domain with its controls (read, no org). Deprecated controls are excluded unless include_deprecated is set; a deprecated domain still resolves, badged.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesDomain code or slug, e.g. 'IAC' β€” obtain from scf_list_domains
include_deprecatedNoInclude deprecated controls (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, and the description adds useful non-obvious behavior: deprecated controls are excluded by default, and a deprecated domain still resolves but is badged. This goes beyond what the annotation alone communicates.

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

Conciseness5/5

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

Two sentences, no filler. The first sentence front-loads the core purpose, and the second conveys the key behavioral nuance. 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 simple read-only getter with two well-documented parameters, the description covers purpose, filtering behavior, and identifier edge cases. There is no output schema, but 'domain with its controls' and 'badged' provide sufficient return-context for an agent to use the tool correctly.

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

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 by explaining the include_deprecated default behavior and by revealing that a deprecated domain identifier still resolves and comes back badged, which is not present 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 and resource: 'Get one SCF domain with its controls.' It also includes scope ('read, no org') that distinguishes it from list-style or org-scoped siblings like scf_list_domains, making the tool's purpose 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 gives clear usage context: it is a read-only fetch of one domain, not org-scoped, with deprecated controls excluded unless explicitly included. It does not explicitly 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.

scf_get_engagementA
Read-only

Get one audit engagement's detail (read β€” viewer role, or an auditor assigned to this engagement).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

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, and the description's 'read' label aligns with that. The description adds useful behavioral context by specifying role-based access restrictions (viewer or assigned auditor), which is not present in the annotations or schema. No contradiction 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?

The description is a single sentence with no filler. The core action and resource are front-loaded, and the role restriction is compactly appended in parentheses. Every word 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 getter with no output schema, the description covers purpose, resource, and authorization context. It does not describe return shape, but the absence of an output schema lowers that burden. Minor gap: it doesn't mention sibling tools that return different engagement-related views, but the tool is simple enough that this is not a major omission.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have descriptive text ('Organization UUID β€” obtain from scf_list_organizations', 'Audit engagement UUID β€” obtain from scf_list_engagements'). The tool description itself adds no parameter-level detail, so the schema carries the burden; 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 states a specific verb and resource: 'Get one audit engagement's detail.' It clearly identifies the singular engagement focus and includes role context. It doesn't explicitly differentiate from sibling tools like scf_get_engagement_scope or scf_get_engagement_presentation, but 'detail' is reasonably distinct from those.

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 access/role context ('read β€” viewer role, or an auditor assigned to this engagement') which implies when the tool is usable, but it does not explicitly state when to choose this over alternatives such as scf_list_engagements, scf_get_engagement_scope, or scf_get_engagement_presentation. 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.

scf_get_engagement_presentationB
Read-only

Get the engagement's scope presented natively in one of its frameworks (read β€” viewer, or assigned auditor): SCF controls organised by that framework's own structure, as an auditor reads them.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
frameworkYesFramework to present from β€” must be one of the engagement's own frameworks
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

B3.4/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 reinforces this with 'read β€” viewer, or assigned auditor'. It adds that the output is organized by the framework's own structure, but it does not disclose error/access-failure behavior or response shape, so it adds only moderate 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.

Conciseness4/5

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

The description is a single sentence that front-loads the core action and packs the distinguishing behavior into a parenthetical and colon. It is compact, though the 'read β€” viewer, or assigned auditor' phrase is somewhat dense and could be clearer.

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 tool with three required parameters and a fully documented schema, the description is mostly sufficient. It gives a high-level idea of the return (controls organized by framework structure), but because there is no output schema it could say more about exact return format, and it does not provide explicit routing guidance relative to sibling tools.

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 (org_id, engagement_id, framework) are already documented in the schema. The description merely echoes the framework constraint and does not add new syntax or 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.

Purpose4/5

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

The description states a specific action and resource: get the engagement's scope rendered in a chosen framework's native structure. The phrase 'as an auditor reads them' and 'one of its frameworks' helps distinguish it from generic scope/control-list siblings, 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 Guidelines3/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no sibling alternatives are named. The 'natively in one of its frameworks' wording implies its niche versus similar tools like scf_get_engagement_scope or scf_list_scoped_controls, but the agent must infer this.

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

scf_get_engagement_queryA
Read-only

Get one auditor query with its full response thread (read β€” viewer role, or an assigned auditor).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
query_idYesQuery UUID β€” obtain from scf_list_engagement_queries
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A4/5.0
Behavior3/5

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

The annotation readOnlyHint=true already covers the safety profile, so the description's '(read)' echo adds little. It does add useful behavioral context via the role requirement and the 'full response thread' scope, but it does not describe return shape or error behavior. This is comparable to the calibration example where annotations carry most of the safety weight.

Agents need to know what a tool does to the world before 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 front-loads the verb and resource, then appends the read semantic and role constraint. There is no filler, repetition, or extraneous detail.

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

Completeness4/5

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

For a read-only tool with three well-documented UUID parameters and no output schema, the description covers what is returned (one query plus its full response thread) and who can call it. The only notable gap is that it does not enumerate the fields inside the response thread, which is minor given the operation's simplicity.

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 each UUID parameter includes provenance ('obtain from scf_list_engagements', etc.). The description itself adds no parameter-level detail beyond saying the tool fetches one query and its thread, 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 ('Get'), a singular resource ('one auditor query'), and a distinguishing feature ('full response thread'). It is clearly differentiated from sibling query tools like scf_list_engagement_queries, scf_create_engagement_query, and scf_respond_to_engagement_query.

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 labeling the call as a read and stating the access prerequisite ('viewer role, or an assigned auditor'). It does not explicitly name alternatives or exclusions, but the schema's 'obtain from' instructions for each UUID parameter effectively guide the agent to the right lookup flow.

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

scf_get_engagement_scopeA
Read-only

Get an engagement's frozen control scope (read β€” viewer role, or an assigned auditor). Rows carry a catalog lifecycle badge, so controls deprecated since the freeze still render, marked.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

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 behavioral details: the scope is frozen, rows carry a catalog lifecycle badge, and controls deprecated since the freeze still render as marked. This gives the agent meaningful expectations about the data 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?

The description is a single focused sentence with no filler. It front-loads the core purpose, then adds the role constraint and the key behavioral nuance about deprecated controls in a compact, efficient way.

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

Completeness5/5

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

For a two-parameter read-only tool with fully documented parameters, the description is complete enough for an agent to select and invoke it correctly. It covers what the tool does, who can call it, and an important output behavior, so no critical missing context remains.

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

Parameters3/5

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

The schema already covers both parameters fully, including format, required status, and provenance instructions ('obtain from scf_list_organizations' / 'scf_list_engagements'). The description adds no parameter-specific semantics, but none are needed given the 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 uses a specific verb ('Get') and a precise resource ('an engagement's frozen control scope'), and clarifies that this is a read operation. The phrase 'frozen control scope' distinguishes it from related sibling tools like scf_list_scoped_controls, which would presumably return the current scope.

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 establishes the context: use this tool to retrieve the frozen control scope for an engagement, and it notes the role requirements (viewer or assigned auditor). It does not explicitly name alternative tools or state when not to use it, 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.

scf_get_evidenceA
Read-only

Get one evidence tracking record (read β€” viewer role): tracked flag, collection method, owner, assignee, frequency, system, maturity level and its catalog deprecation badge.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesCatalog evidence ID, e.g. E-IAM-01 β€” obtain from scf_list_evidence_catalog

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, but the description adds the 'viewer role' detail and enumerates the returned fields (tracked flag, collection method, etc.), which goes beyond the annotation. No contradictions found; the description consistently reflects 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 a single, front-loaded sentence that states the core action and then lists the relevant fields. It is efficient with no 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.

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, the description is fully sufficient. It lists the exact fields the agent can expect in the response, and the schema covers parameter sourcing. There is no output schema, but the field list compensates. Nothing essential is missing for a 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%, with both org_id and evidence_id fully documented including examples and how to obtain them. The description adds no new parameter information; it only mentions output fields. Baseline 3 is appropriate given the schema's thoroughness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 one evidence tracking record') and the resource, and lists the specific fields returned. It distinguishes itself from list-style tools (scf_list_evidence) and catalog-specific tools (scf_get_catalog_evidence) by focusing on a single tracking record, making its purpose unambiguous.

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

Usage Guidelines3/5

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

The description includes role context ('viewer role') and implies a single-record fetch, but does not explicitly mention alternatives or when not to use it. With many sibling tools, an agent could benefit from explicit routing (e.g., 'use scf_get_catalog_evidence for catalog metadata'). This is a clear gap.

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

scf_get_evidence_assessmentA
Read-only

Get the AI assessment for an evidence file: status, relevance score (0–100), structured findings, summary, and audit metadata (model, tokens, cost). Poll after scf_trigger_evidence_assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
evidence_idYesEvidence ID (e.g., 'ERL-IAM-001') β€” obtain from scf_list_evidence

TDQS

A4.1/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 meaningful behavioral context by indicating that this is an async polling operation triggered by scf_trigger_evidence_assessment. It also previews the status field, which implies the result may be in progress, adding value 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 a single, focused sentence that front-loads the core purpose, then efficiently enumerates the key returned fields and the required polling relationship. 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?

With no output schema, the description compensates by listing the expected response contents (status, relevance score, findings, summary, audit metadata). The parameter details are fully covered by the input schema, and the async polling relationship is explicitly stated, making this sufficiently complete for an agent to invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100% and the input schema already explains how to obtain each parameter (e.g., 'obtain from scf_list_evidence_files'). The tool description itself adds little about parameter semantics, so it stays at the schema-covered baseline.

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

Purpose4/5

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

The description clearly states the verb and resource: 'Get the AI assessment for an evidence file', and lists the returned content (status, relevance score, structured findings, summary, audit metadata). It does not explicitly distinguish itself from closely named siblings like scf_get_evidence_assessment_summary, so it misses 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 Guidelines4/5

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

The description gives explicit usage context with 'Poll after scf_trigger_evidence_assessment,' telling the agent when it is appropriate to call this tool. It does not, however, clarify when to prefer a sibling such as scf_get_evidence_assessment_summary over this one, so exclusions are not fully addressed.

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

scf_get_evidence_assessment_summaryA
Read-only

Get aggregate AI assessment metrics for the organization dashboard: total assessed, counts by status, unassessed count, average relevance score, and total cost in cents.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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-only nature is covered. The description adds useful context about the scope (organization dashboard) and the exact metrics returned, but it does not disclose potential nuances like how statuses are categorized, whether aggregates are point-in-time or time-bounded, or how average relevance is computed. Given the annotation coverage, a middle score is appropriate.

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

Conciseness5/5

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

The description is a single well-structured sentence that front-loads the core purpose and then compactly lists the returned metrics. Every word earns its place, with 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.

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 tool with one well-documented parameter, the description provides enough context for an agent to select and invoke it correctly. It names the data returned, the aggregation scope, and the cost unit. The only minor gap is the absence of any note about response shape or empty-result behavior, but the output schema is absent and the tool is simple enough that this is not a significant omission.

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?

There is only one parameter, org_id, and its schema description is 100% covered, even providing a source hint ('obtain from scf_list_organizations'). The tool description adds no parameter-level meaning beyond the schema, but none is needed given the high 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 states a specific verb ('Get') and resource ('aggregate AI assessment metrics') and enumerates the exact returned fields (total assessed, counts by status, unassessed count, average relevance score, total cost in cents). It clearly identifies what the tool does, though it does not explicitly differentiate it from sibling summary tools like scf_get_evidence_validation_summary or scf_get_window_assessment_summary.

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 'for the organization dashboard' implies the intended use case: retrieving high-level aggregate assessment metrics for display or reporting. However, there is no explicit guidance on when to prefer this tool over sibling summary tools, nor any exclusions or alternative recommendations.

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

scf_get_evidence_fileA
Read-only

Get metadata and a pre-signed download URL (15-min expiry) for a single evidence file. Use to inspect or retrieve a specific uploaded artifact.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
evidence_idYesEvidence ID (e.g., 'ERL-IAM-001') β€” obtain from scf_list_evidence

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 the safety profile is covered. The description adds meaningful behavioral context beyond the annotation: the tool returns metadata plus a pre-signed download URL, and the URL expires in 15 minutes. This helps the agent understand response timing and re-invocation needs.

Agents need to know what a tool does to the world before 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 key facts β€” metadata, pre-signed URL, 15-minute expiry, single artifact β€” are 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 read-only single-file retrieval tool with 100% schema coverage and three well-documented parameters, the description conveys the essential behavior. There is no output schema, so slightly more detail about what 'metadata' includes could improve completeness, but it is adequate 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%, and each parameter already has a clear description with a source command for obtaining its value. The tool description does not add additional parameter-level meaning, 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 states a specific action and resource: retrieving metadata and a pre-signed download URL for a single evidence file. The phrase 'single evidence file' and 'specific uploaded artifact' clearly distinguishes this from listing or aggregation siblings like scf_list_evidence_files or scf_get_evidence_maturity.

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 to use the tool to inspect or retrieve a specific uploaded artifact, which gives clear context for when it applies. It does not name alternatives or exclusion conditions, but the 'single file' wording implicitly sets it apart from list or bulk operations.

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

scf_get_evidence_healthA
Read-only

Get evidence collection health for the organization: per-item freshness status (green/amber/red) against collection frequency, with a roll-up summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 by specifying the output structure and the classification scheme (green/amber/red against collection frequency). For a read-only health query, the description provides sufficient transparency about what the agent should expect.

Agents need to know what a tool does to the world before 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 front-loads the action and resource, then packs the essential output semantics into a compact clause. No filler, no repetition of schema information, and every word earns its place.

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

Completeness5/5

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

For a one-parameter read-only tool with no output schema, the description conveys enough: what is returned (per-item freshness status and roll-up summary), the scope (organization), and the evaluation basis (collection frequency). The agent can select and call this tool confidently without additional context.

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

Parameters3/5

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

Schema coverage is 100%: org_id is fully documented with type, format, pattern, and a source hint ('obtain from scf_list_organizations'). The description only weakly reinforces the organization scope and adds no parameter-level detail beyond the schema, 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.

Purpose5/5

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

The description states a specific action and resource ('get evidence collection health') and defines the output at a useful level of detail: per-item freshness status (green/amber/red) against collection frequency plus a roll-up summary. This clearly distinguishes it from sibling tools like maturity or validation 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?

The phrase 'for the organization' clarifies that this tool reports organization-level health rather than item-level detail, and the mention of freshness against collection frequency gives an agent a clear basis for choosing it. However, it does not explicitly name alternatives or exclusion conditions, so it stops short of full guidance.

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

scf_get_evidence_item_maturityA
Read-only

Get one evidence item's collection maturity: current level (1=Ad Hoc to 5=Optimized), contributing factors, upgrade potential, and tracking state.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesEvidence ID (e.g., 'E-RSK-02') β€” obtain from scf_list_evidence

TDQS

A4/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, so the description does not need to restate that. It adds some useful behavioral context by listing the returned data dimensions, but it does not disclose additional traits such as auth requirements, rate limits, pagination, or what happens when the evidence item 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?

The description is a single, front-loaded sentence with no wasted words. It states the scope, defines the level scale inline, and lists the output categories compactly. This is an efficient and well-structured description.

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 so by naming current level, contributing factors, upgrade potential, and tracking state. The inputs are fully documented in the schema, and the readOnlyHint covers safety. A small gap is that 'tracking state' and 'upgrade potential' are left terse, and no relationship to the similar evidence-maturity sibling is mentioned, but for a simple read tool this is largely 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 description coverage is 100%, and both parameters already have meaningful descriptions with provenance instructions ('obtain from scf_list_organizations' and 'obtain from scf_list_evidence'). The tool description itself adds no parameter-level semantics beyond what the schema provides, so the baseline score applies.

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

Purpose5/5

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

The description opens with a specific verb-resource pair: 'Get one evidence item's collection maturity', which clearly identifies both the action and the exact scope. It also enumerates what the tool returns (current level on the 1-5 scale, contributing factors, upgrade potential, tracking state), making its purpose unambiguous and distinguishing it from the collection-level sibling scf_get_evidence_maturity via the 'one evidence item' 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 clearly implies this tool is for a single evidence item's maturity, giving the agent a straightforward context for when to select it. However, it does not explicitly name alternatives or state when not to use it, such as pointing to scf_get_evidence_maturity for overall maturity or scf_get_evidence_upgrade_recommendations for detailed upgrade paths.

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

scf_get_evidence_maturityA
Read-only

Get the organization's evidence maturity summary: average maturity score, automation percentage, distribution by maturity level, and improvement opportunities.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 context beyond that by enumerating what the summary contains: average maturity score, automation percentage, distribution by maturity level, and improvement opportunities.

Agents need to know what a tool does to the world before 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 verb and resource, then lists the return contents in a compact list. Every element earns its place and no unnecessary words are present.

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

Completeness4/5

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

For a simple read-only summary tool with one fully documented parameter, the description covers the key return areas sufficiently. It does not describe the exact response structure, but no output schema exists and the listed fields give an agent enough context to invoke and interpret the 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%, and the org_id parameter already has a clear description telling the agent to obtain it from scf_list_organizations. The tool description itself 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?

States a specific verb ('Get'), a clear resource ('organization's evidence maturity summary'), and the exact data included. The 'organization's' qualifier and contents distinguish it from sibling tools like scf_get_evidence_item_maturity and scf_get_evidence_validation_summary.

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 org-level use by naming the organization's summary, but it provides no explicit when-to-use guidance or exclusions. It does not tell the agent to prefer scf_get_evidence_item_maturity for item-level maturity questions.

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

scf_get_evidence_suggestionsA
Read-only

Get system-aware collection suggestions for one evidence item: which tracked system currently collects it, which in-scope systems are capable of collecting it, and tailored collection guidance.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesEvidence ID (e.g., 'E-RSK-02') β€” obtain from scf_list_evidence

TDQS

A4.2/5.0
Behavior4/5

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

The annotation readOnlyHint=true already communicates that this is a safe read operation, and the description does not contradict it. The description adds meaningful behavioral detail beyond the annotation by enumerating what the tool returns: current collector, capable systems, and tailored guidance. It does not discuss error cases or permission requirements, but those are minor 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?

A single well-structured sentence front-loads the core action and then expands with a colon-delimited list of exactly what the response covers. Every phrase adds value, with 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?

The description compensates for the absent output schema by explicitly listing the main components of the returned suggestions. For a simple two-parameter read-only tool, this is sufficient context. It does not cover edge cases such as no tracked system or invalid evidence ID, but those are not necessary 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 both parameters are already documented with types and source hints like 'obtain from scf_list_organizations.' The description does not need to repeat parameter details and adds no new parameter-level semantics. Baseline 3 is appropriate because the schema carries the 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 names a specific verb and resource: 'Get system-aware collection suggestions for one evidence item.' It distinguishes itself from the many evidence sibling tools by clarifying the output scope: tracked system, capable in-scope systems, and tailored guidance. This is not a tautology and leaves little 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 clearly implies when to use it: for a single evidence item when the agent needs collection suggestions and system comparisons. It does not explicitly name alternatives or provide when-not-to-use exclusions, but the 'one evidence item' scoping and 'system-aware' framing give strong contextual direction in a crowded tool set.

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

scf_get_evidence_upgrade_recommendationsA
Read-only

Get upgrade-path recommendations for maturing one evidence item's collection: target level, effort, impact, and step-by-step actions β€” the same guidance shown in the platform UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesEvidence ID (e.g., 'E-RSK-02') β€” obtain from scf_list_evidence

TDQS

A3.6/5.0
Behavior3/5

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

With readOnlyHint=true already declared, the safety profile is covered by annotations. The description adds useful context by specifying what the response contains (target level, effort, impact, step-by-step actions) and that it mirrors platform UI guidance, but it does not disclose response format, pagination, or any other behavioral traits. 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?

A single well-structured sentence that front-loads the verb and resource, lists the output components in a compact colon-separated form, and closes with a grounding remark about the platform UI. Every word earns its place with 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 read-only tool with two fully documented parameters and no output schema, the description compensates well by naming the expected output components. Minor gaps remain: no indication of response structure/format beyond the component list and no explicit exclusions against sibling tools, but 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%, and the parameter descriptions are genuinely helpful, including source-lookup hints ('obtain from scf_list_organizations') and an example format ('E-RSK-02'). The tool description itself adds no parameter-level meaning, so the baseline of 3 applies as the schema carries the burden.

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'), resource ('upgrade-path recommendations'), and scope ('one evidence item's collection'), then enumerates concrete output components (target level, effort, impact, step-by-step actions). This is clear enough for an agent to understand what the tool does, though it does not explicitly differentiate itself from the similarly named sibling scf_get_evidence_suggestions.

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 can infer this tool is for when it needs upgrade/maturity-path recommendations for a single evidence item, and the parameter descriptions hint where to obtain IDs. However, the description names no alternatives and gives no when-not-to-use guidance, leaving the distinction from scf_get_evidence_suggestions and scf_get_evidence_maturity to inference.

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

scf_get_evidence_validationA
Read-only

Get the validation result for a single evidence file: status (valid/warning/partial/invalid), completeness score, individual rule findings, source, and timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
evidence_idYesEvidence ID (e.g., 'ERL-IAM-001') β€” obtain from scf_list_evidence

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 safety profile, and the description adds meaningful behavioral detail by specifying exactly what the response contains, especially valuable given no output schema exists. It does not describe edge cases such as missing validation results, but for a simple read operation this 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 a single, front-loaded sentence that states the operation, the scope, and the key returned fields without any filler. Every element earns its place and the structure makes it easy to scan.

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

Completeness4/5

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

For a read-only getter with no output schema, the description covers the essential return values and the parameter schema handles the inputs. It could more explicitly differentiate itself from summary or maturity tools, but the per-file scope and detailed field list make it adequately complete 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%, and each parameter already has a description with guidance on where to obtain the value (e.g., 'obtain from scf_list_organizations'). The tool description adds no parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb and resource ('Get the validation result for a single evidence file') and enumerates the return contents (status, completeness score, rule findings, source, timestamp). This clearly distinguishes it from siblings like scf_get_evidence_validation_summary by emphasizing per-file granularity and individual rule findings.

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 'for a single evidence file' implies this tool is for detailed, per-file validation data rather than aggregate summaries, but it never explicitly names alternatives or states when not to use it. An agent must infer the intended usage from the description and sibling names.

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

scf_get_evidence_validation_summaryA
Read-only

Get aggregate evidence validation metrics for the organization dashboard: total files validated, counts by status (valid/warning/partial/invalid), and overall pass rate.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A3.7/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile. The description adds useful context about the aggregated nature and output fields, but does not disclose additional behavioral traits such as potential data staleness, scoping rules, or whether the metrics are computed live. With annotations present, this level 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?

A single, information-dense sentence that front-loads the main action and resource, then specifies exactly what is returned. 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 aggregate tool with one well-documented parameter and no output schema, the description fully conveys the purpose and expected return contents. It is complete enough for an agent to invoke correctly.

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

Parameters3/5

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

The input schema already provides 100% coverage for the single parameter, including format, pattern, and a pointer to scf_list_organizations for obtaining valid org_id values. The description does not add further 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.

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 ('aggregate evidence validation metrics'), and clearly enumerates the returned data (counts by status, pass rate). It differentiates itself as an organization-dashboard aggregate, which distinguishes it from per-file validation tools, though it does not explicitly name sibling tools.

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

Usage Guidelines3/5

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

The phrase 'for the organization dashboard' implies the intended context, but the description offers no explicit guidance on when to use this tool versus closely related siblings like scf_get_evidence_validation, scf_get_evidence_health, or scf_get_evidence_assessment_summary. No exclusions or alternative conditions are provided.

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

scf_get_framework_scope_summaryA
Read-only

Get framework coverage and selection state in one view (read β€” viewer role): which frameworks are selected and how their controls sit against the scope. Read side of scoping; changing it is elsewhere.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 reinforces it with 'read β€” viewer role', adding clarity on permission requirements. It also mentions 'Read side of scoping', which adds context about its role in the scoping process 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 total, with the key purpose front-loaded, followed by a clear note on read-only nature and scoping context. No redundant phrasing; every word contributes to understanding.

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 complexity (single parameter, no output schema but expected to return a summary view), the description provides sufficient clarity on what it returns (framework coverage and selection state) and the permission context. It might be improved by naming specific sibling tools for contrast, but overall it's complete enough 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 description coverage is 100%, including a clear description for org_id: 'Organization UUID β€” obtain from scf_list_organizations'. The description adds no additional parameter details, but given high schema coverage, the baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get framework coverage and selection state in one view', specifying it is a read operation for a viewer role. It identifies the resource (frameworks) and the action (get summary), distinguishing it from mutation tools like scf_scope_framework by stating 'changing it is elsewhere.'

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 viewing framework selection and scope without modification, and explicitly notes that changing it is handled by other tools. However, it doesn't explicitly name the alternative tools or when not to use this tool, but the context is clear.

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

scf_get_frequency_healthA
Read-only

Report evidence whose declared frequency disagrees with the observed upload cadence over the last 90 days (read β€” viewer role). Only misaligned items are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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, and the description adds meaningful behavior beyond that: it states the viewer role, the 90-day lookback window, and that only misaligned items are returned. This gives the agent a clear behavioral contract 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?

The description is a single, front-loaded sentence that covers purpose, time window, permission, and output filtering without filler. Every clause contributes information an agent needs to select and invoke the tool.

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

Completeness4/5

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

For a single-parameter, read-only tool with a fully documented schema, the description supplies the essential invocation context: what the report detects, the time window, the permission level, and the output filter. It does not describe result field shapes or pagination, but no output schema exists and the core selection/invocation needs are met.

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 fully documents the single org_id parameter, including a UUID format and a pointer to scf_list_organizations for obtaining it. The description adds no additional parameter-specific meaning, 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 uses a specific verb ('Report') and identifies a precise resource: evidence whose declared frequency disagrees with observed upload cadence over the last 90 days. It also distinguishes itself from broader evidence-health siblings by emphasizing that only misaligned items are returned, so an agent can tell this apart from tools like scf_get_evidence_health.

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: it applies to evidence frequency-vs-cadence mismatches over a 90-day window, and it states that the operation is a read available to a viewer role. It does not explicitly name alternative tools or exclusions, but the context is specific enough for an agent to infer when to call it.

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

scf_get_journeyA
Read-only

Get the organization's guided journey β€” the staged path it walks, with preconditions evaluated (read β€” viewer role). Never writes: an org without a journey sees the default template as a preview.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 adds meaningful behavior: it explicitly states 'Never writes', names the viewer role requirement, notes preconditions are evaluated, and discloses that an org without a journey receives a default-template preview. This gives an agent clear expectations without contradicting 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 tight sentences with no filler. The core purpose is front-loaded, and the important non-writing behavior plus preview fallback are packed into the second sentence. Every clause earns its place.

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

Completeness5/5

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

For a simple one-parameter, read-only getter with no output schema, the description is complete: it explains what is returned in concept (guided journey with preconditions), the authorization context, and the no-journey fallback. An agent has enough to decide to call it and know what to expect.

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 org_id already includes a useful description ('Organization UUID β€” obtain from scf_list_organizations'). The tool description adds little parameter-level meaning beyond connecting org_id to 'the organization's journey', 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 clearly identifies the resource ('the organization's guided journey') and the action ('Get'), and distinguishes it from siblings like scf_list_journey_templates by emphasizing the org-specific staged path rather than the template library. The preview-fallback clause further sharpens what this tool returns.

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 is the read-only way to read the org's journey, appropriate for a viewer-role caller, and explains the fallback when no journey exists. It lacks an explicit exclusion such as 'for templates use list_journey_templates', 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.

scf_get_latest_vendor_assessmentA
Read-only

Get a vendor's latest completed AI security assessment: RAG status, recommendation, executive summary, report_markdown/report_json. 404 if none completed yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

TDQS

A4.1/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 by disclosing the 404 behavior when no completed assessment exists and by listing the specific return fields (RAG status, recommendation, executive summary, report_markdown/report_json). This goes beyond the structured annotation data.

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

Conciseness5/5

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

The description is a single front-loaded sentence that covers purpose, returned content, and error behavior with no wasted words. It earns every word it uses.

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

Completeness5/5

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

With no output schema present, the description compensates by naming the included report fields, and it covers the key edge case (404 when no completed assessment exists). Parameters are fully handled by the schema, and the read-only stance is covered by annotations. Nothing needed to call this 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 description coverage is 100%, and both org_id and vendor_id already carry actionable descriptions ('obtain from scf_list_organizations' and 'obtain from scf_list_vendors'). The tool description does not add additional parameter-level meaning, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb ('Get'), a specific resource ('a vendor's latest completed AI security assessment'), and even enumerates the fields returned. It distinguishes itself from sibling tools like scf_get_vendor_assessment and scf_list_vendor_assessments by emphasizing 'latest completed'.

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 you need the latest completed assessment, and it notes a 404 condition. However, it does not explicitly name alternatives or state when not to use it, leaving the agent to infer which sibling tool is appropriate in other scenarios.

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

scf_get_notificationsA
Read-only

Get the caller's notifications: new assignments, comments, status changes, and system alerts.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100, default 25)
unread_onlyNoReturn only unread notifications (default false)

TDQS

A4/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 'Get' is consistent. The description adds value by specifying that only the caller's notifications are returned and by listing the included event types. However, it does not disclose response shape, sorting, or pagination behavior beyond what the schema's limit parameter implies.

Agents need to know what a tool does to the world before 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 with the verb and resource front-loaded. The category list is compact and informative without any 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 tool with two optional, well-documented parameters, the description provides sufficient scope and content clarity. The lack of an output schema is partially mitigated by the clear 'notifications' resource and category list, though a bit more detail on the returned fields 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?

The input schema fully documents both parameters with defaults, ranges, and descriptions (100% schema description coverage), so the description does not need to repeat them. It adds no additional parameter-level meaning, which meets the baseline for a fully documented 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 ('Get') with an explicit resource ('the caller's notifications') and enumerates the notification categories. This clearly identifies the tool's purpose and distinguishes it from the many unrelated sibling tools, none of which target 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 caller-scoped phrasing makes the usage context clear: this returns the current user's own notifications, not some workspace-wide feed. There is no sibling notification tool to differentiate against, so the lack of explicit alternatives is acceptable, though the description stops short of stating 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.

scf_get_organizationA
Read-only

Get one organization's detail: subscription tier, member count, usage limits, and settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 operation. The description adds value beyond the annotation by stating what data the response contains (subscription tier, member count, usage limits, settings), which helps an agent predict the tool's output.

Agents need to know what a tool does to the world before 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 action, the target resource, and the key return fields with no filler. Every part of the 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, read-only retrieval tool, the description is largely complete: it identifies the resource, the required input source, and the expected detail categories. There is no output schema, but the description compensates by listing the major output areas, though it does not detail error behavior or authorization requirements.

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 org_id property description already explains the UUID and how to obtain it from scf_list_organizations. The main description adds no additional parameter 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 uses a specific verb ('Get') and resource ('one organization's detail') and then enumerates the exact data categories returned: subscription tier, member count, usage limits, and settings. This clearly distinguishes it from sibling list operations like scf_list_organizations.

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 the tool is for retrieving a single organization's details rather than listing organizations. The parameter description adds workflow guidance by stating the org_id should be obtained from scf_list_organizations, though it does not explicitly name alternatives or exclusion cases.

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

scf_get_org_work_queueA
Read-only

Get one organization's consolidated GRC work queue (read β€” viewer role): overdue evidence tasks, blocking controls, stale collection schedules. assigned_to_me narrows to the caller.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
assigned_to_meNoOnly items owned by or assigned to the caller (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; the description adds 'read β€” viewer role' and clarifies the queue contents and filtering behavior. This goes beyond the annotation without contradicting it, though it does not disclose details like pagination or result 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 a single front-loaded sentence that efficiently conveys purpose, contents, role, and filtering. Every clause adds meaningful information with no filler or repetition.

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

Completeness4/5

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

For a simple two-parameter read-only tool, the description covers purpose, scope, viewer role, queue contents, and the optional filter. It does not describe the return structure, and there is no output schema, but the core information needed to invoke it correctly 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 both parameters are already well documented, including the org_id source (scf_list_organizations) and assigned_to_me's default. The description only repeats the assigned_to_me narrowing, adding little 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 ('Get'), resource ('one organization's consolidated GRC work queue'), and enumerates the queue contents (overdue evidence tasks, blocking controls, stale collection schedules). The 'one organization's consolidated' qualifier and assigned_to_me filter distinguish it from sibling list/queue tools such as scf_get_work_queue.

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 useful context by scoping the queue to one organization and noting that assigned_to_me narrows to the caller, but it does not explicitly say when to prefer this tool over nearby siblings like scf_get_work_queue or scf_get_assessment_review_queue. No alternatives are named or excluded, so usage guidance is only implied.

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

scf_get_recipe_generation_statusA
Read-only

Get the status of a queued AI recipe-generation job for a system. Poll this after scf_generate_system_recipes.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
system_idYesSystem UUID β€” obtain from scf_list_systems

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 useful behavioral context: the operation is an async polling call for a queued job, implying it can be called repeatedly without side effects. It doesn't disclose the full status lifecycle, but the polling guidance adds real value beyond annotations.

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

Conciseness5/5

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

Two sentences with no wasted words. The purpose is stated first, and the second sentence gives a direct actionable usage instruction referencing the prerequisite tool. 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 2-parameter read-only status tool, the description plus schema provides enough to select and invoke correctly: required IDs, their provenance, and the prerequisite generation call. Since there is no output schema, a note about possible status values would be a nice addition, but its absence does not block 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 input schema already provides 100% parameter coverage with helpful descriptions for both org_id and system_id, including where to obtain them. The tool description adds no parameter-level information, 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 uses a specific verb ('Get the status') with a clear resource ('queued AI recipe-generation job for a system'). It distinguishes itself from the generation tool by explicitly framing this as the status-check step, so an agent can tell it apart from scf_generate_system_recipes.

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 to poll this after scf_generate_system_recipes, giving a clear triggering context and sequencing. It does not enumerate exclusions or alternative tools, but for a standalone status poll the usage guidance is sufficient.

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

scf_get_reconciliation_runA
Read-only

Get one reconciliation run in detail (read β€” viewer role): the computed diff, every deprecated entity needing a decision, and the planned action currently recorded against each.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
run_idYesReconciliation run UUID β€” obtain from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation

TDQS

A4.3/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 meaningful context beyond that: it is safe for a viewer role, it returns the computed diff, and it shows the planned action "currently recorded" rather than an applied action. This helps the agent understand the read-only and inspection-oriented nature of the call 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 a single well-structured sentence with no filler. It front-loads the core semantics ("Get one reconciliation run in detail"), then briefly conveys the read-only nature and the key output components, making every part informative.

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 readOnlyHint and full schema coverage, the description is complete. It describes the return content sufficiently even without an output schema, and the parameter descriptions cover where to obtain the required IDs. No critical gaps remain 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 description coverage is 100%, and both parameters already have helpful descriptions explaining how to obtain org_id and run_id. The description does not add parameter-level detail, but with full schema coverage 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 states a specific verb and resource: "Get one reconciliation run in detail," and enumerates its contents (computed diff, deprecated entities needing a decision, planned action). This clearly distinguishes it from scf_list_reconciliation_runs (list vs. single detail) and from action-oriented siblings like scf_set_reconciliation_actions or scf_apply_catalog_reconciliation.

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 the use context clear: use this when you need detailed information about one reconciliation run, and the parenthetical "read β€” viewer role" indicates it is a read operation accessible to viewers. It does not explicitly name alternatives or exclusion cases, but the context is sufficiently clear for an agent to select it over listing or mutation tools.

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

scf_get_riskA
Read-only

Get one risk assessment in detail: likelihood, inherent and residual impact scores, treatment plan, owner, and review date.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
risk_idYesRisk assessment ID β€” obtain from scf_list_risks

TDQS

A4.1/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 aligns with that by using 'Get.' It adds useful behavioral context by listing the specific fields returned, which partially compensates for the lack of an output schema. No contradictions or hidden side effects are suggested.

Agents need to know what a tool does to the world before 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 the verb and resource front-loaded, followed by a compact enumeration of the returned fields. There is no filler, repetition, or unnecessary explanation.

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 retrieval tool, the description plus fully documented parameters and readOnlyHint provide enough information for an agent to select and invoke the tool correctly. The field list in the description compensates for the absent output schema, and no critical usage details are 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 both parameters already include meaningful descriptions, including how to obtain the IDs from scf_list_organizations and scf_list_risks. The tool description does not add parameter-level detail, but it does not need to because the schema is already self-sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('one risk assessment') and enumerates the exact returned content: likelihood, inherent and residual impact scores, treatment plan, owner, and review date. This clearly distinguishes it from sibling tools like scf_list_risks and scf_get_risk_summary.

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 the tool is for retrieving a single detailed risk assessment, but it does not explicitly state when to use it versus alternatives such as scf_list_risks, scf_get_risk_summary, or custom-risk getters. The schema's parameter descriptions hint at the workflow by pointing to scf_list_risks, but the description itself provides no direct usage guidance.

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

scf_get_risk_matrixA
Read-only

Get the 5Γ—5 risk matrix data for the organization β€” risk distribution across likelihood Γ— impact, ready for visualization.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 this as a safe read operation. The description adds useful behavioral detail by specifying the output shape (5Γ—5) and semantic content (risk distribution across likelihood Γ— impact), which goes beyond what the annotation alone provides. It does not describe pagination or error behavior, but those are low-risk concerns for a matrix read.

Agents need to know what a tool does to the world before 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, information-dense sentence with no filler. The most important identifying information (5Γ—5 risk matrix data) is front-loaded, followed by the distribution semantics and visualization purpose. 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 simple one-parameter read operation with a read-only annotation, the description is largely complete. It explains what the output represents well enough for an agent to know what to expect, even without an output schema. It could be marginally stronger by noting whether this covers standard and custom risks, but that is not a blocking gap.

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

Parameters3/5

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

The input schema fully documents org_id, including how to obtain it via scf_list_organizations, so the schema carries the parameter-semantics burden. The description adds no additional parameter meaning, which is acceptable given 100% schema coverage. A baseline of 3 is appropriate 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 identifies a specific resource (5Γ—5 risk matrix data), a specific action (Get), and clarifies the matrix dimensions and axes (likelihood Γ— impact). This clearly distinguishes it from sibling tools such as scf_get_risk and scf_get_risk_summary, which focus on individual risks or summarized counts rather than a visualization-ready matrix.

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 'risk distribution across likelihood Γ— impact, ready for visualization' gives clear context for when to use this tool: when the agent needs matrix-shaped data for visual presentation. It does not explicitly name alternatives or state when not to use it, so it falls short of a full 5, but the intended use case is still clear.

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

scf_get_risk_profileA
Read-only

Get the organization's risk profile (read β€” viewer role): the severity thresholds that band the 5Γ—5 matrix into low, medium, high and critical. Auto-created with defaults if unset.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 context beyond that: the viewer-role authorization and the auto-created default behavior when the profile is unset. The '(read β€” viewer role)' phrasing aligns with the annotation, so there is no direct contradiction; 'auto-created' is best interpreted as system-side default provisioning rather than a user-facing write.

Agents need to know what a tool does to the world before 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 verb and resource are front-loaded, followed by a compact definition of the return value and one behavioral note about defaults. 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?

With one parameter, full schema coverage, a readOnlyHint annotation, and no output schema, the description supplies everything an agent needs: what is returned, the role required, and the behavior when the profile is unset. Nothing essential is missing 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?

The input schema already documents org_id as a UUID and tells the agent to obtain it from scf_list_organizations, so schema coverage is 100%. The description adds no parameter-specific detail beyond the schema, 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 opens with a specific verb and resource ('Get the organization's risk profile') and immediately defines what the risk profile is: 'severity thresholds that band the 5Γ—5 matrix into low, medium, high and critical.' This clearly distinguishes it from sibling tools like scf_get_risk_matrix, which would return the matrix 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 states the read-only nature, the viewer role, and the auto-created default behavior, giving an agent clear context for when a call will succeed even if no profile has been configured. It does not explicitly name alternatives for other risk-related lookups, but for a simple getter the usage context is sufficiently clear.

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

scf_get_risks_for_controlA
Read-only

List the risk codes a control addresses and this organization's assessments of them (read β€” viewer role). Control-to-risk traceability from the SCF catalog mapping.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idYesSCF control ID in DOMAIN-NN format, e.g. IAC-01

TDQS

A4.2/5.0
Behavior4/5

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

The description adds useful behavioral context beyond the readOnlyHint annotation by stating 'read β€” viewer role' and scoping results to 'this organization'. It does not contradict the annotation and clarifies permission expectations without listing side effects that do not exist.

Agents need to know what a tool does to the world before 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 with no filler; the action and object are front-loaded, and the parenthetical permission note is efficiently placed. 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 two-parameter lookup, the description covers inputs, permission, scoping, and expected output ('risk codes ... and this organization's assessments'). It does not detail the exact response shape, but there is no output schema and the summary is adequate for 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 coverage is 100% and the schema already describes org_id as an Organization UUID and scf_id as an SCF control ID in DOMAIN-NN format with an example. The description adds only a general sense of the control-to-risk relationship, not meaningful parameter-level detail 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 specific verb ('List'), a concrete resource (risk codes + assessments for a control), and makes the direction explicit: from control to risk. This distinguishes it from the sibling scf_get_controls_for_risk, which is the reverse mapping.

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 'Control-to-risk traceability from the SCF catalog mapping' provides clear context for when this read-only lookup is appropriate. It does not explicitly name the inverse sibling or list exclusions, but the intended use is evident from the description.

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

scf_get_risk_summaryA
Read-only

Get the organization's aggregate risk summary: totals by severity, treatment status breakdown, and trend data.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.1/5.0
Behavior3/5

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

The readOnlyHint=true annotation already establishes the safe read-only nature, so the description does not need to restate that. The description adds the kind of data returned (severity totals, treatment status, trends), which is useful, but it does not clarify behaviors like time-range scope, data freshness, or whether the summary is computed on demand versus pre-aggregated.

Agents need to know what a tool does to the world before 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, front-loaded sentence that immediately names the resource and then lists the key data components. Every phrase earns its place, with no filler or redundant restatement of the tool name.

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 fully documented parameter and no output schema, the description fully covers what the agent needs: what the tool does, what data it returns, and how to obtain the required org_id. 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%: org_id is described with 'Organization UUID β€” obtain from scf_list_organizations', which already tells the agent where to get the value. The description adds no parameter-specific 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.

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 a precise resource ('organization's aggregate risk summary'), then enumerates the contained data: totals by severity, treatment status breakdown, and trend data. This clearly differentiates it from siblings like scf_get_risk and scf_list_risks, which target individual risks or lists rather than an org-level aggregate.

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 'organization's aggregate risk summary' provides clear context that this tool is for high-level, org-wide rollup data, implying it is not for individual risk details or risk lists. It does not explicitly name alternatives or exclusion criteria, but the intent is reasonably apparent given the description.

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

scf_get_scoped_controlA
Read-only

Get one scoped control in detail: owner, implementation notes, evidence links, and audit history. Identify by scf_id, not by UUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idYesSCF control identifier in DOMAIN-NN format (e.g., 'AST-01', 'GOV-02') β€” NOT the UUID

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 value by disclosing the kind of detail returned (owner, implementation notes, evidence links, audit history) and reinforcing the non-UUID identifier requirement. No contradiction with annotations was 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?

The description is a single sentence with no filler: it front-loads the action and resource, then lists the return fields and the critical identifier constraint. Every word contributes.

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 operation with two well-documented parameters, the description is largely complete: it names the resource, the output areas, and the required identifier. With no output schema, the explicit list of returned fields helps, though it does not cover error scenarios or fallback guidance.

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 org_id already sourced and scf_id already described as DOMAIN-NN format and NOT the UUID. The tool description's 'not by UUID' warning repeats schema guidance without adding meaning beyond it, 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 states a specific verb and resource ('Get one scoped control in detail') and enumerates the returned content: owner, implementation notes, evidence links, and audit history. This clearly distinguishes it from listing tools and from the sibling scf_get_control, which targets unscoped controls.

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 when a single scoped control's details are needed and adds the identifier constraint 'Identify by scf_id, not by UUID.' However, it does not explicitly mention when to use alternatives like scf_list_scoped_controls for enumeration or scf_update_scoped_control for modifications, 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.

scf_get_scoping_statsA
Read-only

Get the organization's implementation statistics: counts by status, overall completion percentage, and per-framework coverage breakdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A3.9/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 'Get' is consistent with that safety profile. The description adds what data is returned but does not disclose any additional behavioral traits such as aggregation scope, data freshness, or response limits. This is adequate 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 a single front-loaded sentence with no filler. It states the operation, resource, and the key return components in a compact, readable structure that an agent can quickly parse.

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 one-parameter read-only statistics tool with no output schema, the description sufficiently covers what the agent will receive: counts by status, overall completion percentage, and per-framework coverage breakdown. Nothing critical is missing at this complexity level.

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

Parameters3/5

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

Schema coverage is 100% with a single required org_id parameter, and the schema itself already explains it is an Organization UUID and points to scf_list_organizations. The description adds 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?

The description uses a specific verb ('Get') and identifies the resource ('organization's implementation statistics'), then enumerates the contents: counts by status, overall completion percentage, and per-framework coverage breakdown. This clearly distinguishes it from other read-only summary tools like scf_get_evidence_maturity or scf_get_risk_summary, even without naming a 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 implies usage by describing what the tool returns, but it does not explicitly state when to use this tool versus alternatives. The only extra contextual hint is the schema note advising to obtain org_id from scf_list_organizations, which is a prerequisite rather than a selection rule.

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

scf_get_systemA
Read-only

Get one system from the organization's inventory (read β€” viewer role): name, type, vendor, description, catalog template link and the evidence it is configured to provide.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
system_idYesSystem UUID β€” obtain from scf_list_systems

TDQS

A4.3/5.0
Behavior4/5

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

The description adds viewer-role access context and enumerates the returned data fields, which complements the readOnlyHint annotation. It does not describe error behavior or 404 handling, but for a simple read tool with readOnlyHint=true, the disclosed behavior 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?

A single sentence that front-loads the operation and resource, then lists the returned fields. Every element 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 get-by-id tool, the description is complete: it states the role requirement, the exact returned fields, and the schema documents how to obtain both required IDs. No output schema exists, but the description fills that gap by enumerating the response content.

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

Parameters3/5

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

Schema description coverage is 100% and both parameters have helpful provenance notes ('obtain from scf_list_organizations' / 'obtain from scf_list_systems'). The description itself adds no 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 clearly states the verb ('Get'), the resource ('one system from the organization's inventory'), and the exact fields returned, which distinguishes it from scf_list_systems and scf_create_system/update_system. The parenthetical read note further clarifies its non-mutating nature.

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 the use case clear: retrieve a single system when you already have org_id and system_id, and it signals viewer-role access. It does not explicitly name alternatives like scf_list_systems, but the singular 'Get one system' versus the sibling list tool provides sufficient context.

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

scf_get_system_catalog_templateA
Read-only

Get one system-catalog template by slug with full detail: aliases and curated evidence-collection recipes (maturity level, steps, frequency, estimated time).

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesTemplate slug β€” obtain from scf_list_system_catalog

TDQS

A4.3/5.0
Behavior4/5

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

The readOnlyHint annotation already conveys safety, and the description adds useful context about the response scope: full detail including aliases and curated evidence-collection recipes with maturity, steps, frequency, and estimated time. This goes beyond the annotation and helps set agent expectations.

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

Conciseness5/5

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

The description is one compact sentence that front-loads the action and resource, then efficiently lists the meaningful return content. Every word 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 one-parameter, read-only getter with a fully documented schema and a readOnlyHint, the description is complete. It tells the agent what the tool fetches, by what identifier, and what the response will include.

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 single required parameter slug is described and even tells the agent to obtain it from scf_list_system_catalog. The description adds no extra parameter-level detail, but none 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 states the specific verb 'Get' and the resource 'system-catalog template by slug', with 'one' making clear it is a single-item fetch. It distinguishes itself from list-style siblings like scf_list_system_catalog by focusing on one template and by enumerating the returned detail (aliases, recipes).

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 use when a specific template is needed by slug and that the slug should come from scf_list_system_catalog. It provides clear context for selection, but it does not explicitly name alternatives or 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.

scf_get_system_recipesA
Read-only

Get evidence-collection recipes for a system, matched via its catalog template, alias, or fallback. Returns matched_via, the template summary, and per-maturity-level recipe steps.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
system_idYesSystem UUID β€” obtain from scf_list_systems

TDQS

A4/5.0
Behavior4/5

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

The readOnlyHint annotation already signals safety, and the description adds meaningful behavior beyond that: recipes are matched via catalog template, alias, or fallback, and the tool returns matched_via, template summary, and per-maturity-level steps. This gives the agent a useful picture of the retrieval behavior and response 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?

One tightly packed sentence leads with the primary purpose, then specifies matching behavior and return contents. No filler or redundant restating of the title/schema.

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

Completeness4/5

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

For a two-parameter read-only getter with full schema coverage, the description explains the return payload and matching semantics well. It does not mention what happens when no template/alias/fallback match exists or how this relates to recipe generation, but those are minor gaps rather than blockers.

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 org_id and system_id already documented and sourcing guidance provided. The description does not add substantive parameter-level detail beyond what the schema provides, so the baseline of 3 is appropriate.

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

Purpose5/5

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

Description names a specific verb ('Get'), resource ('evidence-collection recipes for a system'), and the matching mechanism ('catalog template, alias, or fallback'). It clearly differentiates from sibling scf_generate_system_recipes by focusing on retrieval rather than generation.

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 a read/retrieval use case and notes how recipes are matched, but it does not explicitly state when to prefer this over scf_generate_system_recipes or scf_get_recipe_generation_status. The presence of a 'generate' sibling suggests important context that 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.

scf_get_systems_for_evidenceA
Read-only

Find every system that can provide a given evidence type (read β€” viewer role) β€” the inverse of the per-system capability list. Filter by capability status.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesCatalog evidence ID, e.g. E-IAM-01
capability_statusNoFilter by capability status

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 the safety profile is covered. The description adds useful context beyond that: the viewer-role/read qualifier and the inverse-traversal relationship to per-system capability listings. Return format and pagination are not discussed, but that is a minor gap for a simple read-only lookup.

Agents need to know what a tool does to the world before 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 one compact sentence with a front-loaded verb and object. Every clause earns its place: scope, inverse relationship, auth/read context, and optional filtering. The em-dash aside is efficient and wastes no tokens.

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, the description covers the core behavior, the inversion semantics, and the optional filter. org_id and evidence_id are already explained in the schema, including an example for evidence_id. No output schema exists, but the return contract ('every system') is clear enough for an agent to call the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so org_id, evidence_id, and capability_status are already documented with formats and examples. The description's mention of 'Filter by capability status' restates the optional parameter but adds no new meaning beyond the schema. The schema carries the parameter-documentation burden, so baseline 3 applies.

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

Purpose5/5

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

The description opens with a specific action and object: 'Find every system that can provide a given evidence type.' It further disambiguates by describing itself as 'the inverse of the per-system capability list,' which separates it from sibling tools like scf_list_system_capabilities. The 'read β€” viewer role' qualifier narrows the operation's scope.

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 'inverse of the per-system capability list' phrase tells an agent when to use this tool: when starting from an evidence type rather than from a system. It also signals the optional 'Filter by capability status' behavior. It does not name an alternative explicitly, but the directional contrast gives sufficient routing guidance.

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

scf_get_teamA
Read-only

Get one team with its full roster and advisory health warnings (read β€” viewer role), e.g. no primary owner or no members.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
team_idYesTeam UUID β€” obtain from scf_list_teams

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, so the description's 'read β€” viewer role' aligns with that. It adds value beyond annotations by describing the specific outputs (full roster, advisory health warnings), which gives the agent a clearer expectation of what the call returns. No contradictions.

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

Conciseness5/5

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

The description is a single, concise sentence that packs purpose, output, and permission into an efficient, front-loaded statement. No redundant words or tangential details.

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

Completeness4/5

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

For a simple get operation with two well-documented parameters and no output schema, the description provides the key context: it returns the full roster and health warnings, and it is read-only. It does not enumerate every field in the response, but that is acceptable given the absence of an output schema and the tool's straightforward nature. It is complete enough for an agent to decide and invoke correctly.

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

Parameters3/5

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

Schema description coverage is 100%: both org_id and team_id have descriptions explaining how to obtain them (from scf_list_organizations and scf_list_teams respectively). The tool description adds no further parameter detail, so it relies on 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 clearly states a specific action (Get), a specific resource (one team), and the key output: full roster and advisory health warnings. It also notes the read-only viewer role, which distinguishes it from mutation tools like scf_update_team and from the plural list tool scf_list_teams.

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 context: use it when you need a single team's roster and health warnings, not for listing or updating. However, it does not explicitly name alternatives like scf_list_teams or scf_update_team, so it falls short of the explicit guidance required for a 5.

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

scf_get_upcoming_evidenceA
Read-only

List evidence whose next collection falls due within N days (read β€” viewer role), computed from each item's frequency and last upload. The daily 'what is due' view.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoLook-ahead window in days (1–90, default 14)
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4/5.0
Behavior4/5

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

The readOnlyHint annotation already marks this as read-only; the description adds value by specifying the viewer role requirement and explaining the calculation method (frequency and last upload). It discloses behavior beyond the annotation without contradicting it.

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

Conciseness5/5

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

Two sentences with zero waste. The core purpose is front-loaded, and the final phrase 'The daily what is due view' adds contextual value without redundancy. Every word 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 two well-documented parameters and no output schema, the description covers the essential context: what it lists, how it computes, and the viewer role. It doesn't describe return format or pagination, but that is minor given the tool's simplicity and the safety profile provided by 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 fully documented (days has range and default; org_id has format and sourcing instruction). The description adds no new parameter meaning, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description states a specific verb ('List') and a precise resource ('evidence whose next collection falls due within N days'), and clarifies the computation basis (frequency and last upload). It distinguishes itself from sibling tools like scf_list_evidence and scf_get_evidence by focusing on the 'daily what is due' view, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description implies usage via 'The daily what is due view,' which suggests when an agent would use this over a general listing tool, but it never explicitly names alternatives or states when not to use them. The guidance is inferred, not explicit.

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

scf_get_vendorA
Read-only

Get one vendor's detail: certifications, assessments, computed risk score, and latest research results.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already communicates that this is a safe read operation, lowering the bar for the description. The description adds useful context by listing what the caller will receive (certifications, assessments, computed risk score, latest research results), but it does not disclose potential side effects, authorization requirements, or rate limiting. That is acceptable because the annotation covers the main behavioral risk.

Agents need to know what a tool does to the world before 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 action and resource, then enumerates the key returned data categories. There is no redundant or filler 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?

With no output schema present, the description's enumeration of certifications, assessments, computed risk score, and latest research results provides a helpful return-shape. Given the straightforward required parameters and read-only nature, this is sufficient for an agent to call the tool, though a more explicit note about how this relates to get_vendor_research and get_latest_vendor_assessment would be marginally richer.

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

Parameters3/5

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

Schema description coverage is 100%, and both org_id and vendor_id already include provenance hints ('obtain from scf_list_organizations' / 'obtain from scf_list_vendors'). The description adds no additional parameter-level meaning, 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 states a specific verb and resource: 'Get one vendor's detail'. It also enumerates the returned content (certifications, assessments, computed risk score, latest research results), which clearly distinguishes it from list-oriented siblings like scf_list_vendors and from research/assessment-specific 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 phrase 'Get one vendor's detail' makes the intended use clear: fetch a single vendor's consolidated detail record. It does not explicitly name alternatives or exclusions, such as using scf_list_vendors for a vendor list or scf_get_vendor_research for research-only results, but the context is unambiguous enough for an agent to route correctly.

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

scf_get_vendor_assessmentA
Read-only

Get one vendor AI assessment by ID with full detail: services_used, data_role, RAG status, recommendation, full report fields, and research sources.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
assessment_idYesAssessment UUID β€” obtain from scf_list_vendor_assessments or the trigger response

TDQS

A3.8/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, which already covers the safety profile, so the description only needs to add value beyond that. It does so by disclosing the response content β€” services_used, data_role, RAG status, recommendation, full report fields, and research sources β€” giving the agent a concrete expectation of what 'full detail' means. There is no contradiction between the description ('Get') and the read-only annotation. It stops short of describing failure behavior or data freshness, but for a read operation the disclosed detail is 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?

A single sentence of roughly 24 words, front-loaded with the verb and resource ('Get one vendor AI assessment by ID') followed by a colon-delimited enumeration of return contents. There is zero filler, and the detail list is information-dense and well structured. Every word 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-by-ID tool with all three required parameters fully documented and a readOnlyHint annotation, the description is nearly complete. The enumeration of return fields partially compensates for the missing output schema. The only notable gap is the absence of guidance on how this tool differs from scf_get_latest_vendor_assessment and scf_get_vendor_assessment_status, which is already penalized under usage guidelines rather than here.

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 each UUID parameter having a 'format' and an explicit provenance hint (e.g., 'obtain from scf_list_vendors', 'obtain from scf_list_vendor_assessments or the trigger response'), so the schema already carries the documentation burden. The description adds no parameter-level semantics beyond the phrase 'by ID', which confirms assessment_id is the primary selector. Baseline 3 is appropriate when the schema does the heavy lifting.

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 and resource ('Get one vendor AI assessment by ID') and enumerates the detail fields returned (services_used, data_role, RAG status, recommendation, full report fields, research sources), making the purpose unmistakable. The phrase 'by ID with full detail' hints at differentiation from close siblings like scf_get_latest_vendor_assessment and scf_get_vendor_assessment_status, but it does not explicitly name them. This is clear, though slightly short of the explicit sibling differentiation that earns 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?

Usage context is implied rather than stated: 'by ID' signals this tool is for when a specific assessment identifier is already known, and the assessment_id parameter description ('obtain from scf_list_vendor_assessments or the trigger response') provides some navigational guidance. However, there is no explicit when-to-use versus scf_get_latest_vendor_assessment or scf_get_vendor_assessment_status, and no exclusions or alternatives are named. The agent must infer the selection criteria from the tool name and parameter provenance hints.

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

scf_get_vendor_assessment_statusA
Read-only

Get the job status of a queued vendor AI assessment: status, started_at, completed_at, error_message. Poll this after scf_trigger_vendor_assessment.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
assessment_idYesAssessment UUID β€” returned by scf_trigger_vendor_assessment

TDQS

A4.3/5.0
Behavior4/5

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

The annotation readOnlyHint=true already establishes this as a safe read operation, and the description does not contradict it. The description adds useful behavioral context beyond annotations: this is a polling endpoint for a queued job and returns status, timestamps, and error_message rather than full assessment 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 two sentences with zero filler: the first defines the resource and response fields, and the second gives the workflow context. It 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?

For a low-complexity read tool, this description covers what an agent needs: what the tool returns, that it is a polling operation, and which prior call supplies assessment_id. Since there is no output schema, listing the returned fields in the description is the key missing piece, and it 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%, and each parameter is already well documented with its source (scf_list_organizations, scf_list_vendors, scf_trigger_vendor_assessment) and UUID format. The description adds no additional parameter semantics 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 uses a specific verb with a precise resource: 'Get the job status of a queued vendor AI assessment' and enumerates the returned fields (status, started_at, completed_at, error_message). This clearly differentiates it from sibling tools like scf_get_vendor_assessment and scf_get_latest_vendor_assessment by focusing on job status rather than assessment content.

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 call this tool: 'Poll this after scf_trigger_vendor_assessment,' which maps directly to the asynchronous workflow. It does not enumerate exclusions or name alternative read tools, but the usage context is clear 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.

scf_get_vendor_researchA
Read-only

Get the latest vendor research result: breach history, known vulnerabilities, and security posture analysis. Poll this after scf_trigger_vendor_research.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

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 the safety profile, and the description adds useful behavioral context: it is a polling endpoint that returns the latest research snapshot after triggering. It does not disclose what happens if the research is not ready, but the explicit 'poll after trigger' guidance covers the primary behavioral requirement.

Agents need to know what a tool does to the world before 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 first sentence states what the tool returns, and the second gives the actionable workflow instruction. Every word earns its place.

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

Completeness5/5

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

For a read-only retrieval tool with two fully documented parameters and no output schema, the description is complete: it states what the result contains, that it is the latest result, and when to call it. The missing detail about pre-completion state is minimized by the polling guidance.

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 100%, including how to obtain them (scf_list_organizations and scf_list_vendors). 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 names a specific verb and resource ('Get the latest vendor research result') and enumerates the result contents: breach history, known vulnerabilities, and security posture analysis. This distinguishes it from generic vendor lookup tools and vendor assessment 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?

Gives explicit usage context by instructing the agent to poll this after scf_trigger_vendor_research, which clearly sequences it in the research workflow. However, 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.

scf_get_webhookA
Read-only

Get one webhook endpoint's detail: delivery stats, allowed evidence IDs, and rate-limit configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
endpoint_idYesWebhook endpoint UUID β€” obtain from scf_list_webhooks

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 concrete behavioral context by enumerating what detail is returned: delivery stats, allowed evidence IDs, and rate-limit configuration, which tells the agent what to expect. It doesn't describe pagination, response shape, or error conditions, but for a simple read-only get one resource, this is adequate; 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?

A single, concise sentence that front-loads the verb and resource, then lists the three substantive return categories. Every word earns its place; no fluff, no repetition of the title, and no redundant restating of schema details.

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

Completeness4/5

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

Given the tool is a simple read-only retrieval with two fully documented UUID parameters, the description plus schema is largely sufficient. The only minor gap is not explicitly stating the relationship to scf_list_webhooks, but the schema's parameter descriptions already provide that hint (endpoint_id obtain from scf_list_webhooks). Complete enough for an agent to call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no parameter-level details beyond what the schema provides, but it does help by naming the endpoint concept and expected returned fields, which indirectly clarifies the purpose of endpoint_id. Baseline 3 is appropriate when schema carries the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 clear verb ('Get'), identifies the specific resource ('one webhook endpoint's detail'), and names the concrete content returned: delivery stats, allowed evidence IDs, and rate-limit configuration. This differentiates it from sibling tools like scf_list_webhooks, scf_create_webhook, scf_delete_webhook, and scf_rotate_webhook_secret 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 clearly implies this is for retrieving a single webhook endpoint's detail, and the sibling names establish the context (list vs get vs create vs delete). It doesn't explicitly say 'use scf_list_webhooks first to get endpoint_id' in the description text, but the input schema does, which counts as surrounding context. It lacks an explicit when-not-to-use statement but is otherwise clear.

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

scf_get_window_assessmentA
Read-only

Get one windowed AI assessment by ID. Returns full detail: window bounds, frequency, file IDs, coverage, expected artifact types, status, relevance score, findings, summary, hashes, tokens, cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
assessment_idYesWindowed assessment UUID β€” obtain from scf_list_window_assessments

TDQS

A4.3/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 useful behavioral context by listing exactly what the response contains: window bounds, frequency, file IDs, coverage, status, findings, hashes, tokens, and cost. It does not disclose edge-case behaviors, but for a read-only get-by-ID tool this is a minor gap.

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

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 target, then finishes with a compact list of return fields. Every part earns its place, and there is 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 simple get-by-ID tool with two fully documented parameters and no output schema, the description provides sufficient context. It names the return fields and specifies how to obtain both required IDs, so an agent can select and invoke the tool confidently.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameter descriptions already tell the caller where to get valid UUIDs from scf_list_organizations and scf_list_window_assessments. The description itself adds no further parameter-specific meaning, so it earns the 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?

The description starts with a specific verb and resource: 'Get one windowed AI assessment by ID.' It clearly indicates the operation is a single-item lookup and differentiates itself from list- or summary-style siblings by promising 'full detail' and enumerating the returned fields.

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 the by-ID lookup tool and tells the caller where to obtain the required assessment_id via scf_list_window_assessments. It does not explicitly say when to prefer summary or list alternatives, but the context is clear enough for correct selection.

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

scf_get_window_assessment_summaryA
Read-only

Get aggregate windowed-assessment metrics for the organization dashboard: total windows assessed, counts by status (including insufficient_sample), average relevance score, and total cost in cents.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already signals a safe read operation, so the bar is lower. The description adds useful context by naming the statuses (including insufficient_sample) and clarifying that cost is in cents, but it does not disclose aggregation window behavior, empty-organization responses, or any data freshness caveats.

Agents need to know what a tool does to the world before 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. Every phrase adds information: the resource, the dashboard context, and the specific metrics returned.

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 summary tool, the description adequately communicates what the caller gets: totals, status counts, average relevance, and cost unit. The input schema fully documents the only parameter. It falls slightly short only by not explicitly distinguishing usage from the closest sibling tools.

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 org_id parameter is already well described as an Organization UUID sourced from scf_list_organizations. The description adds no additional parameter-level meaning beyond the schema, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('aggregate windowed-assessment metrics for the organization dashboard'), and enumerates the exact metrics returned. The word 'aggregate' clearly distinguishes this from per-window siblings like scf_get_window_assessment and scf_list_window_assessments.

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 'for the organization dashboard' provides some implied usage context for high-level summary reporting. However, the description does not explicitly state when to prefer this over scf_get_window_assessment, scf_list_window_assessments, or scf_trigger_window_assessment, nor does it name alternatives or exclusions.

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

scf_get_window_assessment_versionsA
Read-only

List every AI verdict a window assessment has received, newest first (read β€” viewer role). Each version is frozen as reached (model, prompt version, designations) plus any human decision on it.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
assessment_idYesWindow assessment UUID β€” obtain from scf_list_window_assessments

TDQS

A3.8/5.0
Behavior3/5

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

With readOnlyHint=true already declared, the description reinforces the safe read nature and adds detail about what each version captures ('model, prompt version, designations plus any human decision'). However, it does not disclose pagination, limits, or the exact response structure, which would be valuable given 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 two sentences, front-loaded with the primary purpose, and contains no filler. Every clause adds information (ordering, role, content of each version).

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 it is a list operation with straightforward parameters and read-only annotations, the description is quite complete. It covers what the versions contain and the ordering. The only missing piece is output format or pagination, but for a read-only list tool this is a minor 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 coverage is 100%, and both parameters have clear descriptions (UUID formats and how to obtain them). The description adds no new parameter-level meaning beyond 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 starts with a specific verb 'List' and a precise resource ('every AI verdict a window assessment has received'), directly conveying what the tool does. It also notes the ordering ('newest first') and what each version contains, making it distinct from siblings like scf_get_window_assessment.

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 for viewing version history but does not explicitly contrast it with scf_get_window_assessment or scf_get_window_assessment_summary. It states a read-only context ('read β€” viewer role'), which is helpful, but no concrete 'use when' or 'use instead' guidance is provided.

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

scf_get_work_queueA
Read-only

Get the caller's work queue: prioritized pending tasks, assignments, and action items across every organization they belong to.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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, and the description adds meaningful context by specifying that it aggregates across all organizations and includes prioritized items. However, it does not disclose potential edge behaviors such as empty-queue handling, ordering guarantees, pagination, or whether results are real-time or cached. With annotations covering safety, this is acceptable 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 sentence with no filler. It front-loads the core action and resource, then lists the content types and scope. Every phrase earns its place, and there is no redundancy with the title or 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 zero-parameter, read-only tool with no output schema, the description is sufficiently complete. It specifies what the tool returns (pending tasks, assignments, action items) and the aggregation scope (all organizations). Nothing an agent needs to decide whether to call it 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 input schema has zero parameters with 100% schema description coverage, making parameter documentation unnecessary. Per guidelines, zero-parameter tools receive a baseline of 4, and the description does not need to add parameter semantics. It correctly avoids inventing any.

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

Purpose5/5

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

The description states a specific action ('Get') on a well-defined resource ('the caller's work queue') and enumerates its contents: prioritized pending tasks, assignments, and action items. It also clarifies the scope as 'across every organization they belong to,' which distinguishes it from other list-style sibling tools.

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

Usage Guidelines3/5

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

The description implies usage by naming the resource and contents, but it does not explicitly state when to use this tool versus alternatives, nor does it mention any exclusions. No sibling is referenced as an alternative. The reader can infer it is for viewing one's own aggregated work queue, but explicit guidance is absent.

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

scf_import_journeyA

Set or re-issue the org's journey from a template (write β€” ADMIN role). Merges by stage key: attestations survive; dropping an attested stage is refused (409). An uploaded template wins outright.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
activateNoStart the first stage immediately (default false)
templateNoA practitioner-authored journey artefact to upload. When present it wins over template_key entirely.
template_keyNoTemplate to import, e.g. 'compliancegenie-default' β€” obtain from scf_list_journey_templates. Ignored when `template` is supplied.
practitioner_nameNoThe consultancy or practitioner recorded as having set this journey up

TDQS

A4.6/5.0
Behavior5/5

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

The description goes well beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the merge-by-stage-key behavior, that attestations survive, that dropping an attested stage is refused with 409, and that an uploaded template wins outright. This is exactly the kind of behavioral nuance an agent needs to predict side effects and error conditions.

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

Conciseness5/5

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

Three sentences with zero waste. The core action and role are front-loaded, followed by the most critical behavioral rules (merge, 409, precedence). Every sentence earns its place and the description is compact despite the complex nested schema.

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

Completeness4/5

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

For a write tool with a complex nested template object, the description covers the key behavioral aspects: merge semantics, error conditions, and precedence. It doesn't explain the return value, but there is no output schema and the description's focus on behavior is appropriate. The ADMIN role requirement and 409 behavior are the most important contextual details, and both are present.

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 explaining the precedence relationship between `template` and `template_key` ('An uploaded `template` wins outright' and 'Ignored when `template` is supplied'), which is not fully captured in the schema. It also clarifies the merge semantics that affect how `template.stages` is interpreted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Set or re-issue'), a clear resource ('the org's journey'), and the source ('from a template'). It also distinguishes itself from related tools by noting the write nature and ADMIN role, which separates it from read-only journey tools like scf_get_journey and scf_list_journey_templates.

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 when to use this tool: to set or re-issue a journey from a template, with ADMIN role required. It doesn't explicitly name alternative tools or when not to use it, but the context signals and sibling list make it clear this is the write counterpart to read-only journey tools. The merge behavior and 409 refusal provide practical guidance 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.

scf_list_assessment_objectivesA
Read-only

List SCF assessment objectives β€” the 5,736 test criteria used to evaluate control implementation. Optionally filter by control ID; supports free-text search and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100, default 25)
offsetNoPagination offset β€” number of results to skip (default 0)
searchNoFree-text filter applied to objective text
control_idNoLimit to one SCF control in DOMAIN-NN format (e.g., 'GOV-01', 'AST-02')
include_deprecatedNoInclude catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.

TDQS

A4/5.0
Behavior3/5

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

The readOnlyHint annotation already communicates that this is a safe read operation. The description adds useful behavioral context by quantifying the catalog (5,736 criteria) and mentioning filter/search/pagination capabilities. However, it does not disclose default behavior such as active-row-only responses, sort order, or return format; those details are left to 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?

The description is a single, well-structured sentence that front-loads the verb and resource, adds a clarifying definition, and lists the key invocation options. Every phrase 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.

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 a fully documented 5-parameter schema, the description is functionally complete: it identifies the resource, its purpose, the main filter, and pagination support. Minor omissions like response shape and default sorting are acceptable given the readOnly annotation and the absence of an output schema, but explicit notes on return values 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?

The input schema has 100% description coverage across all 5 parameters, including defaults, ranges, and format examples like 'GOV-01'. The description only restates that control_id filtering and free-text search exist, adding no semantic value beyond what the schema already 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 opens with the verb 'List' and names the exact resource ('SCF assessment objectives'), then defines them as 'the 5,736 test criteria used to evaluate control implementation.' This makes the tool's purpose immediately specific and distinguishes it from sibling listing tools like scf_list_controls or scf_list_domains.

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 states the invocation context: list assessment objectives, optionally filter by control ID, and use free-text search and pagination. It does not explicitly name alternatives or when not to use this tool, but the domain (assessment objectives vs. controls/evidence/risks) is clear enough for an agent to route correctly.

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

scf_list_assignmentsA
Read-only

List user assignments to controls, evidence items or tasks (read β€” viewer role). Filter by item type and id, or by user_id to see one person's workload.

ParametersJSON Schema
NameRequiredDescriptionDefault
user_idNoAssignee β€” obtain from scf_list_members
assignable_idNoItem UUID
assignable_typeNoFilter by item kind

TDQS

A4.2/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, and the description reinforces this with '(read β€” viewer role)', adding the permission level. No destructive behavior is implied, but the description doesn't cover pagination or response format. With readOnlyHint covering the safety profile, the extra role info provides modest added value.

Agents need to know what a tool does to the world before 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 redundant words. The first sentence states the core action and scope; the second covers filtering. Ideal length and front-loaded with the purpose.

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 with three optional filters, the description covers actions, targets, role, and filtering strategies. It doesn't specify return format or pagination, but the absence of an output schema and low complexity make this acceptable. It would benefit from clarifying that assignable_type and assignable_id should be used together.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds relational meaning: it shows how filters combine ('item type and id') and presents user_id as an alternative with a real-world purpose (seeing one person's workload). This goes slightly 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 opens with the verb 'List', names the resource 'user assignments', and specifies the target set 'controls, evidence items or tasks'. This clearly distinguishes it from sibling tools like scf_list_team_assignments, whose name targets 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?

It gives clear context: a viewer can read assignments, and filtering by item type/id or by user_id supports specific use cases ('one person's workload'). However, it doesn't explicitly name alternatives like scf_list_team_assignments or state when not to use this tool, so it lacks explicit exclusions.

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

scf_list_capabilitiesB
Read-only

List an organization's capabilities. Capabilities map to systems and evidence, showing what security functions the infrastructure supports.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

B3.4/5.0
Behavior2/5

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

The readOnlyHint annotation already covers the read-only safety profile. The description adds conceptual domain context ('Capabilities map to systems and evidence') but does not disclose behavioral details such as pagination, filtering, ordering, response shape, or any other runtime behavior beyond simply listing.

Agents need to know what a tool does to the world before 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 the action front-loaded in the first sentence and a useful domain clarification in the second. There is no filler or repetition of the tool name beyond the natural verb usage.

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 well-documented required parameter, the description is largely adequate. It lacks explicit output shape or pagination details, but the combination of tool name, description, and schema provides enough context for an agent to invoke the tool successfully.

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 the single org_id parameter, including its UUID format and the guidance to obtain it from scf_list_organizations. The description restates the organization scope but adds little beyond what the schema 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.

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 an organization's capabilities.' It also clarifies what capabilities are by explaining they map to systems and evidence. It does not explicitly differentiate from similar sibling tools like scf_list_capability_themes, but the resource name and explanation make the purpose clear.

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

Usage Guidelines3/5

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

The description implies the tool is for retrieving capability information for an organization, but it offers no when-to-use guidance, no exclusions, and no comparison to related tools such as scf_list_capability_themes or scf_list_system_catalog. Usage context is only implied through the domain definition.

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

scf_list_capability_theme_controlsA
Read-only

List SCF controls mapped to a capability theme (KSI), with scoping status, implementation status, and maturity level. Supports pagination and scope filtering β€” ideal for KSI drill-down.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results per page (1–200, default 50)
offsetNoPagination offset β€” number of results to skip (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
theme_codeYesCapability theme code (e.g., 'ACCESS_CONTROL') β€” obtain from scf_list_capability_themes
scope_statusNoFilter by scoping status (default: in_scope)in_scope

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 the safety profile. The description adds useful behavioral context: results include scoping status, implementation status, and maturity level, and the tool supports pagination and scope filtering. This goes beyond what annotations alone 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 tightly worded sentences: the first states what the tool does and its output fields, the second states capabilities and use case. Every sentence 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?

For a read-only list tool with 100% schema coverage, the description is largely complete: it defines the resource, key returned attributes, filtering, pagination, and an intended use case. Minor gaps are the unexplained KSI acronym and the lack of an explicit alternative versus scf_list_scoped_controls, but these do not 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%, so the parameters are already well documented. The description reinforces pagination and scope filtering but does not add meaningful param-specific meaning beyond the schema. Baseline 3 is appropriate 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?

States a specific verb and resource: list SCF controls mapped to a capability theme (KSI). It also names the key output dimensions (scopng status, implementation status, maturity level), making the tool's purpose unambiguous and distinguishable from generic control-listing 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?

Clearly signals when to use it with the phrase 'ideal for KSI drill-down,' giving an agent a strong contextual trigger. It does not explicitly name sibling alternatives or provide when-not-to-use guidance, but the purpose-based context is sufficient for most selection decisions.

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

scf_list_capability_themesA
Read-only

List an organization's 11 KSI capability themes. Themes group NIST 800-53 controls into security capability areas for a high-level posture view.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A3.5/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, so the safe read behavior is already declared. The description adds useful domain context (11 themes, grouping NIST 800-53 controls, high-level posture view) but does not disclose what the returned list contains, whether themes are ordered, or any pagination/response shape. With annotations already covering the safety profile, 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.

Conciseness4/5

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

Two sentences with no filler. The first sentence states the action and count ('11 KSI capability themes'), and the second provides useful domain context about what themes represent. It is front-loaded and each sentence earns its place.

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

Completeness4/5

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

For a simple read-only list tool with one well-documented parameter and readOnlyHint=true, the description is complete enough: it states the resource, the count, the domain context, and the parameter source. The absence of an output schema is partially mitigated by the description's statement that themes group NIST controls for a posture view, though exact return fields are not specified.

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 only parameter, org_id, is documented in the schema as 'Organization UUID β€” obtain from scf_list_organizations'. The description adds domain context about themes but no additional parameter semantics 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.

Purpose4/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 ('an organization's 11 KSI capability themes'), and adds context that themes group NIST 800-53 controls into security capability areas for a high-level posture view. It differentiates itself from siblings like scf_list_capabilities and scf_list_capability_theme_controls by focusing on the theme list itself, though it does not explicitly name those siblings.

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 this is the tool to use when you need the organization's capability themes, and the org_id parameter description says to obtain it from scf_list_organizations. However, it gives no explicit guidance on when to prefer this over sibling tools like scf_get_capability_theme, scf_list_capabilities, or scf_list_capability_theme_controls.

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

scf_list_commentsA
Read-only

List the comment thread on one control, evidence item or task (read β€” viewer role), oldest first, with authors, mentions and reply structure.

ParametersJSON Schema
NameRequiredDescriptionDefault
commentable_idYesScoped control, evidence tracking or task UUID
commentable_typeYesItem kind

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, which the description reinforces with 'read β€” viewer role'. Beyond that, the description adds behavioral specifics: ordering ('oldest first'), content ('authors, mentions and reply structure'). This goes beyond the annotation by clarifying what the returned thread contains and how it is sorted. No contradictions exist between description and annotations.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the primary purpose ('List the comment thread'), then adds scoping, role, ordering, and content details. Every clause contributes meaning without redundancy. It is concise and immediately 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?

For a simple read-only tool with two well-described parameters and no output schema, the description covers the essential aspects: what it does, the scope, the read-only nature, and expected output structure. It does not mention pagination or potential large result sets, but that is a minor omission given the tool's simplicity and the presence of sibling mutation tools that clarify its role.

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 commentable_id and commentable_type have descriptions. The tool description adds little beyond the schemaβ€”it restates the allowed types (control, evidence, task) which are already in the enum, and implies the pairing via 'on one control, evidence item or task'. Since the schema already documents the parameters adequately, the description's marginal value is limited, fitting the 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?

The description states a specific verb ('List') and a specific resource ('comment thread') scoped to one control, evidence item, or task, with ordering and content details. It clearly distinguishes itself from the comment mutation siblings (scf_create_comment, scf_update_comment, scf_delete_comment) by explicitly being a read operation. The viewer-role note further clarifies the operation's nature.

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 a read-only operation for listing a comment thread on a specific item, which implies its use case. However, it does not explicitly name alternatives or provide a 'when not to use' condition beyond the read/write distinction. The sibling set includes comment creation/update/delete, so the read vs. write contrast is implicitly understood but not stated explicitly.

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

scf_list_compensating_controlsA
Read-only

List the compensating controls recorded against a vendor's gaps (read β€” viewer role): the gap, the control that offsets it, its effectiveness rating and risk-reduction notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

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, so the description need not restate safety. It adds behavioral context by specifying the scope (vendor gaps) and the content of the result, which goes beyond annotations. 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?

A single, front-loaded sentence that conveys purpose, scope, and result fields with zero 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?

With only two simple parameters, no output schema, and read-only annotations, the description is nearly complete. It names the returned fields, which is essential since there is no output schema. It does not mention pagination or ordering, but that is minor for a straightforward list 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% β€” both org_id and vendor_id have descriptive text pointing to how to obtain them. The description itself adds no extra parameter guidance, so the schema carries the full burden. 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 (List), a precise resource (compensating controls recorded against a vendor's gaps), and the exact data returned (gap, control, effectiveness rating, risk-reduction notes). This clearly distinguishes it from sibling create/update/delete compensating-control tools and from other list tools like scf_list_vendor_certifications.

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 specifies it is a read operation with a viewer role, which signals when to use it. It does not explicitly name alternative tools (e.g., scf_create_compensating_control) or state exclusions, but the read-only context and resource focus make the intended usage clear.

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

scf_list_control_assessment_compositesA
Read-only

List rolled-up assessment composites for the org. Cursor-paginated, worst-band first (insufficient β†’ sufficient). Filter by status/domain/computation_version. Pass next_cursor to page forward.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–500, default 100)
cursorNoOpaque pagination cursor β€” pass next_cursor from a prior response
domainNoFilter by SCF domain code (e.g., 'BCD', 'GOV', 'AST')
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoComma-separated composite_status values to include (e.g., 'insufficient,partial'). Valid values: insufficient, insufficient_sample, partial, pending, no_evidence, sufficient
computation_versionNoRestrict to composites computed at this algorithm version

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already mark the tool as readOnlyHint=true, and the description adds meaningful behavioral context: cursor pagination, ordering worst-band first (insufficient β†’ sufficient), and the need to pass next_cursor. This goes beyond the read-only hint and helps the agent anticipate response iteration 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 tight sentences with no fluff. The core purpose is front-loaded, followed by pagination behavior, ordering, filters, and the pagination action. 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 read-only list tool with a 100%-described input schema, the description covers the essential operational details: scope, pagination, ordering, filters, and how to advance pages. No output schema is provided, but the listing and pagination expectations are sufficiently communicated 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 defines each parameter. The description restates the filters by name but adds little new parameter-level meaning; the mention of passing next_cursor slightly reinforces pagination semantics already present in the cursor schema 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: 'List rolled-up assessment composites for the org.' It also differentiates from sibling scf_get_control_assessment_composite by conveying this is the list-level, org-wide variant with pagination and filters, so an agent can distinguish the tool 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?

The description clearly establishes the context: use this to list org-level rolled-up composites, with pagination and optional filters. It does not explicitly name alternatives or state when not to use it, but the list-vs-get distinction is strongly implied by the wording.

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

scf_list_controlsA
Read-only

List SCF security controls from the reference catalog. Returns paginated controls with SCF ID, title, description, and mapped frameworks. Filter by domain, framework, or free-text search.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100, default 25)
domainNoSCF domain code (e.g., 'GOV', 'AST', 'IAC') β€” obtain from scf_list_domains
offsetNoPagination offset β€” number of results to skip (default 0)
searchNoFree-text filter applied to control title and description
frameworkNoFramework slug (e.g., 'nist-800-53', 'iso-27001') β€” obtain from scf_list_frameworks
include_deprecatedNoInclude catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.

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 value by stating that results are paginated and include SCF ID, title, description, and mapped frameworks. It does not mention default deprecated-row exclusion or sort order, though include_deprecated is documented 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?

The description is two purposeful sentences with the main operation front-loaded. Every sentence adds useful information about what the tool returns and how to filter, 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 read-only list tool with six optional parameters and no output schema, the description covers the core purpose, return fields, and filter dimensions. Some details like deprecated-row inclusion and pagination defaults are delegated to the schema, but the schema fully documents them, so no critical gap remains.

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 each parameter already documented including ranges, defaults, and source tools for domain and framework values. The description merely repeats 'filter by domain, framework, or free-text search' and does not add new 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.

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 resource 'SCF security controls from the reference catalog', clearly stating the operation and scope. It differentiates from siblings like scf_get_control (single control) and scf_list_scoped_controls (scoped controls) by describing catalog-level, paginated listing with mapped frameworks.

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: list catalog controls, optionally filtered by domain, framework, or free-text search. It does not explicitly name alternatives or when to prefer scf_get_control or scf_list_scoped_controls, but the 'reference catalog' framing makes the intended use reasonably clear.

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

scf_list_custom_risk_controlsA
Read-only

List controls linked to a custom risk. Returns catalog_control_ids plus scoped_controls with implementation status β€” same shape as the built-in controls-for-risk endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
risk_codeYesCustom risk code in R-ORG-N format (e.g., 'R-ORG-1') β€” obtain from scf_list_custom_risks

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 behavioral context by disclosing the return shape: catalog_control_ids plus scoped_controls with implementation status. It avoids contradicting the annotation and goes beyond simply restating the operation.

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

Conciseness5/5

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

Two short sentences, with the core action front-loaded and the return detail in the second sentence. Every phrase earns its place, and there is no redundant restating of the tool name or 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 read-only list tool with two well-documented required parameters and a readOnlyHint annotation, the description is largely complete. It names the key returned fields, though it relies on an indirect reference to the built-in endpoint for the full nested shape rather than spelling out scoped_controls 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 description coverage is 100%, so the schema already documents both parameters well, including formats and source tools (scf_list_organizations and scf_list_custom_risks). The tool description adds no extra parameter-level meaning, matching 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 states a specific verb and resource: 'List controls linked to a custom risk.' It clearly differentiates from sibling tools like scf_list_controls, scf_list_risks, and scf_list_scoped_controls by scoping to custom risks and naming the returned fields.

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 context is clear: this is for controls linked to a custom risk, and the note about matching the built-in controls-for-risk endpoint suggests a comparable alternative. It does not explicitly name alternatives or state when not to use it, so it falls just 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.

scf_list_custom_risksA
Read-only

List the organization's custom risk definitions β€” org-defined risks alongside the static SCF catalog, carrying auto-generated R-ORG-N codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, covering the safe-read aspect. The description adds useful context about the scope (org-defined risks vs static catalog) and auto-generated R-ORG-N codes, but it does not disclose response shape, pagination, or other behavioral details. 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?

A single, front-loaded sentence that names the verb, resource, and differentiator (R-ORG-N codes) with no redundant restatement of the title or schema. Every clause 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 one-parameter, read-only list operation, this is largely complete: it names the resource, org scoping, and a distinguishing output attribute. The main gap is that it does not explicitly state what the returned list contains (e.g., whether standard SCF risks are excluded) or describe response shape, though the operation's simplicity makes this minor.

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%: org_id is fully described and tells the caller to obtain it from scf_list_organizations. The tool description only echoes 'organization's' and adds no extra parameter 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?

States a specific verb ('List') and resource ('custom risk definitions'), and clarifies the scope ('org-defined risks alongside the static SCF catalog, carrying auto-generated R-ORG-N codes'). This distinguishes it from siblings like scf_list_risks (general risks) and scf_get_risk (single risk).

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 intended use is implied: call this when you need an organization's custom risk definitions. However, it does not explicitly say when to prefer this over scf_list_risks or name alternatives/exclusion criteria.

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

scf_list_document_domainsA
Read-only

List the SCF domains this organization can currently generate documents for (read β€” viewer role). A domain appears only when it has enough scoped controls to produce a document.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.3/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description adds that this is a viewer-role operation and explains the behavioral rule that a domain appears only when it has enough scoped controls to produce a document. This gives useful context about access and result filtering.

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

Conciseness5/5

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

The description is two sentences with no filler. The primary action is front-loaded, and the second sentence adds the key selection condition 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 simple one-parameter read-only list operation with no output schema, the description is complete: it names the resource, the scope, the access context, and the condition governing which items appear. An agent has 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?

The only parameter, org_id, is fully documented in the input schema with type, format, and a source instruction ('obtain from scf_list_organizations'). Since schema description coverage is 100%, the description adds no parameter-specific meaning, 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 uses a specific verb and resource: 'List the SCF domains this organization can currently generate documents for.' This clearly distinguishes it from generic domain-listing tools like scf_list_domains and scoped-control tools like scf_list_scoped_controls.

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 the intended use context clear: check which domains are currently available for document generation, with the visibility rule based on scoped controls. It does not explicitly name sibling alternatives or state when not to use it, but the context is sufficiently clear.

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

scf_list_document_generatorsA
Read-only

List the ISMS document generators available to this organization (read β€” viewer role): generator name, document type, tier, derivative flag. Call before scf_generate_documents.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.3/5.0
Behavior4/5

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

With readOnlyHint already annotated true, the description adds useful behavioral context by noting 'read β€” viewer role' and 'available to this organization,' clarifying both permission requirements and data scope. 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 a single well-structured sentence that front-loads the action and resource, lists expected return fields, and includes actionable sequencing guidance. No filler or redundant 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 list tool with no output schema, the description covers what the tool returns, the permission level needed, the data scope, and the intended call-before relationship. Everything an agent needs to decide to call it and interpret its result 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%: the single org_id parameter is already well documented with 'Organization UUID β€” obtain from scf_list_organizations.' The tool description adds no specific parameter-level detail but aligns with the schema by scoping results to the organization.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ISMS document generators available to this organization' β€” and enumerates the returned fields (generator name, document type, tier, derivative flag). This clearly distinguishes it from document-related siblings like scf_list_documents and scf_list_document_domains.

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 context: 'Call before scf_generate_documents,' which tells the agent exactly when to invoke this tool. It does not name alternatives or exclusions, but its sequencing guidance is clear enough for a simple read-only list tool.

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

scf_list_documentsA
Read-only

List generated ISMS documents (read β€” viewer role): lifecycle status, section counts, unresolved conflicts, pending retirements, and whether the document is stale against current org inputs.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoFilter by lifecycle status (e.g. 'draft', 'approved', 'published')
document_typeNoFilter by document type (e.g. 'policy', 'procedure')

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 reinforces this by stating 'read β€” viewer role'. It adds useful behavioral content by enumerating what the list reveals: lifecycle status, section counts, unresolved conflicts, pending retirements, and staleness against current org inputs. No contradiction with annotations is 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?

A single, front-loaded sentence that states the action, resource, access level, and key returned fields without redundancy. Every clause 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 read-only list tool with fully documented parameters and no output schema, the description adequately covers what the call returns and the access context. The agent can correctly select and invoke the tool without needing additional undocumented guidance.

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 all three parameters already documented in the input schema. The description's mention of 'lifecycle status' loosely aligns with the status filter but does not add new meaning beyond what the schema provides. This is the appropriate baseline when the schema carries the parameter 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 ('List'), a specific resource ('generated ISMS documents'), and the scope ('read β€” viewer role'), immediately distinguishing it from singular tools like scf_get_document and from generator-related siblings like scf_list_document_generators. The colon-delimited content list further clarifies what kind of listing this is.

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 signals this is a read-only listing operation with viewer-role access, giving an agent confidence about when it is appropriate to call. However, it does not explicitly name alternatives such as scf_get_document for retrieving a single document or scf_list_document_domains for related listings.

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

scf_list_domainsA
Read-only

List every compliance domain in the SCF taxonomy. Domains group related controls (e.g., GOV = Governance, AST = Asset Management, IAC = Identity & Access Control).

ParametersJSON Schema
NameRequiredDescriptionDefault
include_deprecatedNoInclude catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.

TDQS

A3.8/5.0
Behavior3/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 context about the taxonomy and domain examples, but it does not describe pagination, ordering, response shape, or clarify that 'every' means active domains by default. 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 two concise sentences with no filler. The action is front-loaded, and the second sentence earns its place by clarifying what domains are and providing distinguishing examples.

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 tool, the description plus parameter schema is nearly complete. It clearly conveys what will be returned conceptually, though there is no output schema and the description does not mention response format or pagination. This is a minor gap for such 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%, with the include_deprecated parameter fully documented in the schema, including its default behavior and lifecycle badge. The description itself adds no additional parameter-level meaning, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'List every compliance domain in the SCF taxonomy.' The added explanation that domains group related controls, with concrete examples (GOV, AST, IAC), clearly distinguishes this tool from siblings like scf_list_frameworks and scf_list_controls.

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 that this tool is for browsing the SCF taxonomy by domain, but it does not explicitly state when to use this tool versus alternatives such as scf_list_controls or scf_list_frameworks. There is enough context to infer the purpose, but no direct routing or exclusion guidance.

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

scf_list_engagement_auditorsA
Read-only

List the auditors granted read access to one engagement (read β€” viewer role). Each grant carries its status: invited, active or revoked.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A3.8/5.0
Behavior3/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 context by naming the viewer role and possible grant statuses (invited, active, revoked), but it does not disclose other behavioral details such as response shape, ordering, or pagination.

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

Conciseness5/5

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

Two concise sentences with no filler. The core action and scope are front-loaded, and the status clarification is placed second where it adds value without bloating the description.

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 documented parameters, the description covers the essential invocation context. It even notes the status values included in the result. It does not describe every possible return field, but no output schema exists and the omission is 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%, with both parameters clearly explained including how to obtain them. The description adds minimal parameter meaning beyond reiterating that the operation targets 'one engagement', so the baseline score applies.

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

Purpose5/5

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

The description names a specific verb ('List'), a clear resource ('auditors granted read access'), and a clear scope ('one engagement'). It also clarifies the viewer role and the per-grant statuses, making it easy to distinguish from related tools like scf_list_engagements or scf_get_engagement.

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 intended use is implied: call this to list auditor grants for a specific engagement. However, it does not explicitly state when to prefer this over alternatives, nor does it mention excluded cases or related tools such as scf_add_engagement_auditor or scf_remove_engagement_auditor.

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

scf_list_engagement_queriesA
Read-only

List an engagement's structured auditor queries (read β€” viewer role, or an assigned auditor). A query is an auditor's question against one control, with its responses and status.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idNoFilter to a single SCF control in DOMAIN-NN format β€” obtain from scf_get_engagement_scope
statusNoFilter by query status: open, answered or closed
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A4/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 the permission requirement ('viewer role, or an assigned auditor'), which is useful behavioral context beyond the annotation. It does not describe pagination, ordering, or error conditions, but for a read-only list operation this is acceptable. 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, well-structured sentence that leads with the core purpose, includes a clarifying definition of a query, and notes the read-only nature. There is no redundant or filler content; every phrase adds value.

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

Completeness4/5

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

For a list tool with four parameters (two required), a read-only annotation, and no output schema, the description provides sufficient context: it explains what a query is, the scope, and the access requirement. It does not mention response format or filtering options, but these are covered by the schema and the read-only nature, so the description 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%, so the schema already documents all four parameters with details (e.g., org_id, engagement_id, optional filters). The description adds no parameter-specific semantics; it only describes the general purpose. Baseline 3 is appropriate when the schema fully covers parameter meaning.

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

Purpose5/5

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

The description clearly states the action ('List') and the resource ('an engagement's structured auditor queries'), and further defines what a query is, distinguishing it from single-query retrieval tools like scf_get_engagement_query. It also conveys the scope (per engagement) and the read-only nature, making the tool's function unambiguous.

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

Usage Guidelines3/5

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

The description implies use for reading all queries of an engagement but does not explicitly contrast with alternative tools such as scf_get_engagement_query (single query) or scf_create_engagement_query (creation). It does not state when to choose this over others or provide exclusion conditions, so guidance is only implicit from the name and phrasing.

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

scf_list_engagementsA
Read-only

List the organization's audit engagements (read β€” viewer role). Each entry carries its frameworks, status, dates and the catalog version its scope was frozen against.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoFilter by engagement status: draft, active, under_review or closed

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already provide readOnlyHint=true, and the description reinforces this with 'read β€” viewer role.' It also adds useful behavioral detail about the returned entries (frameworks, status, dates, catalog version), going beyond the annotation. No contradictions. Minor omissions like pagination or ordering are not critical 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?

Two compact sentences with no wasted words. The main action is front-loaded, and the read-only role and output content 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 read-only list tool with an optional filter, the description is complete enough: it states purpose, scope, and output content. It does not explicitly mention pagination or ordering, but these are not essential given the simple schema and read-only annotation.

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%: org_id and status both have descriptive schema text. The description adds no parameter-level semantics 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.

Purpose5/5

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

The description states the specific verb and resource: 'List the organization's audit engagements.' The phrase 'organization's' distinguishes it from sibling scf_list_my_engagements and the 'read β€” viewer role' hint clarifies its read-only nature. 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?

Provides clear context that this is an org-scoped read operation for viewer role, which implicitly differentiates it from scf_list_my_engagements and mutation tools like scf_create_engagement. However, it does not explicitly name alternatives or state when not to use this tool, leaving some inference to the agent.

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

scf_list_evidenceA
Read-only

List evidence items tracked against an organization's controls. Returns each item's tracking status, maturity level, and linked controls. Optionally filter by system.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
team_idNoFilter to evidence this team is assigned to, accountable or consulted β€” obtain from scf_list_teams
my_teamsNoFilter to evidence assigned to any team the caller belongs to; intersects with team_id rather than overriding it. 'The caller' is the API key's identity; on a self-hosted instance that is a service account on no team, so this returns nothing β€” use team_id instead.
system_idNoSystem UUID to filter by β€” obtain from scf_list_systems
function_idNoFilter to evidence assigned to any team aligned to this function β€” obtain from scf_list_functions
accountable_owner_typeNoFilter by the accountable team's primary owner: 'internal' or 'external_contractor'

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, so the safety profile is covered. The description adds useful behavioral detail beyond that: results include tracking status, maturity, and linked controls, and system filtering is optional. It does not mention pagination or response ordering, but for a read-only list this is a minor gap.

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

Conciseness5/5

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

Two sentences, front-loaded with the action and scope, followed by return fields and the single optional filter. 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.

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 with one required and five optional, all richly documented parameters, the description plus annotations are largely sufficient. It tells the agent what fields come back and that system is a filter, though it omits pagination/limits and does not route between sibling evidence-list tools.

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 each parameter has a rich description, including provenance hints like 'obtain from scf_list_organizations' and the my_teams caveat. The description's 'optionally filter by system' merely restates system_id, adding no new meaning, so baseline 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 names a specific verb and resource β€” 'List evidence items tracked against an organization's controls' β€” and enumerates returned fields (tracking status, maturity level, linked controls), which separates this from file/task/catalog evidence siblings. It does not explicitly name a comparator sibling, so while clearly scoped, it stops shy of the strongest 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?

No guidance about when to choose this over scf_list_evidence_files, scf_list_evidence_catalog, or scf_get_evidence; it only notes an optional system filter. The intended use is implied as an org-level evidence overview, but exclusions or alternatives are absent.

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

scf_list_evidence_catalogA
Read-only

List evidence items from the SCF reference catalog β€” the 272 standard evidence types that can be collected to demonstrate control implementation. Supports free-text search and pagination.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100, default 25)
offsetNoPagination offset β€” number of results to skip (default 0)
searchNoFree-text filter applied to evidence title and description
include_deprecatedNoInclude catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.

TDQS

A4.1/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile, so the description does not need to restate that this is non-destructive. It adds useful context about the catalog contents and the 272 standard evidence types, but it does not disclose behavioral details such as default deprecation filtering or response characteristics beyond what the schema already documents.

Agents need to know what a tool does to the world before 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, information-dense sentence with no filler. It front-loads the core purpose, then quickly notes the key capabilities, making it easy for an agent to parse and act on.

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

Completeness5/5

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

For a simple read-only list operation with zero required parameters and a fully self-documenting schema, the description is complete. It identifies the resource, its scope, and the supported operations, and the output is intuitively the list of catalog items, so no additional return-value explanation is necessary.

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 parameters are already fully documented in the input schema. The description's mention of 'free-text search and pagination' adds no meaning beyond the schema fields, landing at the baseline score for well-covered schemas.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 evidence items from the SCF reference catalog' and clarifies the scope with 'the 272 standard evidence types that can be collected to demonstrate control implementation.' This clearly distinguishes it from sibling tools like scf_list_evidence, which manage actual evidence rather than the reference catalog.

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 the intended use case clear: retrieving standard evidence catalog entries, with free-text search and pagination. It does not explicitly name alternatives or say when not to use it, but the 'reference catalog' framing and sibling tool names provide strong contextual guidance.

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

scf_list_evidence_filesA
Read-only

List all files uploaded or ingested for an evidence item. Returns filename, content type, upload timestamp, validation status, and a pre-signed download URL (15-min expiry).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesEvidence ID (e.g., 'ERL-IAM-001') β€” obtain from scf_list_evidence

TDQS

A3.8/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, establishing the safe read-only nature. The description adds valuable behavioral detail by enumerating the returned fields and especially by noting the pre-signed download URL has a 15-minute expiry, which is critical operational context an agent would not otherwise know.

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

Conciseness5/5

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

The description is two sentences with no filler. The first sentence states the action and scope, and the second lists return fields and the URL expiry. Every sentence serves a purpose and the most critical 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 read-only list operation with fully documented parameters, the description is largely complete: it covers what the tool returns and highlights the URL expiry. It could be slightly stronger by mentioning pagination or absence of filtering options, but 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.

Parameters3/5

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

Schema description coverage is 100%, with both org_id and evidence_id already clearly documented in the schema, including how to obtain them. The description does not add parameter-specific semantics, but the schema fully carries that burden, 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.

Purpose4/5

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

The description clearly specifies the verb 'List' and the resource 'all files uploaded or ingested for an evidence item', making the tool's core function immediately understandable. It does not explicitly differentiate from siblings like scf_get_evidence_file, but the 'all files' phrasing implies a collection-level operation versus a single-file retrieval.

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 you need the files associated with an evidence itemβ€”but it does not state explicit conditions, exclusions, or alternatives. An agent must infer that this is for listing rather than downloading or validating a specific file, so guidance is present but not explicit.

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

scf_list_evidence_gapsA
Read-only

List the organization's evidence coverage gaps: evidence required by in-scope controls that is not yet tracked, with overall coverage percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.2/5.0
Behavior4/5

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

The annotation already provides readOnlyHint=true, and the description adds meaningful behavioral context: it returns untracked evidence for in-scope controls plus an overall coverage percentage. 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 a single, front-loaded sentence that defines the resource precisely and adds the key output detail (coverage percentage) without 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 listing tool with no output schema, the description covers the core purpose and expected result. It does not detail exact response fields or percentage calculation, but the tool is simple enough that 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%, and the org_id parameter is already documented as a UUID with guidance to obtain it from scf_list_organizations. The description adds no additional 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 uses a specific verb ('List') with a distinct resource ('evidence coverage gaps') and defines exactly what that means: evidence required by in-scope controls that is not yet tracked. This clearly differentiates it from nearby siblings like scf_list_evidence or scf_list_evidence_catalog.

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 establishes the tool's context: it is for viewing coverage gaps and the overall coverage percentage. It does not explicitly name alternatives or state when not to use this tool, but the context is strong 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.

scf_list_evidence_tasksA
Read-only

List evidence collection tasks β€” the work queue showing what needs to be collected, by whom, and by when. Optionally filter by assignee or status.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idNoOrganization UUID β€” obtain from scf_list_organizations
statusNoFilter by task status: not_started, in_progress or completed
assigneeNoFilter by assigned user UUID
overdue_onlyNoOnly tasks past their due date
assigned_to_meNoOnly tasks assigned to the caller
evidence_tracking_idNoOnly tasks for one evidence tracking record

TDQS

A3.6/5.0
Behavior3/5

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

The annotations declare readOnlyHint=true, so safety is already covered. The description adds useful behavioral context by framing the result as a work queue and mentioning optional filters, but it does not disclose pagination, ordering, or whether some parameters are mutually exclusive. This is acceptable for a read-only list tool but does not go beyond the baseline.

Agents need to know what a tool does to the world before 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 verb and resource, and contains no filler or redundant restatement of the tool name. The second sentence efficiently summarizes the optional filtering capability. 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 list tool with a fully documented schema and readOnlyHint annotation, the description provides sufficient conceptual framing: it identifies the resource, the queue semantics, and the key filters. It does not describe the exact return fields or pagination, but the description's 'what needs to be collected, by whom, and by when' partially conveys return content, and no output schema was provided. The missing pieces are relatively minor for this tool type.

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 clearly, including enums and filter semantics. The description re-states only 'filter by assignee or status' and does not add meaning beyond the schema. The baseline of 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 opens with a specific verb and resource: 'List evidence collection tasks. It further clarifies what this means by describing the tool as 'the work queue showing what needs to be collected, by whom, and by when', which distinguishes it from other list tools like scf_list_assignments or scf_get_work_queue. The verb-resource pair directly matches the tool name and clearly signals a read-only listing operation.

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 explains what the tool does and that filtering is optional, but it gives no guidance on when to choose this tool over closely related siblings such as scf_get_org_work_queue, scf_get_work_queue, or scf_list_assignments. There are no explicit exclusions, preconditions, or alternative-routing clues, so an agent must infer usage from the resource name alone.

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

scf_list_frameworksA
Read-only

List every compliance framework mapped in the SCF catalog (NIST 800-53, ISO 27001, SOC 2, FedRAMP, GDPR, and 350+ more). Returns framework identifiers and display names.

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 safety is known. The description adds return format ('returns framework identifiers and display names') and scope (catalog-wide, 350+ frameworks), which is useful behavioral context. It doesn't mention pagination or limits, but for a simple list this is sufficient. 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, well-structured sentence. It leads with the primary action and resource, provides concrete examples to clarify scope, and ends with the return value. No wasted words; every phrase adds value.

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

Completeness5/5

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

For a zero-parameter, read-only list with annotations covering safety and no output schema, the description fully informs an agent of what the tool does and what to expect. There is no missing information needed 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?

The tool has zero parameters and the schema is empty (100% coverage). The description doesn't need to explain parameters. Per guidelines, baseline for 0 params is 4, and there is nothing missing 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 lists every compliance framework in the SCF catalog, names specific examples (NIST 800-53, ISO 27001, SOC 2, etc.), and distinguishes it from other list tools (controls, domains, risks) by focusing on frameworks. It 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?

The purpose implies usage: to retrieve a list of frameworks. There are no explicit alternatives to exclude, but the description clearly indicates when to use it (when you need framework identifiers/names). It doesn't explicitly state 'use instead of X', but given no competing sibling for listing frameworks, this is adequate.

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

scf_list_functionsA
Read-only

List the platform's business functions (read β€” any member): the fixed set every team aligns to, identical for every tenant. Needed for the function_id on scf_create_team.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_inactiveNoInclude retired functions (default false)

TDQS

A4.3/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 that it's a read operation any member can perform, plus the notable behavioral fact that the function set is identical for every tenant. It also discloses a dependency (needed for scf_create_team). This adds value beyond the annotation without contradiction.

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

Conciseness5/5

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

Two concise sentences with zero waste. The read hint and purpose are front-loaded, and the dependency on scf_create_team is a valuable addition. Perfectly structured for quick agent comprehension.

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 and no output schema, the description is complete. It explains the resource, the read-only nature, the cross-tenant consistency, and its role in team creation, covering all an agent needs to call it correctly.

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

Parameters3/5

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

Schema description coverage is 100% for the single include_inactive parameter, so the schema already documents it fully. The description does not mention the parameter, but since the schema covers it, baseline 3 is appropriate; no additional meaning 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?

Clearly states it lists the platform's business functions, a specific resource, and distinguishes from siblings by noting it's the fixed set every team aligns to, identical for every tenant. Also connects to its use in scf_create_team, making its purpose unambiguous.

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

Usage Guidelines4/5

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

Explicitly states it's a read operation available to any member and that it's needed for the function_id on scf_create_team, giving clear context for when to use it. It doesn't explicitly list alternatives or when-not conditions, but the purpose is so specific that it stands out among sibling list tools.

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

scf_list_journey_templatesA
Read-only

List the journey templates this deployment ships (read β€” viewer role). If importing a returned template_key 404s, the file's declared key differs from its filename stem β€” import by the stem.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 reinforces this while adding genuinely new behavioral context: the templates are deployment-scoped, and a returned template_key may mismatch the filename stem, causing 404s on import. This is a non-obvious edge case that helps the agent avoid a failure.

Agents need to know what a tool does to the world before 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 with the core purpose front-loaded and a valuable failure-mode caveat second. No filler, no redundancy, 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 one-parameter, read-only, list-style tool, the description is sufficient: it states what is listed, under what role, and how to handle a known import failure mode. No output schema exists, but the list semantics and template_key reference provide enough operational guidance.

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%; org_id is fully documented with UUID format and a pointer to scf_list_organizations. The description adds no parameter-specific detail, but none is needed because the schema carries the full 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?

States a specific verb ('List'), a specific resource ('journey templates this deployment ships'), and the access level ('read β€” viewer role'). The scope is clear and the tool is easily distinguished from single-item siblings like scf_get_journey and scf_import_journey.

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: this is a viewer-level read operation for listing deployment-shipped templates. It does not explicitly name alternatives or exclusions, but the read-only list purpose is unambiguous and the import-related tip gives practical downstream context.

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

scf_list_membersA
Read-only

List members of one organization with their role (admin, editor, or viewer).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already provide readOnlyHint, and the description does not contradict it. It adds useful behavior context by stating that members are returned with their roles, including the exact allowed role values. It does not discuss pagination or permission prerequisities, but those are minor for a simple read-only list operation.

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

Conciseness5/5

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

One sentence containing only essential information, with the verb and primary scope front-loaded. There is no filler or redundant restatement 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 one-parameter read-only list operation, the description plus schema gives enough to invoke the tool correctly and anticipate the core output (members with roles). The absence of an output schema and explicit return-shape details is a minor gap, as 'List members' already implies a collection of member entries.

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 only parameter, org_id, is fully described as an Organization UUID with source guidance. The tool description itself adds no parameter-level meaning beyond what the schema already provides, so baseline 3 applies.

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

Purpose5/5

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

Description starts with a specific verb 'List', names the exact resource 'members', and scopes it to 'one organization'. It also enumerates the expected role values (admin, editor, or viewer), making the tool's purpose immediately clear and distinguishable from sibling org/resource 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 schema parameter note 'obtain from scf_list_organizations' provides a clear workflow cue: an agent should first list organizations, then pick an org_id. However, the description does not explicitly state when not to use this tool or name alternatives such as scf_get_organization, 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.

scf_list_my_engagementsA
Read-only

List engagements the caller holds an active auditor grant on, across organizations (read). The auditor's own view β€” use scf_list_engagements for the organization-side list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/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 reinforces this with '(read)'. It adds useful behavioral context about auditor-grant filtering and cross-organization scope, but does not disclose return formatting, pagination, or behavior when no active grants exist. This is acceptable 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 compact sentences deliver the essential information with no filler. The core scoping ('active auditor grant', 'across organizations') is front-loaded, and the sibling distinction is stated efficiently in the second sentence.

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 read-only list tool, the description is complete: it names the resource, the authorization filter, the cross-organization scope, the read-only nature, and the relevant sibling alternative. No output schema exists, but a list operation's return type is implied by the verb and resource.

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 coverage is 100%, so the description is not required to explain parameter details. The description's focus on scope and audience fully compensates for the absence of parameters, meeting the baseline for parameterless 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 states a specific verb ('List'), a precise resource ('engagements'), and a scoping condition ('caller holds an active auditor grant, across organizations'). It also explicitly distinguishes this tool from the closely named sibling scf_list_engagements, making its purpose unambiguous.

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

Usage Guidelines5/5

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

The description clearly identifies this as the auditor's own view and explicitly directs agents to use scf_list_engagements for the organization-side list. This provides both a use case and a named alternative, so an agent can choose correctly without ambiguity.

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

scf_list_organizationsA
Read-only

List every organization the caller has access to. Returns org UUID, name, subscription tier, and member count. Use this first to obtain the org_id other tools need.

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 does not contradict this. It adds useful behavioral detail by naming the exact return fields (org UUID, name, subscription tier, member count), which is especially valuable because there is no output schema. It is a simple read-only list operation, so no further behavioral caveats are needed.

Agents need to know what a tool does to the world before 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 tidy sentences with no waste. The first states the action, the second covers return fields and usage guidance. Every clause earns its place and the 'Use this first' guidance is effectively 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 with no output schema, this description is complete. It tells the agent what data comes back, why the tool matters, and the expected usage sequence. Nothing needed to call it correctly is missing.

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

Parameters4/5

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

The tool has zero parameters, so the description carries no parameter-documentation burden. The baseline of 4 applies here because schema coverage is effectively complete since there is nothing to document.

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

Purpose5/5

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

Description clearly states the action ('List every organization the caller has access to'), the resource (organizations), and explicitly distinguishes it from sibling tools by noting it returns the org_id used by other tools. The return fields are listed, 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 phrase 'Use this first to obtain the org_id other tools need' provides clear usage context and a strong signal for when an agent should invoke this tool. It does not explicitly name alternatives or exclusions, but for a zero-parameter list operation this is minor.

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

scf_list_reconciliation_runsA
Read-only

List this organization's catalog reconciliation runs, newest first (read β€” viewer role), with each run's status and target version.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1–100 (default 20)
offsetNoRows to skip for pagination (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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 reinforces this with 'read β€” viewer role,' adding permission-level context beyond the annotation. It also discloses ordering and the key attributes returned (status, target version), which is helpful 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?

A single sentence packs the action, resource, scope, sort order, permission requirement, and expected output fields with no filler. It is front-loaded and 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?

For a simple read-only list operation with fully documented pagination parameters, the description is largely complete: it gives scope, ordering, auth, and output hints. It could be slightly more complete by mentioning pagination response behavior or pointing to scf_get_reconciliation_run for single-run details, but 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?

The input schema provides full descriptions for all three parameters, including UUID format and pagination bounds. The description adds no param-specific guidance, but this is unnecessary 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 a specific verb and resource: 'List this organization's catalog reconciliation runs.' It adds ordering ('newest first'), permission context ('viewer role'), and expected output fields ('status and target version'), making it easy to distinguish from scf_get_reconciliation_run and 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 establishes this as the list operation for an organization's reconciliation runs, scoped by org and sorted newest first. It does not explicitly name alternatives such as scf_get_reconciliation_run or scf_get_catalog_reconciliation_status, so exclusions are left to inference rather than stated.

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

scf_list_risksA
Read-only

List risk assessments in the organization's risk register. Returns each risk's likelihood, impact, treatment status, and linked controls.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-indexed page number (default 1)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoFilter by treatment status (e.g., 'mitigate', 'accept', 'transfer', 'avoid')
per_pageNoPage size (1–100, default 25)

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the most important behavioral trait (non-mutating). The description adds useful scope and return-field context, but it does not disclose pagination behavior, access restrictions, or any side effects beyond what is already implied. With annotations present, the bar is lower, and this adds modest value.

Agents need to know what a tool does to the world before 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 exactly two sentences with no filler. It front-loads the operation and resource, then compactly lists the returned fields. Every clause earns its place, and the structure makes scanning easy.

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 straightforward read-only list tool, the description covers what is listed, the scope, and the returned fields. The schema fills in parameter details, including org_id provenance. It does not explicitly mention pagination or the status filter, but those are visible in the schema, so nothing critical is missing for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents page, org_id, status, and per_page. The description adds no additional parameter-level meaning, such as clarifying status values or org_id semantics beyond what the schema already states. 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 names a specific verb and resource: 'List risk assessments in the organization's risk register.' It also specifies return fields (likelihood, impact, treatment status, linked controls), which helps separate it from summary or matrix tools. However, it does not explicitly differentiate itself from scf_list_custom_risks or scf_get_risk, so it falls just short of full sibling distinction.

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 'List' verb implies a browsing/collection use case, and the resource scope suggests this is the standard risk-register listing tool. But there is no explicit guidance about when to prefer this over scf_get_risk, scf_list_custom_risks, or scf_get_risk_summary. Usage context is only implicit, not clearly stated.

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

scf_list_scoped_controlsB
Read-only

List controls scoped to the organization with implementation status. Filter by scope status, domain, framework, CSF function, weighting, or free-text search. Paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–200, default 50)
domainNoSCF domain code (e.g., 'GOV', 'AST', 'IAC')
offsetNoPagination offset β€” number of results to skip (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
searchNoFree-text filter applied to control ID, name, or description
team_idNoFilter to controls this team is assigned to, accountable or consulted β€” obtain from scf_list_teams
my_teamsNoFilter to controls assigned to any team the caller belongs to; intersects with team_id rather than overriding it. 'The caller' is the API key's identity; on a self-hosted instance that is a service account on no team, so this returns nothing β€” use team_id instead.
frameworkNoFramework slug (e.g., 'nist-800-53') to filter mapped controls
function_idNoFilter to controls assigned to any team aligned to this function β€” obtain from scf_list_functions
csf_functionNoNIST CSF function: 'GOVERN', 'IDENTIFY', 'PROTECT', 'DETECT', 'RESPOND', or 'RECOVER'
scope_statusNoScope filter: 'in_scope' (selected), 'out_of_scope' (deselected), or 'all' (default β€” everything)
control_weightingNoWeighting threshold on a 0–10 scale
accountable_owner_typeNoFilter by the accountable team's primary owner: 'internal' or 'external_contractor'

TDQS

B3.4/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 that results are paginated and that implementation status is included, which are useful behavioral details; however it does not describe the shape of the response, ordering, or any call-specific caveats.

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 tight sentences front-load the core purpose and then list major filters. It is efficient and skimmable, though 'implementation status' could be more concrete.

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?

Given the 13-parameter schema and 100% coverage, the description plus schema gives a workable calling contract for a paginated list endpoint. Missing elements are mostly comparative guidance against sibling list tools and any note about output shape, but these are secondary given the schema's completeness.

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

Parameters3/5

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

Schema description coverage is 100%, and most parameters carry detailed descriptions (e.g., my_teams explains intersection behavior and self-hosted caveats). The description's brief mention of filter categories adds no meaning 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.

Purpose4/5

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

The description names a concrete action ('List') and a specific resource ('controls scoped to the organization'), with a hint at output content ('implementation status'). It is distinguishable from siblings such as scf_get_scoped_control, but it does not explicitly contrast with scf_list_controls, so it falls 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?

The filter list gives a sense of when the tool is useful, but the description never states when to reach for this tool over scf_list_controls or scf_get_scoped_control, nor does it give any exclusion criteria. Usage is therefore only implied by the verb and filters, not explicitly directed.

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

scf_list_system_capabilitiesA
Read-only

List the evidence types a system can provide and how (read β€” viewer role): capability status potential/configured/active, collection method, confidence and data format.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
system_idYesSystem UUID β€” obtain from scf_list_systems
capability_statusNoFilter by capability status

TDQS

A3.9/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 that with '(read β€” viewer role)'. It adds useful behavioral context beyond the annotations by specifying the output dimensions (capability status, collection method, confidence, data format). No hidden side effects, destructive behavior, or contradictions 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?

The description is a single sentence with no filler. It front-loads the verb and resource, then compactly lists the specific output fields in a colon-delimited list, 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 read-only list operation with fully documented parameters, the description adequately covers what the tool does and what information it returns. It even names the key output categories, which matters because no output schema is provided. The missing pagination or ordering details are minor for this straightforward 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?

Schema description coverage is 100%, so the schema already documents all three parameters. The description repeats the capability_status enum values, which is consistent but does not add meaningful semantics beyond the schema. org_id and system_id provenance is already covered by 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 ('List') and resource ('the evidence types a system can provide'), and goes on to enumerate the fields returned: capability status, collection method, confidence, and data format. It is clear and informative, but it does not explicitly differentiate itself from siblings such as scf_list_capabilities or scf_list_system_catalog, so it misses the top 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?

The purpose implies when to use the tool: when you need to enumerate the evidence types a particular system can provide. The '(read β€” viewer role)' hint adds context about access level, but the description gives no explicit guidance about when to prefer this over related tools like scf_list_capabilities or scf_list_system_catalog, and it names no alternatives or exclusions.

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

scf_list_system_catalogA
Read-only

List system-catalog templates β€” the platform's knowledge base of known vendors/tools (slug, vendor, type, recipe maturity levels). Optionally search by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
searchNoFree-text search across template names, vendors, and aliases

TDQS

A3.6/5.0
Behavior3/5

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

The readOnlyHint annotation already communicates that this is a safe read operation. The description adds useful context about the content of the catalog (slug, vendor, type, recipe maturity levels) but does not disclose behavioral details such as pagination, ordering, or whether the result is a flat list. It does not contradict the annotations.

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

Conciseness5/5

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

Two concise sentences with the primary action front-loaded and no filler. The optional search behavior and content context are included 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 low-complexity, read-only list tool with one optional parameter and no output schema, the description provides enough context: what the catalog is, what fields are involved, and that search is available. It could mention the response shape more explicitly, but the list semantics and field details largely compensate.

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 the single search parameter with 100% coverage, so the description does not need to add parameter details. The phrase 'search by name' is slightly narrower than the schema's 'across template names, vendors, and aliases,' so the description adds no real value and is mildly less precise.

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 system-catalog templates' β€” and adds domain context by defining them as the platform's knowledge base of known vendors/tools. It is not a tautology and is clear enough to distinguish from unrelated sibling list tools, though it does not explicitly name a sibling alternative like scf_get_system_catalog_template.

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 conveys the general purpose of listing catalog templates and mentions optional search by name, which implies a search use case. However, it gives no explicit guidance about when to use this tool versus the many similar list tools or the related singular get tool, nor does it state any exclusions or prerequisites.

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

scf_list_systemsA
Read-only

List the organization's infrastructure systems β€” the tools and platforms that implement security capabilities. Optionally filter by linked vendor.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idNoFilter to systems structurally linked to this vendor UUID β€” obtain from scf_list_vendors

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already covers the safety profile, so the description does not need to restate that. It adds useful scope information and the optional vendor filter, but it does not disclose pagination behavior, ordering, or return shape, which would add behavioral transparency 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?

A single front-loaded sentence communicates the purpose and optional filter with no waste. Every word contributes to tool selection or invocation.

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 two parameters, one required, the description plus schema is complete enough for an agent to select and call it correctly. No output schema is present, and details like pagination or returned fields would be nice-to-have, but they are not necessary 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 input schema already covers both parameters with 100% coverage, including UUID formats and where to obtain the IDs. The description's 'Optionally filter by linked vendor' adds slight clarity about optionality and relationship, but it is largely redundant given the schema's vendor_id 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 identifies the verb ('List') and resource ('the organization's infrastructure systems'), and further clarifies what those systems are: 'the tools and platforms that implement security capabilities.' It does not explicitly distinguish this from the sibling scf_list_system_catalog, so it misses the top score.

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 for when to use the tool: to list the organization's infrastructure systems, with an optional vendor filter. It does not name alternatives or state when not to use this tool, but the context is sufficient for a straightforward read-only list operation.

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

scf_list_team_assignmentsA
Read-only

Map of which team owns which scoped control or evidence item (read β€” viewer role). Unfiltered returns the whole map; narrow with item_ids, team_id or accountable_only.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesItem kind
org_idYesOrganization UUID β€” obtain from scf_list_organizations
team_idNoRestrict to one team
item_idsNoRestrict to these item UUIDs
accountable_onlyNoOnly the accountable team per item

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 reinforces this with 'read β€” viewer role.' It goes beyond the annotation by disclosing that an unfiltered call returns the entire map, which implies potential large payloads and motivates the filtering guidance. No contradictions exist between 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?

Two tightly worded sentences: the first establishes purpose and access level, the second gives filtering behavior. Every word earns its place, and the key scoping information is front-loaded before the filtering options.

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, access level, and filtering behavior. The schema fully documents required and optional parameters accordlingly)Skip. The return concept ('map of ownership') is clear, though the exact object shape or pagination behavior is not described in the absence of an output schema. This is a minor gap given the simplicity of 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?

The schema provides 100% description coverage for all five parameters, including types, formats, and purposes. The description repeats the three optional filters (item_ids, team_id, accountable_only) but adds no new semantic detail beyond what the schema already states, so it does not meaningfully compensate or extend 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 resource β€” a map of team ownership for scoped control or evidence items β€” and clarifies it is a read operation requiring viewer role. This distinctly differentiates it from related write tools like scf_create_team_assignment or scf_delete_team_assignment, and from the more generic scf_list_assignments.

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 explains how to narrow the result set using item_ids, team_id, or accountable_only, and notes that an unfiltered call returns the whole map. It does not, however, name any alternative tools or state when to prefer this over scf_list_assignments or similar list operations, leaving some inference to the agent.

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

scf_list_teamsA
Read-only

List the organization's teams (read β€” viewer role). Archived teams are hidden unless include_inactive is set; they are kept, never deleted, so history still resolves.

ParametersJSON Schema
NameRequiredDescriptionDefault
mineNoOnly teams the caller is a member of (default false); each team then also carries membership_role. 'The caller' is the API key's identity; on a self-hosted instance that is a service account on no team, so this returns nothing β€” use team_id instead.
org_idYesOrganization UUID β€” obtain from scf_list_organizations
function_idNoFilter by business function β€” obtain from scf_list_functions
include_inactiveNoInclude archived teams (default false)

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 burden on the description. The description adds valuable behavioral context: archived teams are hidden by default, are 'kept, never deleted,' and history still resolves. This goes beyond the annotation and helps an agent understand the archival 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 a single front-loaded sentence with no wasted words. It states the core action, the permission level, and the key archive behavior efficiently. Every clause adds information relevant to calling the tool.

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

Completeness4/5

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

For a list operation with a readOnlyHint and fully documented parameters, the description covers the main behavioral nuance (archived teams) and permission context. No output schema exists, but the tool's purpose and filtering behavior are sufficiently clear for an agent to invoke it correctly. Minor details like pagination or return shape are not disclosed, but these are not critical for this simple 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 the schema already fully documents all four parameters. The description adds a small amount of semantics by explaining the include_inactive behavior, but mostly relies on the schema. Baseline 3 is appropriate because the schema carries the parameter meaning.

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

Purpose5/5

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

The description states a specific verb and resource: 'List the organization's teams,' which clearly identifies the operation. It also adds distinguishing context ('Archived teams are hidden unless include_inactive is set') that sets it apart from other list tools. The parenthetical 'read β€” viewer role' reinforces its read-only nature.

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 is a read operation for viewer role, and archived teams are only included when include_inactive is set. It does not explicitly name sibling alternatives like scf_get_team for single-team retrieval, but the scope and conditions are clear enough to guide selection. No misleading or exclusions are present.

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

scf_list_vendor_action_itemsA
Read-only

List remediation action items for one vendor, or across every vendor when vendor_id is omitted (read β€” viewer role). Filter by status or priority.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoFilter by status
priorityNoFilter by priority
vendor_idNoVendor UUID β€” omit to list action items across all vendors

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 value by stating the viewer-role requirement and the scope behavior when vendor_id is omitted. It doesn't cover return shape or pagination, but those are minor for a safe read operation.

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

Conciseness5/5

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

Two short sentences with no filler. The main action and scope are front-loaded, followed immediately by filter options.

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 tool with fully described parameters and enum filters, the definition is functionally sufficient to invoke correctly. The only minor gap is lack of return-format or pagination details, but no output schema exists and these are not required for a correct 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%, so the schema already documents all parameters including vendor_id omission behavior and org_id provenance. The description only restates the status/priority filters without adding new meaning.

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

Purpose5/5

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

States a specific verb ('List') and resource ('remediation action items'), and clearly distinguishes single-vendor vs all-vendor scope via vendor_id omission. This differentiates it from sibling tools like create/update/delete_vendor_action_item.

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 for when to use the tool: reading action items as a viewer, with optional status/priority filters. It does not explicitly name alternatives like scf_create_vendor_action_item, but the 'read' qualifier and list verb make the use case obvious.

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

scf_list_vendor_assessmentsA
Read-only

List a vendor's AI security assessments, newest first. Includes status, RAG rating, recommendation, and report fields per record.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

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 useful behavioral context beyond that: results are ordered newest first, and each record contains status, RAG rating, recommendation, and report fields. No contradictions with the readOnlyHint annotation 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?

Two tight sentences: the first identifies the primary action and ordering, the second lists included record fields. No filler or redundant restatement of the tool name or schema.

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

Completeness4/5

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

For a simple read-only list operation with two well-documented parameters and no output schema, the description covers the main needs: what is returned, the ordering, and the notable fields. It does not mention pagination or whether the list is unbounded, but given the low complexity and read-only annotation, this is a minor gap.

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

Parameters3/5

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

The input schema already provides 100% parameter documentation, including descriptions for org_id and vendor_id with instructions on where to obtain them. The description does not need to add much parameter semantics, and it incidentally ties vendor_id to the vendor being listed. 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 ('List'), a clear resource ('a vendor's AI security assessments'), and adds distinctive ordering ('newest first') and per-record fields. This clearly separates it from sibling tools like scf_get_latest_vendor_assessment or scf_get_vendor_assessment, which target a single assessment.

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: call this when you want a list of a vendor's assessments rather than a single specific or latest assessment. However, it does not explicitly mention alternatives like scf_get_latest_vendor_assessment or scf_get_vendor_assessment, nor does it 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.

scf_list_vendor_certificationsA
Read-only

List a vendor's certifications (read β€” viewer role): name, issuing body, certificate number, status, issue and expiry dates, scope and verification URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors

TDQS

A4.2/5.0
Behavior4/5

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

Annotations provide readOnlyHint: true, and the description reinforces this with 'read β€” viewer role'. The description adds the specific return fields, which is useful context beyond the annotation. It doesn't mention pagination or error behavior, but for a simple list operation with read-only semantics, this is adequate. 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?

A single, well-structured sentence that leads with the action and resource, then lists the returned fields in a compact enumeration. No filler or redundancy. The read-only qualifier is included early, and the entire description is immediately useful to 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?

The description covers the core action, the required inputs (implied by the schema), and the expected output fields, which is especially valuable given there is no output schema. It doesn't mention pagination or ordering, but for a list tool with two required UUID parameters and a defined field list, this is near-complete. The viewer role note adds context about permissions.

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

Parameters3/5

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

Schema coverage is 100%: both org_id and vendor_id have detailed descriptions explaining how to obtain them (from scf_list_organizations and scf_list_vendors). The description itself doesn't add parameter-specific details, but it doesn't need to because the schema is comprehensive. Baseline of 3 is appropriate when the schema 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 clear resource ('a vendor's certifications'), and enumerates the exact fields returned (name, issuing body, certificate number, etc.). It also indicates the action is read-only with 'read β€” viewer role', which distinguishes it from the create/update/delete sibling tools for vendor certifications. No ambiguity about 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 Guidelines4/5

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

The description implies usage for read-only retrieval of certifications and notes the viewer role requirement, which guides authorization expectations. It doesn't explicitly mention when not to use it or contrast with alternatives, but given the sibling tools (create/update/delete), the purpose is clear. The 'read' label and field list make it evident that this is for viewing, not modifying.

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

scf_list_vendorsA
Read-only

List third-party vendors in the organization's TPRM (Third-Party Risk Management) registry. Optionally filter by status or criticality. Paginated.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo1-indexed page number (default 1)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoLifecycle status filter β€” one of: prospect, active, under_review, approved, suspended, offboarded
per_pageNoPage size (1–100, default 25)
criticalityNoCriticality tier filter

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, and the description's 'List' action is consistent with that. The description adds modest value by noting pagination and optional filters, but it does not disclose response shape, ordering, or operational constraints such as rate limits.

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

Conciseness5/5

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

The description is three short, front-loaded segments with no filler: the core action, the optional filters, and pagination. This is an efficient structure that gives an agent the essential information 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 fully described parameters and a readOnlyHint annotation, the definition is largely sufficient. The only notable gap is not explaining the response structure or explicitly contrasting with scf_get_vendor, but those are minor given the schema coverage.

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

Parameters3/5

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

Schema description coverage is 100%; every parameter, including org_id, page, per_page, status, and criticality, already has a meaningful schema description. The tool description only summarizes the filters at a high level and adds no meaning beyond what the schema provides.

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 action and resource: it lists third-party vendors in the organization's TPRM registry, with optional filters and pagination. This clearly distinguishes it from create/update/delete vendor tools, though it does not explicitly contrast with the scf_get_vendor single-record 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 implies the usage context: an agent should call this when it needs to enumerate or browse vendors, optionally filtered by status or criticality. However, it does not explicitly state when to prefer this tool over scf_get_vendor or mention any exclusions, so alternative-selection guidance remains implicit.

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

scf_list_webhook_deliveriesA
Read-only

List delivery logs for a webhook endpoint (newest first). Each entry shows signature validation result, processing status, evidence ID, and timestamps.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–200, default 50)
offsetNoPagination offset β€” number of deliveries to skip (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
endpoint_idYesWebhook endpoint UUID β€” obtain from scf_list_webhooks

TDQS

A4.3/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 useful behavioral context: results are newest first and each entry includes signature validation result, processing status, evidence ID, and timestamps. This goes beyond the annotation and helps the agent understand what to expect.

Agents need to know what a tool does to the world before 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 establishes the core operation and ordering, the second describes the output fields. Front-loaded and tightly written, 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 read-only listing tool, the annotation covers safety, the schema covers all parameters, and the description covers ordering and output content. Nothing essential is missing for an agent to invoke it correctly and interpret 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 fully documents org_id, endpoint_id, limit, and offset. The description adds no additional parameter semantics beyond pointing to 'a webhook endpoint,' which aligns with endpoint_id. This meets the baseline for well-documented schemas but does not elevate 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 states a specific verb and resource: 'List delivery logs for a webhook endpoint.' It also adds relevant detail (newest first, entry contents) that differentiates it from sibling tools like scf_list_webhooks, which lists endpoints rather than delivery logs.

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 the tool's use case: retrieving delivery logs for a specific webhook endpoint. It does not explicitly mention when not to use it or name alternatives, but the context is unambiguous and the required endpoint_id parameter is well-integrated with the described purpose.

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

scf_list_webhooksA
Read-only

List the organization's webhook endpoints (newest first). Returns name, status, delivery count, and secret prefix.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

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. The description adds useful behavioral context by specifying the ordering and the exact return fields, including the secret prefix, which is non-obvious and valuable for an agent.

Agents need to know what a tool does to the world before 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 with no filler. The verb and resource are front-loaded, and each clause adds meaningful information: scope, ordering, and return 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?

For a simple read-only listing tool with one fully documented parameter and readOnlyHint annotation, the description covers the essential details: scope, ordering, and return fields. No output schema exists, so the explicit return-field list is especially helpful.

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 org_id, including its UUID format and how to obtain it from scf_list_organizations. The description only reinforces the organizational scope without adding new parameter-level semantics, 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 the exact operation (List), the resource (the organization's webhook endpoints), the ordering (newest first), and the returned fields. This clearly differentiates it from related tools like scf_get_webhook, scf_create_webhook, and scf_list_webhook_deliveries.

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 implies use when an agent needs all webhook endpoints for an organization rather than a single webhook via scf_get_webhook. The context is clear, though it does not explicitly name alternatives or exclusion conditions.

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

scf_list_window_assessmentsA
Read-only

List recent windowed AI assessments for an evidence item (newest first). Each entry includes window bounds, frequency, file IDs, coverage, status, relevance score, findings, and cost.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100, default 10)
offsetNoPagination offset β€” number of results to skip (default 0)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesEvidence ID (e.g., 'E-IAM-01') β€” obtain from scf_list_evidence

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark readOnlyHint=true, and the description reinforces this by focusing on listing with newest-first ordering. It usefully discloses the returned entry contents beyond the schema and annotations, including window bounds, frequency, file IDs, coverage, status, relevance score, findings, and cost.

Agents need to know what a tool does to the world before 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 front-loaded sentence covers operation, ordering, and result contents with no filler. Every phrase adds relevant information and the structure is immediately scannable.

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 is sufficient: it specifies the resource scope, ordering, and output fields, while the schema covers parameter constraints. Since there is no output schema, the explicit field list meaningfully compensates for the missing return-type information.

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

Parameters3/5

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

Schema description coverage is 100%, so limit, offset, org_id, and evidence_id are already explained inline. The description adds no parameter-specific detail, but none is needed, so it stays 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?

States the exact operation: listing recent windowed AI assessments for an evidence item, newest first. The verb 'List' plus the resource and ordering clearly distinguishes it from get/summary siblings, even without naming them.

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 it β€” when you need a history or list of window assessments for an evidence item. However, it does not explicitly contrast it with scf_get_window_assessment, scf_get_window_assessment_summary, or trigger variants, so alternative 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.

scf_mark_notifications_readA

Mark notifications read for the current user (write β€” self only): one by notification_id, or every notification when all=true. Acknowledge after processing scf_get_notifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoMark every notification read β€” explicit opt-in, ignored when notification_id is given
notification_idNoNotification UUID to mark read

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=false and destructiveHint=false. The description adds useful context beyond annotations: the operation is self-only, supports bulk marking, and is meant as an acknowledgment step. It does not contradict 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 a single compact sentence that front-loads the action and scope, then efficiently covers both parameter modes and the intended workflow. There is no filler or repetition.

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

Completeness4/5

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

For a simple self-scoped write operation with two optional parameters and no output schema, the description is complete enough: it names the parameters' roles and the correct sequencing relative to scf_get_notifications. It does not describe return values or error behavior, but these are low-risk omissions for an acknowledgment 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% and the schema already explains both parameters, including the precedence rule ('ignored when notification_id is given'). The description restates this behavior but adds no new semantic 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 clearly states the action ('Mark notifications read'), the scope ('for the current user (write β€” self only)'), and the two invocation modes (by notification_id or all=true). It also distinguishes itself from the sibling scf_get_notifications by framing this as the write/acknowledgment counterpart.

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 instructs when to use the tool: 'Acknowledge after processing scf_get_notifications.' This gives the agent a clear workflow context. It does not list exclusions, but there is no competing sibling for marking notifications read, so the guidance is sufficient.

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

scf_preview_catalog_reconciliationA

Create a reconciliation preview run (write β€” admin role): what moving to the target catalog version would do to scoped controls, evidence and mappings. Changes nothing until apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
target_versionNoCatalog version to reconcile towards; omit to use the platform's current version

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only state readOnlyHint=false and destructiveHint=false, but the description adds meaningful behavioral detail: it explicitly calls out admin authorization, labels the operation as a write, and clarifies it is non-destructive until an apply step. This goes beyond the structured annotations and helps an agent understand safety and permissions.

Agents need to know what a tool does to the world before 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 dense sentence that front-loads the action, role, and safety behavior. Every part earns its place and there is no redundant wording.

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 tool with no output schema, the description covers the important operational details: purpose, required role, and non-destructive behavior. It could additionally point to how to retrieve or view the preview run, but this is a minor gap given the strong sibling-tool context.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already documented well in the schema. The description adds only slight reinforcement by mentioning 'target catalog version', but it does not provide new semantic detail 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 uses a specific verb and resource: 'Create a reconciliation preview run' and clearly states what it does: show the impact of moving to a target catalog version on scoped controls, evidence, and mappings. It also distinguishes itself from the apply operation by noting 'Changes nothing until apply.'

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: this is a write operation requiring admin role, and it is meant as a safe preview before applying changes. It does not explicitly name alternatives like scf_apply_catalog_reconciliation, but the 'until apply' phrasing makes the intended usage fairly clear.

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

scf_preview_documentA
Read-only

Preview a document's assembled content as structured JSON (read β€” viewer role) β€” the merged result of generated and edited sections without rendering to a file.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
document_idYesGenerated document UUID β€” obtain from scf_list_documents

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 clarifies the viewer-role permission level and the important behavior that no file rendering occurs. It also discloses that the result is structured JSON, which is useful since no output schema is 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?

One dense sentence with no filler. The core action, target, output type, permission note, and key behavioral contrast are all front-loaded and each 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 simple read-only tool with two fully documented parameters and no nested structures, the description is sufficiently complete for an agent to decide when to call it. It could additionally define the exact JSON response shape, but the absence of an output schema is partly mitigated by saying the output is structured JSON.

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 org_id and document_id have descriptive text explaining their UUID format and how to obtain them. The tool description adds no parameter-specific meaning, 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 states a specific verb ('Preview'), a concrete resource ('a document's assembled content'), and the output form ('structured JSON'). It also distinguishes itself from file-export and raw-section tools by noting it returns the merged generated/edited result 'without rendering to a file.'

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 is a read-only, viewer-role operation for inspecting the assembled document as JSON. It implicitly tells the agent not to use this when a rendered file is needed, though it does not explicitly name alternative sibling tools.

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

scf_preview_framework_scope_changeA
Read-only

Preview what adding or removing frameworks would do to the scope WITHOUT applying it (read β€” viewer role). Returns the controls that would enter or leave, so the blast radius is known beforehand.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
operationYes'add' to preview scoping these frameworks in, 'remove' to preview taking them out
frameworksYesFramework slugs to model β€” obtain from scf_list_frameworks

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 non-mutation, and the description adds meaningful context: no change is applied, viewer role is sufficient, and the response reports controls that would enter or leave scope. 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 dense sentences with no filler. The core action and non-mutation guarantee are front-loaded, followed by the return value, making it immediately scannable.

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 explains purpose, non-mutation, role, and return value, and the schema documents all parameters, so it is largely complete. Since there is no output schema, a bit more detail about how the entering/leaving controls are represented in the response would make it fully self-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 coverage is 100% and each parameter has a useful description, including enum values for operation and source tools for org_id and frameworks. The description adds little beyond restating the add/remove semantics and overall scope effect, so the schema carries the 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?

States a clear verb and resource: previews the effect of adding/removing frameworks on scope, explicitly without applying it. The read-only nature and return value (controls entering/leaving) make it easy to distinguish from mutating scope 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?

Provides clear context: use it to understand blast radius before applying a change, and it explicitly says it does not apply the change and requires viewer role. It does not name sibling alternatives like scf_scope_framework or scf_bulk_unscope_framework, so it stops short of full 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.

scf_refresh_stale_window_assessmentsA

Queue a fresh windowed AI assessment for every evidence item whose newest file postdates its last assessment (write β€” editor role). Capped per run; returns how many were queued.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the agent knows this is a write operation but not destructive. The description adds valuable behavioral context: it queues assessments (not runs them synchronously), is capped per run, returns a count of queued items, and requires an editor role. This goes beyond the annotations and helps set expectations about side effects and limits.

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

Conciseness5/5

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

Two sentences with zero waste. The core action and condition are front-loaded, followed by the role requirement, cap, and return value. Every clause earns its place and no information is repeated from the schema or annotations.

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 tool with no output schema, the description is quite complete: it explains what gets queued, the staleness condition, the cap, the return value, and the role requirement. It doesn't specify the cap size or how to check results afterward, but those are minor gaps given the tool's simplicity and the absence of 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%, so the schema already documents the single org_id parameter well, including how to obtain it (scf_list_organizations). The description doesn't add parameter-specific semantics beyond the schema, but with full coverage the baseline of 3 is appropriate. The description's mention of 'per run' and 'capped' indirectly relates to behavior rather than the parameter itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Queue'), a precise resource ('fresh windowed AI assessment for every evidence item whose newest file postdates its last assessment'), and a clear scope. It distinguishes itself from sibling tools like scf_trigger_window_assessment and scf_bulk_assess_windows by focusing on stale items detected via file postdates, so an agent can tell it apart without opening schemas.

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

Usage Guidelines4/5

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

The description clearly implies when to use it: when evidence items have newer files than their last assessment and need refreshed windowed assessments. It doesn't explicitly name alternatives or exclusions, but the 'stale' condition and 'write β€” editor role' hint provide clear context. It could be improved by explicitly saying 'use scf_trigger_window_assessment for a single window' or similar, but the context is strong.

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

scf_remove_custom_risk_controlA
Destructive

Unlink a scoped control from a custom risk (write β€” editor+ role). The control and risk both remain; only the mapping is removed.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idYesSCF control ID to unlink (e.g., 'AST-01') β€” obtain from scf_list_custom_risk_controls
risk_codeYesCustom risk code in R-ORG-N format (e.g., 'R-ORG-1') β€” obtain from scf_list_custom_risks

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already flag this as non-readOnly and destructive, so the bar is lower. The description adds valuable context beyond annotations by disclosing the exact scope of destruction β€” only the mapping is removed, not the control or risk β€” and the permission requirement (editor+ role). This directly informs an agent what side effects to expect. Minor gap: no mention of behavior when the mapping does not exist or whether the operation is reversible.

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

Conciseness5/5

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

Two short sentences, zero waste. The core action and permission requirement are front-loaded in the first sentence, and the second sentence delivers the crucial non-destructive clarification. Every word 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 3-parameter unlink operation with annotations covering the safety profile, the description is quite complete: it states the action, the permission level, and the scope of the mutation. The absence of an output schema is not a major issue for a mutation of this simplicity. A small gap remains around reversibility and error handling, but 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 description coverage is 100%, so the baseline of 3 applies. The schema already documents all three parameters with examples and sourcing hints ('obtain from scf_list_organizations', etc.). The tool description adds minimal parameter meaning beyond the schema, which is acceptable given the schema's completeness.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 ('Unlink'), names the exact resource ('a scoped control from a custom risk'), and distinguishes itself from sibling operations like scf_add_custom_risk_control and scf_delete_custom_risk by clarifying that both entities remain and only the mapping is removed. An agent can understand precisely what this tool does without opening the schema.

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

Usage Guidelines4/5

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

The description provides clear context: this is a write operation requiring an editor+ role, used to remove a mapping while preserving both the control and the risk. The 'both remain' phrasing implicitly excludes delete-style alternatives, but it does not explicitly name siblings like scf_add_custom_risk_control as the inverse operation, which would warrant a 5.

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

scf_remove_engagement_auditorA
Destructive

Revoke an auditor's access to one engagement (destructive write β€” admin role). Returns no content on success.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
auditor_idYesEngagement auditor record UUID β€” obtain from scf_list_engagement_auditors
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A4/5.0
Behavior4/5

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

The description reinforces the destructiveHint=true annotation by explicitly labeling the operation a 'destructive write' and adds genuinely new context beyond the annotations: the admin-role prerequisite and the 'Returns no content on success' outcome, which is especially valuable given there is no output schema. No contradiction exists with readOnlyHint=false or destructiveHint=true.

Agents need to know what a tool does to the world before 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 with zero filler. The primary action and scope are front-loaded, and the parenthetical efficiently packs destructive-write and admin-role context. The return-behavior sentence earns its place because no output schema exists to convey that 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 three-parameter tool with no nested objects, complete schema documentation, and safety annotations present, the description is nearly sufficient: it covers scope, auth requirement, and return behavior. The notable omissions are idempotency behavior (does a non-assigned auditor error or no-op?) and a pointer to scf_add_engagement_auditor as the reversal path, both minor for a tool this simple.

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

Parameters3/5

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

Schema coverage is 100% β€” all three parameters (org_id, auditor_id, engagement_id) have descriptions in the schema, each cross-referencing the list tool that supplies the UUID. The description adds no parameter-level detail, which is acceptable since the schema already carries the full burden and the baseline is 3 at this coverage level.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 precise verb ('Revoke') with a specific resource ('an auditor's access to one engagement') and a clear scope qualifier ('one engagement') that prevents confusion with org-wide operations. It is immediately distinguishable from the sibling pair scf_list_engagement_auditors and scf_add_engagement_auditor, even though those siblings are not named 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 parenthetical ('destructive write β€” admin role') implies usage context by signaling this tool requires elevated privileges and should be used only when a permanent access removal is intended. However, it never names the natural inverse alternative (scf_add_engagement_auditor) or states when not to use the tool, leaving the agent to infer the decision rule from the name alone.

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

scf_remove_team_memberA
Destructive

Remove a user from a team (destructive write β€” admin role). The membership row is deleted; the audit trail keeps the history.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
team_idYesTeam UUID β€” obtain from scf_list_teams
user_idYesUser UUID β€” obtain from scf_get_team

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, but the description adds meaningful behavior beyond that: it specifies admin-role authorization, explains that the membership row is deleted rather than the user record, and clarifies that the audit trail preserves history. This gives the agent a clear picture of the action's blast radius and accountability.

Agents need to know what a tool does to the world before 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 names the action and key constraints, the second explains the precise effect and audit behavior. Everything included earns its place, and the most important operational warnings ('destructive write β€” admin role') 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 simple three-UUID destructive mutation, the description covers purpose, permissions, effect, and audit trail. No output schema is present, but return-value semantics are not needed to call the tool correctly. Given the large sibling list, the unambiguous naming and clear effect make this 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%, with each UUID parameter already described via 'obtain from' pointers to list/get tools. The description does not add parameter-specific semantics, but it doesn't need to because the schema fully documents how to source values. This is the appropriate 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 opens with a specific verb and resource: 'Remove a user from a team.' It further clarifies that this removes the membership row, distinguishing it from sibling tools like scf_update_team or scf_add_team_member. The tool name and description align exactly, leaving no ambiguity about what this operation 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?

It clearly signals that this is a destructive admin-only action, telling the agent when it is appropriate to invoke it. It doesn't explicitly name alternatives or exclusions, but among the sibling tools, the inverse operation is obvious from the name and the description's 'remove' language. The 'admin role' note provides useful context about who can perform this action.

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

scf_resolve_document_sectionA
Destructive

Resolve one section's merge state (write β€” editor role). keep_mine/take_generated settle a conflict; retire/keep dispose of a pending retirement. The wrong pair for the state returns 409.

ParametersJSON Schema
NameRequiredDescriptionDefault
choiceYeskeep_mine / take_generated answer a conflict; retire / keep answer a pending retirement
org_idYesOrganization UUID β€” obtain from scf_list_organizations
section_idYesSection identifier from the document detail (scf_get_document). May contain slashes β€” pass it exactly as returned, unescaped.
document_idYesGenerated document UUID β€” obtain from scf_list_documents

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 destructive and non-read-only; the description complements that by adding the editor role requirement, the two state-dependent decision branches, and the 409 error behavior. It does not contradict the annotations and adds meaningful behavioral context beyond them.

Agents need to know what a tool does to the world before 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, front-loaded sentences convey the action, role, the four choices grouped by state, and the error condition. Every sentence earns its place with no filler or repetition.

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

Completeness4/5

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

For a four-parameter mutation tool with full schema coverage and annotations, the description covers the core behavior, role, state logic, and error handling. It does not describe the response payload, but with no output schema expected, the missing return information is a minor gap rather than a critical one.

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 the choice parameter already explaining the conflict versus retirement pairing. The description reinforces that pairing and adds the 409 error outcome, but it does not substantially expand on what the schema already documents for parameters like org_id or document_id.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Resolve one section's merge state.' It also identifies the required role (editor) and distinguishes this from generic document edits by naming the specific choice semantics, which differentiates it clearly from siblings like scf_update_document_section.

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 states when to use which choice: conflict choices versus retirement choices, and warns that the wrong pair yields a 409. It does not explicitly name alternatives or state when not to use this tool, but the choice-pair guidance gives strong contextual direction.

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

scf_respond_to_engagement_queryA

Add a response to an auditor query (write β€” org member or assigned auditor). Posting a response moves an open query to answered. Returns the updated query with its full thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
contentYesResponse text
query_idYesQuery UUID β€” obtain from scf_list_engagement_queries
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description doesn't need to restate that this is a write operation. The description adds valuable behavioral context: posting a response transitions the query state to answered, and the return value is the updated query with its full thread. This goes 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?

Two sentences with no wasted words. The core action is front-loaded, the write nature is stated, the state transition is disclosed, and the return value is specified. 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 write operation with four required UUID parameters and no output schema, the description covers the action, the state change, and the return value. It doesn't mention error cases or prerequisites (e.g., query must be open), but the state transition implies that. The description is complete enough for an agent to invoke this 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. The description adds the semantic context that content is the response text and that the query_id refers to an open query, but it doesn't add significant meaning beyond the schema's own descriptions. 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 ('Add a response'), a specific resource ('auditor query'), and the write nature of the operation. It also distinguishes itself from related query tools by noting it moves an open query to answered, which differentiates it from scf_create_engagement_query and scf_update_engagement_query_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 is for responding to an auditor query and notes the actor scope ('org member or assigned auditor'). It doesn't explicitly state when not to use it or name alternatives, but the context of the query lifecycle 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.

scf_revalidate_evidence_fileA

Re-run the validation engine against an evidence file (write β€” editor+ role). Checks catalog existence, content type, field coverage, freshness, storage. Returns the updated result.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
evidence_idYesEvidence ID (e.g., 'ERL-IAM-001') β€” obtain from scf_list_evidence

TDQS

A4/5.0
Behavior4/5

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

Annotations only indicate readOnly=false and destructive=false. The description adds the editor+ role requirement, the list of validation checks, and that an updated result is returned. It does not fully specify whether prior results are overwritten, but the added context goes beyond what annotations already 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, each carrying distinct information: the action, the role requirement, the validation scope, and the return value. The write behavior is front-loaded and there is 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 tool with three required parameters and no output schema, the description provides the key operational facts: authorization, validation dimensions, and the updated result. It is not fully exhaustive about error conditions or return shape, but it is adequate 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 descriptions already cover all three parameters at 100%, including how to obtain org_id, evidence_id, and file_id from sibling tools. The description adds conceptual context but does not need to repeat parameter 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 names the exact operation ('Re-run the validation engine'), the target ('an evidence file'), and the write nature with a role requirement. It is clearly distinguishable from read-only siblings like scf_get_evidence_validation.

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 role restriction ('write β€” editor+ role') and the 're-run' verb imply this is the mutating counterpart to validation getters, but no explicit alternative or 'when not to use' condition is stated. An agent can infer the use case, but routing 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.

scf_review_evidence_assessmentA

Record a human decision on a file's current AI assessment (write β€” editor role). confirmed keeps the verdict; overridden needs a reason and at least one objective re-designation.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
reasonNoWhy the verdict is overridden β€” required when decision is overridden
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
decisionYesconfirmed = AI verdict stands; overridden = you are changing it
evidence_idYesCatalog evidence ID the file belongs to, e.g. E-IAM-01
ao_overridesNoObjectives to re-designate β€” required (β‰₯1) when overriding, forbidden when confirming; unlisted objectives keep the AI's designation. 422 if the version has no per-objective answers: confirm instead

TDQS

A4/5.0
Behavior4/5

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

Annotations only mark it as not read-only and not destructive; the description adds meaningful behavior: 'confirmed keeps the verdict' while 'overridden needs a reason and at least one objective re-designation,' and it states the editor role. It does not detail side effects like overwriting prior human decisions, but the core write behavior is transparent.

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

Conciseness5/5

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

Two compact sentences front-load the primary action and then give the key conditional rule. There is no redundant restatement of parameter names or 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?

The schema already documents all parameters, required fields, and the 422 condition for missing per-objective answers. The description adds the role and decision semantics, leaving no critical gap for invoking the tool, though it does not describe the response payload.

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's mention of 'reason and at least one objective re-designation' echoes the schema's own conditional requirements without adding new syntax or format details, so no uplift is warranted.

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 action ('Record a human decision on a file's current AI assessment') with an explicit write/editor role. The confirmed/overridden distinction clarifies what the tool does, but it does not explicitly name or contrast sibling tools like scf_review_evidence_file, so differentiation is implicit.

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: this is for a human editor recording a decision about an AI assessment, and it specifies which decision requires extra inputs. It does not explicitly state when not to use it or point to an alternative tool, but the context is sufficient to infer the intended use-case.

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

scf_review_evidence_fileA

Approve, reject or request revision on one uploaded file (write β€” editor role). Returns 410 where per-window review is enabled β€” use scf_review_window_assessment there.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
evidence_idYesCatalog evidence ID the file belongs to, e.g. E-IAM-01
review_notesNoReviewer notes
review_statusYesReview decision

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description doesn't need to restate that. The description adds the 410 behavior and the role requirement ('editor role'), which are useful behavioral details beyond the annotations. It doesn't describe side effects like whether a rejection is final or whether revision creates a new task, but the 410 disclosure is a meaningful addition.

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

Conciseness5/5

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

Two sentences, no filler. The core action is front-loaded, and the critical exception (410) is stated immediately with the alternative tool named. Every word 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 write tool with no output schema, the description covers the action, the role, and the key routing exception. It doesn't describe what the response looks like or what happens after approval/rejection, but the 410 guidance and role note make it sufficiently complete for an agent to call it correctly in most cases.

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 the role context and the 410 routing behavior, but doesn't add parameter-level meaning beyond what the schema provides. Baseline 3 is appropriate when 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 ('Approve, reject or request revision'), a specific resource ('one uploaded file'), and the role context ('write β€” editor role'). It also distinguishes itself from the sibling scf_review_window_assessment by noting the 410 return where per-window review is enabled. This is a clear, specific purpose statement.

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 'Returns 410 where per-window review is enabled β€” use scf_review_window_assessment there.' This gives a concrete condition for when to use this tool versus the alternative, which is exactly the kind of routing guidance an agent needs.

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

scf_review_window_assessmentA

Set the acceptance review of a windowed assessment (write β€” editor role): approved, rejected, needs_revision, or not_reviewed to revoke. Verdict itself: scf_review_window_assessment_verdict.

ParametersJSON Schema
NameRequiredDescriptionDefault
ewa_idYesWindow assessment UUID β€” obtain from scf_list_window_assessments
org_idYesOrganization UUID β€” obtain from scf_list_organizations
review_notesNoReviewer notes
review_statusYesReview state to set; not_reviewed revokes

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that this is a write operation, requires an editor role, and that not_reviewed revokes the review. This adds useful behavioral context beyond the basic annotations. There is no contradiction with annotations (readOnlyHint=false, destructiveHint=false).

Agents need to know what a tool does to the world before 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, front-loaded sentences with no filler. The operation, role, allowed values, and sibling pointer are all conveyed 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 4-parameter write tool with no output schema and minimal annotations, the description provides action, role, accepted values, and the key sibling distinction. It could mention success/error behavior, but 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 description coverage is 100%, so the baseline is 3. The description restates the review_status values and the revoke meaning, but adds no new parameter semantics beyond what the schema already provides for ewa_id, org_id, or review_notes.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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: 'Set the acceptance review of a windowed assessment', and enumerates the exact status values. It also names the sibling scf_review_window_assessment_verdict, distinguishing this mutation tool from the verdict-related tool.

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 marks the operation as a write requiring an editor role and points to the sibling scf_review_window_assessment_verdict for the verdict itself. However, it does not explicitly exclude related read or trigger tools like scf_get_window_assessment or scf_trigger_window_assessment.

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

scf_review_window_assessment_verdictA

Confirm or override a window's current AI verdict (write β€” editor role). overridden needs a reason and β‰₯1 objective re-designation. One decision per version; 422 without objectives: confirm.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
reasonNoWhy the verdict is overridden β€” required when decision is overridden
decisionYesconfirmed = AI verdict stands; overridden = you are changing it
ao_overridesNoObjectives to re-designate β€” required (β‰₯1) when overriding, forbidden when confirming; unlisted objectives keep the AI's designation. 422 if the version has no per-objective answers: confirm instead
assessment_idYesWindow assessment UUID β€” obtain from scf_get_assessment_review_queue (window_assessment_id) or scf_list_window_assessments

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already cover read/write and destructive nature (readOnlyHint false, destructiveHint false). The description adds behavioral context: 'One decision per version' and the 422 error when overriding without objectives. It also implies a write operation with 'write β€” editor role', which is consistent. No contradictions.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and includes essential conditional constraints without fluff. Every phrase adds value: the role, the required conditions, and the error case.

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 decision logic, the error condition, and the role requirement. The schema provides details on obtaining org_id and assessment_id, and the conditional parameter requirements. No output schema exists, so return format isn't specified, but the tool is complete enough for an agent to call correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description reinforces the conditional requirement for reason and ao_overrides when decision is 'overridden', and notes the 422 condition. It does not add new parameter details beyond the schema, but it does help clarify the interplay between decision and ao_overrides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Confirm or override' and the resource 'a window's current AI verdict'. It also specifies the role ('write β€” editor role'), making the intent unambiguous. While it doesn't name sibling tools, the purpose is specific enough that an agent can distinguish it from review tools that only read or review evidence.

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 explicit guidance on when to use 'overridden' vs 'confirmed' β€” 'overridden needs a reason and β‰₯1 objective re-designation' β€” and the 422 error condition 'without objectives: confirm'. This effectively tells the agent how to decide. It does not name alternative tools, but the context of write vs read is implied.

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

scf_rollback_catalog_reconciliationA
Destructive

Roll an applied reconciliation run back (destructive write β€” admin role). Asynchronous, and requires the typed confirmation string the run detail states.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
run_idYesReconciliation run UUID β€” obtain from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation
confirm_textYesThe exact confirmation phrase the platform requires for this rollback

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (destructiveHint true, readOnlyHint false), the description explicitly states 'destructive write β€” admin role' and 'Asynchronous.' It also discloses the confirmation-string requirement, adding meaningful operational context an agent needs before calling.

Agents need to know what a tool does to the world before 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 action, safety profile, role requirement, async behavior, and the critical confirmation-string prerequisite. No filler, and 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 destructive, async, admin-gated tool with three required parameters, the description covers the operation, role, async nature, and confirmation mechanism. The schema supplies the parameter sourcing details, so 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 input schema already documents all three parameters and their sources, so the baseline is 3. The description adds value by explaining that confirm_text must be the typed confirmation string 'the run detail states' and that run_id refers to an applied run, giving extra 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?

The description states a specific verb and resource: 'Roll an applied reconciliation run back.' It clearly distinguishes this from sibling tools like apply or cancel, and the parenthetical '(destructive write β€” admin role)' adds scope 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 clarifies this is for an 'applied' reconciliation run, which signals when to use it rather than cancel or preview. It also mentions the typed confirmation requirement. It doesn't explicitly name alternatives or exclusions, but the context is clear enough for an agent to route appropriately.

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

scf_rotate_webhook_secretA

Rotate the HMAC signing secret for a webhook endpoint (write β€” admin role). The old secret is invalidated immediately. Returns the new plaintext secret exactly once.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
endpoint_idYesWebhook endpoint UUID β€” obtain from scf_list_webhooks

TDQS

A4.5/5.0
Behavior5/5

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

Discloses two critical behaviors beyond what annotations convey: the old secret is invalidated immediately, and the new plaintext secret is returned exactly once. These are material consequences an agent must know before invoking 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 short sentences front-load the verb and resource, then state the side effect and return behavior. There is no filler or redundant 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 two-parameter mutation with no output schema, the description captures purpose, admin requirement, immediate invalidation side effect, and the once-only plaintext return contract. Nothing operationally 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 both parameters already have descriptions showing where to obtain values. The description adds no parameter-level detail, 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 ('Rotate'), resource ('HMAC signing secret for a webhook endpoint'), and access level ('admin role'). It is clearly distinguishable from sibling webhook tools because rotation is uniquely named and 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 designation '(write β€” admin role)' gives clear context about authorization and operation type. It does not explicitly name alternatives or when-not conditions, but among siblings no other tool performs rotation, so the intended use is evident.

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

scf_scope_frameworkA

Bulk-scope every control mapped to a framework into the organization (write β€” editor+ role). Creates a scoped-control entry for each control in the framework.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
framework_idYesFramework slug to scope (e.g., 'nist-800-53-r5') β€” obtain from scf_list_frameworks

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate a mutating (readOnlyHint=false), non-destructive operation. The description adds the editor+ role requirement and clarifies the effect is creating scoped-control entries, but it does not disclose idempotency, duplicate handling, or whether existing scoped controls are affected. 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 tight sentences: one states the bulk-scope action plus role, the other states the outcome. Every word earns its place, and the key behavioral detail 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 two-parameter write tool with full schema and annotations, the description provides the essential context: what gets scoped, what entries are created, and who is allowed to run it. It doesn't explain re-run behavior or output, but that is a minor gap since there is no output schema to reconcile.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters already have descriptive text ('Organization UUID' and 'Framework slug to scope'). The tool description adds no parameter-level detail beyond general context, 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 uses a specific verb ('Bulk-scope'), names the resource ('every control mapped to a framework'), and states the concrete outcome ('Creates a scoped-control entry for each control'). This clearly differentiates it from sibling tools like scf_update_scoped_control or scf_list_scoped_controls.

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: use this when you want to scope all controls in a framework into the organization at once, and it notes the editor+ permission requirement. It doesn't explicitly name alternatives or say 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.

scf_set_reconciliation_actionsA

Record decisions for a reconciliation run (write β€” admin role). REPLACES the run's planned actions, so send the complete list. Each deprecated entity gets migrate, retain or retire_only.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
run_idYesReconciliation run UUID β€” obtain from scf_list_reconciliation_runs or scf_preview_catalog_reconciliation
actionsYesThe complete set of planned actions for this run β€” partial lists overwrite the rest
confirmed_framework_idsNoOn a first reconciliation, the confirmed framework list this organization is scoping to

TDQS

A3.6/5.0
Behavior1/5

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

The description transparently warns that the tool REPLACES the run's planned actions and that partial lists overwrite the rest. However, this contradicts the annotation destructiveHint=false, because overwriting an existing list is a destructive operation. The mixed signal can make an agent underestimate the side effects.

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

Conciseness5/5

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

Two dense sentences, no filler. The first sentence states the operation and authorization, and the second front-loads the critical replacement behavior and the action options.

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 core write behavior, authorization, side effects, and decision values, which is sufficient for a tool with a fully documented input schema. It does not mention how this step relates to preview/apply or what the response returns, but those are minor given the sibling names and no 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%, so the schema already documents all parameters and their meanings. The description adds useful emphasis about sending the complete list and the available action values, but it does not meaningfully expand beyond the structured 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 names the specific action ('Record decisions'), the resource ('reconciliation run'), and marks it as a write with an admin role. It also states the supported decision values, clearly distinguishing this tool from the many read-only reconciliation siblings like preview, get, and apply.

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 is the write step for recording reconciliation decisions, requires admin role, and must receive the complete list because prior actions are replaced. It does not explicitly name alternatives or exclude later phases like apply, but 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.

scf_set_scope_overrideA

Force one control in or out of scope whatever its frameworks imply (write β€” editor+). 'include'/'exclude' pin it; 'inherit' clears the override back to the framework rollup. Scope only, not status.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYes'include' pins the control in scope, 'exclude' pins it out, 'inherit' clears the override AND discards the recorded rationale (it stays in the audit trail)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
reasonNoWhy this control is being overridden β€” recorded in the audit trail (max 2000 characters)
scf_idYesSCF control identifier in DOMAIN-NN format β€” obtain from scf_list_scoped_controls

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=false and destructiveHint=false, so the description doesn't need to restate safety. It adds value by disclosing the write nature ('write β€” editor+'), the effect on override (pin or clear), and the important side effect of 'inherit': 'discards the recorded rationale (it stays in the audit trail)'. This goes beyond annotations, making the agent aware of data loss on rationale. However, it doesn't detail permissions beyond 'editor+' or response format, but that is acceptable given 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 only three sentences, front-loads the core purpose, and every word earns its place. It states the primary function, explains actions concisely, and adds the crucial constraint 'Scope only, not status' efficiently. 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 single-control mutation tool with complete schema documentation, the description provides sufficient context. It covers the control's scope override mechanism, the three actions, and the side effect of inheriting. It doesn't mention return values (no output schema) or error conditions, but those are not critical for making the call. The description is complete enough for an agent to execute correctly, and the small gaps are acceptable given schema richness.

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%, but the description enhances parameter understanding. It explains the action enum's semantics clearly (include/exclude pin, inherit clears) and notes that 'inherit' also discards rationale, which is not in the schema. It also clarifies the scope of the tool ('Scope only, not status') which helps interpret scf_id and action. Although it doesn't restate each parameter, it adds value on top of 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 ('Force'), a clear resource ('one control'), and the precise effect (in or out of scope, pin/include/exclude/inherit). It distinguishes itself from siblings by clarifying it operates on a single control's override, not batch operations like scf_batch_update_controls or scf_bulk_unscope_framework. The parenthetical '(write β€” editor+)' and 'Scope only, not status' further delineate its exact place in the toolkit.

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 three action values ('include'/'exclude' pin it; 'inherit' clears the override) and notes the scope-only limitation ('Scope only, not status'). It does not directly name a sibling to use instead, but the contrast with batch tools is implicit through 'one control' and 'single control'. The context of scf_set_scope_override vs. scf_batch_update_controls and scf_bulk_unscope_framework is clear 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.

scf_transition_documentA

Move a document through its lifecycle β€” draft to review, review to approved, approved to published (write β€” approving and publishing need admin). Valid targets are enforced by the platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
reasonNoFree-text justification recorded on the transition
to_statusYesTarget lifecycle status (e.g. 'in_review', 'approved', 'published')
document_idYesGenerated document UUID β€” obtain from scf_list_documents

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already indicate readOnlyHint=false and destructiveHint=false, but the description goes beyond them by disclosing the admin permission needed for approving/publishing and by stating that valid targets are platform-enforced. It also signals that this is a write operation, consistent with the annotations. No contradiction exists.

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

Conciseness5/5

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

The description is compact and front-loaded: the verb and resource appear first, followed by concrete transition examples and the critical admin caveat. The second sentence about platform enforcement is short and useful. No filler is present.

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

Completeness4/5

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

For a state-transition operation with 4 simple parameters, the description supplies enough context: transition path, admin permission, and platform validation. It does not specify the response format, but no output schema is present and the behavior itself is straightforward. The coverage is solid without being exhaustive.

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 org_id, document_id, reason, and to_status. The description's lifecycle examples add a little meaning to to_status by showing valid transitions, but most parameter semantics are already covered by the schema. This matches 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 opens with a specific verb and resource: 'Move a document through its lifecycle.' It then gives concrete transition examples (draft to review, review to approved, approved to published) that make clear this is about status transitions, not content editing. This clearly distinguishes it from sibling document tools like scf_update_document_section and scf_update_document_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?

The description provides clear context for when this tool is appropriate: whenever a document needs to advance through lifecycle states. The admin requirement for approving and publishing adds an important condition for use. It does not explicitly 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.

scf_trigger_evidence_assessmentA

Queue an AI assessment of a single evidence file (write β€” editor+ role, async). Returns a pending record; poll scf_get_evidence_assessment until status is sufficient/partial/insufficient.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
file_idYesEvidence file UUID β€” obtain from scf_list_evidence_files
evidence_idYesEvidence ID (e.g., 'ERL-IAM-001') β€” obtain from scf_list_evidence
assessment_sourceNoOrigin tag for the request (default on_demand)on_demand

TDQS

A4.5/5.0
Behavior5/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false; the description carries the real behavioral burden and does it well by disclosing that this is a write operation, requires editor+ role, is asynchronous, returns a pending record, and needs polling until a final status. It adds substantial value beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before 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 with no filler. The primary action, access role, async nature, and follow-up polling instruction are all front-loaded and expressed in the most compact useful form. Every clause earns its place.

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

Completeness5/5

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

For a tool with no output schema and minimal annotations, the description supplies the missing context: return type ('pending record'), terminal statuses to wait for, and the explicit polling path. It is sufficient for an agent to invoke the tool and handle the async lifecycle correctly.

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

Parameters3/5

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

Schema coverage is 100% and every parameter already has a meaningful description, including where to obtain IDs and the default for assessment_source. The description does not need to add parameter-level detail, so baseline 3 is appropriate; it neither detracts nor compensates further.

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

Purpose5/5

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

Starts with a specific verb and resource: 'Queue an AI assessment of a single evidence file.' It clearly distinguishes from bulk operations by emphasizing 'single', and names the companion polling tool scf_get_evidence_assessment. The write/async nature is explicit, 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?

Provides clear operational guidance: it is a write, requires editor+ role, is async, and tells the agent to poll scf_get_evidence_assessment until a terminal status appears. It stops short of explicitly contrasting with bulk alternatives like scf_bulk_assess_evidence, but the 'single evidence file' constraint and polling follow-up are enough for correct usage.

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

scf_trigger_vendor_assessmentA

Queue an AI vendor security assessment (write β€” editor+ role, async, HTTP 202). Replaces the deprecated DPSIA trigger. Returns assessment_id + job_id; poll scf_get_vendor_assessment_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
data_roleNoGDPR data role (default 'Processor')Processor
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
services_usedNoDescription of services the vendor provides, 1–2000 chars (auto-derived from the vendor record if omitted)
assessment_typeNoAssessment type: 'initial', 'annual', or 'adhoc' (default 'initial')initial
additional_contextNoFree-text context, scope notes, or specific concerns to feed the assessor (max 5000 chars)

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description discloses the editor+ role requirement, asynchronous behavior, HTTP 202 semantics, and the response shape (assessment_id + job_id). This is exactly the behavioral context an agent needs that structured fields do not convey. 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, each earning its place: core purpose with key traits, legacy replacement note, and return value with the follow-up call. The most decision-relevant facts (verb, resource, async, role) are front-loaded with zero 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?

Despite having no output schema, the description covers the return contract (assessment_id + job_id) and the required next step (poll status). Role, async behavior, and response semantics are all stated, and all 6 parameters are fully documented in the schema. Nothing an agent needs to call this safely 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 baseline is 3. The description adds no parameter-level detail, but none is needed: each parameter has an explanatory description with provenance ('obtain from scf_list_organizations'), defaults, and max lengths already in the schema.

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

Purpose5/5

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

The description uses a specific verb ('Queue') plus a distinct resource ('AI vendor security assessment') and adds behavioral qualifiers (write, async, HTTP 202). It distinguishes itself from siblings such as scf_trigger_vendor_research, scf_trigger_evidence_assessment, and scf_trigger_window_assessment by explicitly scoping to vendor assessments.

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 replaces the deprecated DPSIA trigger and directs the agent to poll scf_get_vendor_assessment_status afterward. It lacks explicit exclusions or named alternatives for when NOT to use it versus bulk/research sibling tools, but the context provided 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.

scf_trigger_vendor_researchA

Queue AI security research for a vendor (write β€” editor+ role, async). Checks HIBP breach data, NVD vulnerabilities, and public posture. Returns a task ID; poll scf_get_vendor_research.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
domain_overrideNoOverride the vendor's website domain used for research lookup (e.g., 'example.com')

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only indicate readOnlyHint=false and destructiveHint=false; the description adds meaningful behavior: it is write-scoped to editor+ role, runs async, checks HIBP/NVD/public posture, and returns a task ID rather than results. This exceeds annotation coverage and sets correct expectations.

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

Conciseness5/5

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

Two dense sentences, with the action, role, and async nature front-loaded; the rest is a compact list of data sources and return behavior. 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 no-output-schema trigger tool, the description tells the agent exactly what will happen, what will be returned, and where to poll for results. It might be improved by noting duration or error handling, but the essential invocation and follow-up flow are 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?

Input schema already describes all three parameters at 100% coverage, including how to obtain org_id and vendor_id and the meaning of domain_override. The description adds no extra parameter-level detail, so baseline 3 applies.

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

Purpose5/5

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

Clearly states a specific verb ('Queue'), a resource ('AI security research for a vendor'), and key execution traits ('write β€” editor+ role, async'). It also names the data sources and distinguishes itself from the retrieval sibling by saying to poll scf_get_vendor_research.

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: use this to kick off asynchronous vendor research, and it points to scf_get_vendor_research for the follow-up read. It does not enumerate when-not-to-use scenarios or alternatives like scf_trigger_vendor_assessment, 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.

scf_trigger_window_assessmentA

Queue a windowed AI assessment that scores every file in the evidence item's frequency window as one portfolio (write β€” editor+ role, async). Returns 422 if tracking or frequency is missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
evidence_idYesEvidence ID (e.g., 'E-IAM-01'). Tracking row with a frequency must exist β€” set via scf_update_evidence first
assessment_sourceNoOrigin tag for the request (default on_demand)on_demand

TDQS

A4.4/5.0
Behavior5/5

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

Discloses it is a write operation requiring editor+ role, is asynchronous, and returns 422 when prerequisites are missing. Annotations only provide readOnlyHint=false and destructiveHint=false, so the description adds meaningful behavioral context without contradicting them.

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

Conciseness5/5

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

Single sentence packs operation, scope, role, async behavior, and error condition with no filler. Key differentiator ('windowed', 'one portfolio') 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?

Covers role, async behavior, prerequisite error, and scope; the input schema fills parameter details. It does not state the successful return payload (likely a queued assessment ID), but sibling get/list tools partially cover the follow-up, so this is a minor 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% and parameter descriptions already supply source (org_id from scf_list_organizations), prerequisites (evidence_id frequency tracking), and default for assessment_source. The tool description adds portfolio context but does not change parameter interpretation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 names a specific operation ('Queue'), a distinct resource type ('windowed AI assessment'), and defines its scope ('scores every file in the evidence item's frequency window as one portfolio'). This differentiates it from sibling single-file triggers such as scf_trigger_evidence_assessment and from retrieval tools like scf_get_window_assessment.

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 states the conditions that must hold ('tracking or frequency must exist', evidence_id parameter references scf_update_evidence prerequisite) and notes async execution. It does not explicitly name alternative tools or say when not to use it, but 'windowed' and 'as one portfolio' imply the selection criterion.

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

scf_update_commentA

Edit a comment you authored (write β€” author only). Replaces the body and, if given, the mentions; the platform keeps the edit history.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesNew comment body
mentionsNoUser UUIDs to notify
comment_idYesComment UUID β€” obtain from scf_list_comments

TDQS

A4.4/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 behavior beyond annotations: it's a write operation, restricted to the author, it replaces the body and optional mentions, and the platform retains edit history. These details help the agent understand side effects and authorization requirements.

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

Conciseness5/5

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

A single sentence that is front-loaded with the primary purpose, followed by concise behavioral details. No redundant words or repetition of schema information. Every clause contributes essential guidance.

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

Completeness4/5

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

For a simple update operation with 3 parameters and no output schema, the description covers the core action, authorization constraint, and behavioral side effects. It doesn't mention return values, but that is typically not essential for invoking an update tool. The preconditions (existing comment, author ownership) are stated.

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%, but the description adds value by clarifying that content replaces the body and that mentions are optional and, when provided, replace the existing mentions. The schema merely lists 'New comment body' and 'User UUIDs to notify'; the description clarifies the replacement 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?

Description starts with 'Edit a comment you authored' β€” a specific verb, resource, and scope. It clearly differentiates from siblings scf_create_comment and scf_delete_comment by indicating it modifies an existing comment authored by the caller. The mention of 'replaces the body and, if given, the mentions' further specifies the action.

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 that this tool is for editing an existing comment the user authored, which implies when to use it. It does not explicitly contrast with scf_create_comment or scf_delete_comment, but the 'author only' constraint is an important usage prerequisite. No explicit alternatives are named, 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.

scf_update_compensating_controlA

Update a vendor compensating control (write β€” editor role). Only passed fields change: gap description, control text, effectiveness rating, risk-reduction notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
cc_idYesCompensating control UUID β€” obtain from scf_list_compensating_controls
org_idYesOrganization UUID β€” obtain from scf_list_organizations
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
gap_descriptionNoThe gap the control offsets
compensating_controlNoThe control that offsets the gap
effectiveness_ratingNoEffectiveness (default partial)
risk_reduction_notesNoHow much residual risk this removes

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=false and destructiveHint=falseics. The description adds valuable behavioral context by stating the editor-role requirement, the partial-update behavior ('Only passed fields change'), and explicitly listing the updatable fields (gap description, control text, effectiveness rating, risk-reduction notes). This goes beyond the annotations and 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 entire description is a single sentence with no fluff. The core action and the most important behavioral nuance (partial update) are front-loaded, making it easy to scan.

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

Completeness4/5

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

For an update tool with 7 parameters and no output schema, the description plus the fully documented schema cover all essentials: required IDs are specified and sourced in the schema, the update behavior is clear, and the role requirement is stated. Nothing needed for correct invocation 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%, with each parameter already documented in the schema, including how to obtain the required IDs from list tools. The description's mention of 'gap description, control text, effectiveness rating, risk-reduction notes' loosely maps to schema properties but does not add significant semantic detail 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 begins with 'Update a vendor compensating control', a specific verb and resource that clearly distinguishes it from the sibling create/delete/list tools. The parenthetical '(write β€” editor role)' reinforces that this is a mutating operation, leaving no ambiguity about its purpose.

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

Usage Guidelines4/5

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

The description states 'Only passed fields change', which clarifies partial-update semantics and tells the agent which fields are updatable. It does not explicitly name alternatives like scf_create_compensating_control or scf_delete_compensating_control, but the tool name and the sibling set make the usage context obvious.

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

scf_update_custom_riskA

Update a custom risk definition's metadata β€” title, description, category (write β€” editor+ role). Only provided fields are applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew risk title (max 100 chars)
org_idYesOrganization UUID β€” obtain from scf_list_organizations
risk_codeYesCustom risk code in R-ORG-N format (e.g., 'R-ORG-1') β€” obtain from scf_list_custom_risks
descriptionNoNew risk description
category_nameNoNew category label
category_colorNoNew hex color for the category badge

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only set readOnlyHint=false and destructiveHint=false; the description adds meaningful behavioral context by stating this is a metadata-only update, requires an editor+ role, and applies only provided fields. This goes beyond the structured annotations and gives the agent clear expectations of side effects and permissions.

Agents need to know what a tool does to the world before 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 concise sentence with no filler. The key action, target, permission, and partial-update behavior are all included 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?

The description covers purpose, permissions, and partial-update behavior, which is sufficient for a simple metadata update with 6 parameters documented in the schema. It does not describe the return value, but no output schema exists and the effect is clearly stated, so the gap is minor.

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 parameter semantics are already fully documented in the schema. The description adds no per-parameter details beyond what the schema 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 names a specific verb ('Update'), a specific resource ('custom risk definition's metadata'), and lists the exact metadata fields (title, description, category). It clearly distinguishes from sibling tools like scf_create_custom_risk and scf_delete_custom_risk.

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 its usage by being an update operation and notes the partial-update behavior ('Only provided fields are applied'), which is useful. However, it does not explicitly state when to use this versus scf_create_custom_risk or scf_delete_custom_risk, nor any exclusions.

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

scf_update_document_sectionA

Replace one section's content with a human edit (write β€” editor role). Tracked as a human layer, so a later regeneration reports a conflict instead of overwriting it silently.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
contentYesFull replacement markdown body for this section
section_idYesSection identifier from the document detail (scf_get_document). May contain slashes β€” pass it exactly as returned, unescaped.
document_idYesGenerated document UUID β€” obtain from scf_list_documents

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description explains an important behavioral trait: the edit is tracked as a human layer and later regeneration will report a conflict rather than silently overwrite. This is non-obvious, valuable context that helps the agent predict side effects and choose the tool safely.

Agents need to know what a tool does to the world before 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, no filler. The core action is front-loaded, and the second sentence adds the critical conflict-behavior detail that fully justifies the tool's existence. Every word contributes to selection or 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?

For a straightforward single-section update with four well-documented parameters and no output schema, the description covers purpose, role, and non-obvious behavior (conflict on regeneration). Nothing essential for correct invocation appears to be missing.

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

Parameters3/5

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

The schema already documents all four required parameters with 100% coverage, including the exact UUID patterns and where to obtain identifiers. The description adds little parameter-specific detail beyond the concept of replacing content, 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 uses a specific verb ('Replace'), names the exact resource ('one section's content'), and clarifies the write nature with 'human edit (write β€” editor role)'. It also conveys the key semantic distinction from generated/silent updates by mentioning the human-layer tracking, which sets it apart from document generation/resolution 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 communicates when to use this tool: when a human editor wants to replace a section's content. It doesn't explicitly name alternatives or list when not to use it, but the 'editor role' and 'human layer' framing gives adequate context for an agent to distinguish it from generation-oriented or read-only document tools.

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

scf_update_document_settingsA

Enable or configure document generation (write β€” admin role). Generation stays blocked until the SCF licence is acknowledged, so the first call usually sets both enabled and acknowledge_licence.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
enabledNoTurn document generation on or off for this organization
acknowledge_licenceNoRecord acknowledgement of the SCF content licence β€” required once before generation is permitted
derivative_generators_enabledNoAllow generators that derive content from other generated documents

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds an admin-role requirement and the critical licence-gating behavior. It tells the agent that generation stays blocked until the licence is acknowledged, which is material for calling the tool correctly.

Agents need to know what a tool does to the world before 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 action and role are front-loaded, and the licence prerequisite follows immediately. Every sentence contributes either to selection or correct 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?

For a simple update tool with no output schema and fully self-describing parameters, the description covers the key non-obvious context: admin role, write semantics, and the licence-acknowledgement ordering. Nothing needed to select or invoke the tool 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, but the description adds cross-parameter meaning by explaining that the first call usually sets both enabled and acknowledge_licence. This goes beyond individual field descriptions and helps the agent choose which booleans to send together.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 an explicit verb and resource ('Enable or configure document generation') and flags it as a write operation for admin role. This distinguishes it from read-only siblings like scf_get_document_settings and from scf_generate_documents, which actually initiates generation.

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 invocation guidance: the licence acknowledgement must be set before generation is allowed, and the first call usually sets both enabled and acknowledge_licence together. It does not explicitly name an alternative tool for when not to use it, but the admin/write framing makes the intended context clear.

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

scf_update_engagementA

Update an engagement's name, frameworks, status or dates (write β€” editor role). Only passed fields change; status moves are caller-controlled: draft β†’ active β†’ under_review β†’ closed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew engagement name
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoNew engagement status: draft, active, under_review or closed
end_dateNoFieldwork end date, ISO 8601 (YYYY-MM-DD)
frameworksNoReplacement framework identifier list
start_dateNoFieldwork start date, ISO 8601 (YYYY-MM-DD)
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description correctly adds that this is a write operation requiring an editor role. It also discloses partial-update behavior and the enforced status flow, which is valuable context beyond the annotations.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and resource, then states key behaviors (partial update, status flow). 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 write tool with 7 parameters and no output schema, the description covers the essential behavioral aspects: role requirement, partial update, and status constraints. It does not explain return values, but that is not necessary given the absence of an output schema. The description is complete enough 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 schema already documents each parameter. The description adds the status transition rule that is not in the schema, which aids correct use of the status parameter. However, it does not add per-parameter meaning beyond that, so a 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 action (update) and the resource (engagement) and lists the specific fields that can be changed (name, frameworks, status, dates). It distinguishes from the many other update tools by naming the resource explicitly, so an agent can immediately identify it as the engagement updater.

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 that only passed fields change (partial update) and that status transitions are caller-controlled with an explicit sequence (draft β†’ active β†’ under_review β†’ closed). This provides clear guidance on how to use the tool correctly. It does not explicitly name alternative tools, but the sibling context makes the intended use obvious.

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

scf_update_engagement_query_statusA

Move an auditor query through its lifecycle (write β€” org member or assigned auditor). Allowed: open β†’ answered|closed, answered β†’ open|closed, closed β†’ open. Others are refused.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusYesTarget query status
query_idYesQuery UUID β€” obtain from scf_list_engagement_queries
engagement_idYesAudit engagement UUID β€” obtain from scf_list_engagements

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish readOnly=false and destructive=false; the description adds useful context by identifying it as a write operation, restricting it to org members or assigned auditors, and declaring that invalid transitions are refused. This is consistent with the annotations and gives an agent clear behavioral expectations.

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

Conciseness5/5

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

The description is a single tight sentence with a compact transition table; every part earns its place and the core 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?

All parameters are documented in the schema and the state machine is fully specified, so an agent has the preconditions and constraints needed to call the tool correctly. It omits return-value details, but no output schema exists and the operation's side effects are sufficiently characterized for a status update.

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 four parameters, so the schema carries the parameter burden. The description adds no per-parameter detail, which is acceptable at the baseline given full 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 uses a specific verb ('Move') and resource ('auditor query') and spells out the lifecycle transitions, making the tool's purpose clear. It doesn't explicitly distinguish it from the related scf_respond_to_engagement_query, but the transition model is enough to understand what the operation does.

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 allowed transition matrix and the 'write' permission indicate when the tool applies, and 'Others are refused' sets a boundary. However, it doesn't name alternatives like scf_respond_to_engagement_query or state when not to use this tool, so 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.

scf_update_evidenceA

Upsert an evidence item's tracking fields (write β€” editor+ role). Creates the tracking row if missing. All body fields are optional; only provided fields are applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoPerson accountable for this evidence item
org_idYesOrganization UUID β€” obtain from scf_list_organizations
commentsNoFree-text notes or context
frequencyNoCollection cadence: 'daily', 'weekly', 'monthly', 'quarterly', or 'annually'
system_idNoSystem UUID to link this evidence to β€” obtain from scf_list_systems
is_trackedNoToggle active tracking for this item
evidence_idYesCatalog evidence ID (e.g., 'E-IAM-01') β€” obtain from scf_list_evidence or scf_list_evidence_catalog
maturity_levelNoEvidence maturity level L0–L5 (e.g., 'L3'); omitting never clears the stored value
collecting_systemNoName of the tool or system that collects the evidence
method_of_collectionNoCollection approach: 'automated', 'manual', or 'hybrid'

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only indicate non-read-only and non-destructive, but the description adds meaningful behavioral details: it is a write operation requiring editor+ role, it creates the tracking row if missing, and it applies only provided fields. This is valuable context beyond the structured annotations and 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?

The description is two sentences with no filler. The core operation and scope are front-loaded, and the partial-update behavior is stated concisely.

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 10 parameters and lack of an output schema, the description covers the essential operational semantics: upsert behavior, permissions, and partial updates. The schema handles parameter-level details. A minor gap is the lack of any statement about the response shape, but this is not critical for invoking 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?

All 10 parameters already have schema descriptions, so the schema carries most of the burden. The description adds important semantic context by clarifying that all body fields are optional and only provided fields are applied, which materially changes how an agent should construct a request.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 as an 'upsert' of 'tracking fields' on an evidence item, distinguishing it from simply creating or reading evidence. It also names the required role ('editor+'), which helps an agent understand the operation's nature. It is specific enough to separate this from siblings like scf_create_evidence and scf_list_evidence.

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 states clear context: use this to upsert tracking fields and create a missing tracking row. It does not explicitly name or contrast alternatives such as scf_create_evidence, so the when-not-to-use 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.

scf_update_evidence_taskA

Update an evidence collection task (write β€” editor role). Only passed fields change: due date, status, type, priority, title, description, notes, assignee, owning team.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoTask title
statusNoStatus
task_idYesEvidence task UUID β€” obtain from scf_list_evidence_tasks
due_dateNoDue date, YYYY-MM-DD
priorityNoPriority
task_typeNoTask type
descriptionNoWhat has to be collected and how
owning_team_idNoTeam that owns the task β€” obtain from scf_list_teams
assigned_user_idNoAssignee user UUID β€” obtain from scf_list_members
completion_notesNoNotes recorded on completion

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate a write operation (readOnlyHint=false), and the description adds useful context: the editor role requirement and the fact that unspecified fields are preserved. This partial-update behavior is beyond what annotations provide, though it does not describe response 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, front-loaded sentence with no filler. It conveys purpose, role, mutation semantics, and the affected fields 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?

For a 10-parameter update tool with no output schema, the description covers the critical behavioral facts: what operation occurs, who is allowed, and that only passed fields change. It does not mention return value or post-update effects, but the schema's per-parameter descriptions carry most of the remaining 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?

Schema description coverage is 100%, so the schema fully documents all 10 parameters. The description lists the fields in prose but adds little semantic detail beyond the schema; it also loosely aliases 'type' for task_type and 'notes' for completion_notes, which could cause minor 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 opens with a specific verb and resource: 'Update an evidence collection task.' It adds a role qualifier and the partial-update semantics ('Only passed fields change'), which clearly distinguishes it from scf_create_evidence_task and scf_complete_evidence_task.

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 through 'update' and 'only passed fields change', but it never explicitly says when to use this tool versus scf_complete_evidence_task or scf_create_evidence_task, nor does it state exclusions. The intended use is inferable but not spelled out.

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

scf_update_risk_assessmentB

Update a scored risk by its code (write β€” editor role). Only passed fields change: inherent and residual likelihood/impact 1–5, treatment status and plan, due and review dates, owner, notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoFree-text notes on this risk assessment
impactNoInherent impact on a 1–5 scale
org_idYesOrganization UUID β€” obtain from scf_list_organizations
risk_codeYesRisk code β€” catalog R-XX-N or custom R-ORG-N
likelihoodNoInherent likelihood on a 1–5 scale
owner_user_idNoRisk owner β€” obtain from scf_list_members
treatment_planNoHow the risk is being treated
residual_impactNoResidual impact after treatment, 1–5 scale
next_review_dateNoYYYY-MM-DD
treatment_statusNoTreatment lifecycle state
treatment_due_dateNoYYYY-MM-DD
residual_likelihoodNoResidual likelihood after treatment, 1–5 scale

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already convey readOnlyHint=false and destructiveHint=false. The description adds valuable behavioral context: this is a write operation requiring editor role, and it performs partial updates ('Only passed fields change'). It does not disclose side effects, validation failures, or what happens when fields are omitted, but 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 sentences with no wasted words. The core action and role are front-loaded, followed immediately by the partial-update contract. 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 mutation tool with 12 parameters, the description, combined with the fully documented schema and annotations, covers the essential semantics: required identifiers (org_id, risk_code), partial update behavior, and allowed field values. It does not describe return output or error behavior, but no output schema exists and the operation 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%, so the input schema already documents all 12 parameters. The description adds little beyond confirming that inherent/residual likelihood/impact are 1–5 and dates are included, which is marginal over the schema's own field 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 clearly states the verb 'Update' and the resource 'a scored risk by its code', and enumerates the affected fields. It does not explicitly distinguish itself from sibling scf_update_custom_risk, but 'scored risk' and 'risk_code' are specific enough to identify the operation.

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 gives no explicit when-to-use guidance or exclusions, nor does it mention alternatives like scf_update_custom_risk or scf_create_risk. 'Only passed fields change' implies a partial-update workflow, but the agent is left to infer when this tool is appropriate versus its siblings.

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

scf_update_scoped_controlA

Update a scoped control's implementation fields (write β€” editor+ role). Identify by scf_id, not UUID. Only provided fields are applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoAccountable owner of the control
org_idYesOrganization UUID β€” obtain from scf_list_organizations
scf_idYesSCF control identifier in DOMAIN-NN format (e.g., 'AST-01', 'GOV-02') β€” NOT the UUID
priorityNoImplementation priority: 'high', 'medium', or 'low'
assigned_toNoAssignee responsible for implementation
target_dateNoTarget completion date in ISO-8601 (YYYY-MM-DD)
maturity_levelNoMaturity level with L prefix: L0 Not Performed, L1 Performed, L2 Planned, L3 Well Defined, L4 Quantitatively Controlled, L5 Continuously Improving
completion_dateNoActual completion date in ISO-8601 (YYYY-MM-DD)
selection_reasonNoJustification for scoping decision β€” required for not_applicable or deferred
implementation_notesNoFree-text implementation notes and context
implementation_statusNoNew implementation status (lowercase): not_started, in_progress, implemented, ready_for_review, monitored, not_applicable, at_risk, or deferred

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate it is not read-only and not destructive. The description adds valuable behavioral details: the editor+ role requirement, the scf_id-not-UUID caveat, and the partial-update semantics ('Only provided fields are applied'). This helps prevent incorrect invocation.

Agents need to know what a tool does to the world before 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 written sentence that conveys the operation, required role, identifier quirk, and patch behavior with no filler. 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?

With 11 parameters and 100% schema coverage, the description does not need to enumerate fields. It covers the key invocation caveats. It does not describe the return value, but no output schema exists and this is not critical for a partial-update 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 coverage is 100%, so the baseline is 3. The description adds operation-level parameter meaning by clarifying that only explicitly provided fields are updated, which is critical for optional parameters and not stated in the schema. This goes slightly 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 uses a specific verb and resource: 'Update a scoped control's implementation fields'. It clearly distinguishes this from read-only list/get siblings and from batch operations by focusing on a single control's implementation fields.

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 useful context: this is a write operation requiring editor+ role, and it identifies the control by scf_id rather than UUID. However, it does not explicitly mention when to prefer this over scf_batch_update_controls or otherwise exclude alternatives, 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.

scf_update_systemA

Update an existing system record (write β€” editor+ role). All fields are optional; only provided fields are applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew system name
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoNew lifecycle status
vendorNoNew legacy free-text vendor name (prefer vendor_id)
categoryNoNew free-text category
system_idYesSystem UUID to update β€” obtain from scf_list_systems
vendor_idNoNew structural vendor link (UUID, same org) β€” obtain from scf_list_vendors
descriptionNoNew system description
system_typeNoNew system classification β€” one of: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, endpoint_management, vulnerability_management, email_security, security_awareness, password_manager, communication, hr_system, custom
catalog_template_idNoNew system-catalog template ID link β€” obtain from scf_list_system_catalog

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already set readOnlyHint=false and destructiveHint=false, but the description adds valuable behavioral context: it explicitly labels the operation as a write, mentions the editor+ role requirement, and spells out partial update semantics ('All fields are optional; only provided fields are applied'). This goes beyond the annotations and informs the agent about idempotent, non-destructive 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?

A single, front-loaded sentence with no filler. It delivers the core action, role constraint, and key partial-update behavior in minimal space, earning every word.

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 description is adequate for a targeted update tool, but it lacks a few context items. With no output schema, it does not state what the tool returns (e.g., the updated system object), nor does it mention validation behavior (e.g., whether vendor_id must belong to the same org). Expected response and error semantics are left unspecified, though the schema provides ample parameter context.

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

Parameters4/5

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

Input schema has 100% coverage, so the baseline is 3. The description adds meaningful semantics beyond the schema: 'only provided fields are applied' clarifies that omitted fields are not reset or overwritten, which is not inferable from the schema alone. This is a genuine addition to parameter understanding.

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

Purpose5/5

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

The description states a specific verb ('Update') and resource ('an existing system record'), clearly distinguishing it from scf_create_system, scf_get_system, and scf_list_systems. It also notes the write/editor+ role, which further pins down the action.

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 'existing system record' implies the tool is for updating current systems, not creating new ones, but no explicit alternatives or when-not-to-use guidance is given. The sibling scf_create_system is not mentioned as the alternative for new records, leaving the routing partly to inference.

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

scf_update_system_capabilityA

Update a system's evidence capability (write β€” editor role). Only passed fields change; move status potential β†’ configured β†’ active as the collector is wired up.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoFree-text notes about the capability
org_idYesOrganization UUID β€” obtain from scf_list_organizations
system_idYesSystem UUID β€” obtain from scf_list_systems
data_formatNoFormat of the collected data, e.g. 'csv', 'json', 'pdf'
capability_idYesCapability UUID β€” obtain from scf_list_system_capabilities
confidence_levelNoConfidence in evidence quality
capability_statusNoCapability status
collection_methodNoHow the evidence is collected

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations, it discloses the editor-role requirement, partial-update behavior, and the expected status progression. These are meaningful behavioral details not expressed in the schema or annotations.

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

Conciseness5/5

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

Two compact sentences with no filler. The role requirement, partial-update rule, and status workflow are all communicated efficiently and 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?

For an update tool with eight parameters and no output schema, the description plus fully described schema covers identifiers, optional fields, enums, role, and transition semantics. Return/error behavior is not covered, but that is not essential 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%, with each parameter already documented, including enum values and UUID provenance. The description adds context around capability_status transitions but does not need to redefine 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 specifies the operation ('Update'), the resource ('a system's evidence capability'), and the nature of the operation ('write β€” editor role'). This distinguishes it from sibling tools like scf_create_system_capability and scf_list_system_capabilities.

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 usage context: modify an existing capability, only passed fields change, and status progresses through potential β†’ configured β†’ active. It does not explicitly state when to prefer create or list siblings, so it lacks formal exclusions.

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

scf_update_teamA

Update a team's name, description, function alignment or active flag (write β€” admin role). Set is_active=false to archive; the row is never deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew team name
org_idYesOrganization UUID β€” obtain from scf_list_organizations
team_idYesTeam UUID β€” obtain from scf_list_teams
is_activeNofalse archives the team
descriptionNoNew description
function_idNoNew primary business function β€” obtain from scf_list_functions
function_idsNoReplacement set of additional functions the team serves

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=false, so the description correctly aligns with those. The description adds valuable behavioral context beyond the annotations: it explicitly states the admin role requirement, and clarifies that setting is_active=false archives the team and that the row is never deleted. This is exactly the kind of behavioral disclosure that helps an agent understand side effects.

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

Conciseness5/5

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

The description is a single, compact sentence that front-loads the core purpose, then adds the critical behavioral note about archiving. Every word earns its place; there is no fluff or repetition of schema details.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers the essential context: what can be updated, the admin requirement, and the archive behavior. It does not describe the return value or error conditions, but given the annotations already signal the write nature and the schema covers all parameters, the description is largely complete. A brief note on what the response contains would push this to 5.

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 7 parameters. The description adds a small amount of semantic value by grouping the parameters into categories (name, description, function alignment, active flag) and by explaining the archive semantics of is_active. However, it does not add meaning beyond what the schema provides for most parameters, 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 states a specific verb ('Update'), a specific resource ('a team'), and enumerates the exact fields that can be changed (name, description, function alignment, active flag). It also distinguishes itself from related team tools by noting the write/admin nature, which separates it from read-only tools like scf_get_team and scf_list_teams.

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 a write operation requiring an admin role, which tells the agent when it is appropriate to use. It does not explicitly name alternatives or state when NOT to use it, but the context of sibling tools (scf_create_team, scf_add_team_member, scf_remove_team_member) makes the usage context reasonably clear. The archive behavior via is_active=false is also a useful usage signal.

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

scf_update_vendorA

Update an existing vendor record (write β€” editor+ role). Only provided fields are applied.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew vendor name
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoNew lifecycle status β€” one of: prospect, active, under_review, approved, suspended, offboarded
websiteNoNew website URL
categoryNoNew category label
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
criticalityNoNew criticality tier
descriptionNoNew free-text description
contact_emailNoNew primary contact email

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already signal a non-read-only, non-destructive operation. The description adds practical behavioral value by stating the editor+ role requirement and the partial-update semantics ('Only provided fields are applied'), which informs an agent that omitted fields are left unchanged.

Agents need to know what a tool does to the world before 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 core action, then adds role and partial-update behavior. There is no filler or redundant restatement 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 9-parameter update tool with no output schema, the description plus fully documented schema covers the critical decisions: what is updated, the required role, and that this is a partial update. It does not describe return values or error handling, but those are less essential given the schema's completeness.

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

Parameters3/5

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

Schema description coverage is 100%, and every parameter has its own description in the schema. The tool description adds no parameter-level meaning 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 states a specific verb and resource: 'Update an existing vendor record'. It also clarifies the write nature and required role, which distinguishes it from read-only vendor tools like scf_get_vendor and scf_list_vendors. The sibling scf_create_vendor is implicitly set apart by 'existing'.

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 updates an existing vendor record, not creates one, and it applies only provided fields. It does not explicitly name alternatives like scf_create_vendor or scf_get_vendor, but the 'existing' wording and role hint supply enough directional guidance.

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

scf_update_vendor_action_itemA

Update a vendor action item (write β€” editor role). Only passed fields change; set status=completed with completed_date to close it.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoAction item title
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoStatus
item_idYesAction item UUID β€” obtain from scf_list_vendor_action_items
categoryNoFree-text category, e.g. 'contractual', 'technical'
due_dateNoYYYY-MM-DD
priorityNoPriority
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
owner_nameNoOwner name
descriptionNoAction item detail
owner_user_idNoOwner β€” obtain from scf_list_members
completed_dateNoYYYY-MM-DD

TDQS

A4.7/5.0
Behavior5/5

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

The description adds meaningful behavior beyond the annotations: it discloses the editor-role requirement, the partial-update/PATCH semantics ('Only passed fields change'), and the completion recipe. It aligns with readOnlyHint=false (write operation) and does not contradict destructiveHint=false.

Agents need to know what a tool does to the world before 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 with no filler. The core action and write nature are front-loaded, followed immediately by the most important behavioral rules. Every clause 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 straightforward update tool with 12 well-documented parameters, 3 required IDs, and no nested objects, the description provides the role, update semantics, and the specific completion workflow. An agent has enough information to call the tool correctly without needing return-value details.

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 carries the parameter-level detail. The description still adds value by clarifying that fields are optional updates and by linking status=completed to completed_date, which is a semantic relationship not obvious from 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 uses a specific verb ('Update') and resource ('vendor action item'), and explicitly identifies the operation as a write. This clearly differentiates it from sibling tools like scf_create_vendor_action_item and scf_delete_vendor_action_item without requiring the agent to infer intent from the name alone.

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 operational guidance: only passed fields change, and closing an item requires setting status=completed together with completed_date. It does not explicitly name alternatives like create or delete tools, but the update semantics are self-evident enough for an agent to choose this over its siblings.

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

scf_update_vendor_certificationA

Update a vendor certification (write β€” editor role). Only passed fields change; use it to mark a certificate expired or revoked, or to record the renewed expiry date.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNoCertification scope statement
org_idYesOrganization UUID β€” obtain from scf_list_organizations
statusNoStatus
cert_idYesCertification UUID β€” obtain from scf_list_vendor_certifications
vendor_idYesVendor UUID β€” obtain from scf_list_vendors
issue_dateNoYYYY-MM-DD
expiry_dateNoYYYY-MM-DD
verification_urlNoPublic verification URL
certificate_numberNoCertificate number
certification_bodyNoIssuing body
certification_nameNoCertification name, e.g. 'ISO 27001:2022'

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate it's a write operation (readOnlyHint false) and not destructive (destructiveHint false). The description adds important behavioral context: partial update semantics ('Only passed fields change') and the editor role requirement. It also hints at side-effect-free updates by focusing on field changes. This goes beyond the annotations and is valuable for the agent.

Agents need to know what a tool does to the world before 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, well-structured sentence that front-loads the primary action and role, then provides behavioral details and concrete examples. Every clause earns its place, and it's immediately scannable. 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 tool with 11 parameters and 3 required, the description is fairly complete given the schema's high coverage. It explains partial update, gives use cases, and the schema handles parameter sources and constraints. It doesn't mention return values (no output schema) or prerequisites beyond the editor role, but these are not critical gaps. It could mention that the certification must already exist, but that's implied by 'update'. Overall, it's 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 description coverage is 100%, so the schema already documents all parameters with at least basic descriptions (e.g., org_id says 'obtain from scf_list_organizations'). The description doesn't add detailed parameter meanings beyond the partial update behavior, which is a general semantic rather than per-parameter. Baseline for high coverage is 3, and the description only marginally adds value 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 action (update), the resource (vendor certification), and the role (editor). It distinguishes from create/delete by emphasizing partial updates and providing concrete use cases like marking expired/revoked or renewing expiry date. This makes the tool's purpose unambiguous.

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

Usage Guidelines4/5

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

The description implicitly guides usage by stating 'Only passed fields change' and giving examples of when to use it (mark expired/revoked, record renewed expiry). It doesn't explicitly name alternatives like scf_create_vendor_certification, but the 'update' verb and context make the distinction clear. It could be more explicit about when not to use it (e.g., for creation), but overall it provides adequate guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 10 tool updatesv3.6.0
    • Addedscf_attest_journey_stage
    • Addedscf_get_framework_scope_summary
    • Addedscf_get_journey
    • Addedscf_import_journey
    • Changedscf_list_evidence4 fields changed
      • addedInput schema / properties / accountable_owner_type
        Added value: +{
        +  "description": "Filter by the accountable team's primary owner: 'internal' or 'external_contractor'",
        +  "enum": [
        +    "internal",
        +    "external_contractor"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / function_id
        Added value: +{
        +  "description": "Filter to evidence assigned to any team aligned to this function β€” obtain from scf_list_functions",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / my_teams
        Added value: +{
        +  "default": false,
        +  "description": "Filter to evidence assigned to any team the caller belongs to; intersects with team_id rather than overriding it. 'The caller' is the API key's identity; on a self-hosted instance that is a service account on no team, so this returns nothing β€” use team_id instead.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / team_id
        Added value: +{
        +  "description": "Filter to evidence this team is assigned to, accountable or consulted β€” obtain from scf_list_teams",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Addedscf_list_journey_templates
    • Changedscf_list_scoped_controls4 fields changed
      • addedInput schema / properties / accountable_owner_type
        Added value: +{
        +  "description": "Filter by the accountable team's primary owner: 'internal' or 'external_contractor'",
        +  "enum": [
        +    "internal",
        +    "external_contractor"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / function_id
        Added value: +{
        +  "description": "Filter to controls assigned to any team aligned to this function β€” obtain from scf_list_functions",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / my_teams
        Added value: +{
        +  "default": false,
        +  "description": "Filter to controls assigned to any team the caller belongs to; intersects with team_id rather than overriding it. 'The caller' is the API key's identity; on a self-hosted instance that is a service account on no team, so this returns nothing β€” use team_id instead.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / team_id
        Added value: +{
        +  "description": "Filter to controls this team is assigned to, accountable or consulted β€” obtain from scf_list_teams",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
    • Changedscf_list_teams1 field changed
      • addedInput schema / properties / mine
        Added value: +{
        +  "default": false,
        +  "description": "Only teams the caller is a member of (default false); each team then also carries membership_role. 'The caller' is the API key's identity; on a self-hosted instance that is a service account on no team, so this returns nothing β€” use team_id instead.",
        +  "type": "boolean"
        +}
    • Addedscf_preview_framework_scope_change
    • Addedscf_set_scope_override
  2. 9 tool updatesv3.5.0
    • Changedscf_create_system2 fields changed
      • changedInput schema / properties / system_type / description
        Previous value: -"System classification: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, or custom"New value: +"System classification β€” one of: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, endpoint_management, vulnerability_management, email_security, security_awareness, password_manager, communication, hr_system, custom"
      • changedInput schema / properties / system_type / enum
        Previous value: -[
        -  "cloud_provider",
        -  "identity_provider",
        -  "ticketing",
        -  "logging",
        -  "security_tool",
        -  "code_repository",
        -  "document_management",
        -  "custom"
        -]New value: +[
        +  "cloud_provider",
        +  "identity_provider",
        +  "ticketing",
        +  "logging",
        +  "security_tool",
        +  "code_repository",
        +  "document_management",
        +  "endpoint_management",
        +  "vulnerability_management",
        +  "email_security",
        +  "security_awareness",
        +  "password_manager",
        +  "communication",
        +  "hr_system",
        +  "custom"
        +]
    • Changedscf_create_vendor2 fields changed
      • changedInput schema / properties / status / description
        Previous value: -"Lifecycle status (default 'prospect')"New value: +"Lifecycle status (default prospect) β€” one of: prospect, active, under_review, approved, suspended, offboarded"
      • changedInput schema / properties / status / enum
        Previous value: -[
        -  "prospect",
        -  "active",
        -  "inactive",
        -  "under_review"
        -]New value: +[
        +  "prospect",
        +  "active",
        +  "under_review",
        +  "approved",
        +  "suspended",
        +  "offboarded"
        +]
    • Changedscf_get_assessment_review_queue1 field changed
      • addedInput schema / properties / tier
        Added value: +{
        +  "default": "file",
        +  "description": "file (default): entries carry file_id, act with scf_review_evidence_assessment. window: entries carry window_assessment_id, act with scf_review_window_assessment_verdict",
        +  "enum": [
        +    "file",
        +    "window"
        +  ],
        +  "type": "string"
        +}
    • Addedscf_get_window_assessment_versions
    • Changedscf_list_vendors2 fields changed
      • changedInput schema / properties / status / description
        Previous value: -"Lifecycle status filter"New value: +"Lifecycle status filter β€” one of: prospect, active, under_review, approved, suspended, offboarded"
      • changedInput schema / properties / status / enum
        Previous value: -[
        -  "prospect",
        -  "active",
        -  "inactive",
        -  "under_review"
        -]New value: +[
        +  "prospect",
        +  "active",
        +  "under_review",
        +  "approved",
        +  "suspended",
        +  "offboarded"
        +]
    • Changedscf_review_evidence_assessment2 fields changed
      • changedInput schema / properties / ao_overrides / description
        Previous value: -"Objectives to re-designate β€” required (β‰₯1) when overriding, forbidden when confirming; unlisted objectives keep the AI's designation"New value: +"Objectives to re-designate β€” required (β‰₯1) when overriding, forbidden when confirming; unlisted objectives keep the AI's designation. 422 if the version has no per-objective answers: confirm instead"
      • addedInput schema / properties / ao_overrides / items / properties / ao_id / minLength
        Added value: +1
    • Addedscf_review_window_assessment_verdict
    • Changedscf_update_system2 fields changed
      • changedInput schema / properties / system_type / description
        Previous value: -"New system classification"New value: +"New system classification β€” one of: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, endpoint_management, vulnerability_management, email_security, security_awareness, password_manager, communication, hr_system, custom"
      • changedInput schema / properties / system_type / enum
        Previous value: -[
        -  "cloud_provider",
        -  "identity_provider",
        -  "ticketing",
        -  "logging",
        -  "security_tool",
        -  "code_repository",
        -  "document_management",
        -  "custom"
        -]New value: +[
        +  "cloud_provider",
        +  "identity_provider",
        +  "ticketing",
        +  "logging",
        +  "security_tool",
        +  "code_repository",
        +  "document_management",
        +  "endpoint_management",
        +  "vulnerability_management",
        +  "email_security",
        +  "security_awareness",
        +  "password_manager",
        +  "communication",
        +  "hr_system",
        +  "custom"
        +]
    • Changedscf_update_vendor2 fields changed
      • changedInput schema / properties / status / description
        Previous value: -"New lifecycle status"New value: +"New lifecycle status β€” one of: prospect, active, under_review, approved, suspended, offboarded"
      • changedInput schema / properties / status / enum
        Previous value: -[
        -  "prospect",
        -  "active",
        -  "inactive",
        -  "under_review"
        -]New value: +[
        +  "prospect",
        +  "active",
        +  "under_review",
        +  "approved",
        +  "suspended",
        +  "offboarded"
        +]
  3. 65 tool updatesv3.4.2
    • Addedscf_add_team_member
    • Addedscf_batch_create_team_assignments
    • Addedscf_batch_update_evidence
    • Addedscf_bulk_unscope_framework
    • Addedscf_complete_evidence_task
    • Addedscf_create_assignment
    • Addedscf_create_comment
    • Addedscf_create_compensating_control
    • Addedscf_create_evidence_task
    • Changedscf_create_risk2 fields changed
      • changedInput schema / properties / treatment_status / description
        Previous value: -"Treatment status: 'mitigate', 'accept', 'transfer', or 'avoid'"New value: +"Treatment workflow status (default identified)"
      • addedInput schema / properties / treatment_status / enum
        Added value: +[
        +  "identified",
        +  "analysed",
        +  "treating",
        +  "treated",
        +  "accepted",
        +  "monitoring"
        +]
    • Addedscf_create_system_capability
    • Addedscf_create_team
    • Addedscf_create_team_assignment
    • Addedscf_create_vendor_action_item
    • Addedscf_create_vendor_certification
    • Addedscf_delete_assignment
    • Addedscf_delete_comment
    • Addedscf_delete_compensating_control
    • Addedscf_delete_evidence_file
    • Addedscf_delete_risk_assessment
    • Addedscf_delete_team_assignment
    • Addedscf_delete_vendor_action_item
    • Addedscf_delete_vendor_certification
    • Addedscf_get_assessment_review_queue
    • Changedscf_get_audit_log13 fields changed
      • addedInput schema / properties / action
        Added value: +{
        +  "description": "Filter by action: create, update or delete",
        +  "enum": [
        +    "create",
        +    "update",
        +    "delete"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / action_source
        Added value: +{
        +  "description": "Filter by origin of the change: ui, api_key, mcp or system",
        +  "enum": [
        +    "ui",
        +    "api_key",
        +    "mcp",
        +    "system"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / actor_id
        Added value: +{
        +  "description": "Filter by actor user UUID β€” platform alias of changed_by_user_id",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / changed_by_user_id
        Added value: +{
        +  "description": "Filter by the user who made the change β€” obtain from scf_list_members",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / date_from
        Added value: +{
        +  "description": "Include changes at or after this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ)",
        +  "type": "string"
        +}
      • addedInput schema / properties / date_to
        Added value: +{
        +  "description": "Include changes at or before this ISO-8601 timestamp (YYYY-MM-DDTHH:MM:SSZ)",
        +  "type": "string"
        +}
      • addedInput schema / properties / entity_id
        Added value: +{
        +  "description": "Filter by the changed entity's UUID",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / entity_type
        Added value: +{
        +  "description": "Filter by exact entity type as written in the log, e.g. scoped_control, evidence_file, audit_engagement, vendor β€” unsure of the spelling? use search_text",
        +  "type": "string"
        +}
      • changedInput schema / properties / limit / description
        Previous value: -"Page size (1–100, default 50)"New value: +"Page size (1–200, default 50)"
      • changedInput schema / properties / limit / maximum
        Previous value: -100New value: +200
      • addedInput schema / properties / request_id
        Added value: +{
        +  "description": "Filter by request correlation ID β€” groups every change one API call made",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / scf_id
        Added value: +{
        +  "description": "Filter by SCF control ID in DOMAIN-NN format",
        +  "type": "string"
        +}
      • addedInput schema / properties / search_text
        Added value: +{
        +  "description": "Case-insensitive search across entity_type, field_name, old_value and new_value",
        +  "type": "string"
        +}
    • Addedscf_get_catalog_evidence
    • Addedscf_get_change_cursor
    • Addedscf_get_controls_for_risk
    • Addedscf_get_domain
    • Addedscf_get_evidence
    • Addedscf_get_frequency_health
    • Addedscf_get_org_work_queue
    • Addedscf_get_risk_profile
    • Addedscf_get_risks_for_control
    • Addedscf_get_system
    • Addedscf_get_systems_for_evidence
    • Addedscf_get_team
    • Addedscf_get_upcoming_evidence
    • Addedscf_list_assignments
    • Addedscf_list_comments
    • Addedscf_list_compensating_controls
    • Changedscf_list_engagement_queries1 field changed
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "open",
        +  "answered",
        +  "closed"
        +]
    • Changedscf_list_engagements2 fields changed
      • changedInput schema / properties / status / description
        Previous value: -"Filter by engagement status (e.g. 'planning', 'fieldwork', 'closed')"New value: +"Filter by engagement status: draft, active, under_review or closed"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "draft",
        +  "active",
        +  "under_review",
        +  "closed"
        +]
    • Changedscf_list_evidence_tasks8 fields changed
      • addedInput schema / properties / assigned_to_me
        Added value: +{
        +  "description": "Only tasks assigned to the caller",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / assignee / description
        Previous value: -"Filter by assigned user ID"New value: +"Filter by assigned user UUID"
      • addedInput schema / properties / assignee / format
        Added value: +"uuid"
      • addedInput schema / properties / assignee / pattern
        Added value: +"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
      • addedInput schema / properties / evidence_tracking_id
        Added value: +{
        +  "description": "Only tasks for one evidence tracking record",
        +  "format": "uuid",
        +  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
        +  "type": "string"
        +}
      • addedInput schema / properties / overdue_only
        Added value: +{
        +  "description": "Only tasks past their due date",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / status / description
        Previous value: -"Filter by task status (e.g., 'open', 'in_progress', 'done')"New value: +"Filter by task status: not_started, in_progress or completed"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "not_started",
        +  "in_progress",
        +  "completed"
        +]
    • Addedscf_list_functions
    • Addedscf_list_system_capabilities
    • Addedscf_list_team_assignments
    • Addedscf_list_teams
    • Addedscf_list_vendor_action_items
    • Addedscf_list_vendor_certifications
    • Addedscf_mark_notifications_read
    • Addedscf_refresh_stale_window_assessments
    • Addedscf_remove_team_member
    • Addedscf_review_evidence_assessment
    • Addedscf_review_evidence_file
    • Addedscf_review_window_assessment
    • Addedscf_update_comment
    • Addedscf_update_compensating_control
    • Changedscf_update_engagement2 fields changed
      • changedInput schema / properties / status / description
        Previous value: -"New engagement status (e.g. 'fieldwork', 'closed')"New value: +"New engagement status: draft, active, under_review or closed"
      • addedInput schema / properties / status / enum
        Added value: +[
        +  "draft",
        +  "active",
        +  "under_review",
        +  "closed"
        +]
    • Addedscf_update_evidence_task
    • Addedscf_update_risk_assessment
    • Addedscf_update_system_capability
    • Addedscf_update_team
    • Addedscf_update_vendor_action_item
    • Addedscf_update_vendor_certification
  4. 7 tool updatesv3.0.0
    • Removedscf_accept_cdm_proposal
    • Removedscf_dismiss_cdm_proposal
    • Removedscf_get_cdm_document_map
    • Removedscf_list_cdm_documents
    • Removedscf_list_cdm_mappings
    • Removedscf_list_cdm_proposals
    • Removedscf_query_cdm_corpus
  5. 51 tool updatesv2.1.0
    • Addedscf_accept_cdm_proposal
    • Addedscf_add_engagement_auditor
    • Addedscf_apply_catalog_reconciliation
    • Addedscf_cancel_catalog_reconciliation
    • Addedscf_create_engagement
    • Addedscf_create_engagement_query
    • Addedscf_delete_engagement
    • Addedscf_dismiss_cdm_proposal
    • Addedscf_export_document
    • Addedscf_generate_documents
    • Addedscf_get_catalog_changelog
    • Addedscf_get_catalog_reconciliation_status
    • Addedscf_get_cdm_document_map
    • Addedscf_get_document
    • Addedscf_get_document_generation_status
    • Addedscf_get_document_history
    • Addedscf_get_document_section_generated
    • Addedscf_get_document_settings
    • Addedscf_get_engagement
    • Addedscf_get_engagement_presentation
    • Addedscf_get_engagement_query
    • Addedscf_get_engagement_scope
    • Addedscf_get_reconciliation_run
    • Changedscf_list_assessment_objectives1 field changed
      • addedInput schema / properties / include_deprecated
        Added value: +{
        +  "description": "Include catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.",
        +  "type": "boolean"
        +}
    • Addedscf_list_cdm_documents
    • Addedscf_list_cdm_mappings
    • Addedscf_list_cdm_proposals
    • Changedscf_list_controls1 field changed
      • addedInput schema / properties / include_deprecated
        Added value: +{
        +  "description": "Include catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.",
        +  "type": "boolean"
        +}
    • Addedscf_list_document_domains
    • Addedscf_list_document_generators
    • Addedscf_list_documents
    • Changedscf_list_domains1 field changed
      • addedInput schema / properties / include_deprecated
        Added value: +{
        +  "description": "Include catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.",
        +  "type": "boolean"
        +}
    • Addedscf_list_engagement_auditors
    • Addedscf_list_engagement_queries
    • Addedscf_list_engagements
    • Changedscf_list_evidence_catalog1 field changed
      • addedInput schema / properties / include_deprecated
        Added value: +{
        +  "description": "Include catalog rows deprecated by a later SCF version. Default false β€” the catalog answers with active rows only, and deprecated rows carry a lifecycle badge when included.",
        +  "type": "boolean"
        +}
    • Addedscf_list_my_engagements
    • Addedscf_list_reconciliation_runs
    • Addedscf_preview_catalog_reconciliation
    • Addedscf_preview_document
    • Addedscf_query_cdm_corpus
    • Addedscf_remove_engagement_auditor
    • Addedscf_resolve_document_section
    • Addedscf_respond_to_engagement_query
    • Addedscf_rollback_catalog_reconciliation
    • Addedscf_set_reconciliation_actions
    • Addedscf_transition_document
    • Addedscf_update_document_section
    • Addedscf_update_document_settings
    • Addedscf_update_engagement
    • Addedscf_update_engagement_query_status
  6. 88 tool updatesv1.7.0
    • First observedscf_add_custom_risk_control
    • First observedscf_batch_update_controls
    • First observedscf_bulk_assess_evidence
    • First observedscf_bulk_assess_windows
    • First observedscf_create_custom_risk
    • First observedscf_create_evidence
    • First observedscf_create_risk
    • First observedscf_create_system
    • First observedscf_create_vendor
    • First observedscf_create_webhook
    • First observedscf_delete_custom_risk
    • First observedscf_delete_webhook
    • First observedscf_generate_system_recipes
    • First observedscf_get_audit_log
    • First observedscf_get_capability_theme
    • First observedscf_get_capability_theme_evidence_posture
    • First observedscf_get_capability_theme_scorecard
    • First observedscf_get_control
    • First observedscf_get_control_assessment_composite
    • First observedscf_get_current_user
    • First observedscf_get_evidence_assessment
    • First observedscf_get_evidence_assessment_summary
    • First observedscf_get_evidence_file
    • First observedscf_get_evidence_health
    • First observedscf_get_evidence_item_maturity
    • First observedscf_get_evidence_maturity
    • First observedscf_get_evidence_suggestions
    • First observedscf_get_evidence_upgrade_recommendations
    • First observedscf_get_evidence_validation
    • First observedscf_get_evidence_validation_summary
    • First observedscf_get_latest_vendor_assessment
    • First observedscf_get_notifications
    • First observedscf_get_organization
    • First observedscf_get_recipe_generation_status
    • First observedscf_get_risk
    • First observedscf_get_risk_matrix
    • First observedscf_get_risk_summary
    • First observedscf_get_scoped_control
    • First observedscf_get_scoping_stats
    • First observedscf_get_system_catalog_template
    • First observedscf_get_system_recipes
    • First observedscf_get_vendor
    • First observedscf_get_vendor_assessment
    • First observedscf_get_vendor_assessment_status
    • First observedscf_get_vendor_research
    • First observedscf_get_webhook
    • First observedscf_get_window_assessment
    • First observedscf_get_window_assessment_summary
    • First observedscf_get_work_queue
    • First observedscf_list_assessment_objectives
    • First observedscf_list_capabilities
    • First observedscf_list_capability_theme_controls
    • First observedscf_list_capability_themes
    • First observedscf_list_control_assessment_composites
    • First observedscf_list_controls
    • First observedscf_list_custom_risk_controls
    • First observedscf_list_custom_risks
    • First observedscf_list_domains
    • First observedscf_list_evidence
    • First observedscf_list_evidence_catalog
    • First observedscf_list_evidence_files
    • First observedscf_list_evidence_gaps
    • First observedscf_list_evidence_tasks
    • First observedscf_list_frameworks
    • First observedscf_list_members
    • First observedscf_list_organizations
    • First observedscf_list_risks
    • First observedscf_list_scoped_controls
    • First observedscf_list_system_catalog
    • First observedscf_list_systems
    • First observedscf_list_vendor_assessments
    • First observedscf_list_vendors
    • First observedscf_list_webhook_deliveries
    • First observedscf_list_webhooks
    • First observedscf_list_window_assessments
    • First observedscf_remove_custom_risk_control
    • First observedscf_revalidate_evidence_file
    • First observedscf_rotate_webhook_secret
    • First observedscf_scope_framework
    • First observedscf_trigger_evidence_assessment
    • First observedscf_trigger_vendor_assessment
    • First observedscf_trigger_vendor_research
    • First observedscf_trigger_window_assessment
    • First observedscf_update_custom_risk
    • First observedscf_update_evidence
    • First observedscf_update_scoped_control
    • First observedscf_update_system
    • First observedscf_update_vendor

TDQS

A3.6/5.0

Scored across 196 tools

Disambiguation3/5

Most tools are cleanly separated by a consistent verb+resource pattern and unusually detailed descriptions, so list/get/summary variants are usually distinguishable. However, the 196-tool surface reuses the same vocabulary across different concepts (capability vs capability_theme vs system_capability) and has near-neighbor pairs like review_window_assessment vs review_window_assessment_verdict that can mislead before the description is read.

Naming Consistency4/5

Names are almost uniformly scf_ + snake_case verb_noun, and resource nouns remain stable across list/get/create/update/delete operations. Minor deviationsβ€”batch vs bulk, get_systems_for_evidence, and long chains like review_window_assessment_verdictβ€”add noise but do not break the overall pattern.

Tool Count1/5

196 tools is far beyond a coherent single-server surface, even for a broad GRC platform. It would be much more navigable split into per-domain servers (evidence, risk, vendor, engagement, documents, admin). The sheer namespace forces agents to scan a huge list for any task.

Completeness4/5

Across controls, evidence, risks, vendors, teams, engagements, documents, and webhooks, the set provides comprehensive lifecycle coverage with create/read/update/delete or deliberate status-transition alternatives. Minor gaps existβ€”no update_webhook, no delete for systems/vendors/evidence tracking recordsβ€”but they are workable and often appear to be retention-by-design.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    A
    maintenance
    Enables AI agents to interact with the ComplianceCow platform to retrieve compliance insights, dashboard data, and auditable evidence through a Compliance Graph. It also supports automated remediation actions such as fixing policies and creating tickets in external tools.
    100
    13
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to query software supply chain compliance data, including asset status, security vulnerabilities, and evidence lineage. It allows for natural language analysis of compliance posture, policy violations, and deployment blockers across an organization.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive access to NIST cybersecurity frameworks and controls, enabling AI assistants and applications to query, analyze, and manage NIST security controls through a standardized interface.
    10
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables searching and bidirectional mapping of 1,451 security controls across 262 SCF-mapped frameworks, including ISO 27001, NIST CSF, DORA, and many others, through natural language queries.
    14
    1,009 PyPI
    9
    Apache 2.0