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

Контроли безопасности, фреймворки и управление рисками для AI-агентов.

Предоставьте вашему AI-ассистенту доступ к 1,451 контролю безопасности SCF, 354+ сопоставлениям фреймворков (NIST 800-53, ISO 27001, SOC 2, FedRAMP, GDPR), отслеживанию доказательств, реестрам рисков и управлению рисками поставщиков — всё через Model Context Protocol.

Создано для SCF Controls Platform. Поддерживается ComplianceGenie.io.

🆕 Платформа теперь является открытым программным обеспечением с самостоятельным хостингом. SCF Controls Platform — GRC-инструментарий на основе SCF для бесплатного контента Secure Controls Framework — опубликован под лицензией AGPL-3.0 в scf-controls-platform-oss. Компании скачивают и размещают его самостоятельно через Docker Compose.

Возникли проблемы? → docs/troubleshooting.md · Настройка API-ключа → docs/authentication.md · Как это работает → docs/architecture.md


Обзор

mcp-server-scf подключает AI-ассистентов к SCF Controls Platform через MCP, обеспечивая взаимодействие на естественном языке с вашей программой комплаенса. Ваш AI может просматривать полный каталог контролей SCF, отслеживать прогресс внедрения, управлять сбором доказательств, оценивать риски и контролировать сторонних поставщиков — не покидая ваш редактор или чат.

135 инструментов в 12 доменах — переходите по ссылкам для полных таблиц параметров и примеров запросов:

Домен

Инструменты

Описание

Каталог

6

Просмотр 1,451 контроля, 354+ фреймворков, 5,736 оценочных целей

Область применения контролей

6

Отслеживание статуса внедрения в рамках рабочего процесса из 8 состояний

Доказательства

26

Управление сбором доказательств, валидацией, оценкой зрелости, оконными AI-оценками и сводками по композитным контролям

Управление рисками

12

Матрица рисков 5x5, реестр рисков, пользовательские риски и сопоставление контролей

Риски поставщиков (TPRM)

11

Реестр поставщиков, AI-исследование безопасности, асинхронные AI-оценки (заменяет DPSIA)

Организация

7

Пользователи, организации, журнал аудита, очередь работ, уведомления

Возможности

14

Темы KSI, скоринговые карты, позиция по доказательствам, инвентаризация систем, каталог систем + AI-рецепты

Вебхуки

6

Эндпоинты вебхуков, журналы доставки, ротация секретов

Документы

15

Генерация документов ISMS, редактирование разделов, разрешение конфликтов слияния, переходы жизненного цикла, экспорт

Аудиторские задания

16

Рабочие пространства заданий, замороженный объем, представление на основе фреймворка, доступ аудитора, структурированные запросы

Сверка каталога

9

Предпросмотр, решение, применение и откат обновления версии каталога SCF для вашей организации

CDM

7

Compliance Document Mapping — карта покрытия корпуса, очередь рецензирования предложений, поиск по фрагментам


Related MCP server: Fianu Compliance Intelligence MCP Server

Попробуйте с MCP Inspector

Проверьте возможности, не добавляя сервер в клиент — MCP Inspector запускает локальный интерфейс, который позволяет изучить каждый инструмент, его схему и описание:

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

Inspector открывается на http://localhost:6274 и подключается к mcp-server-scf через stdio. Вы увидите все 135 инструментов, сгруппированных по доменам, с их Zod-схемами, отображаемыми в виде живой формы.

Для выполнения реальных вызовов инструментов нужны URL вашего экземпляра и API-ключ — экспортируйте SCF_API_URL и SCF_API_KEY в той же оболочке перед запуском Inspector, либо задайте их на вкладке «Переменные окружения» в интерфейсе Inspector. Без них вы по-прежнему можете просматривать схемы и описания; вызовы инструментов будут возвращать ошибку конфигурации.


Быстрый старт

1. Разверните платформу самостоятельно и получите API-ключ

SCF Controls Platform — это открытое программное обеспечение, которое вы размещаете самостоятельно — регистрация не требуется. Разверните его из scf-controls-platform-oss (стек Docker Compose со встроенными PostgreSQL, Redis и MinIO), затем:

  1. Задайте API_KEY в файле .env платформы (сгенерируйте его с помощью openssl rand -hex 32) или создайте ключ в Настройки → API-ключи после запуска приложения.

  2. Запишите URL API вашего экземпляра — по умолчанию http://localhost:8000 или адрес вашего развернутого хоста.

Используйте этот ключ как SCF_API_KEY, а URL экземпляра — как SCF_API_URL (см. Конфигурация).

2. Установка — в один клик

Выберите подходящий способ для вашего клиента.

Claude Desktop — путь в один клик — это подписанное расширение .mcpb для Desktop ниже. Claude Desktop не регистрирует собственную схему URL, поэтому кликабельной deep-link нет; вместо этого перетащите .mcpb в Настройки → Расширения и один раз вставьте ваш API-ключ. См. anthropics/claude-code#26952 — issue для отслеживания в вышестоящем проекте.

Cursor — нажмите на бейдж ниже. Cursor регистрирует схему cursor://, поэтому deep-link открывает IDE с предзаполненной конфигурацией сервера:

Install in Cursor

После установки измените предзаполненный SCF_API_URL, чтобы он указывал на ваш экземпляр — размещенного по умолчанию нет.

Smithery — управляемое размещение:

Try on Smithery

Предпочитаете редактировать конфигурацию вручную или используете клиент без deep-link (Windsurf, Docker)? См. 3. Ручная настройка ниже.

Расширение Claude Desktop (.mcpb)

Для Claude Desktop ≥ 0.11.0 самый простой способ установки — подписанный пакет .mcpb — без редактирования JSON, без npx и без Node на хосте:

  1. Скачайте mcp-server-scf-<version>.mcpb из последнего релиза GitHub.

  2. Дважды щелкните файл (или перетащите его в Claude Desktop → Настройки → Расширения).

  3. Когда появится запрос, вставьте ваш API-ключ scf_…. Он хранится в связке ключей ОС, а не в файле конфигурации.

  4. Claude Desktop перезапустит сервер, и все 135 инструментов станут доступны.

Чтобы удалить или обновить API-ключ позже: Настройки → Расширения → SCF Controls Platform → Настроить.

3. Ручная настройка

Claude Desktop — отредактируйте ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) или %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 — та же структура JSON, что и для Claude Desktop, в .cursor/mcp.json (или эквивалентном пути Windsurf).

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

Конфигурация

Переменная

Обязательная

По умолчанию

Описание

SCF_API_KEY

Да

API-ключ от вашего самостоятельно размещенного экземпляра платформы

SCF_API_URL

Да

Базовый URL вашей самостоятельно размещенной платформы (например, http://localhost:8000). Прежний размещенный адрес по умолчанию выведен из эксплуатации.


Примеры запросов

После подключения попробуйте спросить вашего AI-ассистента:

  • «Какие контроли NIST 800-53 применимы к управлению доступом?»

  • «Покажи прогресс внедрения контролей в моей организации.»

  • «Перечисли всех критических поставщиков и их оценки риска.»

  • «Создай оценку рисков для нашего перехода в облако.»

  • «Какие доказательства мне нужно собрать для аудита SOC 2?»

  • «Покажи матрицу рисков 5x5 для моей организации.»

  • «Проведи DPSIA по нашему поставщику облачных услуг.»

Дополнительные примеры есть в документации по каждому домену в docs/tools/.


Документация

  • docs/authentication.md — настройка API-ключа, ротация, конфигурация URL самостоятельного хостинга, области действия.

  • docs/architecture.md — поток запросов, модель ошибок, ограничение частоты запросов, что сервер делает и чего не делает.

  • docs/troubleshooting.md — симптом/причина/исправление для типичных сбоев.

  • docs/tools/ — справочник по доменам с полными таблицами параметров.


Безопасность

  • Ключи API никогда не записываются в журналы и не включаются в сообщения об ошибках.

  • Ключи хэшируются с помощью SHA-256 на стороне сервера. Используйте HTTPS для любого экземпляра, доступного за пределами localhost.

  • Ограничение частоты запросов: 100 запросов/мин на чтение, 20 запросов/мин на запись.

  • Мультитенантность — все операции ограничены вашей организацией.

  • npm-пакет публикуется с аттестацией происхождения через доверенную публикацию OIDC.

  • CI включает обнаружение секретов Gitleaks, анализ CodeQL и Semgrep SAST.

См. SECURITY.md, чтобы сообщить об уязвимости.


Разработка

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

Тестирование с помощью MCP Inspector

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

Вклад

Вклад приветствуется! Пожалуйста, прочитайте CONTRIBUTING.md перед отправкой PR.

Этот проект следует Contributor Covenant — см. CODE_OF_CONDUCT.md. Участвуя, вы обязуетесь соблюдать этот кодекс.

  1. Сделайте форк репозитория

  2. Создайте ветку для функции (git checkout -b feature/amazing-feature)

  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')

  4. Отправьте в ветку (git push origin feature/amazing-feature)

  5. Откройте Pull Request


Лицензия

MIT — см. LICENSE.


Ссылки

Available Tools

135 tools
scf_accept_cdm_proposalA

Accept a control-level CDM proposal (write — editor role). One decision covers the whole card: the proposal and every citation under it flip to accepted together.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID — obtain from scf_list_organizations
proposal_idYesProposal UUID — obtain from scf_list_cdm_proposals

TDQS

A4.3/5.0
Behavior4/5

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

Annotations only provide readOnlyHint=false and destructiveHint=false, so the description carries meaningful behavioral weight. It explicitly discloses that this is a write operation requiring an editor role, and that accepting flips both the proposal and every citation under it together. This adds genuine 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, dense sentence with no filler. It front-loads the action and role, and then adds the key scoping behavior about the whole card. 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 two-parameter write tool with no output schema and no nested objects, the description is complete. It covers what the tool does, who can use it, and the scope of the effect. The schema supplies parameter provenance, so nothing essential is missing.

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

Parameters3/5

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

Schema coverage is 100%, with both org_id and proposal_id described and including acquisition sources. The description adds no direct parameter-level detail beyond identifying the resource as a control-level CDM proposal, so it does not need to compensate for schema gaps. Baseline 3 is appropriate.

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

Purpose5/5

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

The description states a specific verb and resource: 'Accept a control-level CDM proposal'. It adds the write action and editor role, and clarifies scope by saying one decision covers the whole card. This distinguishes it clearly from sibling tools like scf_dismiss_cdm_proposal and scf_list_cdm_proposals.

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

Usage Guidelines4/5

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

The description implies when to use it: when accepting a control-level CDM proposal. It gives useful context by noting the editor role requirement and the whole-card atomicity of the decision. It does not explicitly name alternatives or exclusions, but the action verb and sibling names make the intended use clear.

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

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). The grant is engagement-scoped: it exposes that engagement's frozen scope and queries, nothing else in the organization.

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.2/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 the description aligns by saying 'write'. It adds valuable context beyond annotations: admin role is required, the target user must already exist, and the exposure is limited to the engagement's frozen scope and queries. 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.

Conciseness4/5

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

The description is concise and front-loaded, stating the core action first and the scoping limitation second. The parenthetical '(write — admin role)' is slightly cryptic but compact and informative. There is no filler or repetition of schema content.

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

Completeness5/5

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

For a simple three-parameter grant tool with no output schema, the description covers the operation, scope, authorization requirement, and what is deliberately not exposed. An agent can correctly select and invoke this tool without needing additional inference.

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

Parameters3/5

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

Schema description coverage is 100%, with each UUID parameter already explained and sourced from a sibling list tool. The description reinforces the engagement-scoped meaning but does not add parameter-specific details beyond the schema. Baseline 3 is appropriate because the schema carries the parameter documentation burden.

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

Purpose5/5

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

States a specific verb ('Grant'), a specific resource (user read access to an engagement), and a clear scope (engagement-scoped, exposing only that engagement's frozen scope and queries). This clearly distinguishes it from sibling auditor tools like scf_list_engagement_auditors and scf_remove_engagement_auditor, 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 Guidelines4/5

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

The description clearly establishes when to use this tool: to grant an existing user read access to a single engagement. It implies boundaries by noting the grant is engagement-scoped and exposes nothing else in the organization. It does not explicitly name alternatives or exclusions, but the context is sufficient for selection.

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_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_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_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_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 (write — admin role). This freezes the in-scope controls for the named frameworks against the current catalog version, so the scope renders even 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?

Beyond the annotations, the description discloses a meaningful side effect: creating the engagement 'freezes the in-scope controls for the named frameworks against the current catalog version'. This explains why a snapshot is preserved even after catalog deprecations, which is valuable behavioral context not visible in readOnlyHint/destructiveHint.

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

Conciseness5/5

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

The description is compact and front-loaded with the core action ('Create an audit engagement'), followed by the role requirement and the key behavioral consequence. Both sentences earn their place with 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?

Given that the schema fully documents parameters and there is no output schema, the description adequately covers purpose, permission level, and important side effects. It lacks explicit guidance on return values or error conditions, but those are less critical for a straightforward create operation with strong 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?

Input schema provides 100% parameter coverage, so the schema documents name, org_id, frameworks, start_date, and end_date. The description only loosely references 'named frameworks' and does not add new parameter-level meaning beyond what the schema already states, which aligns with the baseline for full schema coverage.

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

Purpose5/5

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

Description clearly states a specific action and resource: 'Create an audit engagement' with the qualifier '(write — admin role)'. It also differentiates this tool from engagement-management siblings like list/get/update/delete by emphasizing the creation and scope-freezing behavior.

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 implicitly conveys when to use it: when an audit engagement needs to be created, and it notes the admin-role requirement. However, it does not explicitly contrast with related tools such as scf_update_engagement or scf_delete_engagement, nor does it mention 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_create_engagement_queryA

Raise an auditor query against one control in the engagement's scope (write — editor role, or an 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

A4.2/5.0
Behavior4/5

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

Annotations only indicate the tool is non-read-only and non-destructive. The description adds that this is a write operation, requires specific permissions, and depends on the control being in frozen scope. This is useful behavioral context beyond the annotations, though it does not describe the response or side effects in detail.

Agents need to know what a tool does to the world before 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 first, then the role requirement and the frozen-scope constraint. There is no filler or redundant wording; every clause carries useful information.

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

Completeness4/5

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

For a mutation tool with five required parameters and no output schema, the description covers the core action, permission model, and key scope precondition, while the schema covers parameter semantics. It leaves minor gaps such as what the successful response looks like, but 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%, and each parameter already has meaningful descriptions, including format constraints and sourcing guidance like 'obtain from scf_list_organizations'. The tool 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 uses a specific verb ('Raise') and a specific resource ('auditor query against one control in the engagement's scope'). It clearly communicates the create action and distinguishes it from sibling query tools like scf_respond_to_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 states clear preconditions: the control must be in the engagement's frozen scope, and the user must have editor role or be an assigned auditor. It does not explicitly name alternatives or exclusion cases, but the purpose and constraints give an agent enough context to decide when to use this tool.

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

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_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 status: 'mitigate', 'accept', 'transfer', or 'avoid'

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already indicate this is not read-only, and the description reinforces that by saying 'write'. It adds useful behavioral detail beyond the annotations: the editor+ role requirement and the fact that likelihood and impact scores populate the 5×5 risk matrix. 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?

Two sentences, no fluff, and the primary action is front-loaded befure the behavioral detail. Every phrase earnes its place.

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

Completeness3/5

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

The schema covers field semantics and required parameters well, and the description explains the write nature and role requirement. However, there is no mention of what the tool returns after creation, and the distinction from scf_create_custom_risk is left unstated, which matters given the large sibling list. Reasonable but not fully complete.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds extra meaning by clarifying that likelihood and impact are not just 1–5 numbers but feed directly into the 5×5 risk matrix, which is not stated in the schema. This modest additional context justifies moving above 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 action ('Create a new risk assessment') and the resource ('the risk register'), so an agent knows what the tool does. It stops short of a 5 because it does not explicitly distinguish itself from the sibling scf_create_custom_risk, which is a plausible 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?

It provides useful context by labeling the operation as 'write' and requiring an 'editor+ role', which helps an agent understand permissions. However, it gives no explicit guidance on when to choose this tool over scf_create_custom_risk or other risk-related tools, leaving the differentiation 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_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: cloud_provider, identity_provider, ticketing, logging, security_tool, code_repository, document_management, or 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 signal mutation (readOnlyHint=false) and non-destructiveness (destructiveHint=false), and the description adds the specific authorization requirement 'editor+ role,' which is genuinely useful behavioral context beyond the annotations. The note that systems can be linked to capabilities and evidence also clarifies the entity's relationships, though it stops short of describing side effects or return 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 that establishe the action, the resource, the permission level, and a key relational capability without any 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?

Given the schema covers all nine parameters (including required fields, enums, and source lookups) and the description supplies the role requirement, the tool is callable with no critical gaps. The absence of an output schema means the return payload is not described, but for a simple CRUD create this is a minor omission rather than a blocker.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 (e.g., org_id says 'obtain from scf_list_organizations,' vendor_id and catalog_template_id have similar sourcing notes. The description adds no parameter-level semantics, so the baseline 3 applies.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Create a system in the organization's infrastructure inventory,' which unambiguously distinguishes this from sibling tools such as scf_update_system, scf_list_systems, and scf_create_vendor. The parentetical '(write — editor+ role)' further clarifies the action type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 create verb plus the 'wite' marker give clear context for when tis tool applies, and the absence of an explicit alternative-routing note is acceptable because the sibling list contains scf_update_system for modifications and scf_list_systems for reads. It does not name those alternatives explicitly, but the usage context is unmistakeable.

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')prospect
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/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. The description adds value beyond that by disclosing the editor+ role requirement and the meaningful side effect that the platform auto-scores risk based on criticality and data handling. These details help the agent anticipate post-creation 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 compact sentence that front-loads the core action, then adds the permission and side-effect context. Every clause earns its place and 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?

The description covers the core purpose, required permission, and the primary behavioral side effect, while the input schema fully documents all eight parameters. It omits explicit return-value or post-creation confirmation behavior, but given the high schema coverage and simple create semantics, this is only 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 every parameter. The description adds minimal extra meaning by connecting criticality to automatic risk scoring, but it does not elaborate on individual parameters such as status, website, or contact_email 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 a specific verb and resource, 'Create a vendor in the TPRM registry,' and explicitly labels the operation as a write with an editor+ role. This clearly distinguishes it from list, get, update, and trigger siblings such as scf_list_vendors, scf_get_vendor, and scf_update_vendor.

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 clear creation context and notes the required editor+ role, implying use when a new vendor must be added. However, it does not explicitly contrast with scf_update_vendor or state that it should not be used to modify existing vendors; the alternative guidance 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_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_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 an audit engagement and its frozen scope (destructive write — admin role). Returns no content on success. Auditor access granted through this engagement is 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.3/5.0
Behavior4/5

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

Annotations already mark this as destructive, but the description adds valuable behavioral context: it requires an admin role, returns no content on success, deletes the frozen scope, and revokes auditor access granted through the engagement. These details go beyond the structured annotations and help the agent anticipate 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?

Three short sentences, each carrying distinct useful information: what is deleted, the danger/authorization, the return behavior, and a key side effect. No filler or repetition of schema details.

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

Completeness5/5

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

For a simple two-parameter delete operation, the description covers the required admin role, the destructive nature, the success return behavior, and the consequential revocation of auditor access. Nothing essential is missing for an agent to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with both parameters already clearly documented as UUIDs sourced from scf_list_organizations and scf_list_engagements. The description adds no further 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 names the exact operation ('Delete an audit engagement and its frozen scope') with a clear destructive verb and resource. It distinguishes this from the many sibling engagement tools by stating it covers both the engagement and its frozen scope, plus the revocation of auditor access.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 the intended use: permanently remove an audit engagement. It provides relevant context such as the admin role requirement and the side effect on auditor access, though it does not explicitly name alternatives like scf_remove_engagement_auditor for cases where only a single auditor should be removed.

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_dismiss_cdm_proposalA

Dismiss a control-level CDM proposal (write — editor role). The proposal and its citations are dismissed together, and the reason — if given — is stored on each.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID — obtain from scf_list_organizations
reasonNoWhy this proposal was rejected — recorded on the proposal and its citations
proposal_idYesProposal UUID — obtain from scf_list_cdm_proposals

TDQS

A4.2/5.0
Behavior4/5

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

Annotations only mark this as a non-read, non-destructive operation. The description adds meaningful behavioral detail beyond those annotations: the proposal and its citations are dismissed together, and an optional reason is stored on both. This gives the agent a clear picture of side effects 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 one focused sentence that front-loads the purpose, role, scope, and side effects. Every clause adds useful information without redundancy or filler, making it efficient for an agent to parse.

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

Completeness4/5

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

For a simple three-parameter write operation with no nested objects and full schema coverage, the description covers the essential invocation context: target, role requirement, grouped dismissal behavior, and reason handling. It does not mention what the response or resulting status is, but with no output schema and a straightforward action, this is a minor gap rather than a blocking 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 description coverage is 100%, so the input schema already documents org_id, proposal_id, and reason with adequate descriptions. The tool description's mention of the reason being stored on each citation mostly restates the schema's existing parameter description, so it adds little new semantic value.

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

Purpose5/5

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

The description uses a specific verb ('Dismiss') with a specific resource ('control-level CDM proposal') and clearly indicates a write operation requiring an editor role. It also states the key side effect that proposal and citations are dismissed together, which clearly distinguishes it from sibling tools like scf_accept_cdm_proposal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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, requires an editor role, and acts on control-level CDM proposals with their citations. It does not explicitly name alternatives like scf_accept_cdm_proposal or state when not to use it, but the role and operation context are strong enough for an agent to infer appropriate use.

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

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

Get one organization's audit trail: field-level changes to controls, evidence, and related entities, with actor, timestamp, and before/after values.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100, default 50)
offsetNoPagination offset — number of results to skip (default 0)
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?

The readOnlyHint annotation already establishes safe read behavior, and the description adds useful context about what the audit trail contains. It does not disclose additional behavioral traits such as ordering, time range limitations, pagination defaults, or whether results are limited to a certain period, but the annotation lessens 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 a single focused sentence that front-loads the core purpose and then gives the key content detail. Every part is informative, with no repetition of the title 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 paginated list endpoint, the description covers the returned content well: field-level changes, actor, timestamp, and before/after values. It could mention ordering or the exact set of 'related entities', but the schema and annotation provide enough for basic correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already has a clear description including defaults and bounds. The tool description adds no extra parameter-level meaning, but none is needed since the schema fully documents org_id, limit, and offset.

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 organization's audit trail', and adds concrete detail about the content (field-level changes to controls, evidence, and related entities with actor/timestamp/before-after values). It is clear and informative, though it does not explicitly contrast with similar siblings like scf_get_document_history or scf_get_catalog_changelog.

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 implies when to use the tool: when retrieving an organization's audit trail. However, it gives no explicit guidance on when not to use it or how to distinguish it from related history/changelog tools, leaving the agent to infer the boundaries.

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_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_cdm_document_mapA
Read-only

Get the CDM document map (read — viewer role): per-domain coverage showing which ingested documents speak to which SCF domains, and where the corpus is silent. Finds documentation gaps.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID — obtain from scf_list_organizations

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description reinforces this with 'read — viewer role' and 'Get'. It adds useful behavioral context by explaining what the map contains (per-domain coverage, silent corpus areas) and the role requirement, going beyond the structured 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 compact and front-loaded with the tool's core behavior. The final sentence 'Finds documentation gaps' is largely redundant with 'where the corpus is silent,' but the overall structure is efficient and readable.

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

Completeness4/5

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

For a single-parameter read-only tool with no output schema, the description conveys the essential semantics: what the map shows, what it is used for, and the required role. It lacks explicit return-format details, but given the tool's simplicity and annotation coverage, it is adequately 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%: org_id is fully described, including where to obtain it. The tool description adds no additional parameter-level semantics, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly identifies the tool as retrieving the CDM document map, with specific semantics: per-domain coverage of ingested documents mapped to SCF domains and identification of silent areas. This distinguishes it from related sibling tools like scf_list_cdm_mappings or scf_list_cdm_documents by emphasizing coverage and gap analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 operation for a viewer role that finds documentation coverage gaps. It does not explicitly name alternative tools or state when not to use it, but the purpose is specific enough that 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_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_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_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_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_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_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_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_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_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_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_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_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_cdm_documentsA
Read-only

List the documents ingested into the organization's CDM corpus (read — viewer role), with their ingestion state.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1–200 (default 50)
offsetNoRows to skip for pagination (default 0)
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?

Annotations already provide readOnlyHint=true, and the description reinforces this with '(read — viewer role)'. It adds useful behavioral context about the ingestion-state field, but does not disclose pagination behavior, ordering, or what exactly is returned beyond the state. With annotations 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.

Conciseness5/5

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

The description is a single concise sentence that front-loads the action and resource, then adds the key behavioral detail (read/viewer role) and the output focus (ingestion state). 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 list operation with fully described parameters and a readOnly annotation, the description is sufficient. It clarifies the corpus scope and the viewer role requirement, and the schema covers pagination and org_id. No output schema exists, but the returned ingestion state is explicitly mentioned.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 limit, offset, and org_id, including defaults and the UUID source for org_id. The description 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 clear verb ('List'), a specific resource ('documents ingested into the organization's CDM corpus'), and what is included ('their ingestion state'). This distinguishes it from broader list tools like scf_list_documents and from query/analysis tools like scf_query_cdm_corpus.

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 the viewer-role context but does not explain when to choose this tool over related siblings such as scf_list_documents, scf_get_cdm_document_map, or scf_query_cdm_corpus. No alternatives or exclusions are mentioned, leaving routing decisions to inference.

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

scf_list_cdm_mappingsA
Read-only

List CDM citation-level mappings (read — viewer role): the document passages proposed as evidence for a control, each lifecycle-badged. Use scf_list_cdm_proposals for the per-control view.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1–200 (default 50)
offsetNoRows to skip for pagination (default 0)
org_idYesOrganization UUID — obtain from scf_list_organizations
statusNoFilter by mapping status (e.g. 'proposed', 'accepted', 'dismissed')
control_idNoFilter to one scoped control by its UUID

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 this with '(read — viewer role),' adding permission-level context. It also discloses useful output semantics: the results are document passages with lifecycle badges. No contradictions; the only minor gap is not describing the exact return structure, but the read-only profile 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, no filler. The core purpose and read-only nature are front-loaded, followed immediately by the sibling alternative. 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 no output schema, the description still characterizes the return content as lifecycle-badged document passages, which helps an agent understand what to expect. Full parameter schema coverage and a readOnlyHint annotation cover the remaining essentials. The distinction between 'citation-level mappings' and 'per-control view' is helpful but slightly opaque, keeping this just below a perfect score.

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

Parameters3/5

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

Schema description coverage is 100% and all parameters (org_id, limit, offset, status, control_id) have meaningful descriptions, so the schema already carries the parameter burden. The tool description does not add parameter-specific detail, but the baseline of 3 is appropriate because no parameter information is missing.

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

Purpose5/5

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

The description opens with a precise verb and resource: 'List CDM citation-level mappings' and explains what those are — 'document passages proposed as evidence for a control, each lifecycle-badged.' It also explicitly distinguishes itself from scf_list_cdm_proposals, so an agent can select between the two without opening schemas.

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

Usage Guidelines5/5

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

The description names the closest sibling alternative, scf_list_cdm_proposals, and gives the condition for choosing it: the 'per-control view.' This is explicit routing guidance that clarifies both what this tool offers and when to prefer the alternative.

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

scf_list_cdm_proposalsA
Read-only

List control-level CDM proposals with nested citations (read — viewer role), highest consolidated score first. The review queue: 'this document evidences this control, here is where'.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1–200 (default 50)
offsetNoRows to skip for pagination (default 0)
org_idYesOrganization UUID — obtain from scf_list_organizations
statusNoFilter by proposal status (e.g. 'proposed', 'accepted', 'dismissed')
control_idNoFilter to one scoped control by its UUID
document_idNoFilter to proposals from one CDM document

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnlyHint annotation, the description adds valuable behavior: viewer role is sufficient, results are sorted by consolidated score descending, and returned proposals have nested citations. It does not contradict the annotation and gives useful extra 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 short sentences front-load the action, scope, viewer role, sort order, and purpose. The review-queue quote is compact and earns its place rather than padding 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?

With annotations and schema already covering safety, role, and every parameter, the description adds the remaining behavioral details: sort order and nested-citation shape. A fully explicit return-field list is absent, but nothing essential for invoking the tool correctly is missing.

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

Parameters3/5

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

All six parameters already have full descriptions in the input schema, so the description is not required to explain them. It adds no per-parameter detail beyond the ordering note, which is consistent with the baseline for high schema coverage.

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

Purpose5/5

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

The description states a specific operation (list) and a specific resource (control-level CDM proposals), and immediately adds ordering context via 'highest consolidated score first'. It is clearly distinguishable from sibling tools such as scf_list_cdm_documents, scf_accept_cdm_proposal, and scf_dismiss_cdm_proposal.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 'review queue' plus the quoted purpose ('this document evidences this control, here is where') makes the intended use clear. It does not enumerate explicit alternatives or exclusions, but the context is sufficient for an agent to know when this read-only listing 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_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).

ParametersJSON Schema
NameRequiredDescriptionDefault
org_idYesOrganization UUID — obtain from scf_list_organizations
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 readOnlyHint annotation already establishes that this is a safe read operation. The description adds useful context about the viewer role and read access, but it does not describe output shape, pagination, or any other behavioral details. This is acceptable but not exceptional 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 communicates the action, resource, scope, and access role efficiently.

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

Completeness4/5

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

For a simple two-parameter read-only list tool, the description together with the schema and annotation is largely complete. It could specify the return format or list contents in more detail, but the core information needed to invoke the tool 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?

The input schema has 100% description coverage: both org_id and engagement_id are documented, including how to obtain them via other tools. The tool description 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 uses a specific verb ('List') and a clear resource ('auditors granted read access to one engagement'). It also clarifies the access level ('read — viewer role'), which distinguishes it from sibling tools like scf_add_engagement_auditor and scf_remove_engagement_auditor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 scopes the tool to one engagement and read/viewer access, implying it should be used when you need to see who can view an engagement. It does not explicitly name alternatives or state when not to use it, 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_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.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, or an assigned auditor)', adding role-based access context beyond the annotation. It also notes that each query includes responses and status, giving a useful preview of the returned data. No contradictions with annotations.

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

Conciseness5/5

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

The description is two tight sentences: the first front-loads the primary action and access constraint, and the second economically defines the core domain concept. No wasted words or redundant restatements 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 simple list operation with fully documented parameters and a readOnly annotation, the description is largely complete. It tells the agent what is listed, who can read, and what a query contains. It doesn't mention pagination or ordering, but with no output schema and a straightforward list use case, 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 has 100% description coverage, including provenance hints for org_id and engagement_id, so the description does not need to repeat parameter details. The description adds no extra parameter semantics 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 states a specific verb ('List') and resource ('an engagement's structured auditor queries'), clearly distinguishing this from related tools like scf_create_engagement_query or scf_respond_to_engagement_query. It also defines what a query is, making the tool's subject 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 clearly indicates this is a read operation and specifies who is allowed to use it (viewer role or assigned auditor), which gives an agent strong context for when to call it. However, it does not explicitly mention alternatives like scf_get_engagement_query for retrieving a single query, so it falls short of full 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_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 (e.g. 'planning', 'fieldwork', 'closed')

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 reinforces this with '(read — viewer role)' and adds the role requirement, which the annotation does not convey. It also discloses what each entry carries (frameworks, status, dates, catalog version frozen at scope time), giving useful behavioral context beyond the annotation.

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

Conciseness5/5

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

Two sentences with no filler: the first front-loads the action and read-only nature, the second summarizes the returned fields. Both sentences earn their place and are well-ordered for quick agent scanning.

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

Completeness4/5

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

For a simple list tool with a readOnlyHint annotation, a fully documented required parameter, and no output schema, the description covers the key facts an agent needs: scope, safety, and return contents. Minor omissions like pagination limits and explicit sibling routing prevent 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%, so org_id and status are already documented in the schema, including how to obtain org_id from scf_list_organizations and example status values. The description adds no parameter-level detail beyond this, so the baseline 3 applies.

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

Purpose5/5

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

The description states a specific verb and resource — 'List the organization's audit engagements' — and scopes it to the org level, distinguishing it from the sibling scf_list_my_engagements. It also previews the returned fields (frameworks, status, dates, catalog version), leaving 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 phrase 'organization's audit engagements' gives clear context that this is the org-wide listing tool, implicitly contrasting with scf_list_my_engagements (personal scope) and scf_get_engagement (single record). It does not explicitly name alternatives or state when not to use it, but the scope qualifier is sufficient context 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_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
system_idNoSystem UUID to filter by — obtain from scf_list_systems

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 safety profile is covered and the bar is lowered. The description adds value by disclosing return content (tracking status, maturity level, linked controls) and the optional system filter. It does not mention pagination, result limits, or default behavior when no evidence exists, which are modest gaps 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 sentences with zero filler: the main action is front-loaded, the return fields occupy the second clause, and the optional filter is a short trailing sentence. Every sentence earns its place and the structure is easily 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?

For a read-only list tool with 2 parameters (1 required), 100% schema coverage, no nested objects, and readOnlyHint=true, the description is close to complete: it states the resource, scope, return fields, and optional filter. The missing elements are pagination/limit behavior and explicit differentiation from sibling list tools, which are minor given the tool's simplicity. A 4 reflects strong but not exhaustive 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% — both org_id and system_id carry descriptions in the schema, including useful provenance hints ('obtain from scf_list_organizations' / 'scf_list_systems'). The description merely restates the optional system filter that the schema already conveys, adding no new parameter meaning. Per the rubric, baseline 3 is correct 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 uses a specific verb ('List') with a clear resource ('evidence items') and scoping context ('tracked against an organization's controls'), and it enumerates the return fields (tracking status, maturity level, linked controls). This is clear and actionable, but it never explicitly names its closest siblings (scf_list_evidence_catalog, scf_list_evidence_files, scf_list_evidence_gaps), so differentiation is left to inference rather than stated.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance is provided and no alternative tools are named. The phrase 'tracked against an organization's controls' implies the operational tracking use case rather than a catalog, gap, or file listing, but with roughly 15 evidence-related siblings, an agent gets no direct routing help. This is implied usage at best.

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 (e.g., 'open', 'in_progress', 'done')
assigneeNoFilter by assigned user ID

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already mark this as readOnlyHint=true, so the description adds useful context by framing these as 'evidence collection tasks' and a 'work queue'. However, it does not disclose behavioral details such as pagination, default statuses, whether results are scoped to the org, or what happens with no filters. It is adequate but not rich.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the tool's purpose and then states the optional filters. There is no redundant wording or repeated schema information.

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 optional-filter list operation, the description covers purpose and filter intent. However, it does not mention pagination or how this relates to scf_get_work_queue, and with no output schema an agent cannot know the exact response shape. This is adequate but leaves minor gaps.

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

Parameters3/5

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

Schema description coverage is 100%, and each parameter already has clear descriptions: org_id is sourced from scf_list_organizations, status has example values, and assignee is a user ID. The description only restates the optional filtering behavior without adding new 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: 'List evidence collection tasks', and clarifies that this is the work queue showing what needs to be collected, by whom, and by when. This clearly distinguishes it from generic list tools like scf_list_evidence, which would list evidence items rather than collection tasks.

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 use this tool versus scf_get_work_queue or scf_list_evidence. It mentions optional filters but does not state exclusions, ordering, or which sibling should be used for broader work-queue needs. An agent must infer the intended selection context from the name and brief description 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_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 the engagements the calling identity can read as an assigned auditor, across organizations (read). This is the auditor's own view — use scf_list_engagements for the organization-side list.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint=true, and the description reinforces the read-only nature. It adds meaningful behavioral context beyond the annotation by explaining that results are scoped to the calling identity's assigned auditor role, that this crosses organizations, and that this is a personal view rather than an organizational list.

Agents need to know what a tool does to the world before 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 scoping are front-loaded in the first sentence, and the sibling distinction is in the second. 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 no-parameter, read-only list tool with readOnlyHint annotation and a clear sibling alternative, the description is complete. The return type ('engagements') is implied by 'List the engagements,' and the identity scoping is explained, so an agent has enough to select and 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 input schema has zero parameters, so the baseline is 4. The description adds useful implicit semantics by clarifying that the operation auto-scopes to the calling identity's assigned audit engagements, which is important because there are no explicit parameters to convey this.

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

Purpose5/5

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

The description names a specific verb ('List'), a specific resource ('engagements'), and a specific perspective ('as an assigned auditor'), while stating the scope is across organizations. It also explicitly differentiates itself from scf_list_engagements by calling this the 'auditor's own view' and the sibling the 'organization-side list.'

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool versus the alternative: 'use scf_list_engagements for the organization-side list.' This gives the agent a clear decision rule without needing to inspect either tool further.

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_controlsA
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
frameworkNoFramework slug (e.g., 'nist-800-53') to filter mapped controls
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

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 there is no destructiveHint, so the safety profile is clear. The description adds that results are paginated and includes implementation status, which is useful behavioral context. It does not disclose default ordering, whether scope_status defaults to 'all', or what fields are returned, but with readOnly annotation covering the main risk, 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.

Conciseness4/5

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

The description is two sentences and front-loads the core purpose before listing filters. It is concise and every sentence adds value, though it could be slightly more structured by grouping filter types.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 paginated read-only list tool with 100% schema coverage, the description is largely complete. It notes pagination, filter dimensions, and the org scoping. It does not describe return shape or ordering, but since there is no output schema and read-only hints carry the safety profile, those gaps are minor for an agent 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?

Schema description coverage is 100%, so all 9 parameters are documented in the schema. The description adds an overview of filter dimensions (scope status, domain, framework, CSF function, weighting, free-text search) but does not explain parameter interactions or semantics 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.

Purpose4/5

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

The description states a specific action ('List controls scoped to the organization') and notes it includes implementation status and pagination. It is distinguishable from the sibling scf_list_controls by the 'scoped to the organization' qualifier, though it does not explicitly name scf_list_controls as the alternative.

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

Usage Guidelines4/5

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

The description lists the available filters and says the result is paginated, giving an agent a clear sense of when to use this tool. It does not explicitly state when not to use it or name a sibling alternative (e.g., scf_list_controls for unscoped controls), but the scope qualifier implies the differentiation.

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_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_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
per_pageNoPage size (1–100, default 25)
criticalityNoCriticality tier filter

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, and the description adds context that the data comes from the TPRM registry and is paginated. It does not disclose ordering behavior, response envelope details, or behavior when no filters are applied, but these omissions are less impactful given the annotation.

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

Conciseness5/5

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

The description is two short sentences with no filler. The main subject and action are front-loaded, and the optional filter and pagination details are expressed clearly and 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?

Given 100% schema parameter coverage, enums for both filters, defaults for pagination, and a readOnlyHint, the description provides enough context to call the tool correctly. It does not describe the output shape, but there is no output schema and the list intent makes the return format largely predictable.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 five parameters, including org_id, page, per_page, status, and criticality, are fully documented in the input schema with descriptions and enums. The description only restates that filtering by status/criticality and pagination are available, adding no new 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 ('List') and resource ('third-party vendors in the organization's TPRM registry'), making it clearly distinct from sibling tools focused on frameworks, risks, evidence, or single-vendor operations like scf_get_vendor. It also mentions optional filters and pagination, which further clarifies the scope.

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

Usage Guidelines3/5

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

The description implies use when an agent needs a paginated list of vendors with optional status/criticality filtering, but it does not explicitly state when to prefer a sibling like scf_get_vendor for retrieving a single vendor's details. No exclusions or alternative routing guidance are provided.

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_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_query_cdm_corpusA
Read-only

Search the organization's ingested policy corpus for passages relevant to one scoped control (read — viewer role). Ranked hits with source documents: 'what do our own documents say?'

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum hits to return, 1–200 (default 10)
org_idYesOrganization UUID — obtain from scf_list_organizations
control_idYesScoped control UUID to search against — obtain from scf_list_scoped_controls
query_textNoExtra search text to bias the results; omit to use the control's own wording

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 adds the viewer-role requirement and the ranked-hit-with-source-documents output behavior. This goes beyond the annotation without contradicting it. It does not cover edge cases, but for a read-only search that is acceptable.

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

Conciseness5/5

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

The definition is one front-loaded sentence that states action, scope, role, and result. The quoted use case ('what do our own documents say?') adds clarifying intent without 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 search tool with fully documented parameters, the description covers scope, role, and result type. The main gap is the absence of an output schema and a more explicit return shape, but the core invocation 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 coverage is 100% and every parameter is already described: limit range/default, org_id source, control_id source, and query_text bias behavior. The description adds only the 'one scoped control' semantic, so it does not need to compensate for schema gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 ('search'), a distinct resource ('ingested policy corpus'), and a precise scope ('passages relevant to one scoped control'). It also separates this tool from document-listing siblings by emphasizing ranked passage hits with source 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 a clear context for use: retrieve what the organization's own documents say about one scoped control. It also notes the viewer-role requirement. It does not explicitly enumerate sibling alternatives, but the usage context is unambiguous enough that an agent can 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_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_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 — editor role, or an assigned auditor). 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, and the description reinforces the mutating nature with '(write)' while adding authorization context and return behavior ('Returns the updated query with its full thread'). This goes 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?

One sentence with no wasted words: action, permission context, and return value are all present. 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?

With all parameters documented in the schema and the description covering role permissions and the return value, the tool is well specified. A small gap is that it does not mention any state constraints, such as whether the query must still be open, but this is not critical 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%, so the parameters are already well documented with UUID sources and content meaning. The tool description itself adds no additional parameter-level detail beyond what the schema provides, 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 and resource: 'Add a response to an auditor query.' It also disambiguates this write action from sibling query tools like scf_get_engagement_query or scf_update_engagement_query_status by framing it as adding thread content. The parenthetical role note further clarifies intent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 operation for responding to an auditor query, and it names the permitted actors ('editor role, or an assigned auditor'). It does not explicitly name alternatives or negative conditions, but the verb and resource make the appropriate use case apparent.

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_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_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_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 audit engagement's name, frameworks, status or dates (write — admin role). Only the fields you pass are changed.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNew engagement name
org_idYesOrganization UUID — obtain from scf_list_organizations
statusNoNew engagement status (e.g. 'fieldwork', '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.6/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 write nature, the admin-role authorization, and the key partial-update behavior ('Only the fields you pass are changed'). This is exactly the behavioral context an agent needs for a mutating call.

Agents need to know what a tool does to the world before 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 tight two-sentence definition, front-loaded with the primary action and fields, then the essential partial-update caveat. Every clause adds information; 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?

The definition covers the operation, the affected fields, the role requirement, and partial-update semantics, which is sufficient for a straightforward mutation with well-documented parameters. It does not detail return values or status constraints, but with no output schema and a 100%-covered input schema, nothing critical is missing.

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

Parameters4/5

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

With 100% schema description coverage, the schema already documents each parameter, so the baseline is 3. The description adds genuine value by clarifying that any of the optional parameters can be supplied independently for a partial update, and it maps the listed fields to the schema properties.

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

Purpose5/5

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

States a specific verb ('Update') plus resource ('an audit engagement') and enumerates exactly which fields are affected (name, frameworks, status, dates), making its scope unambiguous. It clearly differentiates from the many sibling update tools by targeting the engagement resource and noting the partial-update behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 usage context: to modify an existing audit engagement's attributes, and the admin role is stated as a prerequisite. It does not explicitly name alternative tools or when-not conditions, but the resource and field list make the invocation scenario 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 — editor role, or an assigned auditor). The platform validates the transition, so an invalid target is refused rather than recorded.

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 indicate a non-read-only, non-destructive write, and the description adds meaningful behavioral context: role-based authorization and server-side validation that refuses invalid targets rather than recording them. This helps the agent predict failure behavior 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?

Two short sentences with no filler; the core action, authorization model, and validation behavior are all present and front-loaded. Every clause contributes useful information.

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

Completeness4/5

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

For a four-parameter status update with no nested objects, the description covers purpose, who may write, and what happens on invalid input. The main omission is an explicit statement of the full set of valid lifecycle transitions or the return value, but the enum and validation note leave the agent reasonably equipped.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 a high-level lifecycle/validation constraint, but it does not provide per-parameter guidance such as valid status transitions or the practical meaning of each status beyond the schema.

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

Purpose4/5

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

The description uses a specific verb and resource: 'move an auditor query through its lifecycle,' and the status enum (open/answered/closed) clarifies what that lifecycle means. It is clear enough to distinguish from query listing and creation, though it does not explicitly contrast with 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 Guidelines3/5

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

The description gives useful context: only an editor or assigned auditor can write, and invalid transitions are rejected. However, it does not explicitly say when to prefer this over scf_respond_to_engagement_query or which transition paths are valid, so usage guidance is mostly implied.

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_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
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 declare readOnlyHint=false and destructiveHint=false, so the description's 'write' label partially overlaps with structured data. However, it adds genuinely new behavioral context: the editor+ role requirement and the crucial partial-update (PATCH-like) semantics in 'only provided fields are applied' — a behavior no annotation conveys. It does not contradict the annotations; readOnlyHint=false is consistent with 'write' and destructiveHint=false with 'update'.

Agents need to know what a tool does to the world before 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 totaling roughly 17 words, with zero filler. The first sentence front-loads the verb, resource, and role; the second delivers the essential parameter-behavior rule. 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 10-parameter update tool with full schema coverage, strong annotations, and no nested objects, the description covers the critical semantics: the operation, the role gate, and partial-application behavior. The main gap is the absence of any return-value indication — there is no output schema, so an agent must infer what the tool returns; a note on the response shape or error behavior (e.g., 404 for unknown system_id) would complete the picture.

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%, and the schema descriptions are unusually rich — they include cross-references like 'obtain from scf_list_systems' and preference guidance like 'prefer vendor_id'. The baseline is therefore 3, but the description's 'All fields are optional; only provided fields are applied' adds operation-wide parameter semantics that the per-field schema entries cannot express, clarifying that omitted means unchanged rather than cleared.

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-resource pair — 'Update an existing system record' — making the operation unambiguous. The qualifier 'existing' implicitly distinguishes it from the sibling scf_create_system, and the resource scope ('system record') separates it from update tools for other resources (vendors, evidence, engagements). It doesn't explicitly name the create alternative, so it stops just short of full sibling differentiation.

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

Usage Guidelines4/5

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

The description provides clear usage context: this tool targets existing system records (not creation), requires an editor+ role, and applies only provided fields — which tells an agent exactly how to conduct an update session. It states the prerequisite (editor+ role) that the MID calibration example lacked. It does not explicitly route to alternatives like scf_create_system, but the context is clear enough that an agent won't misuse it.

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

The description adds meaningful behavioral context beyond the annotations: it marks the operation as a write, states the 'editor+' role requirement, and specifies the partial-update guarantee that only provided fields are applied. This aligns with readOnlyHint=false and destructiveHint=false 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?

One dense, front-loaded sentence of about 20 words. Every clause earns its place: the verb, the resource, the write nature, the required role, and the partial-update behavior. There is no filler or redundant repetition of the schema.

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

Completeness4/5

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

For a 9-parameter write tool with no output schema, the description covers the essential invocation context: existing record, write permission, required role, and partial-update semantics. Combined with full schema property descriptions this is sufficient for correct use, though a note about return value or error behavior would have been a minor improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 schema. The description adds the useful patch-semantics note that only provided optional fields are updated, but it does not add individual parameter-level meaning beyond that.

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

Purpose5/5

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

States a precise action — 'Update an existing vendor record' — with a clear resource. The qualifier 'existing' distinguishes it from create/list/get vendor tools, and 'write — editor+ role' reinforces the operation type. An agent can reliably tell this apart from scf_create_vendor and scf_get_vendor.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 use for modifying an already-created vendor, and the 'existing vendor record' wording rules out creation. It does not explicitly name alternatives such as scf_create_vendor or scf_update_custom_risk, but the intended invocation context is unambiguous within the sibling group.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 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
  2. 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
Disambiguation4/5

Most tools target a distinct resource and action, and the descriptions are explicit enough to separate similar-sounding entries like scf_get_evidence_maturity and scf_get_evidence_item_maturity. A few clusters around evidence assessment and vendor assessment could still cause hesitation, but the boundaries are largely clear.

Naming Consistency5/5

Every tool follows the scf_ prefix with a consistent verb_noun snake_case pattern, e.g. list_*, get_*, create_*, update_*, delete_*, trigger_*. Compound names are readable and the verb-first style is maintained throughout.

Tool Count1/5

135 tools is an extreme count, far beyond the 3–15 range that typically indicates a well-scoped server. Even a broad compliance platform would be better split into focused sub-servers by domain such as evidence, vendors, documents, and engagements.

Completeness3/5

The tool set covers an enormous range of compliance workflows, including evidence, risks, vendors, documents, engagements, and catalog reconciliation. However, notable lifecycle gaps exist: standard risks have create/get but no update/delete, and systems, vendors, evidence files, and documents lack delete operations, which can leave agents without a complete resolution path.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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
    12
    -
  • 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
    9
    Apache 2.0

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MarkAC007/mcp-server-scf'

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