Skip to main content
Glama
BigRedCloud

Red MCP Server

Official
by BigRedCloud

Red MCP Server

Red is an open-source Model Context Protocol (MCP) server that connects AI assistants and MCP clients to Big Red Cloud accounting data through a set of controlled MCP tools.

Supported customer platforms today are ChatGPT, Claude, and Mistral (including Vibe). Other MCP clients may work technically, but they are not treated as officially supported platforms. Red uses platform detection only for anonymous operational telemetry (see Privacy-safe telemetry).

Instead of calling the Big Red Cloud REST API directly, users work in plain language. The server translates requests into structured API calls and applies safety checks around anything that changes data.

With Red, a connected user can:

  • Review Big Red Cloud data with read-only lookups (customers, suppliers, products, invoices, quotes, nominal reports, and more).

  • Review before posting — see a plain-English preview of new or changed records before anything is written to Big Red Cloud.

  • Create, update, delete, batch, or email records only after explicit confirmation (and only when those capabilities are enabled for the deployment).

  • Ask Big Red Cloud how-to and training questions — Red answers using official support articles, customer documentation, screenshots, and webinar resources. These help tools do not require a connected company.


Why open source?

We believe AI infrastructure should be transparent. Customers should be able to inspect the software that connects their accounting data to AI assistants.

Our competitive advantage is not the connector itself; it is our accounting platform, our expert bookkeeping advice, our customer experience, and the value we build on top of it.

By open-sourcing Red, we hope to encourage trust, community contributions, and wider adoption of open standards.


Related MCP server: HLedger MCP Server

Features

  • Secure company connection flow (one-time connection page; no credentials in chat)

  • Pre-confirm validation of company connection credentials on the connection page (single-company form or multi-company CSV upload)

  • Partial connection results — invalid keys are rejected before confirm and reported in failedCompanies

  • Hosted HTTP connectionRef / activeConnectionRef so MCP clients can silently reuse a confirmed connection across supported session changes; kept in tool JSON, not shown to end users

  • Request routing for transactional work — action tools expect a short-lived routeToken from the router before create/update/delete/batch/email workflows proceed

  • Privacy-safe anonymous operational telemetry (platform, environment, tool name, connected-company count) — see docs/TELEMETRY.md

  • Company readiness check (brc_company_readiness_check) for connected companies

  • Read-only Big Red Cloud lookups

  • Customer, supplier, product, sales rep, VAT, and analysis category tools

  • Sales quotes, invoices, credit notes, purchases, payments, and cash tools

  • Preview-before-posting confirmation flow for create, update, delete, and batch actions (email tools use an explicit send confirmation)

  • VAT and transaction safety checks

  • Sales invoice safeguards, including multi-line generated-reference validation, Gross Price Entry priceBasis handling, Sales VAT category validation, placeholder product ID blocking, and related preflight checks

  • Session audit log of writes made through the MCP session, plus a downloadable support diagnostic for one connected company

  • Official Big Red Cloud help answers from Freshdesk articles, customer documentation, screenshots, and webinars — no company connection required

  • Local stdio and hosted HTTP transports


Security and safety model

Red is designed so that AI-driven access to accounting data stays controlled and auditable.

  • No credentials in the repository. Company connection credentials and secrets are never committed. Configuration is supplied at runtime through environment variables.

  • No credentials in chat. Company connection credentials must not be pasted into chat. Companies are connected through the secure Red connection page, where credentials are entered directly — not in the chat window.

  • Session-scoped connections. A connected company stays available for about the configured session duration and is held in session memory (or an optional shared connection store in hosted deployments). Where supported, connection handling is resilient across MCP session rotation so clients can reuse connectionRef / activeConnectionRef without asking the user to reconnect.

  • Pre-confirm validation. Company connection credentials submitted on the connection page are validated against Big Red Cloud before they are stored. Invalid or expired credentials are not saved; they appear in failedCompanies at confirmation time.

  • Credential invalidation. Only confirmed authentication failures clear a stored company credential. Endpoint, validation, permission, timeout, and server failures are not treated as an expired API key.

  • User-facing presentation. connectionRef, session IDs, and other MCP diagnostics are for tool arguments only. Assistants must not show redconn_… values or internal connection metadata to normal users unless the user explicitly asks for technical details.

  • Configurable session duration. How long connections last is controlled by BRC_API_KEY_TTL_MINUTES. User-facing wording (connection page, getting-started text, connection status) is derived from that value — not hardcoded.

  • Request routing for writes. Create, update, delete, batch, and email tools require a valid short-lived routeToken issued by the request router for the matching workflow. A route token is not permission to post — preview and confirmation still apply.

  • Explicit confirmation for writes. Create, update, delete, and batch actions require an explicit confirmation flag after a preview before posting has been shown. Email tools require an explicit send confirmation after an email preview.

  • Preview before posting. The first call to a write tool returns a payload preview rather than performing the action. Nothing is written to Big Red Cloud until you confirm.

  • Read and write are separated. Read-only lookups are clearly distinct from actions that change data.

  • Audit log. Writes made through the MCP session are recorded in a session audit log; read-only lookups are not treated as completed changes. Activity is scoped to currently connected companies. A downloadable support diagnostic can be generated for one connected company at a time; generating it is read-only and does not write to Big Red Cloud.

  • Deployment flags. Update, delete, email, batch, and operator/dev tools can each be disabled per deployment. Disabled skill groups are not registered with the MCP client for that process, so those tools are hidden rather than callable.

Sales invoice safety checks

Sales invoice handling includes:

  • Gross Price Entry requires an explicit priceBasis of gross or net so VAT is never guessed.

  • Sales VAT rates only. Sales invoices must use a Sales VAT category; purchase VAT rates are blocked, even when the percentage matches.

  • Placeholder product IDs (productId 0 and 1) are treated as placeholders and blocked before preview-before-posting and post.

  • Multi-line generated-reference invoices (brc_create_sales_invoice_gen_ref) require each productTrans line to include its own acEntries analysis allocation. Line net/VAT/gross reconciliation, analysis allocation totals, header totals, and required product/VAT/analysis fields are validated before posting; failures return structured field-level errors.

  • note defaults to the customer name unless a note is explicitly provided, and is never set to a product name.

  • deliveryTo is included only when a delivery address is explicitly provided.

  • Plain-language results. Technical HTTP status codes are translated into plain-language messages for users.


Architecture

Two entry points share one tool registry:

Entry

File

Transport

Use case

Local stdio

src/index.ts

StdioServerTransport

An MCP client spawns node build/index.js

Hosted HTTP

src/remote.ts

Streamable HTTP on /mcp

npm run start — one MCP server per session

Key shared modules:

  • src/server.ts — MCP server factory and stdio singleton

  • src/register_all_tools.ts — central tool registration; skips tools whose skill group is disabled, and wraps write tools with routing and preview-before-posting/confirmation handling

  • src/config/server_config.ts — deployment skill gating driven by the BRC_ALLOW_* flags

  • src/config/mcp_config.ts — MCP server instructions, connection-safety rules, help-answer rules, and connectionRef presentation rules

  • src/routing/ — request classification and short-lived routeToken issuance/validation for transactional tools

  • src/shared.ts — Big Red Cloud HTTP client, session-scoped connections, audit log, and helpers

  • src/read_connection_metadata.ts — connection status metadata echoed on tool responses (including activeConnectionRef for hosted clients)

  • src/auth/connection_presentation.ts — user-facing TTL wording and assistant presentation hints

  • src/auth/credential_validation.ts — BRC read validation before storing company connection credentials

  • src/guards/ — transaction, reference, VAT category, product line, and write-confirmation safety checks

  • src/auth/ — secure connection flow, connection store (memory or Cosmos), connection page, and credential persistence

  • src/telemetry/ — anonymous client/session identity and platform detection for hosted operational telemetry

  • src/brc-edu/ — Freshdesk articles, customer documentation, webinar indexes, screenshots, and unified help search

  • src/edu/ — shared help-resource loading, enrichment, workbook parsing, and storage configuration

  • src/tools/edu/ — read-only help tools

  • src/tools/routing/ — request-routing tool registration

Domain logic lives under src/tools/, with generic create/update/delete/list/batch helpers in src/tools/general/.

Technology

  • TypeScript / Node.js (ES modules)

  • @modelcontextprotocol/sdk

  • Zod for tool input validation

  • Express + Streamable HTTP for hosted mode


Requirements

  • Use a current LTS version of Node.js.

  • npm (bundled with Node.js).


Installation

npm install
npm run build

If a .env.example file is provided, copy it to .env and adjust the values:

cp .env.example .env

Never commit your .env file or any real credentials.


Running

Hosted HTTP server:

npm run start
# Serves the MCP endpoint at http://localhost:3000/mcp

Local stdio server:

npm run start:local

Opening the HTTP endpoint in a browser without an MCP session returns an error — that is expected.

MCP client configuration

Local stdio (the client spawns the process):

{
  "mcpServers": {
    "red-mcp-server": {
      "command": "node",
      "args": ["build/index.js"],
      "env": {
        "BRC_API_BASE_URL": "https://app.bigredcloud.com/api"
      }
    }
  }
}

Hosted HTTP (production):

For the hosted Big Red Cloud Red service, customers should use:

https://red.bigredcloud.com/mcp

{
  "mcpServers": {
    "red-mcp-server": {
      "url": "https://red.bigredcloud.com/mcp"
    }
  }
}

Hosted HTTP (local development):

{
  "mcpServers": {
    "red-mcp-server": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

Development and regression testing

Script

Command

Purpose

Build

npm run build

Compile TypeScript to build/

Dev HTTP

npm run dev

Run the HTTP server from source with tsx

Dev stdio

npm run dev:local

Run the stdio server from source with tsx

All tests

npm test

Build, then run the full test suite

Unit tests

npm run test:unit

Unit tests only

Security tests

npm run test:security

Security-focused tests

Config tests

npm run test:config

Deployment/config tests

Integration tests

npm run test:integration

Integration tests

Production audit

npm run audit:prod

npm audit for production dependencies

Tests cover the safety guards described above, including sales invoice checks, transaction date validation, the secure connection flow (CSV validation, partial confirm, credential invalidation), connectionRef presentation rules, request routing, TTL wording, and response wording.


Environment variables

Configure the server with environment variables (for example via a .env file). The values below are examples only and must never contain real secrets or be committed.

# Big Red Cloud API base URL
BRC_API_BASE_URL=https://app.bigredcloud.com/api

# HTTP port for hosted mode
PORT=3000

# Public URL for the secure /connect page (required for hosted deployments)
BRC_PUBLIC_BASE_URL=https://your-mcp-host.example.com

# MCP session binding lifetime (minutes)
BRC_MCP_SESSION_TTL_MINUTES=120

# How long stored company credentials stay valid (minutes).
# Drives credential expiry and user-facing duration wording (e.g. 240 → "about 4 hours").
BRC_API_KEY_TTL_MINUTES=120

# Rate limiting (requests per minute per IP)
BRC_RATE_LIMIT_REQUESTS_PER_MINUTE=300

# SHA-256 hashes of blocked API keys, comma separated (hashes only, never raw keys)
BRC_API_KEY_BLACKLIST_SHA256=

# Hosted connection persistence (optional)
# memory = in-process; cosmos = shared store for multi-instance HTTP
RED_CONNECT_CONNECTION_STORE=memory
RED_CONNECT_COSMOS_CONNECTION_STRING=
RED_CONNECT_COSMOS_DATABASE=red-connect
RED_CONNECT_COSMOS_CONTAINER=connections
RED_CONNECT_ENCRYPTION_KEY=

# Set automatically when running the HTTP server (remote.ts)
RED_CONNECT_HTTP_MODE=true

Deployment skill flags control which categories of tools are registered. When a flag is off, tools in that skill group are skipped at registration and do not appear to MCP clients:

BRC_ALLOW_READ_SKILLS=true
BRC_ALLOW_UPDATE_SKILLS=true
BRC_ALLOW_DELETE_SKILLS=true
BRC_ALLOW_EMAIL_SKILLS=true
BRC_ALLOW_BATCH_SKILLS=true
# Operator-only diagnostics; keep off for normal deployments
BRC_ALLOW_DEV_MODE=false

You can review the active customer-facing capability summary at runtime with the brc_get_deployment_policy tool (plain-language availability of read, create/change, delete, email, and batch — not a full tool catalogue).


Connecting a company

Customers should connect companies through the secure Red connection page. Company connection credentials must not be sent through chat — they are entered only on the secure Red connection page, not in the chat window.

Customers can get or regenerate their company API keys in Big Red Cloud under Administration → API Keys.

The flow is:

  1. Ask the assistant to start a company connection. It returns a secure connection page link.

  2. On that page, enter a single company or upload a CSV for several companies at once. Company connection credentials are entered on the secure page, not in chat.

  3. The server validates each credential against Big Red Cloud before storing it. Credentials that fail validation are not saved.

  4. Return to the chat and provide the confirmation code shown on the success page.

  5. After confirm, the assistant reports which companies connected and which failed (if any). Invalid credentials appear in failedCompanies immediately — you do not need to run a lookup first to discover a bad key.

Connection links are one-time use. Connected companies stay available for about the configured session duration (BRC_API_KEY_TTL_MINUTES, for example 240 minutes → about four hours), unless you disconnect or the connection expires.

Hosted HTTP and connectionRef

In hosted HTTP mode (for example Mistral/Vibe), brc_confirm_company_connection returns an opaque connectionRef in the tool JSON. MCP clients should preserve and silently reuse connectionRef / activeConnectionRef on later tool calls when the platform rotates session IDs. Connection persistence survives MCP session rotation where supported. This is an implementation detail for the client — assistants should not show connectionRef or redconn_… values to end users. Tool responses include assistantInstruction / presentationHint fields to reinforce that rule.

Helper tools:

  • List connected companies in the session

  • Clear one company connection

  • Clear all company connections


Privacy-safe telemetry

On hosted deployments, Red may record anonymous operational telemetry so operators can understand approximate usage. Typical dimensions include anonymous client and connection-session identifiers, detected platform, deployment environment, tool name, and connected-company count.

Telemetry does not include API keys, credentials, raw connectionRef values, authorisation headers, request bodies, or invoice/customer/supplier payloads. Failed Big Red Cloud calls may include safe identifiers such as company_id or record_id. These metrics are not verified Big Red Cloud user identities (OAuth user identity is not implemented).

Details for operators and developers: docs/TELEMETRY.md.


Tool coverage

Red exposes a focused set of MCP tools, grouped by domain. Exact tool names and their endpoint mappings live in the source code under src/tools/ and are summarised for developers in docs/TOOLS.md.

  • Company setup and readiness — company setup configuration, financial year, processing settings, readiness checks, transaction date validation, and account-history document-type resolution.

  • Customers and suppliers — list/get/create/update/delete plus opening balances and account transactions.

  • Products and sales reps — list/get/create/update/delete and product types.

  • Sales documents — quotes, sales invoices, sales credit notes, and sales entries, including generated-reference variants and generating an invoice from a quote.

  • Purchases and payments — purchases, payments, cash payments, cash receipts, and bank accounts.

  • VAT and analysis lookups — VAT rates, VAT categories, VAT types, analysis categories, accounts, and related reference data.

  • Nominal reports — nominal account listings and grouped/multi-company nominal reporting.

  • Audit and session — session connection management, the session audit log, and the downloadable support diagnostic.

  • Help and training — Freshdesk articles, customer documentation, recorded webinars, upcoming webinars, and screenshot links through read-only help tools. No company connection is required.

Batch variants exist for the main create workflows and apply the same safety checks as the single-record tools.

Company readiness check

brc_company_readiness_check is a read-only overall health check for a connected company. Overall statuses are:

  • ready

  • ready_with_warnings

  • not_ready

  • connection_problem

It reviews connection status plus relevant setup such as financial year, transaction date position, active Sales VAT rates, Sales Analysis categories, products, and sales representatives. Missing suppliers is reported as a purchase-setup warning and does not block sales-invoice readiness. Manual reference settings are treated as a warning / preflight consideration, not necessarily a blocker.

For a specific VAT-sensitive workflow (sales invoice, purchase, cash receipt, statement), use brc_check_transaction_settings instead — that tool checks one workflow’s processing settings, while readiness scores overall company readiness. Narrower helpers such as brc_validate_transaction_date, brc_get_company_processing_settings, and brc_get_company_reference_settings remain available for focused lookups.

Support diagnostics

brc_list_audit_log shows Red write activity from the current session for currently connected companies. Read-only lookups are not treated as completed changes.

brc_generate_support_report creates a downloadable plain-text diagnostic for one connected company at a time. If several companies were used, generate a separate report for each. Reports include success/failure and correlation information useful to support. They exclude credentials, API keys, tokens and connection references. Generating a report is read-only and does not write to Big Red Cloud.

Developer details: docs/TOOLS.md and docs/TELEMETRY.md.

Previous-financial-year behaviour

A transaction date outside the current financial year is a warning, not an automatic statement that the operation is impossible. After normal preview and confirmation, Red attempts only the supported action. If Big Red Cloud rejects the action or date, Red reports the actual response. Not every historical transaction can be changed.

Transaction improvements

  • Quote confirmation previews, validation and quote-to-invoice generation (brc_generate_sales_invoice_from_quote).

  • Cash-receipt VAT handling and ledger preservation on updates.

  • Supported cash-payment fields can be corrected on the existing record through the update workflow.

  • Account-history lines should be resolved to the correct document type (brc_resolve_book_transaction_type) before a document-specific lookup or change.

  • Undo, reverse and correct requests are treated as planning first — never as automatic permission to post another transaction.


Help and training resources

Red includes read-only MCP tools for Big Red Cloud help and training questions. They do not require a connected company.

Typical capabilities:

  • search official articles, customer documentation, recorded webinars, and upcoming webinars;

  • load full details for a selected resource, including step-by-step guidance and relevant screenshot links where available;

  • answer reserved help-style questions (including red-help / /red-help style commands) through the help pipeline.

Help answers may include:

  • official Freshdesk articles;

  • customer documentation;

  • relevant screenshots;

  • recorded YouTube training videos;

  • upcoming webinar links.

Help-resource indexes are supplied by the deployment operator. The public repository does not include Big Red Cloud’s internal content-management or resource-upload workflow.


Known limitations

  • Some features depend on how the company is configured in Big Red Cloud.

  • Email sending and some bank write operations may require additional tenant configuration and may be disabled by deployment flags.

  • Generated-reference behaviour can depend on Big Red Cloud tenant settings, and some generated-document endpoints may apply the tenant's current transaction date. A date outside the current financial year is a warning, not an automatic refusal; the Big Red Cloud response is authoritative.

  • Tool availability may vary by deployment policy (disabled skill groups are not registered).

  • Anonymous telemetry counts approximate clients (for example browser/device cookies), not verified individual people.

  • Platform detection may be unknown when a client does not provide enough identifying information.

  • Officially supported customer platforms are ChatGPT, Claude, and Mistral/Vibe; other MCP clients are not claimed as supported platforms.


Maintainers

This project is maintained by the Big Red Cloud software development team.


Status

Red is in BETA. Red is an open-source MCP integration for Big Red Cloud and is under active development. Tool availability and behaviour may change between releases, and some capabilities are gated by deployment policy.


License

This project is licensed under the Apache License 2.0. See LICENSE for details.


Support and responsible disclosure

If you believe you have found a security issue, please report it to Big Red Cloud's support team.

Available Tools

154 tools
brc_batch_cash_paymentsAInspect

Processes a batch of BRC cash payments. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description discloses the two-phase commit process, the need for explicit counterparty confirmation, and the 5-item limit. It does not explicitly state that the tool performs writes or mention error handling, but the workflow is well explained.

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

Conciseness4/5

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

The description is concise with five sentences, each adding value. It is front-loaded with the main action. Could be improved with bullet points or clearer separation of steps, but effective as is.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 essential aspects: batch limits, preview confirmation, counterparty confirmation. Lacks details on error handling or partial success, but for a batch tool with no output schema, it provides sufficient context for an agent to use correctly.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds critical context for confirmWrite, confirmCounterpartyExplicit, and priceBasis beyond the schema descriptions. The items parameter is merely restated, but overall the description enhances understanding.

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

Purpose5/5

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

The description clearly states it processes a batch of BRC cash payments with a maximum of 5 items, distinguishing it from single-item create tools and other batch tools for different entities.

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

Usage Guidelines5/5

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

Provides explicit step-by-step workflow: first call without confirmWrite returns a preview, then retry with confirmWrite: true only after user confirmation. Also mandates confirmCounterpartyExplicit after explicit naming, and warns against preflight or reused drafts.

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

brc_batch_cash_receiptsAInspect

Processes a batch of BRC cash receipts. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses the two-call confirmation flow, maximum 5 items, and the requirement for explicit counterparty confirmation. It also warns against reusing counterparties from earlier drafts. This is thorough for a write operation, though it does not mention idempotency or error behavior.

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

Conciseness4/5

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

The description is a single paragraph that packs essential information without redundancy. It front-loads the purpose and limit. While it could be broken into bullet points for easier scanning, it remains concise and every sentence adds value.

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

Completeness4/5

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

Given no output schema and the tool's complexity (multi-step confirmation), the description adequately covers the interaction flow, preflight request, and confirmation flags. It does not describe return values or error scenarios, but for a batch tool with good annotations this is acceptable.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds significant value by explaining the two-call pattern for confirmWrite, the condition for confirmCounterpartyExplicit, and the net vs gross distinction for priceBasis. It also clarifies the items parameter as 'batch items to process'. This goes beyond the schema descriptions.

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

Purpose5/5

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

The description explicitly states 'Processes a batch of BRC cash receipts' with a clear verb and resource. It distinguishes itself from sibling tools like 'brc_create_cash_receipt' by being a batch operation, and from other batch tools by specifying 'cash receipts'.

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

Usage Guidelines4/5

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

Provides a detailed step-by-step usage flow: first call without confirmWrite, show preview, get user confirmation, then retry with confirmWrite. Also specifies when to set confirmCounterpartyExplicit. However, it does not explicitly mention that for a single receipt the user should use brc_create_cash_receipt instead, which would improve guidance.

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

brc_batch_customersAInspect

Processes a batch of customers. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.

TDQS

A4.3/5.0
Behavior3/5

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

Describes the confirmation flow and batch limit but does not specify whether 'processes' means create, update, or both. No annotations provided, so description carries full burden; missing side-effect clarity.

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

Conciseness5/5

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

Four sentences, front-loaded with purpose and limit, then concise workflow instructions. Every sentence adds essential information without redundancy.

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

Completeness3/5

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

Covers confirmation workflow well but lacks description of output (e.g., preview format, response structure) and doesn't clarify mutation type (create vs update). Given complexity of batch tools, more detail needed.

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

Parameters4/5

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

Schema coverage is 100% with parameter descriptions. Description adds value by explaining the confirmWrite two-step flow beyond schema, though other parameters are not further elaborated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'Processes a batch of customers', distinguishing from sibling batch tools for other entities. Explicitly mentions batch size limit (5 items), making purpose precise.

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

Usage Guidelines5/5

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

Provides explicit instructions for the two-step confirmation workflow: first call without confirmWrite returns preview, user must confirm explicitly. Warns that passing preflight is not confirmation, preventing misuse.

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

brc_batch_paymentsAInspect

Processes a batch of BRC payments. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.5/5.0
Behavior5/5

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

No annotations are provided, so the description fully discloses behavioral traits. It reveals the two-phase commit: first call returns a preview without writing, then requires explicit user confirmation. It also details the counterparty confirmation requirement and batch size limit. This is thorough for a mutation tool.

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

Conciseness4/5

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

The description is well-structured and front-loaded with the main purpose. It is moderately long but every sentence adds value. Minor redundancy with schema descriptions could be trimmed, but overall it is clear and efficient.

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

Completeness4/5

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

Given the lack of an output schema, the description mentions that the first call returns confirmation_required and a payload preview, instructing to show a plain-English draft. It covers the essential workflow and constraints. It could be more explicit about error scenarios or the structure of the preview, but it is sufficient for correct agent usage.

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

Parameters3/5

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

The input schema has 100% description coverage for all 6 parameters. The description largely restates or summarizes the schema descriptions (e.g., confirmWrite rules). It does not add significant new meaning 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 begins by clearly stating the tool processes a batch of BRC payments. This distinguishes it from sibling batch tools like brc_batch_purchases or brc_batch_cash_receipts that handle different entities. The verb 'process' combined with 'BRC payments' is specific and unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit step-by-step instructions: first call without confirmWrite yields a preview, then retry with confirmWrite only after explicit user confirmation. It also mandates confirmCounterpartyExplicit when the counterparty is explicitly named. It warns against misusing confirmWrite (e.g., never on first call) and against reusing counterparty from earlier drafts. This is comprehensive guidance for correct usage.

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

brc_batch_productsAInspect

Processes a batch of products. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, but the description discloses the two-step confirmation workflow, including the return of a 'confirmation_required' response and a payload preview. It also clarifies that passing preflight is not confirmation. However, it does not detail error conditions or side effects beyond the confirmation flow.

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

Conciseness5/5

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

The description is concise (three sentences) and front-loaded with the core purpose. Every sentence provides essential information without redundancy.

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

Completeness4/5

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

The description covers the confirmation workflow and key parameters. However, it lacks details about the output of the second call (e.g., success response or errors). Given no output schema, this would be helpful for the agent to understand the result.

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

Parameters5/5

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

Schema coverage is 100% with descriptions for all parameters. The description adds significant context beyond the schema: it explains the confirmWrite parameter's required usage pattern, the confirmCrAnalysisCategory parameter's purpose for CR analysis account confirmation, and the priceBasis parameter's condition and meaning (net vs gross).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Processes a batch of products' and specifies the maximum batch size (5 items). It distinguishes itself from sibling tools like brc_create_product by handling batches and requiring a confirmation step.

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

Usage Guidelines5/5

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

Explicitly instructs the agent to first call without confirmWrite to get a preview, then retry with confirmWrite: true only after explicit user confirmation. Warns against setting confirmWrite on the first call or assuming preflight is confirmation.

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

brc_batch_purchasesAInspect

Processes a batch of purchases. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A5/5.0
Behavior5/5

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

Since no annotations are provided, the description fully discloses the two-phase confirmation behavior, the need for explicit user confirmation for writing and counterparty, and warns against reusing counterparties from earlier drafts. This goes beyond schema details.

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

Conciseness5/5

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

The description is concise yet comprehensive, with every sentence providing essential information. It is front-loaded with the main action and efficiently covers all critical behavioral aspects without redundancy.

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

Completeness5/5

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

Given the tool's complexity (6 parameters, 2 required, no output schema), the description thoroughly explains the entire workflow, including batch limits, confirmation flags, counterparty requirements, and the draft preview step, making it complete for agent use.

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

Parameters5/5

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

The schema has 100% description coverage for all 6 parameters, but the description adds workflow context for confirmWrite and confirmCounterpartyExplicit, explaining the two-step process and the requirement for explicit user confirmation, enhancing understanding beyond the schema.

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

Purpose5/5

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

The description clearly states 'Processes a batch of purchases' with a specific verb and resource, and distinguishes it from sibling batch tools like brc_batch_sales_invoices by mentioning purchases and the two-step confirmation workflow.

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

Usage Guidelines5/5

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

Explicitly instructs the agent to first call without confirmWrite: true to get a preview, then retry with confirmWrite: true only after user confirmation. Also requires confirmCounterpartyExplicit: true once the user explicitly names the counterparty, providing clear when-to-use and when-not-to-use guidance.

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

brc_batch_quotesAInspect

Processes a batch of quotes. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It details the confirmation workflow, maximum batch size (5), preflight behavior, and explicit user confirmation requirements for both write and counterparty. Does not cover error handling or idempotency, but covers key behavioral expectations.

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

Conciseness5/5

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

Single dense paragraph front-loads purpose, then concisely lists constraints with no redundant sentences. All information is directly useful for an agent deciding to invoke the tool.

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

Completeness4/5

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

Given complexity (6 params, 2 required, workflow) and no output schema, the description covers the main flow and constraints. Mentions return value (confirmation_required + preview) but doesn't detail response format or error cases. Still comprehensive enough for most agent decisions.

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

Parameters5/5

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

Schema coverage is 100%, baseline 3. Description adds significant value: explains the workflow for confirmWrite (two-step), confirmCounterpartyExplicit (requires explicit user naming in current conversation), and priceBasis (context for gross/net). Goes well beyond schema descriptions, especially for confirmWrite and confirmCounterpartyExplicit.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Processes a batch of quotes,' specifying the action (processes), resource (quotes), and batch context. It distinguishes from sibling tools like brc_create_quote (single quote) and other batch tools (e.g., brc_batch_sales_invoices) by focusing on quotes.

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

Usage Guidelines4/5

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

Explicitly describes the two-step flow: first call without confirmWrite returns a preview, then retry with confirmWrite after user confirmation. Provides when-not-to-use for confirmWrite and confirmCounterpartyExplicit. No direct comparison to alternatives like brc_create_quote for single quotes, but the batch focus is implied.

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

brc_batch_sales_credit_notesAInspect

Processes a batch of sales credit notes. Do not invent productId values and do not use productId 0 or 1 as placeholders. productId 0 and 1 are treated as placeholders and are blocked at runtime before the draft preview and before posting. If a product line is needed, first call brc_list_products and use a real product from the connected company. If no suitable product exists, ask the user whether to create/select a product, or use a service/non-product line only if the endpoint supports it. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, description fully discloses behavior: runtime blocking of placeholder productIds, preflight return of confirmation_required and payload preview, requirement for explicit user confirmation, and constraints on counterparty reuse. Very transparent.

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?

Single paragraph is effective and front-loaded, but could be slightly improved with bullet points or section breaks for easier scanning. No redundant sentences, every sentence adds value.

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

Completeness5/5

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

Despite no output schema and nested items, description covers all necessary context: workflow, validation rules, parameter usage, and expected responses. Leaves no obvious gaps for typical usage scenarios.

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

Parameters5/5

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

Schema coverage is 100%, but description adds significant meaning: explains when and how to set confirmWrite and confirmCounterpartyExplicit, details priceBasis usage for gross/net, and clarifies the confirmCrAnalysisCategory parameter context. Adds value beyond schema.

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

Purpose5/5

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

The description clearly states the tool processes a batch of sales credit notes, with specific verb and resource. It distinguishes from siblings by detailing unique validation rules and confirmation workflow, not seen in other tool descriptions.

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

Usage Guidelines5/5

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

Provides explicit guidance: use brc_list_products to get real productIds, do not invent or use placeholder IDs, maximum 5 items, two-stage confirmWrite process with preflight, and counterparty confirmation requirements. Clearly differentiates from alternatives.

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

brc_batch_sales_entriesAInspect

Processes a batch of sales entries. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the two-step confirmation process, the need for explicit counterparty confirmation, and the maximum batch size. However, it does not detail the exact system behavior (e.g., what validation occurs, error handling, or side effects of the write operation).

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

Conciseness5/5

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

The description is three dense sentences that front-load the purpose and constraints. Every sentence provides essential guidance without extraneous information, achieving high efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 workflow (confirmation flow, counterparty check, max items) well. It lacks details on error handling or the structure of the 'payload preview' and no output schema is provided, but the main usage scenarios are adequately addressed.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds significant behavioral context: it explains the two-step usage of confirmWrite, the condition for confirmCounterpartyExplicit, and the meaning of priceBasis. This goes beyond the schema's descriptions.

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

Purpose5/5

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

The description clearly states 'Processes a batch of sales entries' and specifies a maximum of 5 items per batch. This distinguishes it from sibling tools like brc_batch_sales_invoices or brc_create_sales_entry, which handle different record types or single entries.

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

Usage Guidelines4/5

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

The description provides explicit step-by-step instructions: first call without confirmWrite returns a preview, then retry with confirmWrite after user confirmation. It also mandates confirmCounterpartyExplicit when the user names the counterparty. However, it does not explicitly contrast with alternatives like single-entry creation.

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

brc_batch_sales_invoicesAInspect

Processes a batch of sales invoices. Batch sales invoices apply the same safety checks as single sales invoices: productId 0/1 placeholder blocking before draft and posting; Sales VAT category validation before draft and posting; Gross Price Entry priceBasis handling; CR analysis category confirmation; and counterparty confirmation covering all listed customers. If the batch includes multiple customers, confirming means confirming all listed customers, not just one. Set confirmCrAnalysisCategory=true at batch level only after the user confirms CR sales analysis account codes are intentional. Per item, the BRC "Note" field (JSON note) defaults to the customer name when omitted (never the product name), and the BRC "Delivery To" address (JSON deliveryTo) is only included when explicitly provided. Do not invent productId values and do not use productId 0 or 1 as placeholders. productId 0 and 1 are treated as placeholders and are blocked at runtime before the draft preview and before posting. If a product line is needed, first call brc_list_products and use a real product from the connected company. If no suitable product exists, ask the user whether to create/select a product, or use a service/non-product line only if the endpoint supports it. Sales invoices must use Sales VAT rates. Purchase/non-Sales VAT rates are blocked before draft and before posting, even if the VAT percentage matches. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.6/5.0
Behavior5/5

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

No annotations are provided, so the description carries the full burden. It thoroughly discloses behaviors: safety checks, placeholder blocking, VAT validation, priceBasis handling, CR analysis category confirmation, counterparty confirmation, note defaults, deliveryTo optionality, max items, and preflight not being confirmation.

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 lengthy but well-structured, front-loaded with the purpose, and each sentence adds value. It could be more concise by grouping related rules, but given the complexity, it is appropriately detailed without fluff.

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

Completeness4/5

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

The description covers most behaviors for a batch tool with complex rules, including the confirmation flow and blocking behaviors. It lacks explicit mention of the output after success, but that is partially inferred. With no output schema, it is fairly complete.

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

Parameters5/5

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

Schema coverage is 100%, yet the description adds significant meaning beyond the schema. It explains item-level fields (note, deliveryTo), the interplay between confirmWrite, confirmCrAnalysisCategory, and confirmCounterpartyExplicit, and provides context for priceBasis and companyName.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Processes a batch of sales invoices', which is a specific verb+resource. It distinguishes from siblings like 'brc_create_sales_invoice' (single) and 'brc_batch_sales_credit_notes' by mentioning batch-specific behaviors such as multiple customer confirmation and max items.

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

Usage Guidelines4/5

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

The description provides explicit usage guidelines, including the confirmation flow (first call without confirmWrite, then with after user confirmation), maximum 5 items, and prerequisites like calling brc_list_products. It does not explicitly compare with other batch tools but clearly implies when to use this batch version.

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

brc_batch_sales_repsAInspect

Processes a batch of sales reps. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.

TDQS

A4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the two-step confirmation, max items, and that preflight is not confirmation. However, it omits details on final output after confirmWrite, error handling, idempotency, and side effects.

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

Conciseness4/5

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

Two sentences cover purpose and workflow efficiently. Information is front-loaded: first sentence states purpose, second details the confirmation process. Could be improved with bullet points for clarity, but no wasted words.

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?

Covers the core batch processing and confirmation flow. However, lacks information about return values (no output schema), error scenarios, or what happens after successful confirmWrite. More details on the final result would improve completeness.

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

Parameters4/5

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

Schema coverage is 100% so baseline is 3. The description adds value by explaining the confirmWrite workflow and preflight step, and clarifying that priceBasis applies to all items. This goes beyond the schema's individual 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 clearly states the tool processes a batch of sales reps, with a specific verb and resource. It distinguishes from sibling batch tools (e.g., customers, products) by naming 'sales reps' directly. The two-step confirmation workflow is also explained.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 explicit guidance on the confirmation workflow: first call without confirmWrite returns preview, second with confirmWrite only after user confirmation. It mentions max batch size and that preflight is not confirmation. However, it does not explicitly exclude scenarios or compare to alternatives.

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

brc_batch_suppliersAInspect

Processes a batch of suppliers. Maximum 5 items per batch request. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 5 items per request.
priceBasisNoApplies to every sales invoice/credit note item in this batch. Required when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoApplies to every sales document item in this batch. Set true only after the user confirms a CR (customer) sales analysis account code is intentional for these product lines.

TDQS

A4.4/5.0
Behavior4/5

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

Without annotations, the description fully discloses the preflight/confirmation behavior, maximum items, and the requirement for explicit user confirmation. However, it does not describe error handling, side effects, or the nature of the return value beyond mentioning confirmation_required and preview.

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

Conciseness5/5

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

Four sentences, front-loaded with purpose, no redundancy. Every sentence adds essential guidance (limit, confirmation workflow, non-confirmation clarification).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complexity of batch processing with a preflight confirmation workflow and no output schema, the description adequately conveys the core behavior. It covers the confirmation protocol and parameter semantics. Slightly lacking on what the tool returns after successful write, but schema description fills some gaps.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds significant value by explaining the workflow around confirmWrite (two-step process) and confirmCrAnalysisCategory (intentional CR account). It also clarifies priceBasis for VAT-inclusive/exclusive. This goes beyond schema descriptions.

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

Purpose5/5

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

Clearly states the tool processes a batch of suppliers with a specific constraint (max 5 items). Distinguishes from sibling batch tools and single supplier creation tools through naming and context.

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

Usage Guidelines4/5

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

Explicitly describes the two-step confirmation process: first call without confirmWrite, show plain-English draft, then retry with confirmWrite after explicit user confirmation. Provides critical guidance on what constitutes confirmation ('passing preflight is not confirmation'). Does not explicitly state when to use alternative tools like brc_create_supplier for single suppliers.

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

brc_check_transaction_settingsAInspect

Checks BRC company processing settings before a VAT-sensitive or payment-terms-sensitive transaction workflow. Returns warnings that should be shown before creating or changing records.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowYesThe workflow to check against the company processing settings.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.5/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the behavioral burden. It states the tool returns warnings but does not specify the nature of warnings, side effects (none expected), or any other behavioral traits like rate limits or authentication needs. Acceptable but lacks depth.

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

Conciseness5/5

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

The description is two concise sentences, front-loads the purpose, and contains no redundant information. Every sentence contributes value.

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 2-param tool with no output schema, the description covers the main purpose but omits the return format of the warnings. It could be more complete by specifying the structure or content of the warnings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 only an example for companyName ('YOUR-COMPANY-NAME'), which adds marginal value 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 clearly states the tool checks BRC company processing settings before VAT-sensitive or payment-terms-sensitive workflows, and returns warnings for pre-validation. It differentiates from sibling tools by specifying the context (VAT/payment-terms sensitive), though not perfectly distinct from other check 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 before creating or changing records in specific workflows, but does not explicitly state when not to use it or provide guidance on alternatives like brc_company_readiness_check. No explicit exclusions or comparisons.

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

brc_clear_all_company_api_keysAInspect

Clears all connection credentials for all company contexts from MCP server memory.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior2/5

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

No annotations provided; description only states action and scope. Does not disclose side effects, reversibility, authorization requirements, or what 'MCP server memory' means. Lacks behavioral depth.

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

Conciseness5/5

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

Single, clear sentence with no unnecessary words. Front-loads key action and scope.

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

Completeness4/5

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

Sufficient for a parameterless tool; describes what is cleared and scope. No output schema, so return values not required. Could mention confirmation or reversibility, but overall adequate.

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

Parameters4/5

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

No parameters in schema (100% coverage). Baseline score of 4 for 0 parameters; description adds no param info since none exist.

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

Purpose5/5

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

Clearly states the verb 'clears', resource 'connection credentials for all company contexts', and location 'MCP server memory'. Differentiates from sibling brc_clear_company_api_key by specifying 'all company contexts'.

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?

Does not explicitly provide when to use or alternatives. The distinction from the singular clear tool is implied by name, but no explicit guidance on when to choose this over brc_clear_company_api_key.

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

brc_clear_audit_logAInspect

Clear the Red audit log for this MCP server session. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmClearNoMust be true to confirm that the session audit log should be cleared.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.9/5.0
Behavior5/5

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

Despite no annotations, the description fully discloses the destructive nature, the two-phase process (preview then confirm), and the necessity of user confirmation. Adds critical behavioral context.

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

Conciseness4/5

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

The description is clear and informative, though slightly verbose for a two-parameter tool. The step-by-step structure justifies the length for a destructive operation.

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

Completeness5/5

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

Given no output schema and two optional parameters, the description covers all necessary context: the preflight/preview behavior, the need for confirmation, and parameter usage. No gaps.

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

Parameters5/5

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

Schema coverage is 100% with descriptions, but the tool description adds significant semantics: explains the role of confirmWrite in the two-step confirmation flow and that confirmWrite must only be true after explicit user confirmation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Clear the Red audit log for this MCP server session,' specifying the action, resource, and scope. It distinguishes from sibling tools like brc_list_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 Guidelines5/5

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

Provides explicit step-by-step instructions: first call without confirmWrite to get preview, then retry after user confirmation. Explains that passing preflight is not confirmation and sets clear conditions for setting confirmWrite true.

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

brc_clear_company_api_keyAInspect

Clears the API key for a named company context from MCP server memory.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It states 'clears ... from MCP server memory' indicating a destructive action. However, it does not disclose side effects, authorization needs, reversibility, or impact on ongoing operations.

Agents need to know what a tool does to the world before calling it. Descriptions 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 of 12 words, front-loaded with the action verb. Every word is necessary, and it avoids any redundant or extraneous information.

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

Completeness4/5

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

For a simple one-parameter tool with no output schema, the description covers the essential purpose and context. It could hint at the return value (e.g., success/failure) or mention that it affects the current MCP session, but overall it is satisfactory.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameter already described in the schema. The tool description does not add additional meaning or usage guidance 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 uses the specific verb 'clears' and identifies the resource as 'API key for a named company context'. It clearly distinguishes from sibling tools like brc_clear_all_company_api_keys and brc_get_company_api_key_status.

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

Usage Guidelines3/5

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

The description implies usage for clearing a specific company's API key but does not explicitly state when to use this tool versus alternatives like brc_clear_all_company_api_keys. No exclusions or prerequisites are provided.

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

brc_close_quoteAInspect

Closes a BRC quote. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.4/5.0
Behavior4/5

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

Without annotations, the description fully explains the two-step behavior and the requirement for explicit user confirmation, adding significant value beyond a simple 'close' verb.

Agents need to know what a tool does to the world before calling it. Descriptions 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 with three sentences, front-loading the purpose, and every sentence earns its place by explaining the critical usage pattern.

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

Completeness4/5

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

Given no output schema, the description adequately explains the confirmation process and return of a preview. It could be improved by stating the final response for the second call, but it is largely sufficient.

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

Parameters4/5

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

Schema coverage is 100%, but the description adds crucial semantics for the confirmWrite parameter, detailing the required flow. This goes beyond the schema's basic 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 clearly states 'Closes a BRC quote' with a specific verb and resource. It distinguishes itself from sibling tools like brc_reopen_quote by focusing on the close action.

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

Usage Guidelines4/5

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

The description provides explicit instructions on the two-step confirmation process, including when to set confirmWrite: true and that preflight is not confirmation. It does not mention alternatives 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.

brc_company_readiness_checkAInspect

Checks whether a connected Big Red Cloud company appears ready for read-only and transaction workflows. Highlights financial-year, VAT and reference-data considerations.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It does not explicitly state that the tool is non-destructive, requires specific authentication, or has side effects. The description only hints at checking readiness but lacks explicit safety or behavioral details.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary purpose, and contains no redundant information. Every word serves a purpose.

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

Completeness4/5

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

For a simple tool with one parameter and no output schema, the description covers the essential function and considerations. However, it would benefit from mentioning the format of the output (e.g., a readiness status or list of issues) to be 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 coverage is 100% for the single parameter, and the schema description already provides clear guidance. The tool description does not add extra meaning beyond what the schema offers, so it meets the baseline of 3.

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

Purpose5/5

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

The description clearly states what the tool does: checks readiness for read-only and transaction workflows, and highlights specific considerations. It is distinct from sibling tools that perform batch operations, create/update, or other checks.

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 should be used before performing read-only and transaction workflows, but does not explicitly state when to use it over alternatives like brc_check_transaction_settings or other readiness tools. No exclusions or conditions are provided.

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

brc_confirm_company_connectionAInspect

Claims a completed secure Red connection code for the current MCP session. Use after the user has submitted the secure connection page and returns to this chat with the confirmation code shown on the success page (for example when the MCP session changed after opening the browser). Never exposes connection credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe connection code from the secure Red connection page success message.

TDQS

A4.1/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It adds the behavioral note 'Never exposes connection credentials', which is helpful but does not detail other behaviors (e.g., side effects, idempotency, permissions). The description is somewhat transparent but lacks depth.

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

Conciseness5/5

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

The description is three sentences, front-loaded with purpose, and every sentence adds value. No redundancy or wasted words.

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

Completeness5/5

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

For a simple tool with one parameter and no output schema, the description is complete. It explains the prerequisite (user submitted connection page), the trigger (confirmation code), and a safety note. No missing essential 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% and the parameter's own description already explains the code. The tool description adds context about when the code is obtained (from success page) but does not add new parameter meaning beyond the schema. 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 clearly states the tool claims a completed secure Red connection code for the current MCP session, specifying the verb 'Claims' and the resource (secure connection code). This distinguishes it from siblings like brc_start_company_connection, which likely initiates the process.

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

Usage Guidelines4/5

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

The description provides clear usage context: 'Use after the user has submitted the secure connection page and returns to this chat with the confirmation code shown on the success page'. It gives an example (MCP session changed after opening browser) but does not explicitly state when not to use or mention alternatives.

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

brc_create_accrualAInspect

Creates a new parent Accrual. The API accepts only the parent transaction shape and relies on shared logic to generate the reversing child transaction. Do not call with confirmWrite=true until the user has reviewed the draft and explicitly confirmed creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
totalYesAccrual total amount.
acCodeYesNominal account code, for example 4000.
procDateYesProcessing date, for example 2024-03-15T00:00:00.
entryDateYesEntry date, for example 2024-03-01T00:00:00.
referenceYesAccrual reference, for example ACC0001.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
firstDetailNoFirst detail text.
confirmWriteNoMust be true only after the user explicitly confirms creating this accrual.
secondDetailNoSecond detail text.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the burden. It discloses that the API accepts only the parent transaction and relies on shared logic for the reversing child, which is key behavioral insight. It also mentions the confirmation flow.

Agents need to know what a tool does to the world before 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: first defines purpose, second provides crucial usage guideline. No wasted words; each sentence adds value.

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

Completeness4/5

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

Given no output schema and no annotations, the description covers creation behavior and the critical confirmation step. It could mention return value, but it's not essential. The context of many sibling create tools makes the purpose 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%, so baseline is 3. The description adds meaning for confirmWrite (user confirmation requirement) but does not elaborate on other parameters beyond schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Creates a new parent Accrual' and explains the API's behavior of generating a reversing child transaction. This is specific and distinguishes from siblings like brc_update_accrual or brc_list_accruals.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents 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 warns not to call with confirmWrite=true until user confirmation, providing clear usage guidance. However, it does not compare to other tools for when to use this one vs. alternatives like brc_update_accrual.

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

brc_create_bank_accountAInspect

Creates a BRC bank account. Do not call this tool with confirmCreate=true until the user has reviewed a plain-English summary and explicitly confirmed creation. Required fields: acCode, details, lastChq, and nominalAcCode. categoryId is optional; BRC may create the Bank Payments category automatically when categoryId is omitted. nominalAcCode must reference an existing balance-sheet bank nominal account created in BRC setup.

ParametersJSON Schema
NameRequiredDescriptionDefault
acCodeNoBank account code, for example 1603.
addressNo
balanceNoOpening/current starting balance.
detailsNoBank account description/name.
lastChqNoLast cheque number, for example 000001.
payloadNoOptional raw bank account payload.
sortCodeNo
categoryIdNoBank Payments category type id from brc_list_category_types.
accountNameNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
accountNumberNo
confirmCreateNoMust be true only after the user explicitly confirms creation.
isDefaultBankNo
nominalAcCodeNoExisting linked nominal account code. This must already exist in Big Red Cloud and will be sent to the API as account.acCode.
creditorSchemeNo
bankFeedsSourceNo
businessIdentifierCodeNo
internationalBankAccountNumberNo

TDQS

A4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses automatic category creation when categoryId omitted, and requirement for nominalAcCode to exist. Does not cover authentication or response.

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?

Single paragraph of 4 sentences, concise and to the point. Could be slightly more structured (e.g., bullet points for required fields).

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

Completeness3/5

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

Given 18 parameters and no output schema, description covers core workflow and key constraints but lacks details on many parameters and return behavior. Sufficient for basic use but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 50%. Description highlights required fields (acCode, details, lastChq, nominalAcCode) and explains categoryId optionality, but many parameters (address, balance, sortCode, etc.) remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Creates a BRC bank account', which is a specific verb+resource. Sibling tools are distinct create operations for other entities, so no confusion.

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

Usage Guidelines4/5

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

Explicitly warns against calling with confirmCreate=true before user confirmation, and lists required fields. However, no mention of when not to use or alternatives.

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

brc_create_cash_paymentAInspect

Creates a BRC cash payment. Use supplierId + ledger for supplier payments, bankAccountId + lodgement for bank lodgements, or analysisCategoryId + accountCode for analysed expenses. Analysis categories must be from the Cash Payments book (CP01-CP03) and accountCode must match the category. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
totalYes
acCodeNoSupplier account code for ledger payments.
ledgerNoLedger amount; must equal total for supplier payments.
discountNo
procDateNoProcessing date in ISO format. Defaults to entryDate.
entryDateNoEntry date in ISO format. Defaults to today.
lodgementNoLodgement amount; must equal total when lodging to bank.
supplierIdNoSupplier id for ledger payments.
accountCodeNoAnalysis account code matching analysisCategoryId, for example CP01.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionNoAnalysis line description.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
bankAccountIdNoBank account id for lodgements.
bookTranTypeIdNoCash Payment book transaction type id.
bankAccountCodeNoBank account code for lodgements.
analysisCategoryIdNoCash Payments analysis category id (categoryTypeId 1391170).
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden. It explains the two-phase confirmation flow, constraints on analysis categories, and counterparty confirmation needs. However, it does not describe the final success response or potential errors, which is a gap for a creation tool.

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 relatively long but every sentence serves a purpose. It is front-loaded with the core purpose and usage patterns. Minor redundancy (e.g., 'Passing preflight is not confirmation' could be integrated) but overall well-structured.

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

Completeness4/5

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

Given the tool's complexity (18 parameters, three payment types, two-step confirmation), the description covers the essential workflow and constraints well. It lacks output schema details but mentions the preview response. Overall fairly complete for the complexity.

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

Parameters5/5

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

The description adds significant meaning beyond the input schema by explaining which parameter combinations to use for each payment type, the requirement that analysis categories be from CP01-CP03, and the semantics of confirmWrite and confirmCounterpartyExplicit. This is valuable given the tool's complexity.

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

Purpose5/5

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

The description clearly states it creates a BRC cash payment and distinguishes among three usage patterns (supplier payment, bank lodgement, analysed expenses). This differentiates it from sibling create tools like brc_create_cash_receipt and brc_create_sales_invoice.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use each parameter combination (supplierId+ledger, bankAccountId+lodgement, analysisCategoryId+accountCode). It also details the two-step confirmation workflow and counterparty confirmation requirement, giving clear direction on how to invoke the tool correctly and safely.

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

brc_create_cash_receiptAInspect

Creates a BRC cash receipt. Accepts either a raw payload object or common flat fields. entryDate/procDate default to today. VAT rate fields are only sent when the company's VAT on Cash Receipt setting is enabled. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
totalNo
acCodeNo
ledgerNo
detailsNo
payloadNo
discountNo
procDateNo
totalNetNo
totalVATNo
totalVatNo
acEntriesNo
entryDateNo
referenceNo
vatRateIdNo
vatTypeIdNo
customerIdNo
percentageNo
vatEntriesNo
accountCodeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionNo
unallocatedNo
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
customFieldsNo
vatPercentageNo
bookTranTypeIdNo
detailCollectionNo
analysisCategoryIdNo
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations, the description fully describes behavioral traits: two-step confirmation process, defaults for entryDate/procDate, conditional VAT fields, counterparty confirmation. No contradictions.

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

Conciseness4/5

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

Reasonably concise and front-loaded with main action. Contains useful details without excessive verbosity. Could be slightly tighter but well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 30 parameters and no output schema, description covers workflow and important constraints. Missing return value details beyond preflight. Fairly complete for usage 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 only 10%, so description should compensate. It explains confirmWrite, confirmCounterpartyExplicit, entryDate/procDate defaults, and VAT condition. However, many parameters (note, total, acCode, etc.) lack semantic description, leaving gaps.

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 it 'Creates a BRC cash receipt' with a specific verb and resource. It distinguishes from sibling create tools by specifying cash receipt, but does not explicitly compare to siblings like brc_create_cash_payment.

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

Usage Guidelines5/5

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

Provides detailed workflow: first call without confirmWrite for preview, then explicit user confirmation. Requires confirmCounterpartyExplicit for explicit counterparty confirmation. Notes conditional VAT fields based on company setting. Gives clear when-to-use instructions.

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

brc_create_customerAInspect

Creates a BRC customer using a raw BRC payload. Does not create or update opening balance transactions. If the user provides an opening balance, warn them that it must be entered directly in Big Red Cloud. Before creating, check whether the customer email appears to match the customer name; if it may be a mismatch, warn the user and ask for confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesRaw BRC-compatible payload for this endpoint.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description fully discloses key behaviors: no opening balance handling, preflight returns confirmation_required, email mismatch warning, and confirmation workflow. No contradictions. Missing auth or rate limit info, but these are not critical for basic usage.

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

Conciseness5/5

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

Extremely concise at ~100 words, no filler. Front-loaded with purpose. Every sentence provides essential information. Excellent structure.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 workflow, constraints (no opening balance), and preflight behavior. No output schema, but description mentions what first call returns. Could elaborate on payload structure, but schema covers that. Adequate for a create tool with moderate complexity.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds critical usage semantics for confirmWrite (workflow and when to set true) and clarifies payload as 'raw BRC payload'. This adds value beyond the schema.

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

Purpose5/5

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

The description clearly states the verb ('Creates') and resource ('BRC customer'). It distinguishes itself from sibling tools by explicitly noting what it does NOT do (opening balance transactions), which helps differentiate from other create tools.

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

Usage Guidelines4/5

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

Provides clear when-to-use guidance, including a detailed confirmation workflow (preflight, confirmWrite) and email mismatch check. Could be stronger on when to use alternatives, but the explicit workflow instructions serve as good usage guidance.

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

brc_create_nominal_journal_batchAInspect

Creates a new Nominal Journal Batch. The journal should contain balanced debit and credit lines. Do not call with confirmWrite=true until the user has reviewed the draft and explicitly confirmed creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
totalYesTotal journal amount.
procDateYesProcessing date, for example 2024-01-15T00:00:00.
entryDateYesEntry date, for example 2024-01-15T00:00:00.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms creating this Nominal Journal Batch.
bookTranTypeIdNoBook transaction type id. Nominal Journal Batch is usually 7.
accountTransactionsYesNominal journal account transaction lines. Debits and credits should balance.

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It discloses the creation action and the need for user confirmation, but does not specify permissions, side effects, or success response. The warning about confirmWrite is good, but more behavioral context (e.g., whether it automatically validates balance, if it can be undone) would improve transparency.

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

Conciseness5/5

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

The description is extremely concise with two sentences. The first sentence states the primary purpose, and the second adds critical usage guidance. No wasted words, and the structure is optimal for quick comprehension.

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

Completeness3/5

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

Given no output schema, the description should hint at return values or status. It does not explain what the response contains (e.g., batch ID). While the schema documents the parameters, the description lacks completeness regarding the result of the operation. The balance and confirmation advice are helpful, but overall it could be more comprehensive for a complex creation 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 baseline is 3. The description adds meaning beyond schema by stating that debit and credit lines must balance and that confirmWrite should only be true after user confirmation. This extra context for the parameters (especially confirmWrite and accountTransactions) elevates the score.

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

Purpose5/5

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

The description clearly states 'Creates a new Nominal Journal Batch' with a specific verb and resource, distinguishing it from siblings like update, delete, or list. It also adds essential constraints about balanced lines and confirmation flow.

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

Usage Guidelines4/5

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

The description provides explicit usage guidance: not to set confirmWrite=true until user confirms, and that journal lines must balance. It implies a two-step creation process. However, it does not compare this tool to potential alternatives for obtaining the same result, though the sibling set makes the purpose clear.

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

brc_create_paymentAInspect

Creates a BRC payment from the Payments book. Use supplierId for supplier payments, or analysisCategoryId + accountCode for analysed bank payments. Analysis categories must be from the bank's Payments book (BP01-BP06) and accountCode must match the category. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
totalYes
acCodeNoSupplier account code for supplier payments.
discountNo
procDateNoProcessing date in ISO format. Defaults to entryDate.
entryDateNoEntry date in ISO format. Defaults to today.
referenceNo
supplierIdNoSupplier id for supplier payments.
accountCodeNoAnalysis account code matching analysisCategoryId, for example BP01.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionNoAnalysis line description.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
bankAccountIdYes
bookTranTypeIdNoCheques Entry / Payments book transaction type id.
bankAccountCodeYes
analysisCategoryIdNoPayments book analysis category id for the selected bank.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.9/5.0
Behavior5/5

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

No annotations provided, so description carries full burden. It discloses the two-step creation process, that passing preflight is not confirmation, and the need for explicit counterparty confirmation. This makes the behavioral expectations clear.

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

Conciseness5/5

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

Single paragraph, front-loaded with purpose, then explains two paths and confirmation process. Every sentence is necessary and informative without being verbose.

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

Completeness4/5

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

For 17 parameters and no output schema, description covers usage well but lacks details about return values (e.g., what the payload preview contains, what a successful response includes). Slightly incomplete for a complex tool.

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

Parameters5/5

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

Adds meaning beyond schema: explains the relationship between supplierId and analysisCategoryId+accountCode, details confirmation parameters, and notes that analysis categories must be from BP01-BP06. Schema coverage is 65%, but description compensates well.

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

Purpose5/5

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

The description clearly states it creates a BRC payment from the Payments book, specifying the resource and action. It distinguishes between supplier payments and analysed bank payments, differentiating from sibling tools like brc_create_cash_payment and brc_create_prepayment.

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

Usage Guidelines5/5

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

Explicit guidelines are given: use supplierId for supplier payments or analysisCategoryId + accountCode for analysed bank payments. The two-step confirmation process is detailed, including not setting confirmWrite on the first call and requiring explicit user confirmation. Also explains confirmCounterpartyExplicit requirement.

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

brc_create_prepaymentAInspect

Creates a new parent Prepayment. The API accepts only the parent transaction shape and relies on shared logic to generate the reversing child transaction. Do not call with confirmWrite=true until the user has reviewed the draft and explicitly confirmed creation.

ParametersJSON Schema
NameRequiredDescriptionDefault
totalYesPrepayment total amount.
acCodeYesNominal account code, for example 4000.
procDateYesProcessing date, for example 2024-03-15T00:00:00.
entryDateYesEntry date, for example 2024-03-01T00:00:00.
referenceYesPrepayment reference, for example PRE0001.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
firstDetailNoFirst detail text.
confirmWriteNoMust be true only after the user explicitly confirms creating this prepayment.
secondDetailNoSecond detail text.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It discloses that the tool creates a parent Prepayment and relies on shared logic to generate a reversing child transaction. It also warns about the confirmWrite flag, giving important behavioral context beyond simple creation.

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

Conciseness5/5

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

Two sentences with no wasted words. The information is front-loaded and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complexity of creating a parent with an auto-generated child, the description and schema provide enough context for correct usage. No output schema exists, but description doesn't need to explain return values. The confirmWrite guidance fills a key 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 baseline is 3. The description adds semantic value for confirmWrite by explaining when to set it true, but for other parameters it adds no additional meaning beyond the schema descriptions.

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

Purpose5/5

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

The description clearly states it creates a parent Prepayment, specifying the verb and resource. It distinguishes from sibling tools like brc_delete_prepayment, brc_get_prepayment, and other create tools by focusing on the prepayment entity and its parent-child aspect.

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

Usage Guidelines4/5

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

The description provides a critical usage guideline: 'Do not call with confirmWrite=true until the user has reviewed the draft and explicitly confirmed creation.' It does not explicitly compare to alternatives, but the resource name differentiates from other create tools.

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

brc_create_productAInspect

Creates a BRC product using a raw BRC payload. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesRaw BRC-compatible payload for this endpoint.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description must disclose behavioral traits. It effectively reveals the two-step confirmation mechanism and that the first call is non-destructive but returns a preview. It does not mention idempotency, destructive potential beyond the preflight, or error conditions, but the preflight disclosure is strong.

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

Conciseness5/5

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

The description is extremely concise: two sentences plus a short warning. Every sentence adds essential information. The purpose is stated first, followed by the critical usage process. 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?

Given the complexity of the preflight workflow and no output schema, the description adequately covers the behavior: first call returns confirmation and preview, second call creates. It lacks detail on success response or error states, but for a create tool with clear preflight steps, it is fairly 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%, so baseline is 3. The description adds value for the confirmWrite parameter by reinforcing its usage in the preflight flow, but does not add semantic detail beyond the schema for payload or companyName. The guidance on confirmWrite is helpful but does not significantly raise the score.

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 it creates a BRC product using a raw BRC payload. The verb 'creates' and resource 'BRC product' are specific. However, it does not explicitly differentiate from sibling tools like brc_update_product or other create tools, relying on the name for distinction.

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

Usage Guidelines5/5

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

Provides explicit step-by-step guidance: first call without confirmWrite returns preview, then show draft to user, then retry with confirmWrite only after explicit confirmation. Also warns that passing preflight is not confirmation. This leaves no ambiguity about when and how to use the tool.

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

brc_create_purchaseAInspect

Creates a BRC purchase using structured MCP fields. Requires a reference when the company is configured for manual purchase references; otherwise prefer brc_create_purchase_gen_ref. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYesPurchase note.
acCodeYesSupplier account code, for example SUP001.
procDateYesProcessing date in ISO format.
entryDateYesEntry date in ISO format.
netAmountYesNet amount before VAT.
referenceNoRequired when the company is configured for manual purchase references.
vatRateIdYesVAT rate id.
supplierIdYesSupplier id, for example 26180406.
accountCodeYesNominal/account code.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionYesAnalysis line description.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
vatPercentageYesVAT percentage.
bookTranTypeIdYesPurchase book transaction type id.
analysisCategoryIdYesPurchases analysis category id.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.5/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It explains the two-phase commit behavior (preview then confirmation), clarifies that passing preflight is not confirmation, and requires explicit counterparty confirmation. It does not explicitly state the side effects (e.g., database creation), but the workflow details are sufficiently transparent. Could be slightly more explicit about success outputs.

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 appropriately sized for a complex tool with multi-step workflow. It front-loads the main purpose and key conditions, then structures the workflow. Every sentence serves a purpose, though it could be slightly more concise by combining some conditional statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 16 parameters (13 required) and no output schema, the description covers the essential workflow, confirmation steps, and counterparty confirmation. It does not explain return values or error handling, but for a creation tool with two-phase commit, the guidance is sufficiently complete to use the tool correctly.

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

Parameters4/5

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

Schema covers 100% of parameters with descriptions, but the description adds significant context for confirmWrite and confirmCounterpartyExplicit, explaining their workflow semantics. It also clarifies when reference is required. For other parameters like netAmount, schema descriptions suffice, but the tool's description adds value for the nuanced boolean params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Creates a BRC purchase using structured MCP fields', clearly stating the verb and resource. It also distinguishes from sibling tool brc_create_purchase_gen_ref by specifying when each should be used (manual reference vs auto-generated), ensuring differentiation.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (company configured for manual reference) and when to prefer brc_create_purchase_gen_ref. Provides a detailed multi-step workflow: first call without confirmWrite, then retry with confirmWrite only after explicit user confirmation. Also requires confirmCounterpartyExplicit after the user explicitly names or confirms the counterparty. This is clear and actionable guidance.

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

brc_create_purchase_gen_refAInspect

Creates a Purchases Book purchase with a generated reference using structured fields. Use when the company is configured for auto-generated purchase references. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
acCodeYes
procDateYes
entryDateYes
netAmountYes
vatRateIdYes
supplierIdYes
accountCodeYes
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionYes
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
vatPercentageYes
bookTranTypeIdYes
analysisCategoryIdYes
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, description carries full burden. Explains two-step confirmation process, preflight behavior, and counterparty confirmation requirement. Lacks error handling details but provides substantial behavioral context for a mutation tool.

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

Conciseness4/5

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

Description is front-loaded with purpose and usage. Well-structured with clear sentences. Slightly verbose but every part contributes to understanding the tool's behavior and requirements.

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?

Explains core workflow and confirmation requirements, but lacks return value details (e.g., structure of payload preview, error responses). No output schema, so description should cover this. Incomplete for a complex tool with 15 parameters.

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

Parameters3/5

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

Schema description coverage is only 20% (2 out of 15 parameters have descriptions in schema). Description adds meaning for confirmWrite and confirmCounterpartyExplicit by explaining when to set them, but provides no additional info for the other 12 parameters, partially compensating for low 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 'Creates a Purchases Book purchase with a generated reference using structured fields.' This specifies the verb (creates), resource (Purchases Book purchase), and differentiator (generated reference), distinguishing it from siblings like brc_create_purchase.

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

Usage Guidelines5/5

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

Explicitly states 'Use when the company is configured for auto-generated purchase references.' Provides detailed workflow: first call without confirmWrite, show draft, retry with confirmWrite only after explicit user confirmation. Also specifies confirmCounterpartyExplicit requirement, clearly differentiating from other tools.

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

brc_create_quoteAInspect

Creates a BRC quote using structured MCP fields. Requires a quote reference when quote references are manual or unknown. Do not use when Quotes reference setting is Unknown unless the user has provided a quote reference. Draft previews include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. Requires saleRepId and saleRepCode. Do not use default or demo sales rep values. If missing, list sales reps or ask the user to choose one before creating. Requires analysisCategoryId and accountCode from a Sales Analysis category on each product line. Do not default to CR01/Customer or the first listed category. Set confirmCrAnalysisCategory=true only after the user confirms a CR account code is intentional. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
acCodeYes
commentsYes
ddNumberNo
poNumberNo
procDateYes
quantityYes
tranNoteYes
companyIdNoOptional BRC company id used in quote payload. Defaults to previous test company id if omitted.
entryDateYes
productIdYes
referenceNoRequired when quote references are manual, or when the quote reference setting is unknown.
saleRepIdYesSales rep id from brc_list_sales_reps.
unitPriceYes
vatRateIdYes
vatTypeIdNo
layoutTypeNo
accountCodeYesSales Analysis account code for the quote product line, for example SA01.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
productCodeYes
saleRepCodeYesSales rep code from brc_list_sales_reps.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
vatPercentageYes
customerOwnerIdYes
customerOwnerNameYes
analysisCategoryIdYes
confirmCrAnalysisCategoryNoSet true only after the user confirms a CR sales analysis account code is intentional for this product line.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.
confirmQuotesAutoGenerateInBrcNoSet true only after the user confirms quotes are auto-generated in Big Red Cloud. Required for brc_create_quote_gen_ref when Quotes reference setting is Unknown.

TDQS

A4.4/5.0
Behavior5/5

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

No annotations are provided, but the description fully discloses behavioral traits: requires saleRepId and saleRepCode, requires analysisCategoryId and accountCode, warns against defaulting to CR01/Customer, describes the confirmation_required preview, and mandates explicit user confirmations.

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 lengthy but densely packed with essential instructions. Every sentence adds value, though it could be slightly more structured (e.g., bullet points) for easier scanning. It is appropriately sized for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 28 parameters, no output schema, and no nested objects, the description is fairly complete. It covers the confirmation flow, prerequisites, and constraints. Missing explicit mention of success response structure, but the agent can infer from the confirmation flow.

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 low (36%), so the description carries the burden. It clearly adds meaning for critical parameters like confirmWrite, confirmCounterpartyExplicit, confirmCrAnalysisCategory, and the reference parameter. However, not all 28 parameters are explicitly described in the main description, but key ones are covered.

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 it creates a BRC quote using structured MCP fields. It distinguishes from sibling tools like brc_create_quote_gen_ref by detailing quote reference requirements. However, it could explicitly name the 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 Guidelines5/5

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

The description provides extensive usage guidance: when to require a quote reference, not to use with unknown settings unless reference provided, do not use default sales rep values, requires explicit user confirmations for write, counterparty, and analysis category. It even specifies the two-step confirmation workflow.

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

brc_create_quote_gen_refAInspect

Creates a BRC quote with a generated reference using structured MCP fields. Use only when quote references are auto-generated in Big Red Cloud, or when the user has confirmed auto-generate after Quotes reference setting was Unknown. Draft previews include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. Requires saleRepId and saleRepCode. Do not use default or demo sales rep values. If missing, list sales reps or ask the user to choose one before creating. Requires analysisCategoryId and accountCode from a Sales Analysis category on each product line. Do not default to CR01/Customer or the first listed category. Set confirmCrAnalysisCategory=true only after the user confirms a CR account code is intentional. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
acCodeYes
commentsYes
ddNumberNo
poNumberNo
procDateYes
quantityYes
tranNoteYes
companyIdNoOptional BRC company id used in quote payload. Defaults to previous test company id if omitted.
entryDateYes
productIdYes
referenceNoRequired when quote references are manual, or when the quote reference setting is unknown.
saleRepIdYesSales rep id from brc_list_sales_reps.
unitPriceYes
vatRateIdYes
vatTypeIdNo
layoutTypeNo
accountCodeYesSales Analysis account code for the quote product line, for example SA01.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
productCodeYes
saleRepCodeYesSales rep code from brc_list_sales_reps.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
vatPercentageYes
customerOwnerIdYes
customerOwnerNameYes
analysisCategoryIdYes
confirmCrAnalysisCategoryNoSet true only after the user confirms a CR sales analysis account code is intentional for this product line.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.
confirmQuotesAutoGenerateInBrcNoSet true only after the user confirms quotes are auto-generated in Big Red Cloud. Required for brc_create_quote_gen_ref when Quotes reference setting is Unknown.

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description takes full responsibility for disclosing behavioral traits. It covers crucial behaviors: draft previews include warnings for missing fields without inventing values, confirmation flags must be set only after explicit user confirmation, the first call returns a payload preview rather than executing, and preflight is not confirmation. This level of detail ensures the agent understands the tool's behavior thoroughly.

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 lengthy but efficient, with every sentence providing necessary guidance. It is front-loaded with the purpose and then systematically covers usage conditions, requirements, and the multi-step process. No superfluous content is present, though the length is justified by the tool's complexity.

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

Completeness3/5

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

The description thoroughly explains the tool's behavior and usage constraints, but it lacks information about the return value on successful creation. Given the tool has 28 parameters, no output schema, and no annotations, this gap leaves the agent uncertain about what to expect after the final confirmWrite call. Additional context on the response format would improve completeness.

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

Parameters3/5

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

Schema description coverage is only 36%, so the description must compensate. It adds meaningful context for confirm booleans and sales rep parameters, describing when to set them true. However, many required parameters like acCode, entryDate, productId, unitPrice, etc., are left undocumented in the description, relying on the sparse schema descriptions. The description partially addresses the gap but does not fully cover all parameters.

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

Purpose5/5

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

The description starts with 'Creates a BRC quote with a generated reference using structured MCP fields,' which is a clear verb+resource combination. It also distinguishes from the sibling tool brc_create_quote by specifying auto-generated references, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('when quote references are auto-generated' or after user confirmation of the setting) and includes detailed instructions on prerequisites (e.g., requires saleRepId, saleRepCode, analysisCategoryId, accountCode), prohibitions (e.g., do not use default sales rep values, do not default to CR01), and the two-call workflow with confirmWrite. This provides comprehensive guidance on usage context and alternatives.

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

brc_create_sales_credit_noteAInspect

Creates a BRC sales credit note using structured MCP fields. Requires a reference when the company is configured for manual sales references; otherwise prefer brc_create_sales_credit_note_gen_ref. Requires saleRepId and saleRepCode. Do not use default or demo sales rep values. If missing, list sales reps or ask the user to choose one before creating. Requires analysisCategoryId and accountCode from a Sales Analysis category on each product line. Do not default to CR01/Customer or the first listed category. Set confirmCrAnalysisCategory=true only after the user confirms a CR account code is intentional. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
acCodeYes
procDateYes
quantityYes
entryDateYes
netAmountYes
productIdYes
referenceNo
saleRepIdYesSales rep id from brc_list_sales_reps.
unitPriceYes
vatRateIdYes
customerIdYes
accountCodeYes
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionYes
productCodeYes
saleRepCodeYesSales rep code from brc_list_sales_reps.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
vatPercentageYes
bookTranTypeIdYes
analysisCategoryIdYes
confirmCrAnalysisCategoryNoSet true only after the user confirms a CR sales analysis account code is intentional for this product line.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full behavioral burden. It transparently discloses the two-phase confirmWrite mechanism (first call returns confirmation_required and payload preview, retry with confirmWrite only after explicit user confirmation), the need for explicit counterparty confirmation, and that preflight is not confirmation. It does not, however, mention potential errors, rate limits, or destructive consequences of creating a credit note, but given the complexity, the disclosed behaviors are thorough.

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

Conciseness3/5

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

The description is dense but somewhat verbose, containing multiple instructions in prose form without visual separation. It front-loads the purpose but then packs requirements in long sentences. While every sentence adds value, a more structured format (bullets or short paragraphs) would improve readability for an agent. It is concise relative to the complexity but could be better organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 23 parameters, 19 required, no output schema, and no annotations, the description covers the creation workflow, prerequisites, confirmation steps, and handling of missing data (e.g., listing sales reps). It is quite complete, but it doesn't describe the success response format or any post-creation steps. For a high-complexity tool, this is strong.

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

Parameters4/5

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

Schema description coverage is only 26%, but the description significantly compensates by explaining many key parameters: reference (conditionally required), saleRepId/saleRepCode (must be from brc_list_sales_reps and not default), analysisCategoryId/accountCode (must be from Sales Analysis category, not defaulted), and the three confirm parameters with precise conditions. This adds substantial meaning beyond the schema. However, some parameters like productId, customerId, etc. are not explained beyond basic type info.

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

Purpose5/5

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

The description clearly states it creates a BRC sales credit note using structured MCP fields. It distinguishes itself from the sibling 'brc_create_sales_credit_note_gen_ref' by explicitly noting when to use each based on manual reference configuration. The verb 'creates' and resource 'BRC sales credit note' are specific and unambiguous.

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

Usage Guidelines5/5

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

The description provides extensive usage guidance: when to prefer this tool over the gen_ref variant, requirements for saleRepId/saleRepCode (and not to use default/demo values), requirements for analysisCategoryId and accountCode, conditions for setting confirmCrAnalysisCategory, confirmWrite, and confirmCounterpartyExplicit. It also instructs the agent to list or ask for missing sales reps. This is exceptional context for correct tool invocation.

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

brc_create_sales_credit_note_gen_refAInspect

Creates a BRC sales credit note with an auto-generated reference using a raw BRC payload. Use when the company is configured for auto-generated sales references. Requires saleRepId and saleRepCode. Do not use default or demo sales rep values. If missing, list sales reps or ask the user to choose one before creating. Requires analysisCategoryId and accountCode from a Sales Analysis category on each product line. Do not default to CR01/Customer or the first listed category. Set confirmCrAnalysisCategory=true only after the user confirms a CR account code is intentional. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoSet true only after the user confirms a CR sales analysis account code is intentional for this product line.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.7/5.0
Behavior4/5

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

Given no annotations, the description fully explains the two-call protocol, confirmation flags, and pitfalls. It does not explicitly state that the tool writes a record to the database or mention reversibility, but the creation nature is implied. Good transparency for a complex tool.

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 lengthy but each sentence serves a purpose. It front-loads the core purpose and then details usage guidelines. A bit verbose but justified by the complexity of the tool. No wasted sentences.

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

Completeness5/5

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

Given the complexity (5 parameters, nested payload, no output schema), the description covers all necessary aspects: prerequisites, confirmation flags, preflight protocol, and common mistakes. 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.

Parameters5/5

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

Schema coverage is 80% (high), but the description adds critical meaning beyond the schema: it explains the hidden requirements inside the payload object (saleRepId, saleRepCode, analysisCategoryId, accountCode), the two-call protocol for confirmWrite, and the semantics of confirmCrAnalysisCategory and confirmCounterpartyExplicit. This adds significant value.

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

Purpose5/5

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

The description clearly states it creates a BRC sales credit note with auto-generated reference using raw payload. It differentiates from the sibling tool 'brc_create_sales_credit_note' by specifying auto-generated reference, and the sibling list confirms both exist.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'when company is configured for auto-generated sales references'. Provides thorough prerequisites, warnings against default/demo values, and detailed multi-step confirmation process. Clearly differentiates from preflight and write calls.

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

brc_create_sales_entryAInspect

Creates a BRC sales entry using structured MCP fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
acCodeYes
procDateYes
entryDateYes
netAmountYes
vatRateIdYes
customerIdYes
accountCodeYes
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionYes
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
vatPercentageYes
bookTranTypeIdYes
analysisCategoryIdYes
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.8/5.0
Behavior5/5

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

No annotations provided, but the description fully discloses the tool's behavioral traits: two-phase confirmation, return of confirmation_required and payload preview on first call, need for explicit user confirmation, and prohibition of reusing counterparty without explicit confirmation. This is comprehensive for a mutation tool.

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

Conciseness5/5

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

The description is four sentences, front-loaded with the tool's purpose, then details the workflow. Every sentence adds value without redundancy. Highly concise and well-structured.

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

Completeness4/5

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

Given the complexity (15 parameters, no output schema, no annotations), the description covers the key workflow and constraints. It explains the two-phase confirmation and counterparty confirmation, which are the most complex aspects. It does not detail other standard parameters (e.g., netAmount, vatRateId) but the agent can infer from names. Overall, it provides sufficient context for correct tool usage.

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 low (20%), but the description adds critical semantic context for the two boolean parameters (confirmWrite, confirmCounterpartyExplicit), explaining their usage rules in the workflow. For other 12 parameters, no additional meaning is provided beyond schema names/types. However, the workflow context for the booleans is essential and compensates somewhat.

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

Purpose5/5

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

The description clearly states it creates a BRC sales entry using structured MCP fields. It distinguishes itself from numerous sibling tools like brc_create_sales_invoice, brc_create_sales_credit_note, etc., by specifying the exact resource (sales entry) and the unique two-phase confirmation workflow.

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

Usage Guidelines5/5

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

Provides explicit step-by-step guidelines: first call without confirmWrite: true yields preview, then retry with confirmWrite: true only after explicit user confirmation. Also requires confirmCounterpartyExplicit: true after user explicitly names counterparty. Clearly states when not to use (e.g., not on first call, not without explicit confirmation) and distinguishes from passing preflight.

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

brc_create_sales_invoiceAInspect

Creates a BRC sales invoice using structured MCP fields. Requires a reference when the company is configured for manual sales references; otherwise prefer brc_create_sales_invoice_gen_ref. Draft previews include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. Optional. BRC "Note" field on the sales document (JSON field note). Leave blank to default it to the customer name (BRC customer "Name" / JSON name). Do not use the product name as the note. Only set this when the user explicitly provides a note. Optional. BRC "Delivery To" address (JSON field deliveryTo). Leave blank unless the user explicitly provides a delivery address. Do not invent or default a delivery address (for example "MCP Test"). Requires saleRepId and saleRepCode. Do not use default or demo sales rep values. If missing, list sales reps or ask the user to choose one before creating. Requires analysisCategoryId and accountCode from a Sales Analysis category on each product line. Do not default to CR01/Customer or the first listed category. Set confirmCrAnalysisCategory=true only after the user confirms a CR account code is intentional. When Gross Price Entry is enabled for sales invoicing, this tool requires priceBasis. Use priceBasis "gross" when unit prices are VAT-inclusive/gross, or priceBasis "net" when unit prices are VAT-exclusive/net. Do not tell the user to disable Gross Price Entry if they have provided priceBasis. Do not invent productId values and do not use productId 0 or 1 as placeholders. productId 0 and 1 are treated as placeholders and are blocked at runtime before the draft preview and before posting. If a product line is needed, first call brc_list_products and use a real product from the connected company. If no suitable product exists, ask the user whether to create/select a product, or use a service/non-product line only if the endpoint supports it. Sales invoices must use Sales VAT rates. Purchase/non-Sales VAT rates are blocked before draft and before posting, even if the VAT percentage matches. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNoOptional. BRC "Note" field on the sales document (JSON field `note`). Leave blank to default it to the customer name (BRC customer "Name" / JSON `name`). Do not use the product name as the note. Only set this when the user explicitly provides a note.
acCodeYes
procDateYes
quantityYes
entryDateYes
netAmountYes
productIdYesproductCode is the BRC product "Code" (JSON `productCode`); productId is the BRC product "Id" (JSON `productId`) from brc_list_products. The product name is not a payload field — do not place it in the BRC "Note" field (JSON `note`).
referenceNoOptional. BRC "Reference" field (JSON field `reference`). BRC "Our Ref" (JSON `ourReference`) and BRC "Your Ref" (JSON `yourReference`) default to this value when not supplied separately.
saleRepIdYesSales rep id from brc_list_sales_reps.
unitPriceYes
vatRateIdYes
customerIdYes
deliveryToNoOptional. BRC "Delivery To" address (JSON field `deliveryTo`). Leave blank unless the user explicitly provides a delivery address. Do not invent or default a delivery address (for example "MCP Test").
priceBasisNoRequired when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
accountCodeYes
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionYesProduct line description shown on the document line (BRC product line description / JSON `tranNotes`, also used on the line's analysis entry description). This is the line narrative, not the BRC "Note" field.
productCodeYesproductCode is the BRC product "Code" (JSON `productCode`); productId is the BRC product "Id" (JSON `productId`) from brc_list_products. The product name is not a payload field — do not place it in the BRC "Note" field (JSON `note`).
saleRepCodeYesSales rep code from brc_list_sales_reps.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
customerNameNoOptional. The selected customer's name (BRC customer "Name" / JSON `name`). Used as the default sales document note (BRC "Note" / JSON `note`) when no explicit note is given.
vatPercentageYes
bookTranTypeIdYes
analysisCategoryIdYes
confirmCrAnalysisCategoryNoSet true only after the user confirms a CR sales analysis account code is intentional for this product line.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavioral traits: productId 0/1 are blocked at runtime, purchase VAT rates are blocked, first call returns confirmation_required with payload preview, requires confirmCounterpartyExplicit, and addresses gross price entry behavior. All critical behaviors are transparent.

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

Conciseness3/5

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

The description is very long and dense, lacking section breaks. While all information is valuable, it could be more concise. For a tool with 26 parameters, the length is somewhat justified, but improvement in structure would enhance readability.

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

Completeness5/5

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

Given the high complexity (26 params, no output schema), the description is remarkably complete. It covers prerequisites, workflows, confirmation steps, relationships with other tools (brc_list_products, brc_list_sales_reps), and edge cases. It even instructs on what to do when no suitable product exists. Only missing detail is the return value after posting, but that is acceptable without an output schema.

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

Parameters5/5

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

Schema coverage is 54%, and the description adds significant meaning beyond the schema. It explains constraints for note (default to customer name), deliveryTo (do not invent), priceBasis (required when Gross Price Entry enabled), confirmWrite (never true on first call), and clarifies that productId 0/1 are placeholders blocked at runtime.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Creates a BRC sales invoice using structured MCP fields.' It differentiates from the sibling brc_create_sales_invoice_gen_ref by specifying when each should be used (manual vs automatic reference generation). The verb 'creates' and resource 'sales invoice' are specific.

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

Usage Guidelines5/5

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

Extensive guidance on when to use this tool vs alternatives (e.g., prefer gen_ref when manual references not needed). Includes many 'do not' instructions (invent values, use default sales rep, default analysis category) and explicit workflow steps (first call without confirmWrite, show draft, retry with confirmation).

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

brc_create_sales_invoice_gen_refAInspect

Creates a BRC sales invoice with an auto-generated reference using a raw BRC payload. Use when the company is configured for auto-generated sales references. Draft previews include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. In the raw payload, the BRC "Note" field (JSON note) defaults to the customer name (BRC customer "Name" / JSON name) when omitted and must never be set to the product name; the BRC "Delivery To" address (JSON deliveryTo) is only included when explicitly provided. Optional. BRC "Note" field on the sales document (JSON field note). Leave blank to default it to the customer name (BRC customer "Name" / JSON name). Do not use the product name as the note. Only set this when the user explicitly provides a note. Optional. BRC "Delivery To" address (JSON field deliveryTo). Leave blank unless the user explicitly provides a delivery address. Do not invent or default a delivery address (for example "MCP Test"). Requires saleRepId and saleRepCode. Do not use default or demo sales rep values. If missing, list sales reps or ask the user to choose one before creating. Requires analysisCategoryId and accountCode from a Sales Analysis category on each product line. Do not default to CR01/Customer or the first listed category. Set confirmCrAnalysisCategory=true only after the user confirms a CR account code is intentional. When Gross Price Entry is enabled for sales invoicing, this tool requires priceBasis. Use priceBasis "gross" when unit prices are VAT-inclusive/gross, or priceBasis "net" when unit prices are VAT-exclusive/net. Do not tell the user to disable Gross Price Entry if they have provided priceBasis. Do not invent productId values and do not use productId 0 or 1 as placeholders. productId 0 and 1 are treated as placeholders and are blocked at runtime before the draft preview and before posting. If a product line is needed, first call brc_list_products and use a real product from the connected company. If no suitable product exists, ask the user whether to create/select a product, or use a service/non-product line only if the endpoint supports it. Sales invoices must use Sales VAT rates. Purchase/non-Sales VAT rates are blocked before draft and before posting, even if the VAT percentage matches. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation. Also requires confirmCounterpartyExplicit: true once the user has explicitly named or confirmed the customer/supplier in the current conversation. Do not reuse a counterparty from an earlier draft without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes
priceBasisNoRequired when Gross Price Entry is enabled. Use `gross` when unit prices are VAT-inclusive/gross. Use `net` when unit prices are VAT-exclusive/net.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmCrAnalysisCategoryNoSet true only after the user confirms a CR sales analysis account code is intentional for this product line.
confirmCounterpartyExplicitNoMust be true only after the user explicitly named or confirmed the customer, supplier, or other counterparty in the current conversation. Never set true because a customer or supplier appeared in an earlier draft, was inferred from context, or was filled in without the user's explicit choice in this conversation.

TDQS

A4.4/5.0
Behavior4/5

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

Despite no annotations, the description discloses many behavioral traits: creation mutation, preflight confirmation, blocked values (productId 0/1, purchase VAT), default behavior (note defaults to customer name), and the confirmation_required response. However, it does not describe the final success response structure, which is a notable omission.

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

Conciseness2/5

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

The description is overly verbose and repetitive (e.g., note and deliveryTo instructions repeated). It is a dense block of text lacking structure, which makes it harder for an AI agent to parse quickly. While front-loaded with purpose, conciseness is poor.

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

Completeness4/5

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

Given the tool's complexity (6 parameters, nested payload, no output schema), the description covers most essential aspects: usage context, parameter semantics, behavioral rules, and confirmation flow. The only gap is the lack of output structure explanation, but overall it is quite complete.

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

Parameters5/5

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

The input schema covers 83% of parameters, but the description adds significant value for the payload parameter, detailing expected fields (note, deliveryTo, saleRepId, etc.) and constraints. For priceBasis and confirmation flags, the description reinforces and clarifies schema descriptions, making parameter semantics excellent.

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

Purpose5/5

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

The description clearly states it creates a BRC sales invoice with auto-generated reference, distinguishing it from the sibling brc_create_sales_invoice (which likely uses manual reference). The verb 'creates' and resource 'sales invoice' are specific, and the condition of auto-generated references is explicitly mentioned.

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

Usage Guidelines5/5

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

The description provides extensive usage guidance: when to use (auto-generated references), what to avoid (default values, placeholders, purchase VAT rates), and the precise confirmation workflow (preflight first, then confirmWrite, plus confirmCounterpartyExplicit). It explicitly states do's and don'ts.

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

brc_create_sales_repAInspect

Creates a BRC sales rep using structured MCP fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesSales rep code.
nameYesSales rep name.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4/5.0
Behavior4/5

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

Discloses the two-phase workflow (preflight returns confirmation_required and preview, actual write on second call) and warns that preflight is not confirmation. No annotations existed, so the description carries the burden well.

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, front-loaded with purpose. The workflow detail is necessary but could be slightly more concise (e.g., bullet points). No wasted words.

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

Completeness3/5

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

Given no output schema, the description mentions 'payload preview' but does not specify its structure or indicate that the output likely contains the created rep's ID. Lacks mention of prerequisites like company context existence.

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

Parameters3/5

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

All parameters have schema descriptions (100% coverage), so baseline is 3. The description adds context for confirmWrite's preflight behavior but does not enhance understanding of other parameters 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 explicitly states 'Creates a BRC sales rep', using a specific verb and resource. It distinguishes from sibling tools like batch creation and update tools by implying a single-entity creation with a confirmation workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 step-by-step guidance on using confirmWrite: first call without, show preview, then retry with confirmation. However, it does not mention when to use batch creation (brc_batch_sales_reps) as an alternative.

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

brc_create_supplierAInspect

Creates a BRC supplier using a raw BRC payload. Does not create or update opening balance transactions. If the user provides an opening balance, warn them that it must be entered directly in Big Red Cloud. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesRaw BRC-compatible payload for this endpoint.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the two-step confirmation process, the preflight behavior, and that opening balance is not handled. This is detailed for a mutation tool, though it does not mention error states or idempotency.

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 with the purpose. It packs essential information without excess. A slight improvement could be structuring as bullet points for the two-step process, but it remains clear.

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

Completeness3/5

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

Given no output schema, the description does not explain return values or possible errors. The complex workflow is well-covered, but missing what the successful response looks like. Considering the many sibling tools, it is complete enough for its core usage.

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

Parameters4/5

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

Schema coverage is 100% but descriptions are minimal. The description adds crucial behavioral context for confirmWrite (when to set true/false) and clarifies that payload is a raw BRC payload. This goes beyond the schema's bare 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 clearly states it creates a BRC supplier using a raw BRC payload. It distinguishes from sibling tools like brc_batch_suppliers and brc_update_supplier by specifying that it does not handle opening balance transactions. The verb 'creates' and resource 'supplier' are 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 description provides explicit guidance on when to use confirmWrite: never on first call, only after user confirmation of a plain-English draft. It also warns about opening balance handling. However, it does not explicitly compare to other supplier-related tools like batch creation.

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

brc_delete_accrualAInspect

Removes an existing parent Accrual by id. Requires the accrual timestamp in Base64 string format. Use brc_get_accrual first to retrieve the current timestamp. Do not call with confirmWrite=true until the user explicitly confirms deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent accrual id.
timestampYesBase64 timestamp returned by the accrual, for example K94UQIbL3gg=.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms deleting this accrual.

TDQS

A4.1/5.0
Behavior3/5

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

Without annotations, the description bears full burden. It discloses the destructive nature, required timestamp format, and confirmation step. However, it omits information about side effects, irreversibility, or response behavior.

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

Conciseness5/5

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

Three concise sentences. The main action is front-loaded, with critical usage instructions following. No unnecessary words.

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 delete tool with no output schema and no annotations, the description lacks return value information and error conditions. It provides key prerequisites and safety steps but not a complete operational 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 descriptions cover all 4 parameters. The description adds context: timestamp must be retrieved from brc_get_accrual and confirmWrite should only be true after user confirmation. This exceeds what schema provides.

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

Purpose5/5

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

The description clearly states the action (removes) and the specific resource (existing parent Accrual by id). It distinguishes itself from sibling delete tools by specifying the resource and mentioning the prerequisite timestamp retrieval.

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

Usage Guidelines4/5

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

Explicitly instructs to use brc_get_accrual first and warns not to set confirmWrite=true without explicit user confirmation. However, it does not mention when not to use the tool or compare to other deletion-related tools.

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

brc_delete_allocation_resolverAInspect

Reverses/deletes a single allocation by allocation resolver id. Use brc_list_allocated_transactions first to find the allocation id. Do not call with confirmWrite=true until the user explicitly confirms the reversal/deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAllocation resolver id to reverse/delete.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms reversing/deleting this allocation.

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the destructive nature and the user confirmation requirement. However, it does not elaborate on potential side effects, reversibility, or error conditions.

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

Conciseness5/5

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

The description is two sentences with no wasted words. First sentence states purpose and prerequisite, second sentence gives a critical rule. Highly efficient.

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

Completeness4/5

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

The description covers the action, prerequisite step, and safety rule. For a deletion tool with no output schema, it is fairly complete. However, it does not mention return values or behavior on invalid ids.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal additional meaning beyond the schema, such as the context of 'allocation resolver id' and the need for user confirmation, but this is mostly redundant.

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

Purpose5/5

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

The description clearly states the verb 'reverses/deletes' and the resource 'allocation by allocation resolver id', and it distinguishes from siblings by specifying the unique resource type and prerequisite step (using brc_list_allocated_transactions).

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

Usage Guidelines4/5

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

The description provides explicit guidance on when to call the tool (after finding the allocation id) and a critical safety rule (do not call with confirmWrite=true without user confirmation). However, it does not mention alternatives or when not to use this tool compared to other delete tools.

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

brc_delete_bank_accountAInspect

Deletes a BRC bank account by id. Only call this after the user has explicitly confirmed deletion. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesbank account id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses the confirmation flow, the preview, and the requirement for explicit user confirmation. However, it does not explicitly state irreversible nature or success effects, though implied.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, followed by step-by-step instructions. Every sentence is necessary and well-organized.

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

Completeness5/5

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

Given no output schema, the description fully covers the workflow, including the confirmation requirement, preview, and preflight warning. It is complete for safe usage.

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 high (75%), so baseline 3. The description adds significant context for confirmWrite parameter (first call false, then true after confirmation) and clarifies the two-step behavior beyond the schema's minimal 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 clearly states the verb 'Deletes' and the resource 'BRC bank account by id'. It is specific and distinguishes from sibling delete tools by focusing on bank accounts.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'Only call this after the user has explicitly confirmed deletion.' Provides a two-step process with first call without confirmWrite and second call after confirmation, and warns against using preflight as confirmation.

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

brc_delete_cash_paymentAInspect

Deletes a BRC cash payment by id. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYescash payment id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.4/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden and excels. It explains the destructive nature (delete), the required two-step confirmation process, the return of confirmation_required and payload preview on initial call, and the critical warning that preflight is not confirmation. It fully discloses the behavioral pattern.

Agents need to know what a tool does to the world before calling it. Descriptions 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 paragraph that is concise and front-loaded with the main action. Every sentence adds important information: deletion action, two-step process including draft display, and a warning. 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?

Given the tool is a delete operation with a confirmation pattern and no output schema, the description covers the essential process well. It explains the initial response and required next step. However, it could be more complete by mentioning potential error conditions or the behavior of the confirmDelete parameter, and by clarifying what happens on a successful delete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 high (75%) with descriptions for id, companyName, and confirmWrite. The description adds value by explaining the multi-step usage of confirmWrite but does not mention confirmDelete, which is in the schema with default false. This omission is a gap, keeping the score at baseline.

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

Purpose5/5

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

The description clearly states 'Deletes a BRC cash payment by id,' specifying the verb and resource. It distinguishes from sibling delete tools by the resource name and the unique two-step confirmation process, which is not described in other sibling descriptions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 explicit step-by-step instructions for safe usage: first call without confirmWrite:true, show plain-English draft in chat, then retry with confirmWrite:true only after explicit user confirmation. Warns that preflight is not confirmation. However, it does not compare to alternatives like other delete tools or specify 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.

brc_delete_cash_receiptAInspect

Deletes a BRC cash receipt by id. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYescash receipt id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.7/5.0
Behavior4/5

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

With no annotations, the full burden is on the description. It thoroughly explains the two-step behavior, the necessity of user confirmation, and the preview feature. It doesn't mention error states or impacts of deletion, but the core behavior is well-transparent.

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

Conciseness5/5

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

Three sentences, no unnecessary words. Front-loaded with the core action, then immediately provides step-by-step instructions. Every sentence serves a purpose.

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

Completeness5/5

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

Given the complexity of a two-step deletion with confirmation, the description is remarkably complete. It covers the full workflow, the role of confirmWrite, and the need for explicit user confirmation. No output schema exists, but the preview step is implied.

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 75% (3 of 4 params described). The description adds significant value for 'confirmWrite' by explaining its two-step usage. Other parameters' descriptions are sufficient in the schema, and the description does not repeat them unnecessarily.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Deletes a BRC cash receipt by id.' It also details the two-step confirmation process, distinguishing it from other delete tools in the sibling list that may not require such confirmation.

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 instructs to first call without confirmWrite, show the preview draft in chat, and retry with confirmWrite true only after explicit user confirmation. It also warns that preflight is not confirmation, providing clear when-to-use and when-not-to-use guidance.

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

brc_delete_customerAInspect

Deletes a BRC customer by id. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYescustomer id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly discloses the two-step preflight and confirmation behavior, including that the first call returns a confirmation_required and payload preview, and that subsequent calls require explicit user confirmation. This adequately covers the essential behavioral traits for a destructive operation.

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

Conciseness5/5

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

The description is concise, consisting of three sentences that front-load the action and then explain the two-step process. Every sentence adds necessary information without redundancy.

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

Completeness4/5

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

For a delete tool with no output schema, the description covers the preflight step, confirmation requirement, and the need to show a draft in chat. It does not describe error handling or the exact format of the preview payload, but this is sufficient for an agent to understand the correct invocation flow.

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

Parameters3/5

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

Schema description coverage is 75% (3 of 4 parameters have descriptions). The description reinforces the usage of confirmWrite with the preflight protocol but does not add meaning for id or companyName beyond schema. The confirmDelete parameter is not addressed. Overall, minimal added value beyond the schema.

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

Purpose4/5

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

The description clearly states 'Deletes a BRC customer by id,' providing a specific verb and resource. While it does not explicitly differentiate from other delete tools among siblings, the tool name itself includes 'customer,' making the purpose distinct enough.

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

Usage Guidelines4/5

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

The description provides explicit guidelines: first call without confirmWrite triggers a preflight, then retry with confirmWrite only after explicit user confirmation. It also clarifies that 'passing preflight is not confirmation.' This gives clear context for when and how to use the tool, though it does not explicitly mention alternatives or when not to use it.

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

brc_delete_nominal_journal_batchAInspect

Removes an existing Nominal Journal Batch by id. Requires the batch timestamp in Base64 string format. Use brc_get_nominal_journal_batch first to retrieve the current timestamp. Do not call with confirmWrite=true until the user explicitly confirms deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNominal Journal Batch id.
timestampYesBase64 timestamp returned by the Nominal Journal Batch, for example 7aIZQIbL3gg=.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms deleting this Nominal Journal Batch.

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral disclosure. It adds workflow context (timestamp retrieval and confirmation requirement) but does not detail side effects or data destruction beyond the implied delete action.

Agents need to know what a tool does to the world before 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 serving a purpose: first states action, second gives prerequisite, third provides usage instruction. No extraneous 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 delete tool with a unique timestamp requirement and confirmation flow, the description covers the steps (retrieve timestamp, avoid premature confirmation) adequately. It does not describe return values, but no output schema exists, so this is acceptable.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds meaning by noting the timestamp is a Base64 string and that confirmWrite should only be true after user confirmation, which goes beyond schema descriptions.

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

Purpose5/5

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

The description clearly states the verb 'removes' and the resource 'Nominal Journal Batch by id'. It distinguishes itself from sibling delete tools by specifying the unique requirement of a batch timestamp in Base64 format.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents 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 instructs to use brc_get_nominal_journal_batch first to retrieve the timestamp and warns not to set confirmWrite=true until user confirmation. It provides clear context but does not 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.

brc_delete_paymentAInspect

Deletes a BRC payment by id. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYespayment id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description fully explains the key behavior: the two-step confirmation workflow. It does not describe other behaviors like return value types beyond mentioning 'confirmation_required and a payload preview', but this is sufficient for a delete operation.

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

Conciseness5/5

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

The description is two sentences long, front-loads the purpose, and uses clear, direct language. Every part is necessary and no word is wasted.

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

Completeness4/5

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

For a delete tool with a non-trivial confirmation workflow, the description covers the essential usage pattern. It mentions the return of confirmation_required and payload preview despite no output schema. It could be slightly improved by noting that the deletion is permanent, but overall it is complete.

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

Parameters4/5

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

Schema coverage is 75%, and the description adds meaningful context to the confirmWrite parameter by explaining its role in the two-step process. It does not cover confirmDelete, but the main workflow is well explained.

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

Purpose5/5

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

The description clearly states it deletes a BRC payment by id, and distinguishes itself from other delete tools by detailing a two-step confirmation process. It provides a specific verb and resource.

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

Usage Guidelines5/5

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

The description gives explicit step-by-step instructions on when to call without confirmWrite, to show a draft, and then retry with confirmWrite: true only after user confirmation. It also warns that preflight is not confirmation, providing clear usage boundaries.

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

brc_delete_prepaymentAInspect

Removes an existing parent Prepayment by id. Requires the prepayment timestamp in Base64 string format. Use brc_get_prepayment first to retrieve the current timestamp. Do not call with confirmWrite=true until the user explicitly confirms deletion.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent prepayment id.
timestampYesBase64 timestamp returned by the prepayment, for example bgUcQIbL3gg=.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms deleting this prepayment.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It reveals the need for timestamp in Base64 and the confirmation flag, but does not mention irreversible effects, permissions required, or success/error behavior. Reasonable but could be more explicit.

Agents need to know what a tool does to the world before 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, first sentence states action, remainder provides critical usage guidance. No unnecessary words; very efficient.

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

Completeness4/5

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

For a delete operation with no output schema, the description covers prerequisites (timestamp), safety (confirmWrite), and reference to companion tool. Does not specify return value or error handling, but these are less critical for delete. Slightly incomplete but solid.

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%, yet the description adds meaningful context: explains the timestamp format (Base64) and the conditional requirement for confirmWrite. This goes beyond the schema basics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 ('Removes an existing parent Prepayment by id') and specifies the resource and method. It distinguishes from sibling tools like brc_create_prepayment or brc_update_prepayment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents 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 instructs to first use brc_get_prepayment to obtain the timestamp and warns about confirmWrite only after user confirmation. It provides clear context but does not explicitly exclude other scenarios or mention alternatives.

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

brc_delete_productAInspect

Deletes a BRC product by id. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesproduct id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.3/5.0
Behavior4/5

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

No annotations, so description carries full burden. Clearly describes destructive action (delete) and the confirmation/preview pattern. Warns that preflight does not count as confirmation, which prevents accidental deletion. Does not specify permissions or side effects, but the confirmation mechanism mitigates risk.

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

Conciseness4/5

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

Two sentences, front-loaded with purpose, then workflow details. No fluff. Could be slightly more structured (e.g., bullet points) but remains 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?

No output schema, but description mentions return fields: 'confirmation_required' and 'payload preview'. Covers the input workflow. Missing explanation of confirmDelete parameter, but that's minor. Sufficient for a delete tool with confirmation.

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?

Adds value beyond schema by explaining the confirmWrite parameter's role in the confirmation workflow. Schema already describes id and companyName sufficiently. confirmDelete is in schema with default but not elaborated in description – minor gap. Overall, supplements schema well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 'Deletes a BRC product by id' – specific verb and resource. Among many sibling delete tools, 'product' distinguishes it uniquely. No 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?

Provides explicit two-step workflow: first call without confirmWrite returns preview and confirmation_required, then retry with confirmWrite after user confirmation. States 'Passing preflight is not confirmation' to avoid misuse. Could mention alternative delete tools for other entities, 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.

brc_delete_purchaseAInspect

Deletes a BRC purchase by id using timestamp confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPurchase id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses the two-step confirmation, payload preview, and the requirement for explicit user confirmation. However, it does not mention final response or error handling, leaving some behavioral gaps.

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

Conciseness5/5

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

The description is extremely concise at two sentences, front-loading the core action and then explaining the process. Every sentence adds value without redundancy.

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

Completeness3/5

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

The description covers the main workflow but lacks details on the final response after successful deletion, error scenarios, and the behavior of other parameters like confirmDelete. Given no output schema, more completeness would be beneficial.

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 75% with basic descriptions. The description adds significant value for confirmWrite by explaining its role in the confirmation workflow, but does not elaborate on id or companyName beyond the schema.

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

Purpose5/5

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

The description clearly states 'Deletes a BRC purchase by id using timestamp confirmation', providing a specific verb and resource. It explains the unique two-step confirmation process, which distinguishes it from 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 Guidelines5/5

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

The description explicitly outlines the workflow: first call without confirmWrite: true, then show a plain-English draft, then retry with confirmWrite: true after user confirmation. It also warns that 'Passing preflight is not confirmation', giving clear when and how to use the tool.

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

brc_delete_quoteAInspect

Deletes a BRC quote by id using timestamp confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.2/5.0
Behavior4/5

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

Despite no annotations, the description discloses the two-step confirmation, the preview step, and the need for explicit user confirmation. It indicates the operation is irreversible but doesn't elaborate on 'timestamp confirmation.' Overall, good behavioral context.

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

Conciseness5/5

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

Three sentences, front-loaded with purpose, no wasted words. Structure is logical and easy to follow.

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

Completeness4/5

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

Given the tool has 4 params and no output schema, the description covers the critical delete workflow. Missing details on 'timestamp confirmation' and return format, but sufficient for selecting 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 coverage is 75% (confirmDelete lacks description). The description adds value by explaining the confirmWrite parameter's role in the two-step workflow, but doesn't cover confirmDelete. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool deletes a BRC quote by ID with timestamp confirmation. It distinguishes from siblings like brc_close_quote and brc_update_quote by specifying deletion and the confirmation workflow.

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

Usage Guidelines4/5

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

Explicit guidance on the two-step process: first call without confirmWrite:true, show preview, then retry with confirmWrite:true after user confirmation. Notes that preflight is not confirmation. Lacks explicit when-not-to-use, 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.

brc_delete_sales_credit_noteAInspect

Deletes a BRC sales credit note by id using timestamp confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales credit note id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description carries full burden. It clearly discloses the two-step confirmation process and the meaning of confirmWrite. However, it omits other important behavioral traits: what happens after deletion (e.g., irreversibility, impact on related records), required permissions, error conditions, or success response format. This leaves gaps for a destructive operation.

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

Conciseness4/5

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

The description is compact with two sentences, front-loading the core purpose. The instructions in the second sentence are dense but necessary. Minor improvement could be separating the instructions into bullet points, but it remains readable and efficient.

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

Completeness3/5

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

Given the complexity (destructive action with confirmation flow) and absence of output schema, the description covers the confirmation process well but lacks details on what happens after a successful deletion (e.g., return value, side effects). It also does not mention prerequisites like permissions or system state (e.g., note must exist). This makes it incomplete for an agent to fully understand the tool's behavior.

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 75%, high. The description adds significant value for the critical parameter confirmWrite by explaining its role in the two-step confirmation, complementing the schema. Id and companyName are already well-described in the schema. The parameter confirmDelete (with default false) is not mentioned in the description, but it is optional and less critical. Overall, the description enhances parameter understanding.

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

Purpose4/5

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

The description clearly states 'Deletes a BRC sales credit note by id using timestamp confirmation', specifying the verb and resource. The tool name and description together effectively distinguish it from sibling delete tools targeting other entities. However, it does not explicitly contrast with other delete tools, losing a point for full differentiation.

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

Usage Guidelines4/5

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

Provides explicit step-by-step guidance: first call without confirmWrite:true returns confirmation_required and preview; then retry with confirmWrite:true only after user confirmation. Also warns that 'preflight is not confirmation'. This is strong, but it does not discuss when to use this tool versus alternatives (e.g., updating instead of deleting), so it's not a perfect 5.

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

brc_delete_sales_entryAInspect

Deletes a BRC sales entry by id using timestamp confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales entry id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.1/5.0
Behavior3/5

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

Discloses the two-step confirmation behavior and payload preview. Lacks details on consequences of deletion (e.g., irreversibility), but annotations are absent so description carries 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.

Conciseness4/5

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

Two sentences: first states purpose, second details process. No fluff, front-loaded, but could be slightly more structured for readability.

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

Completeness4/5

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

Sufficiently covers the confirmation workflow for a delete tool with no output schema. Does not explain errors or prerequisites, but overall complete for agent usage.

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?

Adds significant value for confirmWrite parameter by explaining the preflight/confirmation workflow. Schema covers 75% of parameters; description compensates with usage details beyond schema.

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

Purpose5/5

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

The description clearly states it deletes a BRC sales entry by ID using timestamp confirmation. It differentiates from sibling delete tools by specifying the unique two-step confirmation process.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 explicit step-by-step usage: first call without confirmWrite, show draft, then retry with confirmation. However, it does not compare to alternatives like other delete tools.

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

brc_delete_sales_invoiceAInspect

Deletes a BRC sales invoice by id using timestamp confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales invoice id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description fully covers the two-step confirmation behavior. It discloses that the first call returns a confirmation_required response and a payload preview. However, it does not mention the irreversible nature of deletion or what happens after successful confirmation.

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

Conciseness5/5

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

The description is extremely concise: two sentences that front-load the core action and immediately follow with critical usage guidance. No unnecessary 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?

Given no output schema, the description provides essential context about the confirmation flow. It mentions the return of confirmation_required and a payload preview but does not detail the preview structure or final success response. This is adequate for a delete tool but could be slightly 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 75% (3 out of 4 parameters described). The description adds no additional meaning for id, companyName, or confirmWrite beyond what the schema already provides. It does not address the confirmDelete parameter at all, leaving its purpose unclear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 it deletes a BRC sales invoice by id using timestamp confirmation. The verb 'deletes' and specific resource 'sales invoice' make the purpose unambiguous, and it stands out among sibling delete tools by mentioning the two-step confirmation process.

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

Usage Guidelines5/5

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

Explicit instructions are provided: first call without confirmWrite returns confirmation_required and a payload preview, then retry with confirmWrite only after explicit user confirmation. It also clarifies that passing preflight is not confirmation, which prevents misuse.

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

brc_delete_sales_repAInspect

Deletes a BRC sales rep by id using timestamp confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales rep id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.3/5.0
Behavior4/5

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

Discloses the two-step preflight/confirmation behavior, including that preview is returned. Could mention permanence of deletion, but overall sufficiently transparent for a mutation tool with no 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?

Two sentences, front-loaded with purpose and workflow. Each sentence adds value, though could be slightly more concise.

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

Completeness4/5

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

Description covers the deletion workflow and return preview. Lacks output schema info, but description mentions return values. Complete enough for agent to use 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 high (75%), so baseline is 3. Description adds context on confirmWrite timing but doesn't elaborate on confirmDelete. Adequate but not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 (Deletes) and resource (BRC sales rep) with a specific method (timestamp confirmation). It differentiates from sibling delete tools by referencing the confirmation process.

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

Usage Guidelines5/5

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

Explicit instructions on when to use: first call without confirmWrite returns preview, then retry with confirmWrite: true only after user confirmation. Warns against assuming preflight as confirmation.

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

brc_delete_supplierAInspect

Deletes a BRC supplier by id. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYessupplier id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
confirmDeleteNo

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly explains the two-step preflight/confirmation flow and warns that 'Passing preflight is not confirmation.' However, it does not describe the behavior of the confirmDelete parameter or the response after successful deletion.

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

Conciseness5/5

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

The description is extremely concise (two sentences) with no filler. It front-loads the core action and immediately explains the unique two-step workflow, making it easy for an agent to parse.

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

Completeness4/5

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

Given the tool's complexity (delete with confirmation), the description covers the essential flow and the key parameter usage. It lacks details about the return value or response after the second call, and does not mention alternative approaches like deactivation. Nonetheless, it provides sufficient context for correct invocation.

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

Parameters4/5

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

The input schema already covers 75% of parameters with descriptions. The description adds meaningful context for confirmWrite, clarifying that it must only be set true after explicit user confirmation in a later message, which goes beyond the schema's description. Other parameters are not elaborated beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Deletes a BRC supplier by id'), specifying both the verb and the resource, and it implicitly distinguishes from sibling delete tools for other entities (e.g., brc_delete_customer) through the resource name.

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

Usage Guidelines3/5

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

The description explains the two-step confirmation process but does not provide explicit guidance on when to use this tool over alternatives (e.g., deactivating a supplier via brc_update_supplier). Usage context is clear but lacks exclusions or comparisons to siblings.

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

brc_generate_sales_invoice_from_quoteAInspect

Generates a sales invoice from a BRC quote. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesQuote id.
procDateNoOptional invoice processing date in ISO format.
entryDateNoOptional invoice entry date in ISO format.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.9/5.0
Behavior5/5

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

No annotations are provided, so the description fully carries the burden. It accurately discloses the two-phase behavior (preview then write) and the requirement for explicit user confirmation. This is transparent and prevents misuse.

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

Conciseness5/5

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

The description is three sentences, each earning its place: first states purpose, second explains the two-step process, third reinforces the confirmation requirement. No fluff.

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

Completeness5/5

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

Given no output schema, the description mentions return of confirmation_required and preview, which is sufficient. The tool's complexity is moderate and the description covers all necessary context for correct invocation.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds extra meaning for the confirmWrite parameter by explaining its role in the workflow (preview vs. actual creation), which goes beyond the schema's 'Must be true only after...' explanation.

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

Purpose5/5

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

The description clearly states 'Generates a sales invoice from a BRC quote' with a specific verb and resource. It distinguishes from many sibling tools focused on other operations (create/update/list) by being the only one that generates an invoice from a quote with a two-phase workflow.

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

Usage Guidelines5/5

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

The description provides explicit step-by-step usage: first call without confirmWrite for preview, then retry with confirmWrite: true only after user confirmation. It also warns that 'passing preflight is not confirmation,' leaving no ambiguity about when and how to use.

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

brc_get_accrualAInspect

Returns information about a single parent Accrual by id. Child accruals are not exposed by the public API.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent accrual id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavioral traits. It states the tool returns information (implying a non-destructive read) and clarifies that child accruals are not exposed. However, it omits details like idempotency, potential error conditions, or any response format hints.

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

Conciseness5/5

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

The description is extremely concise: two sentences, no fluff, and front-loaded with the core function. Every word contributes meaning.

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

Completeness2/5

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

The tool has no output schema, yet the description does not hint at what information is returned (e.g., structure, fields). It also lacks any mention of authentication, error handling, or prerequisites, leaving gaps for an agent to understand the full 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%, so the schema already documents both parameters. The description adds minimal value beyond the schema, confirming the id is for a parent accrual. The tool's note about parent vs child is more about purpose than parameter semantics.

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

Purpose5/5

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

The description clearly states the tool returns information about a single parent Accrual by ID, distinguishing it from sibling tools like brc_list_accruals (for listing) and brc_create_accrual (for creation). It also notes that child accruals are not exposed, providing additional specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents 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 defines the tool's use case—retrieving a specific parent accrual by ID—and the context of sibling tools suggests alternative tools for listing or creating. However, it does not explicitly state when not to use it or list prerequisites.

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

brc_get_bank_accountAInspect

Gets one BRC bank account by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBank account id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, and the description does not disclose any behavioral traits beyond the basic get operation, such as required permissions or return value structure.

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 very short and to the point, with no unnecessary information, but could be slightly more detailed without losing conciseness.

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

Completeness3/5

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

Given no output schema and a simple retrieval operation, the description adequately defines the tool's purpose but lacks details about the return value, leaving the agent to infer the structure.

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

Parameters3/5

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

Both parameters have descriptions in the schema (100% coverage), so the description adds no additional meaning beyond what is already provided.

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

Purpose5/5

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

The description clearly states the action (Gets), resource (BRC bank account), and method (by id), distinguishing it from list/create/update/delete 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 implies usage for retrieving a single bank account, but lacks explicit guidance on when to prefer it over listing or other retrieval methods.

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

brc_get_cash_paymentBInspect

Gets one BRC cash payment by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash payment id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits beyond the obvious read operation, such as required permissions, rate limits, or what happens if the id does not exist.

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

Conciseness5/5

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

The description is a single sentence with no extraneous words. Highly efficient.

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

Completeness3/5

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

The tool is simple, but there is no output schema or mention of return values. For a get operation, the description is adequate but could be improved by noting the expected return structure or any special behavior.

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

Parameters3/5

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

Schema description coverage is 100% with both parameters documented. The description adds 'by id' but not meaningful extra context beyond what the schema already provides. 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 'Gets one BRC cash payment by id' clearly specifies the verb (gets) and resource (BRC cash payment) and distinguishes from sibling tools like list or create operations.

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 use this tool versus alternatives (e.g., brc_list_cash_payments or brc_create_cash_payment). The description solely states the action without context.

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

brc_get_cash_receiptBInspect

Gets one BRC cash receipt by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash receipt id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only states the basic operation without mentioning side effects, safety (read-only), authentication, or any constraints. For a getter, the lack of explicit read-only indication is a gap.

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, clear sentence with no wasted words. While it is efficient, it could benefit from additional context about return behavior or prerequisites without becoming verbose.

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

Completeness3/5

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

The description covers the core purpose but lacks information about the return value (e.g., it returns a single cash receipt object) and does not explain the role of the 'companyName' parameter. Given no output schema, the description leaves some ambiguity about expected outcomes.

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

Parameters3/5

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

The schema description coverage is 100%, so both parameters ('id' and 'companyName') are already documented in the input schema. The description adds no additional semantic meaning beyond what the schema provides, resulting in a baseline score 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 'Gets one BRC cash receipt by id' clearly states the action (get), the resource (BRC cash receipt), and the method (by id). It distinguishes from sibling tools like brc_list_cash_receipts which retrieve multiple receipts, and other getters which target different entities.

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

Usage Guidelines3/5

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

The description implies usage for retrieving a single cash receipt by ID, but does not explicitly state when to use this tool versus alternatives like brc_list_cash_receipts or other getters. No guidance on prerequisites or context.

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

brc_get_company_api_key_statusAInspect

Use when the user asks for an API key, secret, or what key was used. Returns connection status only — never the key. The assistant must not repeat keys from chat history.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameNoOptional company context name. If omitted, summarises all contexts.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly states the tool returns connection status only and never the key, and includes a safety warning about not repeating keys from chat history.

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

Conciseness5/5

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

The description is two sentences long with zero waste. Every sentence adds value: usage guidance, behavioral constraint, and safety instruction.

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

Completeness5/5

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

For a simple tool with one optional parameter and no output schema, the description covers all needed aspects: purpose, when to use, behavior, and agent constraints. No 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?

The schema description covers the single parameter (companyName) at 100%, so the description does not need to add parameter details. It provides no additional parameter semantics.

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

Purpose5/5

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

The description clearly states the tool returns connection status for API key queries, and distinguishes itself by explicitly saying it never returns the key. This differentiates it from sibling tools like brc_clear_company_api_key.

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

Usage Guidelines4/5

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

The description explicitly states when to use the tool ('when the user asks for an API key, secret, or what key was used'), but does not mention when not to use it or provide alternatives.

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

brc_get_company_optionsAInspect

Gets raw BRC company processing/options settings, including nominal ledger, VAT on cash receipts, gross price entry, margin VAT, reverse charge VAT, VAT discrepancy tolerance, and ageing options. Read-only in Red; changes must be made in Big Red Cloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description bears full burden. It discloses read-only nature and lists settings, but lacks details on potential side effects, permissions, error handling, or return format. Adequate but not thorough.

Agents need to know what a tool does to the world before 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: first enumerates what is retrieved, second clarifies read-only nature and where changes are made. Efficient and front-loaded with essential information.

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

Completeness4/5

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

Given the tool's simplicity (1 param, no output schema) and no annotations, the description is largely complete. It explains purpose and usage context. Minor gap: 'raw' is undefined, and differentiation from similar siblings is absent.

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

Parameters3/5

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

Only one parameter (companyName) with 100% schema coverage. The description adds no extra meaning beyond the schema's description. 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?

Description states it gets raw BRC company processing/options settings and lists included items (nominal ledger, VAT options, ageing). Clear verb+resource, but sibling tools like brc_get_company_processing_settings exist which may overlap, reducing differentiation.

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

Usage Guidelines3/5

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

The description notes it is read-only and changes must be made elsewhere, implying correct usage. However, it does not explicitly state when to use this tool over alternatives like brc_get_company_processing_settings or brc_get_company_reference_settings.

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

brc_get_company_processing_settingsAInspect

Reads BRC company processing/options settings that affect VAT, cash receipts, payment terms, debtor statements, gross price entry, and transaction creation behaviour. Use this before VAT-sensitive write workflows where possible. These settings are read-only in Red; changes must be made in Big Red Cloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeRawNoIf true, includes the raw BRC settings record for operator review. Customer-facing responses should normally leave this false.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A4.2/5.0
Behavior4/5

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

In the absence of annotations, the description discloses that the settings are read-only in Red and changes must be made in Big Red Cloud. This adds important behavioral context beyond the schema. It does not cover auth or rate limits, but the key behavior is explained.

Agents need to know what a tool does to the world before 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 tightly focused sentences: purpose, usage recommendation, and behavioral note. No redundant words, 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?

Given no output schema, the description provides sufficient context about what settings are covered (VAT, cash receipts, etc.). It could optionally describe the return format, but for a 'get' tool with clear sibling differentiation, it is largely complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters (includeRaw, companyName). The description does not add additional parameter-level detail beyond what the schema provides, so it meets the baseline but does not exceed it.

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

Purpose5/5

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

Description uses specific verb 'reads' and clearly identifies the resource as 'BRC company processing/options settings'. It lists the affected features (VAT, cash receipts, payment terms, debtor statements, gross price entry, transaction creation), distinguishing it from sibling tools like brc_get_company_options or brc_get_company_reference_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?

Explicitly advises 'Use this before VAT-sensitive write workflows where possible', providing clear context for when to call this tool. However, it does not explicitly state when not to use it or mention alternatives, though the context is strong enough for an agent to infer.

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

brc_get_company_reference_settingsAInspect

Reads BRC reference auto-generation settings for sales, purchases, quotes, debtors journal, and creditors journal. Use this before preparing or creating quotes, invoices, purchases, or other reference-sensitive records. If Quotes is Unknown, do not assume auto-generate; ask for a quote reference or user confirmation first. These settings are read-only in Red; changes must be made in Big Red Cloud.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeRawNoIf true, includes the raw BRC company setup record for operator review. Customer-facing responses should normally leave this false.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries full behavioral burden. It discloses that the tool is read-only ('These settings are read-only in Red') and explains a key behavioral nuance (conditional handling for Quotes Unknown). However, it does not describe return format, error handling, or what happens if settings are missing, which would be beneficial.

Agents need to know what a tool does to the world before 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 adding essential information: purpose, usage guidance, and a behavioral note with constraints. No redundancy or filler. Perfectly 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 the tool's purpose and usage well, but lacks detail on the output format since there is no output schema. It doesn't explain what values are returned for each document type or how to interpret the settings. For a read-only settings tool, this is a minor gap; the description is otherwise complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no additional meaning beyond the schema; it doesn't elaborate on the includeRaw parameter or how to use it in context. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool 'Reads BRC reference auto-generation settings' and specifies the exact document types (sales, purchases, quotes, debtors journal, creditors journal). This verb-resource pair is specific and distinguishes it from sibling tools like brc_get_company_options or brc_get_company_processing_settings.

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

Usage Guidelines5/5

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

Explicitly advises to use this tool 'before preparing or creating quotes, invoices, purchases, or other reference-sensitive records.' It also provides a specific conditional: 'If Quotes is Unknown, do not assume auto-generate; ask for a quote reference or user confirmation first.' This offers clear when-to-use guidance and a caution.

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

brc_get_company_setup_configAInspect

Gets full BRC company setup configuration, including general details, financial year, reference settings, and processing options.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. It indicates a read operation ('Gets'), but does not disclose any side effects, permissions required, or limits. It is adequate but lacks depth.

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

Conciseness5/5

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

Single sentence that is clear and front-loaded with the tool's purpose, listing key contents efficiently. No wasted words.

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

Completeness4/5

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

With no output schema, the description provides a reasonable overview of what is returned (categories of configuration). It is nearly complete for a getter tool, though it could mention the response format.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 description does not add meaning beyond the input schema for the single parameter companyName. Schema coverage is 100%, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states it gets the full BRC company setup configuration and lists components (general details, financial year, reference settings, processing options), which distinguishes it from sibling tools that retrieve individual pieces.

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 you need all listed components together, but does not explicitly state when to use this tool versus the specific getter siblings (e.g., brc_get_financial_year). No when-not-to-use or alternatives are given.

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

brc_get_customerBInspect

Gets one BRC customer by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.3/5.0
Behavior2/5

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

The description states it 'gets' a customer, implying a read operation, but no behavioral details are provided beyond that. With no annotations, the description carries the full burden but fails to disclose any constraints, required permissions, or potential side effects.

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

Conciseness5/5

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

The description is a single, clear sentence. It is appropriately concise with no unnecessary words.

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 get-by-id operation, the description is minimally adequate. However, it does not mention that both parameters are required, nor does it indicate what the return value contains (e.g., full customer object). With no output schema, some additional context would be 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?

Schema description coverage is 100%, so the parameters are already well-documented. The tool description does not add any additional meaning or usage hints beyond what the schema provides, resulting in a baseline score of 3.

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

Purpose5/5

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

The description clearly states the action ('Gets') and the resource ('one BRC customer by id'). It is specific and distinguishes from sibling tools like brc_get_accrual or brc_list_customers by identifying the target resource and the lookup method.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., brc_list_customers, brc_update_customer). There is no mention of prerequisites, typical use cases, or when not to use it.

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

brc_get_customer_opening_balanceBInspect

Gets a customer's opening balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, return format, or any side effects. For a simple get tool, this is insufficient for an agent to understand behavior beyond a basic lookup.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but lacks structure. It is not verbose, but it could be improved by front-loading key information or adding brief context.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is too minimal. An agent may not know what the tool returns (e.g., a single balance value or object) or if there are any constraints.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters (companyName and itemId). The description does not add extra meaning beyond what is in the schema, so baseline 3 applies.

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

Purpose5/5

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

The description explicitly states the action 'Gets' and the resource 'customer's opening balance', which is clear and distinct from sibling tools like brc_get_customer (gets customer details) and brc_list_customer_op_bal_trans (lists transactions).

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 provides no guidance on when to use this tool versus alternatives (e.g., brc_list_customer_op_bal_trans). No context about prerequisites or typical use cases is given.

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

brc_get_deployment_policyAInspect

Authoritative customer-facing permission and output policy summary for this Red session. Use when the user asks what they can do, what tools they have, what permissions are enabled, or whether technical details/code should be shown. Summarise only whether reading company data, creating/changing records, deleting records, and customer-facing technical output are available. Do not list MCP tool names, endpoint names, tool counts, JSON, schemas, local file paths, terminal commands, environment variables, or a full capability catalogue. Customer-facing answers must be plain-English business responses with evidence, assumptions, uncertainty, and limitations. Internal analysis is allowed, but code/scripts/commands/intermediate files must not be exposed to customer users unless dev mode is enabled.

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 description is highly transparent about what the tool does (summarizes permissions), its constraints (do not expose technical details), and its audience (customer-facing). It lacks an explicit statement that it is read-only, but given its nature, this is sufficient. No annotations provided, so the description carries the full burden.

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 longer than ideal but front-loaded with the main purpose. Every sentence adds value by setting usage context and constraints. Could be slightly more concise, but the detail is warranted for a meta-introspection tool.

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

Completeness4/5

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

Given zero parameters and no output schema, the description provides sufficient context for an agent to decide when to use this tool and what it returns (plain-English business responses). It outlines the summary categories and formatting rules, making it complete for its purpose.

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

Parameters4/5

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

There are no parameters in the input schema, and schema description coverage is 100%. The description does not need to add parameter information since none exist. Baseline score for no parameters is 4.

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

Purpose5/5

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

The description clearly states it is an authoritative permission and output policy summary for the Red session, and explicitly lists triggers like 'asks what they can do, what tools they have, what permissions are enabled'. It distinguishes itself from sibling tools by being a meta-summary rather than an operational tool.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use scenarios ('user asks what they can do, what tools they have, what permissions are enabled, or whether technical details/code should be shown') and what to avoid (do not list tool names, JSON, etc.). It also gives formatting guidance for customer-facing answers.

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

brc_get_financial_yearCInspect

Gets BRC company financial year.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states 'Gets', implying a read operation, but does not confirm idempotency, required permissions, or any side effects. Additional context like whether it returns current or historical data 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.

Conciseness4/5

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

The description is a single, concise sentence with no wasted words. It is appropriately front-loaded with the action and resource. While it could be slightly more informative, it achieves conciseness without verbosity.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description should explain what the tool returns (e.g., financial year details). It fails to describe the output or any behavioral context, leaving the agent with insufficient information to understand the tool's complete functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 tool description does not add meaning beyond what the schema already provides. The parameter 'companyName' is fully described in the schema, so the description adds no extra semantic value.

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 ('Gets') and resource ('BRC company financial year'), clearly indicating the action and target. It distinguishes itself from sibling 'get' tools which target other entities (e.g., get_accrual, get_bank_account). However, it doesn't elaborate on what exactly constitutes a financial year (e.g., start/end dates).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description lacks context on prerequisites, use cases, or distinguishing factors from other get/list tools. The agent receives no help in deciding when this tool is appropriate.

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

brc_get_nom_ac_ledger_by_idsAInspect

Gets nominal accounts for specific ids by calling GET /v1/nominalAccounts/{id} for each id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesComma-separated nominal account ids.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A4.1/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It reveals that the tool makes individual GET calls per ID, indicating a read-only operation with potential performance implications. Adds value by explaining the mechanism, but does not detail error handling or merging of results.

Agents need to know what a tool does to the world before 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 of 16 words, front-loads the action. No unnecessary information. Extremely concise and well-structured.

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

Completeness3/5

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

No output schema, so description should explain return value. It does not mention what the tool returns (e.g., array of accounts) or error behavior for invalid IDs. Adequate but missing return value details.

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

Parameters4/5

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

Schema description coverage is 100% with clear descriptions for both parameters. Description adds mechanism context (calling endpoint for each id), which is beyond schema. Provides additional meaning about how parameters are used.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'gets' and resource 'nominal accounts for specific ids', and explains the mechanism (calling GET endpoint for each ID). It distinguishes from sibling tools like brc_get_nominal_account_ledger_by_id (single ID) and brc_list_nominal_accounts (all accounts).

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

Usage Guidelines3/5

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

Implies usage when you have specific IDs, but does not explicitly state when to use this tool over alternatives. No 'when not to use' or explicit alternatives mentioned. Siblings provide context but description could be more direct.

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

brc_get_nominal_account_ledger_by_idBInspect

Gets one BRC nominal account by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNominal account id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.2/5.0
Behavior2/5

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

No annotations exist, so the description must disclose behavior. It only states the basic action, omitting details about response format, error handling, or side effects. No read-only guarantee is given despite the get action implying safety.

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, clear sentence with no extraneous words. It is concise but could mention the expansion of BRC if ambiguous.

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 get-by-ID tool, the description is adequate but minimally complete. It does not explain what the ledger entry contains or any pagination/limitations, leaving the agent partially informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 no parameter-specific meaning beyond 'by id', which the schema already documents.

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

Purpose5/5

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

The description clearly states the verb 'Gets' and resource 'one BRC nominal account by id', distinguishing it from sibling tools like 'brc_get_nom_ac_ledger_by_ids' which retrieves multiple accounts.

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 usage guidance is provided. The description does not specify when to use this tool versus alternatives like list_nominal_accounts or the multi-ID variant, leaving the agent without explicit context.

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

brc_get_nominal_journal_batchAInspect

Returns information about a single Nominal Journal Batch by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNominal Journal Batch id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description bears full burden. It states it returns information, but does not explicitly disclose read-only behavior, authentication needs, or rate limits. However, for a simple getter, it's adequate.

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

Conciseness5/5

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

One sentence that front-loads the purpose. No wasted words, highly concise.

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

Completeness2/5

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

No output schema exists, so description should indicate what 'information' is returned. It does not. Also lacks guidance among numerous sibling tools. Incomplete for an agent to fully understand the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 description does not need to add much. It mentions 'by id' but does not elaborate on companyName. Baseline 3 is appropriate as schema already documents both parameters.

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

Purpose5/5

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

The description clearly states it returns information about a single Nominal Journal Batch by id, distinguishing it from sibling tools like brc_create_nominal_journal_batch, brc_delete_nominal_journal_batch, brc_list_nominal_journal_batches, and brc_update_nominal_journal_batch.

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 you have an id and need batch details, but does not explicitly mention when not to use it or suggest alternatives like brc_list_nominal_journal_batches for listing all batches.

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

brc_get_paymentBInspect

Gets one BRC payment by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description bears full responsibility for behavioral disclosure. It does not state whether the operation is read-only, idempotent, requires specific permissions, or has any side effects. The name 'get' implies read-only, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions 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 conveys the core purpose efficiently. No unnecessary words or repetitions. It is optimally concise for the simplicity of the tool.

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 retrieval tool with 2 parameters and no output schema, the description is minimally adequate. However, it lacks information about the return value or any behavioral context (e.g., idempotency, access requirements). Given the presence of many similar sibling tools, additional context would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters. The description adds no further meaning beyond what the schema provides. 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 clearly states the verb 'gets' and the resource 'one BRC payment by id', indicating a specific retrieval operation. However, it does not distinguish this tool from sibling tools like brc_get_cash_payment or brc_list_payments, leaving ambiguity about what constitutes a 'BRC payment' versus other payment types.

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 provides no guidance on when to use this tool versus alternatives such as brc_get_cash_payment, brc_list_payments, or other get tools. There is no information about context, prerequisites, or exclusions.

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

brc_get_prepaymentAInspect

Returns information about a single parent Prepayment by id. Child prepayments are not exposed by the public API.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent prepayment id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It indicates a read operation ('returns'), non-destructive. Could mention error behavior but for a simple get it's adequate.

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

Conciseness5/5

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

Single sentence of 15 words, directly states purpose and constraint (no child prepayments). No fluff, front-loaded.

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

Completeness5/5

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

For a simple read tool with 2 parameters and no output schema, the description is complete. It explains what it returns and what it doesn't cover (child prepayments). No additional context needed.

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

Parameters3/5

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

Schema covers both parameters with descriptions (id as parent prepayment id, companyName as company context). Description adds 'single parent' but that's already in schema's description. No extra semantic value beyond schema.

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

Purpose5/5

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

Clearly states verb 'returns', resource 'single parent Prepayment by id', and distinguishes from list tools and child prepayments. Sibling tool brc_list_prepayments lists all prepayments, so this is a specific get-by-ID.

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

Usage Guidelines4/5

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

Explicitly says when to use (to get info on a single parent prepayment by id) and notes that child prepayments are not exposed, implying when not to use. No explicit mention of alternatives but sibling context makes it clear.

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

brc_get_productBInspect

Gets one BRC product by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, and the description lacks behavioral details such as read-only nature, authentication requirements, or what happens if the product is not found. The minimal description does not compensate for missing 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 very concise at five words and front-loaded. However, it sacrifices potentially useful detail for brevity.

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

Completeness3/5

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

Given the tool's simplicity (get by ID) and complete schema, the description is minimally adequate. However, it lacks details on return value or behavior, making it incomplete for a comprehensive understanding.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters (id and companyName). The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states it gets one BRC product by id, using a specific verb and resource. It distinguishes from list, create, update, delete 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 usage for fetching a single product by ID but provides no explicit guidance on when to use vs alternatives like brc_list_products or other get tools.

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

brc_get_purchaseBInspect

Gets one BRC purchase by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPurchase id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action. It does not disclose behavioral traits like error handling, authentication needs, or whether the operation is read-only. For a retrieval tool, minimal but lacks context.

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, front-loaded with the core purpose. It is concise but could be slightly more informative without adding length.

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

Completeness2/5

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

Given the absence of annotations and output schema, the description is too minimal. It doesn't mention return format, error cases, or related tools, leaving gaps for an AI agent.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema, meeting baseline but not exceeding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Gets one BRC purchase by id,' clearly identifying the resource (BRC purchase) and the action (get by id). It distinguishes from siblings like brc_list_purchases and brc_delete_purchase.

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 provides no guidance on when to use this tool versus alternatives like brc_list_purchases or other get tools. No when-to-use or when-not-to-use information is given.

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

brc_get_quoteBInspect

Gets one BRC quote by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.2/5.0
Behavior2/5

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

Without annotations, the description carries the full burden of disclosing behavioral traits. It only states the action, missing details like read-only nature, return format, or potential side effects. The description is insufficient for understanding the tool's behavior.

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

Conciseness4/5

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

The description is extremely concise with a single sentence that is front-loaded. However, it could include more useful information without becoming verbose, hence not a perfect 5.

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

Completeness3/5

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

Given the low complexity (2 parameters, no output schema, no annotations), the description is minimally adequate but lacks details on return values or constraints. It leaves gaps for the agent to infer behavior.

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

Parameters3/5

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

Schema description coverage is 100% with basic descriptions for both parameters. The tool description adds no additional meaning beyond the schema, so a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Gets' and the resource 'one BRC quote by id', distinguishing it from sibling tools like brc_list_quotes and brc_create_quote which perform different operations.

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 provides no guidance on when to use this tool versus alternatives such as brc_list_quotes for multiple quotes or brc_create_quote for creation. No context about prerequisites or exclusions is given.

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

brc_get_sales_credit_noteCInspect

Gets one BRC sales credit note by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales credit note id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states it 'gets' a credit note, omitting any mention of read-only nature, possible errors (e.g., ID not found), authentication requirements, or rate limits. The agent cannot infer safety or side-effects.

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

Conciseness4/5

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

The description is a single, focused sentence that efficiently conveys the core action. It is not unnecessarily long, though it could benefit from a bit more detail without becoming verbose.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description does not provide enough context. It does not describe the structure of the returned credit note, error handling, or prerequisites (e.g., needing the company name and a valid ID). The tool is simple but still leaves 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 coverage is 100% with both parameters described ('Sales credit note id.', 'Company context name, for example YOUR-COMPANY-NAME.'). The description adds no additional semantic value beyond the schema, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Gets') and the resource ('one BRC sales credit note by id'), distinguishing it from list operations like brc_list_sales_credit_notes. The purpose is specific and unambiguous, though it could more explicitly differentiate from other single-get tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that brc_list_sales_credit_notes should be used to retrieve multiple notes, or that this tool requires a known ID. The agent receives no contextual usage advice.

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

brc_get_sales_entryCInspect

Gets one BRC sales entry by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales entry id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the basic operation without disclosing behavior like read-only nature, error states, or side effects. For a simple retrieval, this is acceptable but could be more transparent.

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?

Extremely concise with one sentence that front-loads the key information. No wasted words, though it borders on under-specification.

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

Completeness2/5

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

Given no output schema and a simple retrieval, the description should at least hint at return value (e.g., 'returns the sales entry object'). It does not, leaving some ambiguity. However, for a straightforward get-by-id, it partially meets expectations.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The tool description adds no additional parameter meaning beyond the schema, meeting the baseline of 3.

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

Purpose4/5

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

The description clearly states the verb 'Gets' and resource 'one BRC sales entry' with method 'by id'. It is specific and unambiguous, though it does not differentiate from many sibling 'get_*' tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., brc_list_sales_entries) or prerequisites. The description is minimal and provides no usage context.

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

brc_get_sales_invoiceBInspect

Gets one BRC sales invoice by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales invoice id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations present. Description only states it retrieves an invoice, with no mention of read-only nature, idempotency, or other behavioral traits.

Agents need to know what a tool does to the world before 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, short sentence with no extraneous information. Every word is necessary.

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 get tool, description is adequate but lacks details on return value format or structure. Acceptable given no output schema and simple use case.

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

Parameters3/5

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

Schema covers 100% of parameters and provides descriptions. The tool description adds minimal value beyond 'by id' implying the id parameter. Baseline 3 due to 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?

Description clearly states action ('Gets'), resource ('BRC sales invoice'), and identifier ('by id'). Distinguishes from sibling list or create tools.

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 use this tool versus alternatives like brc_list_sales_invoices or brc_batch_sales_invoices. Implied but not explicit.

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

brc_get_sales_repBInspect

Gets one BRC sales rep by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales rep id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description must fully disclose behavior. It only states 'Gets', implying a read operation, but omits details on return format, error cases, idempotency, or required permissions. This is insufficient for an agent to understand its full effects.

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

Conciseness5/5

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

The description is a single sentence that is front-loaded with the essential action and resource. No extraneous information, making it easy to parse quickly.

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 get-by-id tool, the description covers the basic purpose. However, with no output schema, it does not explain return values. Given the lack of annotations, it could be more complete by mentioning the output format or typical use case.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for both parameters. The description adds no extra meaning beyond what's in the schema, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly specifies the verb 'Gets', the resource 'one BRC sales rep', and the method 'by id'. It effectively distinguishes from sibling tools like brc_list_sales_reps (list all) and brc_batch_sales_reps (batch operations) by implying a single-record retrieval.

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 provides no guidance on when to use this tool versus alternatives (e.g., brc_list_sales_reps for listing, brc_update_sales_rep for modifying). No when-not or prerequisite info is given.

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

brc_get_supplierAInspect

Gets one BRC supplier by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSupplier id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It only states the basic operation without mentioning permissions, rate limits, side effects, error handling, or what happens if the supplier ID does not exist. Additional context would be beneficial.

Agents need to know what a tool does to the world before calling it. Descriptions 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 immediately states the tool's purpose. No unnecessary words, efficiently front-loaded.

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

Completeness3/5

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

Given the tool's simplicity (get by ID) and full schema coverage, the description is minimally adequate. However, it lacks details about return format, potential errors, or the role of companyName, making it incomplete for an agent needing full 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 schema already describes both parameters (companyName and id). The description adds no extra meaning beyond what the schema provides, resulting in a baseline score 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 'Gets one BRC supplier by id,' which clearly specifies the verb (Gets), resource (one BRC supplier), and retrieval method (by id). It distinguishes from sibling tools like brc_list_suppliers and brc_batch_suppliers.

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 guidance on when to use this tool versus alternatives. The description implies usage for single supplier retrieval, but does not specify exclusions or mention sibling tools like brc_list_suppliers for multiple results.

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

brc_get_supplier_opening_balanceCInspect

Gets a supplier's opening balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesSupplier item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.8/5.0
Behavior1/5

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

With no annotations provided, the description carries the full burden but fails to disclose any behavioral traits—e.g., idempotency, error handling (supplier not found), or return data format. It is a bare statement of purpose.

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

Conciseness3/5

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

The description is extremely concise (one short sentence), but for a tool with no annotations and low schema richness, it is under-specified. It states purpose but lacks necessary detail, making it minimally adequate.

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

Completeness2/5

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

Given no output schema and simple parameters, the description should explain the concept of opening balance or the relationship between companyName and itemId. It fails to provide enough context for an AI agent to use it correctly without external knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 no extra meaning beyond the schema's parameter descriptions, which are already present. No elaboration is provided.

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

Purpose5/5

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

The description 'Gets a supplier's opening balance' clearly states the verb (Gets) and resource (supplier's opening balance), and it distinguishes from sibling tools like brc_get_customer_opening_balance by being supplier-specific.

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 provides no guidance on when to use this tool versus alternatives such as list_supplier_op_bal_trans or get_supplier. It does not mention exclusions or prerequisites.

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

brc_getting_startedAInspect

Use this whenever the user asks how to start, says start, says getting started, or asks for help using Big Red Cloud. Return simple customer-friendly setup steps and example prompts. If the user asks what they can do or what permissions they have, call brc_get_deployment_policy instead and state only current permissions — do not list tool names or counts.

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?

No annotations are provided, so description carries full burden. It explains what the tool returns (setup steps and example prompts). Could be improved by explicitly stating it has no side effects or is read-only, but it's clear enough for this context.

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

Conciseness5/5

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

Two sentences, front-loaded with trigger conditions and return value. No unnecessary words. Every sentence adds value.

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

Completeness5/5

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

Given the tool has no parameters, no output schema, and low complexity, the description is complete. It covers all needed context: triggers, output content, and differentiation from siblings.

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

Parameters4/5

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

No parameters in input schema; schema coverage is 100%. Baseline is 4. Description adds context about when to use but doesn't need to describe parameters.

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

Purpose5/5

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

The description clearly specifies the tool's purpose: to be used when the user asks 'how to start', 'start', 'getting started', or general help using Big Red Cloud. It states it returns setup steps and example prompts, and distinguishes from sibling brc_get_deployment_policy for permission queries.

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

Usage Guidelines5/5

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

Explicitly states when to use (user asks for help getting started) and when not to use (if user asks about permissions, call brc_get_deployment_policy instead). Provides a clear alternative tool name.

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

brc_grouped_nominal_accounts_reportBInspect

Creates a grouped nominal accounts report from GET /v1/nominalAccounts, grouping by account group/type fields when available.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It mentions 'creates' and cites a GET endpoint, but does not clarify if the report is persisted or generated on-the-fly, nor any read-only/mutation characteristics. This leaves ambiguity about side effects.

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

Conciseness4/5

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

The description is a single sentence that front-loads the action. It is concise but could be more structured to include output behavior. However, it meets a high bar for brevity.

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

Completeness2/5

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

For a report-generation tool, the description lacks details on output format, grouping criteria specifics ('when available' is vague), and any constraints. Given no output schema, more contextual completeness 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?

The only parameter (companyName) is described fully in the schema (100% coverage). The tool description adds no additional semantic detail beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool creates a grouped nominal accounts report, specifies the source endpoint (GET /v1/nominalAccounts), and mentions grouping by account group/type. This distinguishes it from sibling tools like brc_list_nominal_accounts (which likely lists raw accounts) and brc_multi_company_nom_ac_report (multi-company variant).

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

Usage Guidelines3/5

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

The description implies usage for grouped reports, but lacks explicit guidance on when to use this tool versus alternatives (e.g., when raw list or multi-company report is needed). No exclusions or prerequisites are mentioned.

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

brc_list_accountsCInspect

Lists BRC accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.2/5.0
Behavior2/5

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

No annotations are provided. The description only states the action without disclosing any behavioral traits such as whether it is read-only, pagination behavior, authentication requirements, or 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.

Conciseness2/5

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

While the description is short (4 words), it is too sparse for a tool with 7 parameters. Conciseness is undermined by lack of essential information; it should include more context to be useful.

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

Completeness1/5

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

The tool has 7 parameters, no annotations, no output schema, and many sibling tools. The description does not explain return values, pagination, or filtering capabilities. It is grossly incomplete for effective use.

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

Parameters2/5

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

Schema coverage is 43% (only 3 of 7 parameters have descriptions in the schema). The description adds no additional meaning to parameters. It fails to compensate for the low schema coverage, leaving agents uninformed about how to use parameters like top, page, or filter.

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

Purpose3/5

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

Description states 'Lists BRC accounts.' which provides a verb and resource, but it is vague and does not distinguish from sibling list tools like brc_list_customers or brc_list_bank_accounts. It is unclear what 'BRC accounts' refers to.

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 use this tool versus alternatives. Sibling tools include many other list operations, but the description offers no context about what type of accounts are listed or when to choose this over others.

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

brc_list_accrualsAInspect

Returns a list of the company's Accruals. Supports optional OData filtering by entryDate. Supports optional ordering by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoOptional page size.
skipNoOptional number of records to skip.
filterNoOptional OData filter. Filtering is allowed by entryDate, for example: entryDate ge 2024-03-01T00:00:00.
orderByNoOptional OData order by. Ordering is allowed by id, for example: id desc.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses read-only behavior and supported OData operations but omits details like pagination limits, error conditions, or return format.

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

Conciseness5/5

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

Two sentences, no extraneous information, front-loaded with the action 'Returns'. Every sentence serves a purpose.

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

Completeness3/5

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

The description covers the basics but lacks details on the returned fields or structure, which is important given no output schema. It also does not mention the required companyName context explicitly in the description, though it's in the schema.

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

Parameters3/5

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

Schema coverage is 100%, and the description reiterates the OData filtering and ordering capabilities already indicated in the parameter descriptions. It adds marginal value beyond the schema.

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

Purpose5/5

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

The description clearly states it returns a list of accruals, with optional filtering by entryDate and ordering by id. This distinguishes it from sibling tools like brc_get_accrual (single) and brc_create_accrual (create).

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 (to list accruals) but does not explicitly guide when to use this tool versus other list tools for different entities. No exclusions or alternatives are mentioned.

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

brc_list_allocated_transactionsAInspect

Returns transactions already allocated from the specified sender book transaction. Use this to review existing allocations before reversing/deleting one. Requires bookTranId.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookTranIdYesBook transaction id to allocate from, for example 1001.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A4.2/5.0
Behavior4/5

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

No annotations are provided, so the description bears full responsibility. It discloses that the tool performs a read operation (returns transactions) and implies no destructive side effects. It covers the essential behavioral trait without contradiction.

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

Conciseness5/5

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

The description is exactly two sentences, front-loaded with the main action, and contains no redundant words. Every sentence adds value.

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

Completeness4/5

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

The tool is simple (2 required params, read operation). The description covers the core purpose and usage context. It does not describe return format (no output schema), but for a list tool that is often implicit. Minor gap in not mentioning pagination or result structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 only adds that bookTranId is required, which is already implied by the schema (required field). No additional semantic value beyond the schema.

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

Purpose5/5

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

The description clearly states it returns allocated transactions from a specified sender book transaction. It also distinguishes this tool from siblings by framing its use case ('review existing allocations before reversing/deleting'), which is specific and helpful.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents 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 tells when to use the tool ('before reversing/deleting one') and mentions a prerequisite ('Requires bookTranId'). It does not explicitly list alternatives or 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.

brc_list_allocation_resolversAInspect

Returns transactions eligible for allocation from the specified sender book transaction. Use this before updating allocations so the user can see which receiver transactions are available. Requires bookTranId.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookTranIdYesBook transaction id to allocate from, for example 1001.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.7/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It implies read-only but does not mention side effects, authentication needs, rate limits, or result structure. Lacks depth for a tool with no annotation safety net.

Agents need to know what a tool does to the world before 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 succinct sentences, front-loaded with purpose followed by usage context. Zero wasted words, highly efficient.

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

Completeness3/5

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

No output schema exists, but description does not elaborate on return format or fields beyond 'eligible transactions'. Adequate for a simple list tool but leaves some gaps.

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

Parameters3/5

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

Schema covers both parameters with descriptions (100% coverage). Description adds no extra meaning beyond reiterating that bookTranId is required, so baseline 3 is appropriate.

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

Purpose5/5

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

Description clearly states the tool returns 'transactions eligible for allocation from the specified sender book transaction', which is a specific verb+resource. It distinguishes from siblings like `brc_list_allocated_transactions` (which lists already allocated transactions) by focusing on eligibility.

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

Usage Guidelines4/5

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

Explicitly states 'Use this before updating allocations' and 'Requires bookTranId', giving clear context. Does not mention alternatives or when not to use, but the directive is strong.

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

brc_list_analysis_categoriesAInspect

Lists BRC analysis categories. For sales invoice and sales credit note product lines, choose a Sales analysis category that matches the income type. Do not default to a CR/customer category such as CR01 Customer — CR categories are customer control categories, not sales categories. If no clearly correct Sales category stands out, ask the user instead of picking the first plausible-looking one.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations exist, so description must carry behavioral disclosure. It describes basic function but omits details like pagination behavior, rate limits, or authentication needs.

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, concise. First sentence is clear purpose; second is detailed advisory. Could be slightly restructured for clarity but overall efficient.

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

Completeness2/5

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

No output schema, yet description does not explain return value structure. Does not address the 7 parameters or pagination. Missing crucial context for a list tool.

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

Parameters2/5

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

Schema coverage is 43%; description adds no parameter information. For undocumented parameters (top, page, skip), no guidance; for documented ones, no added 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 explicitly states it lists BRC analysis categories, with specific guidance on sales vs CR categories, distinguishing it from sibling tools that list other entity types.

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

Usage Guidelines5/5

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

Provides explicit when-to-use (sales invoices/credit notes), what not to do (avoid CR categories), and a fallback strategy (ask user if uncertain).

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

brc_list_audit_logAInspect

Show a record of data changes (create, update, delete, batch, quote close/reopen, emails, etc.) made through this Red MCP server session. Read-only API calls are not logged. Use this as the source of truth for "what did I do today in Red?" style questions. When the user asks what they did "in Red" (or in Big Red Cloud), answer only from Red/BRC activity for the current Red session and for companies currently connected in this session: the Red/BRC audit log, BRC session actions, and connector-visible BRC activity. Never include activity from other MCP sessions, other users, other connections, or companies that are not currently connected (including ones that were disconnected or cleared). For "what did I do today/yesterday/last week in Red", only summarise current-session audit entries for currently connected companies; if older entries exist outside this scope, ignore them completely rather than reporting them. Do not include unrelated Claude chat history such as MCP debugging, Mistral debugging, coding work, or other non-BRC conversations unless the user explicitly asks for broader chat history.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeTechnicalDetailsNoOnly set this to true if the user asks for technical details. Sensitive values are still redacted.

TDQS

A4.4/5.0
Behavior4/5

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

Without annotations, the description carries full burden. It discloses that only data changes are logged, read-only calls excluded, and scope is limited to current session. It does not explicitly state it's a read-only operation or mention rate limits, but the behavior is well-described.

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

Conciseness3/5

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

The description is verbose and contains redundancy (multiple sentences about ignoring older entries). While front-loaded with the core purpose, it could be more concise and structured without losing important 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 single boolean parameter and no output schema, the description covers scope, exclusions, and usage well. It misses describing the output fields, but for an audit log list tool, the behavioral context is sufficiently complete.

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

Parameters4/5

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

The only parameter (includeTechnicalDetails) has a schema description, but the description adds usage guidance: 'Only set this to true if the user asks for technical details. Sensitive values are still redacted.' This adds value beyond the schema.

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

Purpose5/5

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

The description clearly states it shows a record of data changes (create, update, delete, etc.) made through this Red MCP server session, distinguishing it from other list tools by focusing on audit log scope. It avoids tautology by adding nuance about read-only calls not logged.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool: for 'what did I do today in Red?' style questions. Provides clear exclusions: ignore other sessions, other users, disconnected companies, and unrelated chat history. Offers specific guidance on scope restrictions.

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

brc_list_bank_accountsCInspect

Lists BRC bank accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.1/5.0
Behavior1/5

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

With no annotations and a one-line description, behavioral traits like pagination, rate limits, or whether the operation is read-only are entirely omitted. The description adds no transparency beyond the name.

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

Conciseness2/5

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

The description is extremely short (one sentence), but it is under-specified rather than concise. It lacks essential details expected for a list operation with seven parameters.

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

Completeness1/5

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

Given seven parameters, no output schema, and no annotations, the description fails to explain pagination, filtering, required fields, or return behavior. It is far from complete.

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

Parameters1/5

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

Schema description coverage is 43%, leaving many parameters (top, page, skip, pageSize) undocumented in both schema and description. The description adds zero information about parameters, failing to compensate for the schema gaps.

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 'Lists BRC bank accounts' clearly states the verb and resource. It differentiates from sibling tools like brc_get_bank_account (single) and brc_list_accounts (different entity), though it is minimal.

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 use this tool versus siblings such as brc_list_accounts or brc_get_bank_account. No context on prerequisites or conditions for use.

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

brc_list_book_tran_typesCInspect

Lists BRC book transaction types.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2/5.0
Behavior2/5

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

The description implies a read operation ('Lists'), but does not explicitly state read-only behavior or any other behavioral traits. With no annotations, the description carries full burden and fails to disclose relevant aspects like idempotency or data source.

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

Conciseness2/5

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

Extremely short (one sentence), but this is under-specification rather than conciseness. The tool has 7 parameters and no output schema; the description should be more detailed to be helpful.

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

Completeness1/5

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

Incomplete for a tool with 7 parameters and no output schema. The description does not explain what 'book transaction types' are, how to use pagination parameters, or what the response contains.

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

Parameters1/5

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

The description adds no information beyond the input schema. Schema coverage is 43%, meaning many parameters lack descriptions, and the tool description does not compensate by explaining any parameter meanings or usage.

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

Purpose3/5

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

The description uses a specific verb 'Lists' and resource 'BRC book transaction types', but 'book transaction types' is vague without further context. It distinguishes from sibling list tools by topic, but does not clarify what a book transaction type is.

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 use this tool versus alternatives. Sibling tools include many similar list functions, but the description provides no context for selection.

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

brc_list_cash_paymentsCInspect

Lists BRC cash payments.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, pagination behavior, or response format. The presence of pagination parameters implies listing behavior, but this is not explicitly stated.

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

Conciseness3/5

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

The description is a single short sentence, making it concise but lacking detail. It front-loads the core purpose but sacrifices completeness. Given the tool's complexity (7 parameters, no output schema), the brevity is insufficient.

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

Completeness2/5

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

With no output schema, high parameter count, and no annotations, the description should provide more context about the tool's behavior, result format, and parameter usage. The single sentence fails to meet these needs, leaving the agent with many unknowns.

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

Parameters2/5

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

The schema has 43% parameter description coverage (filter, orderBy, companyName have descriptions), but the tool description adds no additional meaning to any parameter. Key pagination parameters (top, skip, page, pageSize) are left undocumented by both schema and description.

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

Purpose4/5

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

The description clearly states the action ('Lists') and the resource ('BRC cash payments'). It is specific and unambiguous, though it could differentiate further from sibling list tools by noting that it is specifically for cash payments (as opposed to cash receipts or other entities).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like brc_get_cash_payment, brc_batch_cash_payments, or other list tools. No when-to-use or when-not-to-use information is given.

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

brc_list_cash_receiptsCInspect

Lists BRC cash receipts.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only says 'lists' without explaining pagination behavior, default page size, ordering, or that the companyName parameter serves as a context filter. Important traits like rate limits, data freshness, or return structure are omitted.

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

Conciseness3/5

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

The description is a single short sentence, making it concise in length. However, it lacks any structured breakdown (e.g., bullet points or logical separation). While brevity is valued, the extreme minimalism here undercuts useful detail, earning an average score.

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

Completeness1/5

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

Given the tool's complexity (7 parameters, no output schema, no annotations), the description is severely lacking. It does not explain what cash receipts are, how pagination works, what the default order is, or what the response contains. This makes it nearly unusable for an agent without additional inference.

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

Parameters2/5

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

Schema description coverage is only 43% (descriptions for filter, orderBy, companyName). The tool description adds no additional meaning to any parameter. It does not explain the roles of top, page, skip, or pageSize in the context of listing cash receipts, which would be helpful given the lack of schema descriptions for those fields.

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 explicitly states the verb 'lists' and resource 'BRC cash receipts', clearly identifying the tool's basic purpose. It distinguishes from siblings like brc_list_cash_payments or brc_list_customers by naming the specific entity. However, it does not add any qualifiers about scope or unique features (e.g., 'all' or 'for a company'), missing a chance to be more specific.

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 use this tool versus alternatives like brc_get_cash_receipt (single receipt) or other list tools. There are no when-to-use, when-not-to-use, or alternative recommendations. The agent is left to infer context from the name alone.

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

brc_list_category_typesCInspect

Lists BRC category types.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.5/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden. It only says 'Lists', implying a read operation, but does not disclose details like pagination behavior, default page size, or any side effects. For a list tool with pagination parameters, more transparency is needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (one sentence). While not verbose, it borders on under-specification. It is front-loaded but sacrifices completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description is severely incomplete. The agent lacks information about return format, pagination details, filtering capabilities, and how to use the parameters effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43% (only filter, orderBy, companyName have descriptions). The tool description adds no parameter-specific meaning. Parameters like top, page, skip, pageSize lack schema descriptions and are not explained in the description, so the agent must guess their semantics.

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 'Lists BRC category types' clearly identifies the action and resource. It distinguishes from sibling list tools which are for different entities (e.g., accounts, customers). However, it lacks context on what 'BRC category types' are exactly.

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 use this tool versus alternatives. The description does not mention preconditions, typical use cases, or exclusions. The agent must infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_company_contextsAInspect

Lists company contexts currently connected in this MCP server session. Present the result to the user with the customerMessage text and the plain company names. Do not show technical fields such as credentialType or expiresAt to normal users unless they specifically ask. Connection credentials are never returned.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses that connection credentials are never returned and that technical fields like credentialType and expiresAt should be hidden. However, it does not mention other behaviors such as performance, idempotency, or required permissions, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is three sentences: the first states core purpose, the second and third provide usage instructions. No unnecessary words, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and no output schema, the description is complete enough for a simple listing tool. It explains what the tool does, how to present results, and what not to expose. Could optionally describe the return structure (e.g., array of objects with customerMessage and companyName), but not strictly necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has no parameters, so description has no additional parameter information to provide. Baseline score of 4 is appropriate as the description does not need to compensate for missing parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'list' and resource 'company contexts' with scope 'currently connected in this MCP server session'. Sibling tools include many list tools for other entities, but none for company contexts, so it is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 explicit instructions on presenting results: show customerMessage and plain names, hide technical fields unless asked, and note that credentials are never returned. Does not explicitly state when not to use, but context is sufficient given no alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_company_settingsCInspect

Lists BRC company settings.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, or potential side effects. The agent is left to infer that listing is safe, but this is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (one sentence) with no wasted words, but it is overly minimal and lacks necessary detail. It is structured appropriately but sacrifices completeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and no annotations, the description is under-specified. It does not explain what company settings are included, the response format, or how parameters affect the result, leaving significant gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 43% schema description coverage, many parameters (e.g., top, skip, pageSize) lack explanations. The tool description adds no additional parameter information, failing to compensate for gaps in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Lists') and the resource ('BRC company settings'), providing a direct purpose. However, it does not differentiate itself from sibling 'get_' tools for specific settings like brc_get_company_options, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., brc_get_company_options or other list tools). The description lacks context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_customer_account_transCInspect

Gets a customer's account transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavior. It only states the basic function without mentioning whether transactions are all or filtered, pagination, return format, or side effects. For a read operation, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single-sentence description is very concise, but it lacks structure and depth. While it avoids verbosity, it could include more useful details without becoming overly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description is incomplete. It does not explain what 'account transactions' includes (e.g., dates, amounts, types) or any constraints like date ranges. The tool is simple, but the description leaves significant 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 coverage is 100% for both parameters (itemId and companyName), with descriptions in the schema. The tool description adds no additional meaning beyond the schema's parameter descriptions, meeting the baseline for high 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 'Gets a customer's account transactions' uses a clear verb (Gets) and specifies the resource (customer's account transactions). It distinguishes from similar tools like brc_list_supplier_account_trans by focusing on customers. However, it does not differentiate from other customer list tools (e.g., brc_list_customer_quotes, brc_list_customers) beyond the resource name.

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 use this tool versus alternatives like brc_list_customer_quotes or brc_list_sales_invoices. The description omits context for selection, leaving the agent to infer based solely on the resource name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_customer_op_bal_transCInspect

Gets a customer's opening balance transaction list.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description only states 'Gets a customer's opening balance transaction list,' implying a read operation but missing details like pagination, filtering, ordering, or 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?

Single sentence, no wasted words, front-loaded with verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with no output schema, the description fails to hint at return structure (e.g., transaction dates, amounts). Minimal information leaves gaps for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already defines parameters. Description adds no additional meaning beyond what is in the schema, meeting the 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 it gets a customer's opening balance transaction list. It distinguishes from sibling tools like brc_get_customer_opening_balance (singular) and brc_list_customer_account_trans (different scope), but does not explicitly differentiate.

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 use this tool vs alternatives like brc_get_customer_opening_balance or brc_list_customer_account_trans. No context on prerequisites or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_customer_quotesCInspect

Gets quotes for a specific customer.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states 'Gets quotes for a specific customer' without detailing pagination, sorting, response format, or limits. Minimal transparency.

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?

Single sentence, 6 words, no waste. Efficient but could benefit from more structure or detail without sacrificing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is minimal but covers the basic purpose. However, it lacks details on return type, pagination, or any prerequisites, leaving some gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and includes descriptions for both parameters. The tool description does not add any extra meaning beyond the schema, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb ('gets') and resource ('quotes for a specific customer'), but does not explicitly differentiate from sibling tools like brc_list_quotes or brc_get_quote, though the customer filter is implied.

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 use this tool vs alternatives (e.g., brc_list_quotes for all quotes, brc_get_quote for single quote). The description lacks any usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_customersCInspect

Lists BRC customers.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as pagination, filtering support (though params imply it), permissions, or side effects. The agent has no insight into expected behavior beyond the minimal description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely terse (one short sentence). It fails to front-load key information that would help the agent decide to use this tool. Important details like default sorting or pagination are omitted, making it under-specified rather than concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (7 parameters, no output schema, no annotations), the description is woefully incomplete. It does not mention return format, pagination behavior, or filtering capabilities. The agent cannot confidently invoke this tool based solely on the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 43% schema description coverage, the description adds no value to parameter understanding. While some parameters have schema descriptions (filter, orderBy, companyName), the description does not explain any parameters, so the agent must rely solely on the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Lists BRC customers.' clearly states what the tool does (lists customers), but it does not distinguish it from the sibling tool 'brc_list_customers_without_dormant'. The agent must infer that this tool lists all customers, including dormant ones, which is not explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like 'brc_list_customers_without_dormant' or other list tools. There is no mention of prerequisites or contexts in which this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_customers_without_dormantCInspect

Lists BRC customers without dormant records.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavior. It fails to explain what 'dormant' means, how filtering works, pagination behavior, or any side effects. The schema includes pagination parameters (top, page, skip, pageSize) but these are not mentioned in the description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct (one sentence), which is concise, but it is too brief given the tool has 7 parameters. It lacks structure to present essential information efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is insufficient for a tool with 7 parameters, no output schema, and no annotations. It omits details about the return format, pagination, meaning of 'dormant', and how to use the filtering/ordering parameters. The context of the BRC system is not explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 43% (filter, orderBy, companyName have descriptions). The description adds no parameter-level information, leaving undocumented parameters like 'top', 'page', 'skip', 'pageSize' without context. With low schema coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Lists BRC customers without dormant records' uses a specific verb ('Lists') and resource ('customers') with a clear modifier ('without dormant'), distinguishing it from the sibling 'brc_list_customers' which likely includes all customers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'brc_list_customers'. The description does not mention prerequisites, exclusions, or context for selecting this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_nominal_accountsCInspect

Lists BRC nominal accounts.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only says 'lists', which gives no insight into behavior such as pagination (top, page, skip, pageSize parameters), filtering (filter parameter), or ordering (orderBy). The description adds no value beyond the tool name for behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, which is front-loaded and wastes no words. However, for a tool with 7 parameters and critical context like required companyName, it is under-specifying. It trades brevity for completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lacks context such as what a nominal account is, the return format, pagination behavior, or how to use the filtering/ordering capabilities. With no output schema and complex query parameters, the description is too sparse to be complete for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 43%, meaning 3 of 7 parameters (companyName, filter, orderBy) have descriptions in the schema. The description does not explain any parameter, such as the required 'companyName' or pagination controls. It fails to compensate for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Lists') and the resource ('BRC nominal accounts'). However, it does not distinguish itself from the sibling 'brc_list_accounts', which might also list accounts but of a different type. The tool name already hints at nominal accounts, so the description is helpful but lacks explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus other list tools like 'brc_list_accounts' or 'brc_list_customers'. There is no mention of prerequisites, context, or exclusions. The description is purely functional without any usage recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_nominal_journal_batchesAInspect

Returns a list of the company's Nominal Journal Batches. Supports optional OData filtering by entryDate and ordering by id. Use this before updating or deleting a nominal journal batch so the user can identify the correct id and timestamp.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoOptional page size.
skipNoOptional number of records to skip.
filterNoOptional OData filter. Filtering is allowed by entryDate, for example: entryDate ge 2024-01-01T00:00:00
orderByNoOptional OData order by. Ordering is allowed by id, for example: id desc.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes read-only nature implicitly ('returns a list') and mentions filtering/ordering capabilities. No annotations exist, so description carries full burden; could be improved by stating it does not modify 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?

Two sentences, no fluff. First sentence states purpose, second provides usage guidance. Efficient and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a list tool with well-documented schema. Lacks output description (what fields are returned), but the usage context and parameters are sufficiently covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; description repeats the filtering by entryDate and ordering by id that is already in the schema. Adds no new meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb ('returns a list') and specific resource ('nominal journal batches'). Does not explicitly differentiate from sibling list tools, but the name and description sufficiently identify the target resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance to use before update/delete operations to obtain id and timestamp. Lacks explicit when-not-to-use or alternative tools, but the provided context is helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_owner_type_groupsCInspect

Lists BRC owner type groups.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It only says 'lists,' implying a read operation, but doesn't mention pagination, filtering, or sorting behavior, even though the schema includes these parameters. Lacks disclosure of any side effects or constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely short (4 words) but under-specified. Conciseness is not achieved when essential information is missing. The sentence is efficient but lacks substantive content to guide the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters (1 required), no output schema, and low schema coverage, the description is completely inadequate. It does not explain the purpose of the returned data, pagination behavior, or how to use filters. The agent has very little actionable context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (43%), and the description adds no parameter details. The parameters top, page, skip, and pageSize lack descriptions in the schema, and the tool description does not explain their meaning or usage. The companyName parameter is the only required one, but its context is minimal.

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?

Description states it lists BRC owner type groups, which is a specific resource. However, it does not differentiate from sibling tools like brc_list_owner_types or brc_list_customers, which also list entities. The verb 'lists' is clear, but lacks distinction.

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 use this tool versus alternatives. For example, it doesn't explain how owner type groups differ from owner types or other list tools. The description provides no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_owner_typesCInspect

Lists BRC owner types.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not disclose read-only nature, pagination behavior, side effects, or rate limits. The minimal description adds no transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (2 words), but under-specified. Every sentence should earn its place; this one barely repeats the tool name. Conciseness sacrifices necessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no annotations, and no output schema, the description is completely inadequate. It does not explain return format, pagination, filtering, or any behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (43%), and the description does not mention any parameters. It adds no meaning beyond what the schema already provides, failing to compensate for the low 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 'Lists BRC owner types' with a verb and resource, but does not differentiate from sibling tools like brc_list_owner_type_groups. The purpose is clear but lacks specificity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., brc_list_owner_type_groups). There are no exclusions or usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_paymentsDInspect

Lists BRC payments.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

D1.3/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose any behavioral traits such as read-only nature, data limits, or side effects. The agent is left entirely uninformed about how the tool behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, but it is under-specified rather than concise. It fails to provide necessary information in a structured way.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and many sibling tools like brc_list_cash_payments and brc_list_prepayments, the description is completely insufficient to guide an agent in correct usage. Critical details about parameters, pagination, and filtering are omitted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 43% schema description coverage, the description adds no additional meaning to the parameters. It does not explain the purpose of any parameter, such as top, page, skip, or filter, beyond what little the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Lists BRC payments' provides a verb and resource but is extremely minimal. It doesn't clarify what 'BRC payments' are or distinguish from sibling tools like brc_list_cash_payments or brc_list_prepayments. Barely above a tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given on when to use this tool versus alternatives. There is no mention of context, exclusions, or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_prepaymentsAInspect

Returns a list of the company's Prepayments. Supports optional OData filtering by entryDate. Supports optional ordering by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNoOptional page size.
skipNoOptional number of records to skip.
filterNoOptional OData filter. Filtering is allowed by entryDate, for example: entryDate ge 2024-03-01T00:00:00.
orderByNoOptional OData order by. Ordering is allowed by id, for example: id desc.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that the tool supports filtering and ordering, which is helpful. However, it does not mention read-only nature, pagination behavior, or any side effects. The description adds some value but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of three short sentences with no filler. The main purpose is front-loaded in the first sentence, followed by key features.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 well-described parameters in the schema, the description covers the core functionality. It does not describe return values, but given no output schema and the simplicity of the operation, it is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds a small amount of context by specifying which fields can be used in filter and orderBy (entryDate, id). This aligns with the schema, but does not significantly enhance understanding beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool returns a list of the company's Prepayments. It uses a specific verb and resource, distinguishing it from other list tools by the resource name. However, it does not explicitly differentiate from siblings like brc_list_payments or brc_list_accruals.

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 mentions optional OData filtering and ordering, but does not provide explicit guidance on when to use this tool versus alternatives. No when-not or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_productsCInspect

Lists BRC products.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only states the basic action, omitting important traits like pagination, data freshness, or any destructive implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, making it concise, but it is under-specified to the point of being minimally helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a list operation with pagination and filtering, yet the description does not explain what is returned or any pagination details. It is incomplete for an agent to use effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 43%, and the description adds no parameter explanations beyond what the schema already provides. Parameters like 'filter' and 'orderBy' are left entirely to the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and the resource (BRC products), distinguishing it from other list tools by resource. However, it lacks specificity about scope or filters.

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 use this tool versus alternatives like brc_list_products_without_dormant or brc_get_product. The description provides no context about use cases or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_products_without_dormantBInspect

Lists BRC products without dormant records.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It only states it lists products without dormant records, but does not disclose read-only nature, pagination behavior, performance implications, or authorization requirements. The schema hints at pagination parameters but the description does not explain their behavioral impact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks structure. It is front-loaded with purpose, but does not earn its place by providing additional context. It is appropriately sized for a simple tool, but could be expanded without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and many siblings, the description is too sparse. It does not explain how to paginate, filter, or interpret results. Without annotations, an agent would lack essential context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 7 parameters with only 43% coverage (filter, orderBy, companyName have descriptions). The description adds no parameter-level information; it does not explain 'top', 'page', 'skip', or 'pageSize'. With low schema coverage, the description should compensate but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Lists' and the resource 'BRC products', and distinguishes itself by specifying 'without dormant records'. Among siblings like 'brc_list_products' and 'brc_list_customers_without_dormant', this tool's purpose is explicit and unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing non-dormant products, but provides no explicit guidance on when to choose this over 'brc_list_products' or other list tools. There is no mention of exclusions or alternative tools, so the usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_product_typesDInspect

Lists BRC product types.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

D1.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, required permissions, or side effects. The agent cannot infer safety or constraints beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short but at the cost of being minimally informative. It fails to front-load critical details like pagination or required context, wasting the opportunity to aid the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having no output schema and moderate schema coverage, the description provides no explanation of return values, pagination behavior, or the concept of product types. The tool's complexity (7 params) demands a richer description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no meaning beyond the input schema for any of the 7 parameters. With schema description coverage at 43%, the missing parameter details (top, page, skip, pageSize) are not clarified.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Lists BRC product types' is a tautology of the tool name and does not clarify what distinguishes product types from similar resources like products (see sibling brc_list_products). It lacks specificity about the nature of product types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool over alternatives such as brc_list_products or brc_list_products_without_dormant. There is no mention of context, prerequisites, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_purchasesCInspect

Lists BRC purchases.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as idempotency, side effects, authentication needs, or rate limits. It only states the basic function without additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, which is concise but lacks helpful structure. It could be longer to include necessary details without becoming verbose. It is not overly long, but it sacrifices informativeness for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and no annotations, the description is incomplete. It does not explain return values, pagination behavior, or how to use filters/ordering. The agent lacks critical context for effective usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 43% (3 of 7 parameters have descriptions). The tool description adds no parameter information, leaving the agent to rely solely on the schema. For a tool with 7 parameters and low coverage, this is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it 'Lists BRC purchases,' which is a clear verb+resource combination. However, it does not differentiate from sibling list tools like brc_list_payments or brc_list_products, and 'BRC purchases' lacks context. It's minimally adequate but not distinctive.

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 use this tool versus alternatives. There are many list tools among siblings, and the description provides no context about filtering, pagination, or scenarios. The agent must infer usage 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.

brc_list_quotesDInspect

Lists BRC quotes.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

D1.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description must disclose behavioral traits. It does not mention whether the operation is read-only, if pagination is involved, or any side effects. The description is silent on key behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely short, but conciseness is not a virtue when it omits essential information. It does not earn its place as it provides no value beyond the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 7 parameters and no output schema or annotations, the description is severely incomplete. It fails to explain how the parameters control the listing, what the response contains, or any constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43%, but the description adds no parameter information. It does not explain how to use the parameters (e.g., pagination controls, filtering) beyond what the schema already provides. For low coverage, the description should compensate, which it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Lists BRC quotes' merely restates the tool name without specifying the type of quotes or distinguishing it from similar siblings like brc_list_customer_quotes or brc_get_quote. It provides no verb beyond 'lists' but fails to clarify scope or context.

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 usage guidelines are provided. The description does not indicate when to use this tool over alternatives, such as when listing all quotes vs. customer-specific quotes, and omits any prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_salesBInspect

Lists combined BRC sales entries, sales invoices and sales credit notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations; description only says 'Lists combined...' without disclosing pagination, filtering, ordering, or error behavior. Minimal behavioral context for a list tool with 7 parameters.

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?

Single sentence is efficient with no filler, but could include more contextual information without losing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description is too sparse. Missing details on required companyName, pagination, and returned data structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (43%), and description adds no value beyond schema. Parameters like 'top', 'page', 'skip' are not explained, leaving gaps for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious 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 verb 'Lists' and specific resource 'combined BRC sales entries, sales invoices and sales credit notes,' distinguishing from sibling tools that list each type individually.

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 guidance on when to use this tool versus individual list tools (e.g., brc_list_sales_entries). Usage is implied but not clarified with alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_sales_credit_notesCInspect

Lists BRC sales credit notes.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description should disclose behavioral traits such as read-only nature, pagination behavior, or data scope. It only says 'Lists,' which is insufficient for transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (5 words), but this brevity sacrifices clarity. It is not overly verbose, but it lacks structure and key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, annotations, and low schema coverage, the description is severely incomplete. It fails to inform about result format, pagination, filtering, or other essential contextual details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (43%), and the description adds no explanation for the 7 parameters. It does not compensate for missing parameter descriptions in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Lists' and the resource 'BRC sales credit notes,' effectively distinguishing it from sibling tools. However, it does not provide additional specificity beyond the resource name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives (e.g., brc_list_sales_entries or brc_list_sales_invoices). There is no mention of prerequisites, context, or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_sales_entriesCInspect

Lists BRC sales entries.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description does not disclose behavioral traits such as pagination, filtering, sorting, or required parameters. The agent is left unaware of important constraints.

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, concise sentence that efficiently conveys the core action. However, it is too brief and could benefit from additional structure or detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description is critically incomplete. It fails to mention pagination parameters (top, page, skip, pageSize), filtering, sorting, the required companyName, or what the results contain. An AI agent would lack essential context to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43% (<50%), meaning the description must compensate for missing parameter explanations. It does not; no parameter is mentioned or described in the text. The schema provides minimal descriptions for companyName, filter, and orderBy, but the description adds nothing.

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?

Description clearly states verb 'Lists' and resource 'BRC sales entries'. However, it does not distinguish from siblings like brc_list_sales or brc_list_sales_invoices, which could confuse an AI agent selecting the correct tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives (e.g., brc_get_sales_entry for a single entry, or brc_list_sales_invoices for invoices). No exclusion or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_sales_invoicesCInspect

Lists BRC sales invoices.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description merely says 'lists', implying a read-only operation but without detailing any behavioral traits such as authentication needs, rate limits, or return format. The description does not compensate for the lack of annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, but it lacks substance. While not verbose, it could be restructured to include more useful information without increasing length significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description is incomplete. It does not explain what BRC stands for, the nature of sales invoices, pagination behavior, or how it differs from sibling list tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not add any meaning beyond the input schema. With schema description coverage at 43%, some parameters have descriptions, but the tool description itself provides no parameter context or usage hints.

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?

Description clearly states it lists BRC sales invoices, which is specific. However, it does not differentiate from sibling list tools like brc_list_sales_credit_notes or brc_list_sales_entries, lacking context on the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. For example, it does not mention that for listing credit notes or entries, other tools should be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_sales_repsDInspect

Lists BRC sales reps.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

D1.8/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided. Description only says 'Lists BRC sales reps' without disclosing pagination, filtering, required parameters (e.g., companyName), or any 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise (one sentence) but at the cost of missing critical details. The description is too minimal to be useful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description is vastly incomplete. It lacks information about pagination, filtering, and output structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Description does not mention any of the 7 parameters. Schema coverage is 43%, but the description adds no context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states verb 'Lists' and resource 'BRC sales reps', which is clear. However, it does not differentiate from sibling tools like brc_list_sales or brc_get_sales_rep.

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 use this tool vs. alternatives. For example, it doesn't specify that this tool lists multiple reps whereas brc_get_sales_rep retrieves a single rep.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_supplier_account_transCInspect

Gets a supplier's account transactions.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesSupplier item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description only states 'Gets,' implying a read-only operation. It does not disclose pagination, data volume, or any other behavioral traits beyond the basic verb.

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, concise and to the point. It could be slightly improved by front-loading 'List' instead of 'Gets,' but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is too sparse for a list tool. It does not explain what 'account transactions' includes, return format, or any filtering capabilities. No output schema exists to 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?

Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Gets a supplier's account transactions,' which clearly indicates the tool retrieves transaction data for a supplier. However, it does not distinguish itself from similar sibling tools like brc_list_customer_account_trans.

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 use this tool versus alternatives. Sibling tools exist for related purposes (e.g., brc_list_customer_account_trans), but the description provides no context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_supplier_op_bal_transBInspect

Gets a supplier's opening balance transaction list.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesSupplier item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It does not disclose whether the operation is read-only, what the response contains, or any prerequisites like the existence of an opening balance. The brief sentence implies a list operation but lacks behavioral detail.

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 concise sentence that front-loads the purpose. It is not verbose, but it could benefit from additional structure or context without being overly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 2 parameters and no output schema, the description is minimally adequate. It lacks details on return format, error conditions, or prerequisites, making it incomplete for an agent to fully understand its use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, which already state companyName and itemId are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a supplier's opening balance transaction list, using a specific verb and resource. It distinguishes from siblings like brc_get_supplier_opening_balance (which gets a single balance) and brc_list_supplier_account_trans (all transactions).

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 provides no guidance on when to use this tool versus alternatives, such as when to use brc_get_supplier_opening_balance instead. No exclusions or context for appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_suppliersCInspect

Lists BRC suppliers.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.2/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears the full burden of disclosing behavioral traits. It only states 'Lists BRC suppliers' without indicating whether the operation is read-only, requires authentication, supports pagination, or has any side effects. The schema hints at pagination and filtering, but the description omits these important behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence, but it is under-specified for a tool with 7 parameters and many siblings. While brevity is valued, the lack of structure and missing important details makes it inadequate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (7 parameters, no output schema), the description is severely incomplete. It does not explain the returned data, pagination behavior, or filtering support. The presence of many sibling list tools further necessitates a more complete description to guide selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43% (only 3 of 7 parameters have descriptions), which is low. The description does not add any extra meaning beyond the schema; it fails to explain the purpose or usage of parameters like top, page, skip, and pageSize. The description must compensate for low coverage, but it does not.

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 'Lists BRC suppliers,' which identifies the specific resource (suppliers) and action (list). However, it does not distinguish this tool from sibling list tools such as brc_list_supplier_account_trans, which also involve suppliers but for account transactions.

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 usage guidelines are provided. The description does not mention when to use this tool versus alternatives, such as whether to use it for obtaining a full list of all suppliers or for filtering. There are no instructions on prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_user_defined_fieldsCInspect

Lists BRC user defined fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must disclose behavioral traits but fails to do so. It only states 'Lists BRC user defined fields' without indicating whether the operation is read-only, safe, or has any side effects, pagination behavior, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short but lacks essential information. While it does not waste words, it fails to earn its place by omitting critical details, resulting in under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 7 parameters, no output schema, and no annotations, the description is severely incomplete. It does not address pagination, filtering, required parameters, or the return format, leaving the agent with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is low (43%), and the description adds no information about parameters beyond what is in the schema. Parameters like top, page, skip, and pageSize are left unexplained in both the schema and description, requiring the agent to infer their meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Lists' and the resource 'BRC user defined fields', making the purpose understandable. However, it does not differentiate from sibling tools like brc_list_accounts or brc_list_customers, which have similar naming patterns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, conditions, or typical use cases, leaving the agent without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_vat_analysis_typesCInspect

Lists BRC VAT analysis types.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states 'Lists' implying a read-only operation, but provides no details on pagination behavior, return format, or other traits beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise at one sentence, but it is under-specified for the tool's complexity (7 parameters, no output schema). Brevity does not substitute for missing details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and no annotations, the description is inadequate. It does not explain return values, pagination, or what VAT analysis types are, leaving the agent under-informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43% with only filter, orderBy, and companyName described. The description adds no parameter information, failing to compensate for the low coverage of parameters like top, page, skip, and pageSize.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Lists BRC VAT analysis types' uses a specific verb and resource, clearly indicating the tool's purpose. It distinguishes from sibling tools like brc_list_vat_types and brc_list_vat_categories by specifying 'analysis types'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool over alternatives such as brc_list_vat_types or brc_list_vat_categories. The description lacks any context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_vat_categoriesAInspect

Lists BRC VAT categories (for example Sales, Purchases for Resale, Purchases not for Resale). Use this to tell which VAT category a VAT rate belongs to. Sales invoices and sales credit notes must use VAT rates from a Sales VAT category, not a purchase category.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It states it lists categories and gives examples, but does not mention result structure, pagination behavior, or whether it is read-only (implied). Lacks details on output format or any 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 sentences with no wasted words. Front-loaded with the primary action and examples, then a specific usage note. Efficient and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool without output schema, the description covers the core purpose and provides a key usage scenario. It could be enhanced by describing the return structure (e.g., list of category objects with IDs and names), but it is sufficient for basic use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 7 parameters and only 43% schema coverage, the description does not add meaning beyond what the schema provides. It does not explain how parameters like top, page, skip affect the list. The description focuses on purpose rather than parameter usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists BRC VAT categories with concrete examples (Sales, Purchases for Resale, etc.). It differentiates from sibling tools like brc_list_vat_rates by explaining that categories are the classification to which rates belong, making the purpose distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 explicit guidance on when to use the tool: 'Use this to tell which VAT category a VAT rate belongs to.' Additionally, it includes a rule about sales invoices requiring sales VAT categories, aiding correct tool selection. No explicit alternatives mentioned, 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.

brc_list_vat_ratesAInspect

Lists BRC VAT rates. Each rate belongs to a VAT category via vatCategoryId (for example Sales, Purchases for Resale, Purchases not for Resale). For a sales invoice or sales credit note line, use a VAT rate whose vatCategoryId is a Sales VAT category, even if a purchase rate has the same percentage. Cross-reference brc_list_vat_categories to group rates by Sales vs Purchase category before choosing.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does not explicitly state that the operation is read-only or mention any side effects, auth needs, or rate limits. However, it does highlight the need to cross-reference another tool, which adds behavioral context about dependencies. The description is moderately transparent but lacks basic safety/behavioral disclosures.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with four sentences. The first sentence immediately states the purpose, followed by important usage details. No unnecessary information, and structure is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, the description does not explain return fields. However, it provides essential domain context about VAT rate selection and cross-referencing. The key field vatCategoryId is explained, which is critical for correct usage. Slight lack of return format details, but overall complete for a list tool with strong domain guidance.

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 low (43%). The description compensates by explaining the concept of vatCategoryId and its role in distinguishing sales vs purchase rates, which adds meaning beyond the schema. It also suggests using brc_list_vat_categories, aiding understanding of related parameters. However, it does not detail pagination parameters like top, page, skip, pageSize.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool lists BRC VAT rates, which is a specific verb+resource. It also provides additional context about VAT categories and distinguishes itself from sibling tools like brc_list_vat_categories and brc_list_vat_types by focusing on rates and their usage context.

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 instructs when to use a sales VAT rate vs a purchase rate, even if percentages match. It also recommends cross-referencing brc_list_vat_categories to group rates, providing clear guidance on the workflow and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_list_vat_typesCInspect

Lists BRC VAT types.

ParametersJSON Schema
NameRequiredDescriptionDefault
topNo
pageNo
skipNo
filterNoOptional OData $filter expression, only if this endpoint supports filtering.
orderByNoOptional OData $orderby expression, only if this endpoint supports ordering.
pageSizeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral traits. It only says 'lists,' implying read-only, but fails to disclose pagination (supported via top, skip, page, pageSize parameters), filtering, or ordering capabilities. The required companyName parameter is not highlighted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise (3 words) but at the cost of completeness. It omits critical information and is under-specified, making it less helpful than a slightly longer description would be.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no output schema, and multiple sibling VAT-related list tools, the description fails to explain what the returned VAT types contain or how pagination works. It does not provide enough context for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 43%, with only companyName and filter/orderBy having descriptions. The tool description adds no parameter explanations. Common pagination parameters (top, skip, page, pageSize) lack any semantic addition, leaving agents to infer from schema alone, which is insufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it lists 'BRC VAT types,' which is a specific resource, but does not differentiate from sibling tools like brc_list_vat_analysis_types, brc_list_vat_categories, or brc_list_vat_rates. The purpose is somewhat clear but lacks precision to distinguish from related list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or context that would help an agent choose this tool over other list VAT-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_multi_company_nom_ac_reportBInspect

Creates a grouped nominal accounts report for multiple companies using GET /v1/nominalAccounts for each company.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNamesYesThe company names to report on.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided. The description indicates it uses GET calls, implying a read-only operation, but does not disclose behavioral traits such as whether the report is cached, pagination behavior, rate limits, or authentication requirements. 'Creates' could be misinterpreted as a state change, but the actual operation is idempotent retrieval.

Agents need to know what a tool does to the world before calling it. Descriptions 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. It immediately states the purpose and the mechanism, with no wasted words. It is front-loaded and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (one parameter, simple array input) and the presence of sibling tools, the description is adequate but not complete. It does not explain the output format or how results from multiple companies are grouped, which is essential for an agent to use the tool effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description coverage is 100%, with the single parameter 'companyNames' having a clear description and example. The tool description does not add additional semantic value beyond what the schema already provides, so a baseline score of 3 is warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it creates a grouped nominal accounts report for multiple companies, specifying the verb 'creates' and the resource 'nominal accounts report'. It distinguishes from the sibling 'brc_list_nominal_accounts' (which lists accounts) but does not explicitly differentiate from 'brc_grouped_nominal_accounts_report', which may be a similar report for a single company.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus its siblings. It mentions the underlying GET call but does not state prerequisites, when not to use, or mention alternatives like 'brc_grouped_nominal_accounts_report' for single-company reports.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_process_vat_category_ratesAInspect

Processes VAT rates for VAT categories via POST /v1/vatCategories/vatRates. Requires a full vatCategoryRates array and confirmProcess=true. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNoDeprecated. Use vatCategoryRates instead of a raw payload object.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
effectiveDateNoNot a valid standalone payload. Use vatCategoryRates instead.
confirmProcessNo
vatCategoryRatesNoFull BRC payload array for POST /v1/vatCategories/vatRates, e.g. [{ vatCategoryId: 1, vatRates: [...] }].

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the two-step confirmation process and that passing preflight is not confirmation. However, it does not mention idempotency, authorization requirements, or whether it creates vs updates rates. The confirmation pattern is well explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all essential. First sentence states purpose and endpoint. Second and third explain the critical usage pattern. No wasted words.

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?

Covers purpose and workflow well, but fails to describe the response structure after successful processing. Since there is no output schema, the description should at least mention what the response contains (e.g., success message, updated rates). Also lacks error handling or edge case info.

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 83%, so baseline is 3. The description adds value by explaining that vatCategoryRates must be a full array and clarifies the confirmWrite workflow. It also emphasizes that confirmProcess=true is required, which complements the schema's default false.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 processes VAT rates for VAT categories via a specific POST endpoint, distinguishing it from sibling list tools like brc_list_vat_rates. The verb 'processes' and resource 'VAT rates for VAT categories' provide specific 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?

Provides explicit two-step workflow: first call without confirmWrite: true returns preview, then retry with confirmWrite: true only after user confirmation. Warns that preflight is not confirmation. However, it does not explicitly state when to avoid this tool (e.g., for read-only queries, use list tools).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_reopen_quoteAInspect

Reopens a BRC quote. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description bears full burden. It explains the two-step behavior (preflight vs. actual write) and that preflight does not constitute confirmation. However, it does not mention error handling or prerequisites like the quote needing to be closed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, then protocol. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (3 parameters, no output schema), the description covers the essential workflow. It lacks some context about prerequisites or post-action results, but remains largely complete for the intended use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes all parameters with 100% coverage. The description adds significant meaning to confirmWrite by specifying its role in the two-step protocol, which goes beyond the schema's simple boolean 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 clearly states 'Reopens a BRC quote', which is a specific verb+resource pair. It distinguishes from sibling tools like brc_close_quote and brc_update_quote by indicating a distinct action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit step-by-step usage: first call without confirmWrite, show preview, then retry with confirmWrite after user confirmation. It also warns that preflight is not confirmation, offering clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_send_email_statementAInspect

Sends a customer statement email. Supported document type only. Red email sending is available for sales invoices, quotes, and customer statements — not for cash receipts, purchases, payments, bank accounts, customers, suppliers, products, reports, or other document types. If the user asks to email an unsupported document type, say Red cannot email it through the current MCP tools, list the supported types, and stop without preparing a draft or attempting a workaround. Do not call this tool with confirmSend=true until the user has reviewed a plain-English email draft and explicitly confirmed they want to send it. The email draft must show the recipient email address clearly before asking for send confirmation. If there is no customer email on file and no recipient override, stop and ask for a recipient email address — do not send. Create/post confirmation and email send confirmation are separate steps. If the user provides multiple recipient addresses, ask whether to send one email using BCC or separate individual emails. Only use sendMode='separate' when the user explicitly chooses separate emails. Do not ask about BCC unless the user provides multiple recipients or asks to copy another address.

ParametersJSON Schema
NameRequiredDescriptionDefault
sendModeNoHow to handle multiple recipients. Use separate only when the user explicitly asks to send separate individual emails.
toPeriodNoStatement period end (ISO date-time, e.g. 2026-05-31T00:00:00).
toAddressNoOptional single recipient override. If omitted or empty, BRC uses the customer's email address.
customerIdYesBRC field: customerId.
fromPeriodNoStatement period start (ISO date-time, e.g. 2026-01-01T00:00:00).
minBalanceNoMinimum balance threshold for transactions included on the statement.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmSendNoMust be true only after the user has reviewed the email draft and explicitly confirmed sending.
fromAddressNoOptional sender address override.
messageBodyNoOptional custom email message body.
toAddressesNoOptional list of recipients. If more than one is provided, ask the user whether to send one email with BCC or separate individual emails.
bccAddressesNoOptional BCC email addresses. Only use if the user explicitly provides BCC addresses or chooses one email with BCC.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It comprehensively discloses behavior: only sends statements, requires explicit user confirmation before sending, requires recipient email, handles multiple recipients with BCC/separate, and warns against drafting for unsupported types. Covers edge cases thoroughly.

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?

Description is verbose but each sentence serves a purpose. Front-loaded with core action. Could be slightly more concise, but complexity of tool (12 params, multiple conditional flows) justifies length. Good structure with explicit steps and conditions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 12 parameters, 2 required, no output schema, and sibling email tools, this description fully equips the agent. Covers all edge cases: unsupported types, confirmation, recipient handling, BCC/separate logic. No significant gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage, but description adds significant context beyond schema: explains conditional logic for sendMode (only separate if user explicitly chooses), confirmSend must be true only after review, toAddresses and bccAddresses usage with BCC logic. Adds semantic value for agent decision-making.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sends customer statement emails, lists supported document types (only statements), and explicitly distinguishes from siblings like brc_send_quote_email and brc_send_sales_invoice_email by detailing unsupported document types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use (statements), when-not-to-use (unsupported types like cash receipts, purchases, etc.), and precise instructions for handling unsupported types (say cannot, list supported, stop). Also clarifies confirmation flow, multiple recipient handling, and BCC vs separate emails.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_send_quote_emailAInspect

Sends a quote email. Supported document type only. Red email sending is available for sales invoices, quotes, and customer statements — not for cash receipts, purchases, payments, bank accounts, customers, suppliers, products, reports, or other document types. If the user asks to email an unsupported document type, say Red cannot email it through the current MCP tools, list the supported types, and stop without preparing a draft or attempting a workaround. Do not call this tool with confirmSend=true until the user has reviewed a plain-English email draft and explicitly confirmed they want to send it. The email draft must show the recipient email address clearly before asking for send confirmation. If there is no customer email on file and no recipient override, stop and ask for a recipient email address — do not send. Create/post confirmation and email send confirmation are separate steps. If the user provides multiple recipient addresses, ask whether to send one email using BCC or separate individual emails. Only use sendMode='separate' when the user explicitly chooses separate emails. Do not ask about BCC unless the user provides multiple recipients or asks to copy another address.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesBRC field: quoteId.
sendModeNoHow to handle multiple recipients. Use separate only when the user explicitly asks to send separate individual emails.
toAddressNoOptional single recipient override. If omitted or empty, BRC uses the customer's email address.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmSendNoMust be true only after the user has reviewed the email draft and explicitly confirmed sending.
fromAddressNoOptional sender address override.
messageBodyNoOptional custom email message body.
toAddressesNoOptional list of recipients. If more than one is provided, ask the user whether to send one email with BCC or separate individual emails.
bccAddressesNoOptional BCC email addresses. Only use if the user explicitly provides BCC addresses or chooses one email with BCC.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully explains behavioral traits: it requires user confirmation, handles recipient email lookup, and manages multi-recipient sending. It also specifies that unsupported types should be rejected gracefully. However, it does not mention idempotency, rate limits, or what happens on failure beyond unsupported types.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is detailed but somewhat verbose at ~150 words. It is front-loaded with the primary purpose. Some instructions to the agent (e.g., 'Do not call this tool...') are necessary but could be more concise. Overall adequate but not exemplary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 9 parameters with full schema coverage, the description compensates well by covering workflow constraints, supported/unsupported types, and multiple recipient handling. Minor gaps: no mention of error handling beyond unsupported types or return behavior, but still strong.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 workflow context (e.g., confirmSend usage, multi-recipient logic) but largely repeats or slightly extends the schema descriptions. The added value is moderate, not transformative.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sends a quote email and specifies supported document types (quotes, sales invoices, customer statements), explicitly listing unsupported types. This distinguishes it from sibling send email tools like brc_send_email_statement and brc_send_sales_invoice_email by document type scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when to use (for supported document types) and when not to use (for a long list of unsupported types, with instructions to inform user). It also gives a clear workflow: require user review before confirming send, handle missing email, and handle multiple recipients with BCC vs separate options.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_send_sales_invoice_emailAInspect

Sends a sales invoice email. Supported document type only. Red email sending is available for sales invoices, quotes, and customer statements — not for cash receipts, purchases, payments, bank accounts, customers, suppliers, products, reports, or other document types. If the user asks to email an unsupported document type, say Red cannot email it through the current MCP tools, list the supported types, and stop without preparing a draft or attempting a workaround. Do not call this tool with confirmSend=true until the user has reviewed a plain-English email draft and explicitly confirmed they want to send it. The email draft must show the recipient email address clearly before asking for send confirmation. If there is no customer email on file and no recipient override, stop and ask for a recipient email address — do not send. Create/post confirmation and email send confirmation are separate steps. If the user provides multiple recipient addresses, ask whether to send one email using BCC or separate individual emails. Only use sendMode='separate' when the user explicitly chooses separate emails. Do not ask about BCC unless the user provides multiple recipients or asks to copy another address.

ParametersJSON Schema
NameRequiredDescriptionDefault
sendModeNoHow to handle multiple recipients. Use separate only when the user explicitly asks to send separate individual emails.
toAddressNoOptional single recipient override. If omitted or empty, BRC uses the customer's email address.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmSendNoMust be true only after the user has reviewed the email draft and explicitly confirmed sending.
fromAddressNoOptional sender address override.
messageBodyNoOptional custom email message body.
toAddressesNoOptional list of recipients. If more than one is provided, ask the user whether to send one email with BCC or separate individual emails.
bccAddressesNoOptional BCC email addresses. Only use if the user explicitly provides BCC addresses or chooses one email with BCC.
salesInvoiceIdYesBRC field: salesInvoiceId.

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It fully discloses supported document types, confirmation requirement, missing email handling, multiple recipient options, and instructs agent to stop without workarounds for unsupported types. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Approximately 150 words, front-loaded with main purpose then detailed instructions. Every sentence adds value given the tool's complexity (confirmation, multiple recipients). Could trim slightly but well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all essential aspects: supported document types, confirmation flow, handling missing email, multiple recipients, BCC vs separate. Missing return value info but no output schema exists. Complete for a send-email tool with workflow dependencies.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions already present. The description adds operational context beyond schema, e.g., 'Only use sendMode="separate" when the user explicitly chooses separate emails' and detailed flow for confirmSend and toAddresses. Slightly above baseline due to added workflow context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Sends a sales invoice email' and then specifies supported document types (sales invoices, quotes, customer statements) and explicitly lists unsupported types, distinguishing it from sibling tools like brc_send_quote_email and brc_send_email_statement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides extensive when-to-use guidance: lists supported types, instructs agent to stop and list supported types for unsupported requests, details confirmation workflow (check draft, confirm send), handling missing email addresses, and BCC vs separate email choice. Explicitly says 'do not call with confirmSend=true until user confirmed'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_start_company_connectionAInspect

Starts the secure Red company connection flow. Use whenever the user wants to connect one or more companies. Returns a one-time connection page URL (no time expiry, but each link works only once). On that page the user can enter a single company or upload a CSV for multiple companies — never in chat. After completing the secure page, the user should return to this chat and provide (copy/paste) the confirmation code shown on the success page. To connect more companies later, start a new connection. Do not ask the user to type credentials into chat.

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?

With no annotations, the description discloses key behaviors: returns a one-time URL, no expiry but single use, user enters info on secure page not in chat, and must provide confirmation code afterward. It doesn't mention side effects or failure modes but is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (6-7 sentences) with no wasted words. Each sentence adds value, and the flow is logically structured and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no parameters or output schema, the description covers purpose, usage flow, security guidance, and post-action steps. It is sufficient for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has no parameters (0 params, 100% coverage), so baseline is 4. The description adds no parameter info because none exist, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts a secure company connection flow and when to use it (whenever user wants to connect companies). It distinguishes from sibling tools like brc_confirm_company_connection by describing the full flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use whenever the user wants to connect one or more companies.' Provides when-not-to-use: 'Do not ask the user to type credentials into chat.' Also explains the follow-up action (provide confirmation code) and alternative for more companies later.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_accrualAInspect

Updates an existing parent Accrual by id. Use brc_get_accrual first to retrieve the current accrual and timestamp. Child accruals are not exposed by the public API. Do not call with confirmWrite=true until the user has reviewed the draft and explicitly confirmed the update.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent accrual id.
totalYesAccrual total amount.
acCodeYesNominal account code, for example 4000.
procDateYesProcessing date, for example 2024-03-15T00:00:00.
entryDateYesEntry date, for example 2024-03-01T00:00:00.
referenceYesAccrual reference, for example ACC0001.
timestampYesBase64 timestamp returned by the accrual, for example K94UQIbL3gg=.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
firstDetailNoFirst detail text.
confirmWriteNoMust be true only after the user explicitly confirms updating this accrual.
secondDetailNoSecond detail text.

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the update action and the confirmWrite safeguard, but does not describe whether the update is partial or full, idempotency, or what the tool returns (no output schema). The concurrency control via timestamp is implied but not explicitly stated. Adequate but not comprehensive.

Agents need to know what a tool does to the world before 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 serving a purpose: first defines action, second provides prerequisite, third gives critical constraint. No wasted words, front-loaded with the verb. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 11 parameters, 8 required, no output schema, and no annotations, the description covers the essential workflow: get first, then update with confirmation. However, it lacks details on return values (e.g., success indicator or updated object) and update semantics (merge vs replace). Still, it is fairly complete for the critical usage.

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 parameters are fully described. The description adds context: timestamp is base64 from the accrual, confirmWrite must only be true after user confirmation, and that the timeretrieval step is needed. This enhances the schema descriptions and clarifies usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates an existing parent Accrual by id. It distinguishes from siblings like create, delete, get, and list by specifying 'Updates' and mentioning child accruals are not exposed. The verb and resource are specific, leaving no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to use brc_get_accrual first to retrieve current data and timestamp. Warns about child accruals not being exposed via public API. Provides critical guidance on confirmWrite: do not set to true until user has reviewed and explicitly confirmed. This clearly states when and how to use the tool, and when not to.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_allocationsAInspect

Creates or updates allocations for a sender book transaction. Use brc_list_allocation_resolvers first to identify eligible receiver transactions. Do not call with confirmWrite=true until the user has reviewed the allocation draft and explicitly confirmed posting. Required fields: bookTranId and allocationResolvers with allocated amounts and receiver book transaction ids.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookTranIdYesBook transaction id to allocate from, for example 1001.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms posting the allocation update.
allocationResolversYesAllocations to create or update.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses a critical behavioral trait: the confirmWrite parameter must only be set after user confirmation. However, it does not explicitly state that the initial call without confirmWrite creates a draft, nor does it describe other side effects or permissions. Given no annotations, the description carries the burden, and it does well but could be more explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose, followed by prerequisite and caution. Every sentence adds value without redundancy, making it concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema or annotations, the description covers the workflow but lacks detail on return values or how to retrieve the allocation draft. The prerequisite and caution are helpful, but the agent may need more information about post-invocation behavior to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces required fields but adds no additional meaning beyond what the schema already provides for each parameter. It does not explain the nested structure of allocationResolvers beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Creates or updates allocations for a sender book transaction.' This is a specific verb+resource combination, and the sibling tools include related but distinct operations like listing and deleting allocation resolvers, so it is well-differentiated.

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 provides when-to-use guidance: 'Use brc_list_allocation_resolvers first to identify eligible receiver transactions.' It also gives a clear when-not: 'Do not call with confirmWrite=true until the user has reviewed the allocation draft and explicitly confirmed posting.' This covers prerequisites and exclusions effectively.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_bank_accountAInspect

Updates a BRC bank account using merged fields. Before calling this tool, show the user a plain-English summary of the changes and ask for explicit confirmation. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBank account id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations were provided, so the description carries the full burden. It discloses the preflight mechanism (returns confirmation_required and payload preview), the need for explicit user confirmation, and that passing preflight is not confirmation. This is informative for an update tool.

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 paragraph that front-loads the purpose and then details the confirmation workflow. It is concise and every sentence adds value, though it could be slightly more structured with bullet points.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description covers the essential behavior: the confirmation workflow, merge fields, and required parameters. It lacks return value details but mentions the preview, which suffices for agent guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining the confirmWrite parameter's two-step usage, the payload/updates alias for merged fields, and the companyName format. This goes beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates a BRC bank account using merged fields, distinguishing it from sibling tools like brc_update_customer. However, it focuses heavily on the confirmation workflow rather than the core update action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit step-by-step guidance on when to call the tool: first call without confirmWrite to get a preview, show a summary to the user, and only retry with confirmWrite=true after explicit confirmation. It also warns against setting confirmWrite true prematurely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_cash_paymentAInspect

Updates a BRC cash payment using merged fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash payment id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description carries full burden. It discloses two-step confirmation, return of confirmation_required and payload preview, and the requirement for explicit user confirmation. Lacks mention of idempotency or other side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences packed with essential information, front-loaded with purpose, no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given complexity (nested objects, confirmation workflow), description covers the two-step process, expected return values, and confirmation requirement. Adequate despite 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 coverage is 100%, so baseline is 3. Description adds workflow context for confirmWrite and mentions 'merged fields' for updates/payload, but does not elaborate further on individual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Updates' and the resource 'BRC cash payment using merged fields', distinguishing it from create and delete siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit step-by-step workflow: first call without confirmWrite for preview, then retry with confirmWrite only after user confirmation. Warns that preflight does not count as confirmation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_cash_receiptAInspect

Updates a BRC cash receipt using merged fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash receipt id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, but the description discloses the two-step preflight/confirmation mechanism, including that the first call returns a preview and the actual update requires a second call. It does not mention side effects or auth, but the core behavioral pattern is well explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, all essential: purpose, two-step process, and warning. No redundant information. Effectively 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 tool with 5 parameters, no output schema, and a complex confirmation workflow, the description covers the key usage pattern and output expectation (returns confirmation_required and preview). Could mention error cases or what happens after successful update, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with descriptions for all 5 parameters. The description adds critical context for the confirmWrite parameter (explaining the two-step workflow) and reinforces the 'merged fields' semantics. This goes beyond the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Updates a BRC cash receipt using merged fields,' which is a specific verb+resource combination. While it doesn't explicitly differentiate from sibling update tools (e.g., brc_update_cash_payment), the name and description are sufficiently unique.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit step-by-step guidance: first call without confirmWrite for preview, then retry with confirmWrite after user confirmation. Includes clear what-not-to-do (passing preflight is not confirmation). This is excellent, differentiating it from similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_customerAInspect

Updates a BRC customer using merged fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the two-step behavior, requirement for explicit user confirmation, and merged fields (partial update). Does not mention auth or rate limits, but workflow transparency is high.

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?

Description is somewhat long but each sentence adds value, especially the workflow instructions. Front-loaded with purpose. Could be slightly more concise but effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description adequately covers the complex two-step workflow. Nested objects are documented in schema. The agent can infer behavior and requirements 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?

All 5 parameters have schema descriptions (100% coverage). The description adds crucial meaning to confirmWrite by explaining its usage in the workflow. Other parameters are adequately described in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a BRC customer using merged fields and explains the two-step confirmation process. It distinguishes from create and other sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit step-by-step guidance on when to call without confirmWrite first, show draft, then retry with confirmWrite true only after user confirmation. Clarifies that preflight is not confirmation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_nominal_journal_batchAInspect

Updates an existing Nominal Journal Batch by id. Use brc_get_nominal_journal_batch first to retrieve the current batch, including timestamp and account transaction line timestamps. Do not call with confirmWrite=true until the user has reviewed the draft and explicitly confirmed the update.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNominal Journal Batch id.
totalYes
procDateYesDate/time string, for example 2024-01-15T00:00:00.
entryDateYesDate/time string, for example 2024-01-15T00:00:00.
timestampYesBase64 timestamp for the nominal journal batch.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms updating this Nominal Journal Batch.
bookTranTypeIdNoBook transaction type id. Nominal Journal Batch is usually 7.
accountTransactionsYesUpdated nominal journal account transaction lines.

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses the update behavior and the two-step process involving confirmWrite, but lacks details on side effects (e.g., overwrite behavior, audit logging) or consequences of timestamp mismatches. The description is adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, consisting of two focused sentences. Essential workflow guidance is front-loaded, and there is no redundant or extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and 9 parameters, the description covers the prerequisite step and confirmation workflow. However, it does not describe return values or error conditions, leaving some gaps for an update operation. Overall, it provides sufficient context for the core task.

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 high (89%), so baseline is 3. The description adds workflow context to key parameters: timestamps (from get) and confirmWrite (only after user confirmation). This enhances understanding beyond the schema descriptions, justifying a score above baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates an existing Nominal Journal Batch by id, distinguishing it from create and delete siblings. It specifies the action (update) and the resource (nominal journal batch by id), leaving no ambiguity about its function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to first retrieve the batch using brc_get_nominal_journal_batch to get timestamps, and warns against setting confirmWrite=true until user confirms. This effectively communicates when to use the tool and the prerequisite workflow, though it does not explicitly contrast with sibling update tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_paymentAInspect

Updates a BRC payment using merged fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully carries the burden of behavioral transparency. It discloses the preflight workflow, that writing only happens after explicit user confirmation, and that a plain-English draft should be shown to the user. No contradictions are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise given the complex workflow it explains. It front-loads the main action and then provides step-by-step guidance. Could be slightly shorter, but necessary detail is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (2 required), no output schema, and a complex interaction pattern, the description is complete. It tells the agent exactly how to handle preflight and confirmation, and covers all necessary behavioral aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description adds significant value beyond schema for the confirmWrite parameter, explaining its usage in the two-step process and that it must only be set true after user confirmation. Other parameters are adequately described in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Updates a BRC payment using merged fields.' It uses a specific verb ('updates') and resource ('BRC payment'), differentiating it from sibling tools like brc_update_cash_payment or brc_update_purchase. The additional detail about the two-step confirmWrite process adds to clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains the two-step workflow: first call without confirmWrite for a preview, then after user confirmation in a later message, call with confirmWrite: true. It warns that 'passing preflight is not confirmation.' It provides clear guidance on when to use each step, though it could mention alternatives like other update tools for different entities.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_prepaymentAInspect

Updates an existing parent Prepayment by id. Use brc_get_prepayment first to retrieve the current prepayment and timestamp. Child prepayments are not exposed by the public API. Do not call with confirmWrite=true until the user has reviewed the draft and explicitly confirmed the update.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent prepayment id.
totalYesPrepayment total amount.
acCodeYesNominal account code, for example 4000.
procDateYesProcessing date, for example 2024-03-15T00:00:00.
entryDateYesEntry date, for example 2024-03-01T00:00:00.
referenceYesPrepayment reference, for example PRE0001.
timestampYesBase64 timestamp returned by the prepayment, for example bgUcQIbL3gg=.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
firstDetailNoFirst detail text.
confirmWriteNoMust be true only after the user explicitly confirms updating this prepayment.
secondDetailNoSecond detail text.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Discloses that updates are not immediate without confirmWrite=true, acting as a safety guard. Mentions timestamp parameter implied for optimistic concurrency. Lacks explicit statements on authentication, error handling, or idempotency, but covers key behavioral constraints adequately.

Agents need to know what a tool does to the world before 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: purpose, prerequisite, and critical warning. Every sentence adds unique value. No filler. Front-loaded with the core action, then supporting guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, so return value is unknown, but the update flow and safety mechanism are well described. Includes prerequisite call and user confirmation requirement. Lacks error scenarios or post-update behavior, but given the tool's complexity, the description covers essential operational context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, baseline 3. Description adds meaning by connecting parameters to the update flow: timestamp from brc_get_prepayment is used for concurrency, and confirmWrite must be user-verified. Also clarifies that 'id' refers to parent prepayment. This enhances understanding beyond schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates an existing parent Prepayment by id, distinguishing it from creating or deleting prepayments. It also specifies the scope (parent only) and prerequisite usage of brc_get_prepayment, which clarifies the resource and action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to first retrieve the prepayment via brc_get_prepayment, implying a two-step process. Warns against calling with confirmWrite=true until user confirmation, providing clear usage boundaries. Also notes child prepayments are inaccessible through public API, preventing misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_productAInspect

Updates a BRC product using merged fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the key behavioral trait of the two-step confirmation workflow: first call is a preflight returning confirmation_required and payload preview, and confirmWrite must be true to write. It explicitly states 'passing preflight is not confirmation.' Additional details like idempotency or side effects are not mentioned, but the core behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise—two sentences. The first sentence states the purpose, and the second explains the critical workflow. No filler or redundancy. Front-loaded with the action, then workflow detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, nested objects, no output schema), the description covers the core workflow but omits details like return value format (only mentions 'confirmation_required and a payload preview'), error handling, or required permissions. It is adequate but not fully comprehensive.

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%, baseline 3. The description adds meaning by explaining the confirmWrite parameter's role in the workflow (false on first call, true only after confirmation). It also implies that payload and updates are used for merging fields, aligning with schema descriptions. This adds value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Updates' and the resource 'BRC product', distinguishing it from sibling tools like brc_create_product or brc_get_product. The mention of 'using merged fields' adds specificity, and the two-step workflow sets it apart from simple updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: a preflight call without confirmWrite: true returns a preview, and only after explicit user confirmation should confirmWrite be set to true. It warns against treating preflight as confirmation. While it doesn't compare to sibling update tools, it focuses on the correct usage workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_purchaseBInspect

Updates a BRC purchase using structured MCP fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPurchase id.
noteNo
acCodeNo
procDateNo
entryDateNo
netAmountNo
vatRateIdNo
supplierIdNo
accountCodeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionNo
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.
vatPercentageNo
bookTranTypeIdNo
analysisCategoryIdNo

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the confirmation behavior and the need for explicit user confirmation, which is valuable. However, with no annotations, the description does not cover other behavioral traits such as permissions required, side effects, or idempotency.

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, front-loaded with the main action, and packs essential process details in a single sentence. However, a structured format could improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 15 parameters, low schema coverage, and no output schema, the description is incomplete. It focuses solely on the confirmation flow and does not explain what fields can be updated, the expected response, or error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 20% schema description coverage, the description adds meaning only for confirmWrite. The other 13 parameters lack explanation, leaving the agent unclear about their purpose beyond the schema's sparse descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates a BRC purchase and explains the two-step confirmation process. However, it does not differentiate this tool from sibling update tools, though the name already serves that purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit step-by-step guidance on the two-call pattern with confirmWrite, including the important instruction that preflight is not confirmation. However, it does not advise when to use this tool versus creating a purchase.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_quoteAInspect

Updates a BRC quote using structured safe text/reference fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
noteNo
referenceNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the preflight confirmation behavior, but does not detail idempotency, side effects, or error states. However, the two-step workflow is well-explained, earning a high score.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences: purpose, workflow, warning. It is concise, front-loaded, and every sentence adds value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description lacks details on the return structure (confirmation_required, payload preview). It mentions the preview but does not describe its contents. For a 5-parameter mutation tool, more context about outputs and field effects would improve completeness.

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 60% (descriptions for id, companyName, confirmWrite). The description adds critical semantics for confirmWrite (explaining its boolean usage in the workflow), but does not elaborate on note and reference parameters. It adds value beyond schema but not fully comprehensive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Updates a BRC quote using structured safe text/reference fields,' specifying the verb and resource. It distinguishes from sibling tools like brc_create_quote and brc_close_quote by focusing on updates.

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 outlines the two-step process: first call without confirmWrite for preview, then retry with confirmWrite after user confirmation. It warns that 'Passing preflight is not confirmation,' providing clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_sales_credit_noteAInspect

Updates a BRC sales credit note using structured safe text/reference fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales credit note id.
noteNo
referenceNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description shoulders the burden of behavioral disclosure. It reveals the two-step confirmation process, returning a preview. However, it doesn't mention potential need for specific permissions or the result after successful 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 concise sentences: first states purpose, second details the critical workflow. No redundancy, perfectly front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (update with confirmation) and lack of output schema, the description covers the essential workflow but omits post-confirmation behavior and error handling. It is complete enough for an AI agent to use correctly in most scenarios.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 60% (3 of 5 params have descriptions). The description adds value by explaining the confirmWrite workflow and noting 'structured safe text/reference fields' for note and reference, but doesn't provide additional constraints or format beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates a BRC sales credit note, which is a specific verb+resource. It distinguishes itself from sibling tools like brc_create_sales_credit_note and brc_delete_sales_credit_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit workflow guidance: first call without confirmWrite for preflight, then retry with confirmWrite after user confirmation. It clarifies when not to set confirmWrite, which is highly helpful for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_sales_entryAInspect

Updates a BRC sales entry using structured safe text/reference fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales entry id.
noteNoOptional. BRC "Note" field on the sales document (JSON field `note`). Leave blank to default it to the customer name (BRC customer "Name" / JSON `name`). Do not use the product name as the note. Only set this when the user explicitly provides a note.
referenceNoOptional. BRC "Reference" field (JSON field `reference`). BRC "Our Ref" (JSON `ourReference`) and BRC "Your Ref" (JSON `yourReference`) default to this value when not supplied separately.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Fully discloses the two-phase commit behavior: first call returns a payload preview, requires user confirmation before setting confirmWrite. Warns that preflight is not confirmation. No annotations, so description carries full burden and meets 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?

Description is concise with three key sentences plus parameter details. Front-loaded with main action and confirmWrite pattern. 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?

Covers usage and parameters well, but lacks description of successful response beyond confirmation_required mention. Given no output schema, a brief note on what a successful update returns would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds significant meaning beyond schema: explains note default behavior (customer name, not product name), reference defaulting to 'Our Ref' and 'Your Ref', and precise confirmWrite usage rules. Schema coverage is 100% but description provides extra context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a BRC sales entry with specific fields (note, reference). It distinguishes from siblings like brc_update_sales_invoice by specifying the resource and the safe text/reference fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to first call without confirmWrite to get a confirmation required response, show a draft, then retry with confirmWrite only after explicit user confirmation. Also provides rules for when to set note and reference fields.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_sales_invoiceAInspect

Updates a BRC sales invoice using structured safe text/reference fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales invoice id.
noteNoOptional. BRC "Note" field on the sales document (JSON field `note`). Leave blank to default it to the customer name (BRC customer "Name" / JSON `name`). Do not use the product name as the note. Only set this when the user explicitly provides a note.
referenceNoOptional. BRC "Reference" field (JSON field `reference`). BRC "Our Ref" (JSON `ourReference`) and BRC "Your Ref" (JSON `yourReference`) default to this value when not supplied separately.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavior. It reveals the preflight confirmation pattern and defaulting behavior for notes. It does not mention side effects like idempotency or rate limits, but the confirmation mechanism mitigates accidental writes. Overall, good transparency for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise yet comprehensive: two sentences that cover purpose, preflight process, and parameter nuances. No redundant or filler content. 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?

Given the complexity of the two-phase commit and lack of output schema, the description provides essential context about the first response (confirmation_required and preview). However, it does not describe the final successful response format. Still, it is largely complete for the expected usage pattern.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds significant value: explains that leaving note blank defaults to customer name, details reference field relationships, and gives explicit usage for confirmWrite. This goes beyond the schema to clarify behavior and intent.

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 'Updates a BRC sales invoice' with a specific verb and resource. It also mentions 'structured safe text/reference fields', which hints at the nature of the update but does not explicitly differentiate from similar update tools like brc_update_sales_credit_note or brc_update_sales_entry. The purpose is clear but could be more distinct.

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?

Excellent usage guidance: describes a two-step process with preflight and confirmation. Explicitly states to first call without confirmWrite: true, then retry with confirmWrite: true only after explicit user confirmation. Warns that 'Passing preflight is not confirmation.' This provides clear when-to-use and when-not-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_sales_repAInspect

Updates a BRC sales rep using structured MCP fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales rep id.
codeNo
nameNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses the two-step confirmation process and preview behavior. However, it does not detail other aspects like permissions, side effects, or return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and provides necessary workflow details. It is slightly verbose but each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and annotations, the description covers the confirmation process well but omits return value, prerequisites, and error handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 description adds minimal value beyond the schema; it reiterates the confirmWrite workflow already in the schema description. Parameters code and name lack schema descriptions, and the tool description does not supplement them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Updates a BRC sales rep using structured MCP fields,' clearly stating the verb (updates) and the resource (sales rep). This distinguishes it from sibling tools like create and delete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit step-by-step guidance: first call without confirmWrite for preview, then retry with confirmWrite only after user confirmation. It clearly states when not to set confirmWrite.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_update_supplierAInspect

Updates a BRC supplier using merged fields. First call without confirmWrite: true returns confirmation_required and a payload preview — show a plain-English draft in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Passing preflight is not confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSupplier id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English draft has been shown in the current conversation and the user explicitly confirmed posting (for example yes, create it / post it now / confirm). Never set true on the first call or because the user initially asked to create something.

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses the two-phase commit behavior and the need for a plain-English draft before finalizing. While annotations are missing, the description covers key behavioral traits. Lacks details on destuctiveness or permissions, but sufficient for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single paragraph that efficiently packs essential information. Could be slightly more concise, but no superfluous text. Front-loaded with the main action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the two-phase workflow and 5 parameters, the description fully explains the process, including what the first call returns (confirmation_required and payload preview). Without an output schema, this is adequate for the agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters, but description adds crucial context: explains the conditional confirmWrite workflow and clarifies that 'payload' is an alias for 'updates'. Baseline 3 is elevated because description adds meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Updates a BRC supplier using merged fields.' It identifies the specific resource (supplier) and action (update), distinguishing it from other update tools like brc_update_customer or brc_update_product.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit step-by-step guidance: first call without confirmWrite, show draft, then retry with confirmWrite true only after explicit user confirmation. Warns that 'Passing preflight is not confirmation,' which prevents misuse.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brc_validate_transaction_dateAInspect

Checks whether a proposed transaction date is inside the connected BRC company's current financial year.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
transactionDateYesDate to validate in YYYY-MM-DD format.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden. It discloses the tool is a read-only check ('Checks whether'), but does not mention what the return value or error behavior is (e.g., boolean or exception if date is invalid).

Agents need to know what a tool does to the world before calling it. Descriptions 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 sentence, front-loaded, and every word is necessary. No fluff, ideal length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 validation tool with no output schema, the description covers the core functionality. However, mentioning the return type or expected outcome (e.g., 'returns true/false') would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with descriptions. The tool description adds no extra meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool validates a transaction date against the current financial year (specific verb 'checks', resource 'transaction date'). It distinguishes itself from sibling tools, which are mostly CRUD or batch operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. It is implied that it should be used before creating transactions, but no exclusions or sibling comparisons are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.2/5.0
Disambiguation5/5

Every tool targets a distinct entity and action (e.g., create, update, delete, get, list for each business object). Variants like _gen_ref are clearly differentiated by auto-generated vs. manual references. There is no ambiguity.

Naming Consistency5/5

All tools follow a strict 'brc_verb_noun' snake_case pattern. Verbs are consistent across entities (create, get, list, update, delete, batch, etc.), and no mixing of styles is observed.

Tool Count1/5

With 154 tools, the server is extremely bloated. Even for a comprehensive accounting system, this number overwhelms an agent and violates typical well-scoped ranges (3-15 tools). The surface could be drastically consolidated.

Completeness5/5

The tool set covers the full lifecycle of major entities (customers, suppliers, products, invoices, purchases, quotes, etc.), plus supporting operations like emailing, allocations, audit logs, and settings. No obvious gaps are present.

Maintenance

ActivityActive
ResponsivenessSyncing

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

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to query and manage QuickBooks Online data through natural language, including customers, invoices, bills, vendors, accounts, and financial reports.
    7
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides AI assistants with direct access to HLedger accounting data and functionality, enabling natural language queries for balances, reports, journal entries, and financial analysis.
    40
    65
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Connects AI assistants to QuickBooks Online, enabling management of invoices, customers, expenses, and reports through natural language.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Bridges Tally Prime ERP with AI assistants, enabling querying financial reports, managing masters, creating vouchers, and analyzing GST data through natural language.
    AGPL 3.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/BigRedCloud/red-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server