Skip to main content
Glama

Red by Big Red Cloud

Server Details

Secure MCP access to Big Red Cloud accounting data, workflows, help and training.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
BigRedCloud/red-mcp-server
GitHub Stars
0
Server Listing
Red MCP Server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsB

Average 3.8/5 across 157 of 157 tools scored. Lowest: 1.7/5.

Server CoherenceA
Disambiguation4/5

Tools are mostly distinct with clear purposes, but there are some overlaps such as multiple tools for checking company settings and separate tools for creating with generated vs. manual references. Descriptions help differentiate, but an agent could still confuse similar ones.

Naming Consistency5/5

All tools follow a consistent brc_verb_noun snake_case pattern (e.g., brc_create_customer, brc_list_sales_invoices). Minor abbreviations like 'nom_ac' for nominal account are rare and still fit the pattern perfectly.

Tool Count2/5

With 157 tools, the server is extremely large. While the ERP domain justifies many operations, this high count makes navigation and selection difficult for the agent, likely causing slower performance and higher error rates.

Completeness4/5

The tool surface covers core accounting workflows comprehensively: CRUD for customers, suppliers, products, invoices, purchases, quotes, etc., plus batch operations, allocations, email sending, and help resources. Minor gaps like missing report generation tools are acceptable given the scope.

Available Tools

159 tools
brc_batch_cash_paymentsA
Destructive
Inspect

Processes a batch of BRC cash payments. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
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 does a thorough job. It discloses that a routeToken is not permission to post, that preview-before-posting and confirmWrite still apply, and that the counterparty must be explicitly confirmed in the current conversation. These are critical behavioral constraints beyond basic input schema.

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

Conciseness5/5

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

The description is dense but every sentence earns its place: purpose, batch limit, route token workflow, confirmation requirements, and counterparty constraint. It is well-structured and front-loaded with the core purpose before the process details.

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

Completeness5/5

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

For a transactional batch tool with no annotations and no output schema, the description fully covers the prerequisite workflow (routeToken acquisition), the constraints on token usage, and the confirmation gates. It adequately contextualizes the complexity of this 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. However, the description adds meaningful context for routeToken (routing permission only, do not invent) and confirmCounterpartyExplicit (must be explicitly stated by user, not inferred), which goes beyond the schema descriptions. The max 20 items is also reinforced.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 BRC cash payments' with a specific verb and resource, and adds the batch size limit (max 20). This also distinguishes it from single-item tools like brc_create_cash_payment and other batch tools (e.g., brc_batch_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?

The description provides explicit workflow guidance: call brc_route_request first, retain the returned routeToken, and pass it on the final transactional call. It also specifies when confirmCounterpartyExplicit must be true. It does not explicitly state alternatives or when not to use this tool, but the batch nature and prerequisites are clearly implied.

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

brc_batch_cash_receiptsA
Destructive
Inspect

Processes a batch of BRC cash receipts. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/5

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

With no annotations provided, the description carries the full burden and discloses critical behavior: routeToken is not permission, preview-before-posting and confirmWrite/confirmDelete still apply, and confirmCounterpartyExplicit must be based on explicit confirmation in the current conversation. It also warns against inventing placeholder tokens.

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 its core purpose and is information-dense, but the routeToken guidance is somewhat repetitive across multiple sentences. Every sentence still contributes safety-relevant or workflow-relevant content.

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

Completeness5/5

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

Despite having 8 parameters and no output schema, the description covers the essential routeToken lifecycle, confirmation prerequisites, batch limits, and posting safeguards. This gives an agent enough context to invoke this transactional batch tool correctly.

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

Parameters3/5

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

The input schema covers 100% of parameters with detailed descriptions, including routeToken and confirm flags. The description reinforces the routeToken workflow and counterparty confirmation, but it adds little new parameter-level meaning beyond what the schema already provides.

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

Purpose5/5

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

The description opens with 'Processes a batch of BRC cash receipts,' clearly naming the verb, resource, and batch scope. It also states the 20-item maximum, which helps distinguish it from single-item tools like brc_create_cash_receipt and other batch tools.

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

Usage Guidelines4/5

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

It provides explicit workflow guidance: call brc_route_request first, retain the routeToken, pass the same token, and only call this tool on the final permitted transactional call. It does not explicitly name alternatives or state 'when not to use,' so it stops short of a 5.

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

brc_batch_customersA
Destructive
Inspect

Processes a batch of customers. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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.
Behavior4/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 key behavioral traits: requires routeToken, routeToken is not permission to post, preview-before-posting and confirmWrite/confirmDelete still apply, and a 20-item batch limit. This is useful, actionable context beyond what the schema provides, though it still doesn't state the exact nature of the operation (create/update/delete).

Agents need to know what a tool does to the world before calling it. Descriptions 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 compact paragraph with a clear front-loaded statement ('Processes a batch of customers') followed by essential workflow instructions. Each sentence serves a purpose: batch limit, routeToken requirement, sequence, and confirmation caveat. No wasted words or redundancy.

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

Completeness4/5

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

Given the complexity of the routeToken workflow and 7 parameters, the description covers the critical context: the prerequisite call to brc_route_request, token retention, and confirmation requirements. However, it does not fully explain what 'processes' means (create/update/delete) or describe expected return values, though no output schema exists. It's adequate but with a small gap around the specific action semantics.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds little beyond the schema: it restates the max 20 items and mentions routeToken requirements, which are already in the schema. It does not elaborate on priceBasis, confirmWrite, or confirmCrAnalysisCategory beyond their schema descriptions, so it adds only marginal 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 states 'Processes a batch of customers' which identifies the resource (customers) and indicates a batch operation. It distinguishes from sibling batch tools by entity type, though the verb 'processes' is somewhat vague and does not specify whether it creates, updates, or deletes customers. The mention of 'final permitted transactional tool call' implies a write operation but lacks exact action 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 provides explicit workflow instructions: call brc_route_request first, retain the routeToken, pass it on this call, never invent a placeholder, and remember that the token does not bypass preview/confirmation. It does not explicitly compare with alternative tools (e.g., create_customer for single operations), but the context is clear that this is a batch transactional tool requiring prior routing.

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

brc_batch_paymentsA
Destructive
Inspect

Processes a batch of BRC payments. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it reveals this is a transactional write operation requiring routing permission and explicit confirmations, and it warns against bypassing preview-before-posting. It doesn't describe return behavior or specific side effects beyond posting, but the safety workflow is clearly disclosed.

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

Conciseness5/5

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

Four sentences, each devoted to a distinct requirement: purpose and limit, routeToken workflow, no-placeholder rule, and confirmation requirements. Dense but not bloated; all information is actionable and non-redundant.

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

Completeness4/5

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

Covers purpose, limits, prerequisites, routing workflow, and confirmation rules—critical for a transactional tool with no output schema. Minor gaps remain: it doesn't define what a 'BRC payment' item consists of or state what a successful response indicates, but the schema and sibling tools help fill that context.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions, so the baseline is 3. The description adds workflow context for routeToken and confirmCounterpartyExplicit but doesn't clarify any parameter semantics beyond what the schema already provides (e.g., maxItems is duplicated, item structure is not expanded).

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

Purpose5/5

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

The description opens with 'Processes a batch of BRC payments,' which uses a specific verb and resource, clearly distinguishing it from sibling batch tools like brc_batch_cash_payments or brc_batch_purchases. The rest of the description adds operational context without obscuring the core purpose.

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

Usage Guidelines5/5

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

Provides explicit usage instructions: 'Call brc_route_request first,' 'Retain the returned routeToken... and pass the same token,' and 'Never invent a placeholder token.' It also warns that a routeToken is not permission to post and that confirmWrite/confirmDelete still apply, giving clear exclusions and sequencing.

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

brc_batch_productsA
Destructive
Inspect

Processes a batch of products. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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.
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 discloses the prerequisite routeToken workflow, warns against placeholder tokens, and explicitly states that preview-before-posting and confirmWrite/confirmDelete still apply, which is important operational behavior. It does not, however, describe what the batch processing actually does to products 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?

The description is appropriately sized, with the first sentence stating the core purpose and subsequent sentences delivering actionable workflow and guardrails. Each sentence earns its place: the 20-item limit, the routeToken requirement, the sequencing instructions, the 'never invent a placeholder' warning, and the reminder about preview/confirmation. It is front-loaded, efficient, and free of 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 token workflow and batch size limit but leaves significant contextual gaps. It does not explain what a 'batch of products' entails (e.g., what fields each item object should contain), especially since the schema defines items only as 'object' with no internal structure. The output is also unspecified, and there is no output schema. Given the tool's complexity, the description is adequate but not 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 baseline is 3. The description adds no parameter-specific meaning beyond the schema; it references routeToken and confirmWrite but does not elaborate on them more than the schema already does. The description's workflow guidance indirectly supports the routeToken parameter but does not add new semantic detail for any parameter.

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

Purpose4/5

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

The description opens with 'Processes a batch of products,' which uses a specific verb and resource, distinguishing it from other batch tools like brc_batch_customers or brc_batch_purchases. However, it does not specify whether the processing involves create, update, or delete actions, leaving the exact operation type implied rather than explicit.

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 workflow instructions: call brc_route_request first, retain the returned routeToken through lookup/preview/confirmation, and pass it on the final transactional call. It also provides critical exclusions like 'Never invent a placeholder token' and clarifies that a routeToken is not permission to post, making usage guidance exceptionally clear.

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

brc_batch_purchasesA
Destructive
Inspect

Processes a batch of purchases. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior4/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 that routeToken is not permission to post, that preview-before-posting and confirmWrite still apply, and that counterparty confirmation is required. This goes beyond the schema. It does not mention failure modes or exact write side effects, but the disclosed constraints are substantial.

Agents need to know what a tool does to the world before calling it. Descriptions 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 coherent paragraph where every sentence contributes essential workflow or constraint information. It avoids fluff and 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?

The description covers the key workflow prerequisites and safety constraints: routeToken lifecycle, batch limit, and explicit counterparty confirmation. It does not explain return values (no output schema exists), and it omits some parameters like priceBasis, but the schema covers those. Given the tool's transactional complexity, the contextual coverage is 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 description coverage is 100%, so the baseline is 3. The description reinforces routeToken and confirmCounterpartyExplicit but does not add meaning beyond what the schema already provides. The workflow context (call brc_route_request first) is already present in the routeToken schema field.

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 'Processes a batch of purchases' which identifies the resource (purchases) and implies a batch operation, distinguishing it from sibling batch tools like brc_batch_sales_invoices or single purchase tools. The verb 'Processes' is somewhat generic but combined with 'batch of purchases' it is clear 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 gives explicit operational guidance: call brc_route_request first, retain the returned routeToken, never invent a placeholder token, and set confirmCounterpartyExplicit only after explicit user confirmation. It does not explicitly name alternative tools or when not to use this tool, but the clear prerequisites and workflow context earn a 4.

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

brc_batch_quotesA
Destructive
Inspect

Processes a batch of quotes. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/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 critical behavioral traits: the tool does not post immediately (preview-before-posting and confirmWrite/confirmDelete apply), token safety rules, and the explicit-confirmation requirement for counterparty. This goes well beyond what the schema alone provides.

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 dense paragraph of about 100 words. Every sentence contributes useful information (max items, workflow, token rules, confirmation requirements). It's not as tight as a two-sentence example, but for the complexity of this routed transactional tool, it is appropriately concise and front-loaded with the core 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 8 parameters, no annotations, and no output schema, the description covers prerequisites, token handling, and confirmation requirements thoroughly. The main gap is that it never states what 'processing' actually does (e.g., create quotes, update quotes) or what the tool returns on success. However, the routeToken workflow implies the action is predetermined, so this is a minor omission.

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

Parameters4/5

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

The schema already has 100% parameter coverage, so baseline is 3. The description adds meaningful semantics around routeToken (the full lifecycle and prohibition on placeholders) and reinforces confirmCounterpartyExplicit. It doesn't add detail for every parameter, but the routeToken context is significant, raising it above baseline.

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

Purpose5/5

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

The description opens with 'Processes a batch of quotes,' a specific verb and resource that clearly distinguishes this tool from single-quote tools and other batch tools (e.g., brc_batch_sales_invoices). The subsequent context about the routeToken workflow further pins down its role as a transactional batch operation.

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: call brc_route_request first, retain the routeToken through lookup/preview/confirmation, pass the same token on the final transactional call, and never invent a placeholder. It also clarifies that routeToken is not permission to post and that confirmCounterpartyExplicit is required. This is far more than minimal and directly tells agents 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_batch_sales_credit_notesA
Destructive
Inspect

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 preview-before-posting 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 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/5

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

With no annotations provided, the description carries full disclosure burden. It reveals runtime blocking of productId 0/1, a 20-item batch limit, that routeToken is not permission to post, and that confirmWrite/confirmDelete still apply. This is exceptionally transparent about the tool's guardrails and safety 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 dense paragraph, but every sentence addresses a critical constraint or prerequisite. There is no filler or repetition of schema content. While it could be broken into structured bullets for readability, the length is justified by the tool's complexity and each sentence earns its place.

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

Completeness5/5

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

For a batch transactional tool with no output schema, the description is remarkably complete. It covers prerequisites (routeToken, counterparty confirmation), constraints (productId validity, 20-item limit), safety (preview-before-posting, confirmWrite), and fallback guidance (ask user, use service line). Nothing essential for correct invocation is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining the significance of productId placeholders (0/1 blocked), the workflow for routeToken (must be retained and reused), and the strict confirmation requirement for counterparties. These enrich parameter understanding beyond the schema's basic descriptions.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Processes a batch of sales credit notes.' This clearly identifies the tool's function and the 'batch' qualifier distinguishes it from singleton siblings like brc_create_sales_credit_note. The scope is unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use and workflow guidance: call brc_list_products first for product lines, call brc_route_request first to obtain a routeToken, and require confirmCounterpartyExplicit after explicit user confirmation. It also names alternative actions (creating/selecting a product or using a service line) and emphasizes when not to invent placeholders.

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

brc_batch_sales_entriesA
Destructive
Inspect

Processes a batch of sales entries. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/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 explicitly states the 20-item limit, that routeToken is not permission to post, that preview-before-posting and confirmWrite/confirmDelete still apply, and that confirmCounterpartyExplicit is required after explicit user confirmation. It also warns against inventing placeholder tokens, providing substantial 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?

The description is a single paragraph of about 150 words. Every sentence contributes critical information about routing, confirmations, and batch limits. While it could be structured with bullets for readability, it is not verbose or redundant.

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

Completeness4/5

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

Given the complexity (8 parameters, no output schema, no annotations), the description covers the essential operational workflow: routing prerequisites, confirmation requirements, and batch limits. It does not explain return values (since no output schema exists) or define 'sales entries' relative to siblings, but it is sufficiently complete for an agent to use the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema for key parameters: it explains the routeToken workflow (call brc_route_request first, retain through lookup/preview/confirmation) and clarifies the confirmCounterpartyExplicit requirement (only after explicit user naming in the current conversation). This adds value beyond the schema descriptions.

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

Purpose4/5

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

The description clearly states the tool 'Processes a batch of sales entries', providing a specific verb and resource. It does not explicitly differentiate from sibling tools like brc_batch_sales_invoices or brc_batch_sales_credit_notes, but the name and batch context make the primary function clear.

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

Usage Guidelines4/5

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

The description provides clear usage context by requiring brc_route_request first and explaining the workflow (routeToken, preview, confirmation). It does not explicitly name alternative tools for single entries, but the batch workflow and prerequisites are well described.

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

brc_batch_sales_invoicesA
Destructive
Inspect

Processes a batch of sales invoices. Batch sales invoices apply the same safety checks as single sales invoices: productId 0/1 placeholder blocking before preview-before-posting and posting; Sales VAT category validation before preview-before-posting 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 preview-before-posting 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 preview-before-posting and before posting, even if the VAT percentage matches. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/5

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

With no annotations, the description carries the full burden and does so extensively. It discloses placeholder blocking (productId 0/1), VAT category validation, priceBasis handling, note default behavior, deliveryTo inclusion rules, routeToken not being posting permission, and the need for explicit counterparty confirmation. This goes far beyond typical descriptions.

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 dense paragraph with notable redundancy (e.g., productId 0/1 blocking is mentioned twice, 'preview-before-posting and posting' appears multiple times). While every sentence adds valuable content, the lack of bullet points or structure hurts scannability and it is longer than 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?

The description thoroughly covers safety checks, routing, confirmations, and limits, but it does not describe the expected return value or response format (no output schema). Additionally, the 'items' array has an open schema (additionalProperties), and the description only clarifies note and deliveryTo, leaving other item fields unspecified. For a complex batch tool, this is a notable gap.

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

Parameters5/5

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

Although the schema already documents all 8 parameters, the description adds significant meaning: note defaults to customer name, deliveryTo is only included when explicitly provided, confirmCrAnalysisCategory is batch-level, routeToken is not permission, and confirmCounterpartyExplicit requires an explicit user statement. These nuances are not inferable from the schema alone.

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

Purpose5/5

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

The description opens with 'Processes a batch of sales invoices,' which clearly identifies the verb, resource, and batch scope. It distinguishes itself from sibling batch tools (e.g., batch purchases, batch sales credit notes) and from single-invoice tools by the batch 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?

Provides explicit preconditions: call brc_route_request first, use brc_list_products for valid product IDs, and require user confirmations (confirmCrAnalysisCategory, confirmCounterpartyExplicit). It also warns against inventing tokens or reusing counterparties. However, it does not explicitly state when to choose this batch tool over the single-invoice brc_create_sales_invoice, leaving that comparison 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_repsC
Destructive
Inspect

Processes a batch of sales reps. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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.
Behavior3/5

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

With no annotations, the description carries the transparency burden. It discloses the routeToken requirement, warns that a token is not permission, and states that preview-before-posting and confirmWrite/confirmDelete still apply. Yet it does not disclose the document-processing behavior implied by the schema, and its mention of confirmDelete does not correspond to any parameter in the schema, leaving gaps in behavioral understanding.

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 dense paragraph of five sentences, front-loading the purpose and then explaining the routing workflow. While there is minimal wasted wording, the density combined with the misleading resource and the irrelevant confirmDelete mention reduce its structural quality.

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 complex batch operation with 7 parameters, no output schema, and routing/confirmation requirements, the description is incomplete. It does not explain what an item in the batch must contain, what 'processes' means (create/update/delete), or what the success/failure response looks like. It also fails to reconcile the contradiction between 'sales reps' in the description and 'sales invoice/credit note items' 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 description coverage is 100%, so the baseline is 3. The description adds some meaning for routeToken (never invent a placeholder, routing permission only) and reinforces confirmWrite, but it does not clarify the structure of the items array or the sales-document-specific parameters (priceBasis, confirmCrAnalysisCategory), and the reference to confirmDelete is absent from the schema.

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 states 'Processes a batch of sales reps,' which names a specific verb and resource. However, the input schema's parameters (e.g., priceBasis 'Applies to every sales invoice/credit note item in this batch' and confirmCrAnalysisCategory 'Applies to every sales document item in this batch') indicate the actual operation is sales document processing, not sales rep processing. This mismatch makes the purpose misleading.

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 explicit routing workflow instructions: call brc_route_request first, retain and pass the routeToken on the final transactional call, never invent a placeholder token, and respect preview-before-posting with confirmWrite/confirmDelete. However, it offers no guidance on when to use this tool versus sibling batch tools like brc_batch_sales_invoices, and the guidance is attached to an incorrectly described resource, making it unreliable.

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

brc_batch_suppliersA
Destructive
Inspect

Processes a batch of suppliers. Maximum 20 items per batch request. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesBatch items to process. Maximum 20 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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.
Behavior4/5

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

With no annotations provided, the description carries the safety burden. It discloses that routeToken is not permission to post, that preview-before-posting and confirmWrite/confirmDelete still apply, and that actions are gated behind confirmation. It could add more about side effects or return behavior, but the core transactional safety is addressed.

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 six sentences and front-loads the core action ('Processes a batch of suppliers'). It contains no wasted words and each sentence contributes to the workflow understanding, though it slightly repeats schema content about confirmWrite.

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?

Despite strong schema coverage, the description fails to define the structure of each supplier item in the 'items' array—the schema only says objects with additionalProperties allowed. It also does not explain what 'processes' actually does (create/update/delete), leaving the agent uncertain about payload construction and expected behavior. This is a significant gap for a complex batch tool.

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

Parameters4/5

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

The input schema has 100% description coverage, so the baseline is 3. The description adds valuable context beyond the schema by explaining the routeToken lifecycle (retain across steps, never invent) and confirming that confirmWrite/confirmDelete apply. It does not detail item structure, but that is more a completeness issue than parameter semantics.

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 'Processes a batch of suppliers,' which identifies the resource (suppliers) and batch aspect, but 'processes' is ambiguous about whether it creates, updates, or deletes supplier records. It does not clearly distinguish itself from brc_create_supplier or brc_update_supplier, relying on the batch prefix to imply multi-record handling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select 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 workflow guidance: call brc_route_request first, retain the returned routeToken through lookup/preview/confirmation, and pass the same token on the final transactional call. It also warns against inventing placeholder tokens and clarifies that a routeToken does not bypass confirmation, though it does not explicitly name alternatives for single vs batch operations.

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

brc_check_transaction_settingsA
Read-only
Inspect

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. Use this for one workflow (sales invoice, purchase, cash receipt, or statement). For overall company readiness (connection, financial year, Sales VAT, Sales Analysis, reference data), use brc_company_readiness_check instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
workflowYesThe workflow to check against the company processing settings.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

Mentions returning warnings, and the 'check' nature implies no side effects. However, without annotations, it could explicitly state read-only behavior or prerequisites.

Agents need to know what a tool does to the world before 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 plus an alternative reference, every word contributes. No redundancy.

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

Completeness5/5

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

Given the simplicity of a check tool with no output schema, the description adequately covers return value (warnings), usage context, and differentiation from sibling.

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, and the description adds context (e.g., enumerates allowed workflows with explanatory note). The connectionRef parameter has a lengthy explanation beyond the schema.

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

Purpose5/5

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

The description clearly states the tool checks BRC company processing settings before VAT-sensitive or payment-terms-sensitive workflows, and explicitly distinguishes from the sibling brc_company_readiness_check by specifying a different 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 guidance: use before creating/changing records for a single workflow, and name the alternative tool for overall readiness checks.

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_keysC
Destructive
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations are present, so the description must fully disclose behavioral traits. It mentions clearing credentials from memory but does not specify side effects, such as what happens to active sessions or whether the action is reversible. The description is too brief to be 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 a single sentence, which is concise, but it sacrifices completeness. It could be expanded to include important details without being overly 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?

For a destructive operation that clears all API keys, the description is insufficient. It does not explain the return value (e.g., success message or error), nor does it cover potential impacts or confirmations. The single parameter is well-described, but the overall context of use is lacking.

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

Parameters3/5

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

Schema coverage is 100%, with the parameter connectionRef described in detail within the schema. The tool description adds no extra meaning beyond what the schema provides, 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.

Purpose4/5

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

The description clearly states it clears all connection credentials for all company contexts from MCP server memory, which defines the verb and resource. However, it does not distinguish from the sibling tool brc_clear_company_api_key (singular), so it lacks sibling differentiation.

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

Usage 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_clear_company_api_key or brc_clear_audit_log. There is no mention of prerequisites or context for usage.

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

brc_clear_audit_logA
Destructive
Inspect

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 preview before posting in chat, then retry with confirmWrite: true only after explicit user confirmation in a later message. Red shows what it will post and waits for confirmation. 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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

No annotations provided, so description carries full burden. It explains the two-step confirmation flow, preview behavior, and that Red waits for confirmation. However, it does not explicitly state that the audit log entries are permanently deleted or destroyed, which is a critical behavioral trait for a clear 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 slightly verbose but well-structured with actionable instructions. It front-loads the core purpose and then provides detailed workflow steps. Could be more concise, but 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 schema covers all parameters completely and the description adds workflow guidance, the tool is well-documented. No output schema exists, but the description implies the response includes a preview on first call and a success indicator on confirmation, which is sufficient for an agent to understand the interaction.

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

Parameters4/5

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

Schema coverage is 100% with descriptions for all 3 parameters. The description adds context beyond schema for confirmWrite, explaining its role in the confirmation workflow and that 'Passing preflight is not confirmation.' This adds meaningful guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 clears the Red audit log for this MCP server session. It distinguishes itself from sibling tools like brc_list_audit_log by specifying the action (clear) and the scope (session).

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:true returns preview, then show plain-English preview in chat, then retry with confirmWrite:true only after user confirmation. Also warns not to set confirmWrite:true on first call or without explicit confirmation.

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_keyB
Destructive
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

The description only states 'clears' without detailing side effects (e.g., whether it invalidates the connection, requires re-authorization, or is idempotent). Since no annotations are provided, the description should disclose more 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.

Conciseness4/5

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

The description is a single sentence of 11 words, which is concise and to the point. However, it could include more useful context 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?

As a destructive mutation tool with no output schema and no annotations, the description is incomplete. It does not clarify what happens after clearing (e.g., need to reconnect), success indicators, or error 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?

Both parameters have schema descriptions (100% coverage). The tool description adds no new meaning beyond them; it merely restates 'named company 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 specific verb 'clears' and the resource 'API key for a named company context', distinguishing it from sibling tools like brc_clear_all_company_api_keys which clears all keys.

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_clear_all_company_api_keys, or prerequisites such as having an active connection. The connectionRef parameter description provides some context but does not address tool selection.

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations, the description must disclose behavioral traits, and it does so well. It clearly states that routeToken is not permission to post, that preview-before-posting and confirmWrite/confirmDelete still apply, and that the token must come from brc_route_request. It does not fully describe the irreversible effects or return behavior of closing a quote, but covers the critical safety and routing semantics.

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 sequence of five purposeful sentences, each carrying essential routing or safety information. It is slightly longer than minimal but every sentence earns its place, and the structure is logical: what it does, prerequisites, workflow, and safety caveats.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (no annotations, no output schema, transactional nature), the description covers the essential routing workflow, token handling, and confirmation requirements. It could more explicitly state the business effect of closing a quote (e.g., status change, reversibility), but the routing protocol is the primary complexity and it is well covered.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds substantial value beyond the schema by explaining the routeToken lifecycle (call brc_route_request first, retain token through the workflow, never invent a placeholder) and reiterating that confirmWrite still applies. This gives the agent practical guidance not explicit in the JSON schema alone.

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 begins with 'Closes a BRC quote,' which is a specific verb and resource, clearly distinguishing it from sibling operations like brc_delete_quote, brc_reopen_quote, or brc_update_quote. It does not explicitly name alternatives or contrast them, but the verb 'close' makes the purpose unmistakable.

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

Usage Guidelines4/5

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

The description provides explicit workflow guidance: call brc_route_request first, retain the routeToken through lookup/preview/confirmation, and use the same token on the final transactional call. It also warns against inventing placeholder tokens and states that preview-before-posting and confirmWrite still apply. It lacks explicit exclusions or alternative-tool comparisons, preventing a 5.

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

brc_company_readiness_checkA
Read-only
Inspect

Read-only company health and readiness check for a connected Big Red Cloud company. Reports connection status, financial year, sample reference data (customers, products, suppliers, sales reps), Sales VAT rates, Sales Analysis categories, processing settings, and reference settings. Use this for overall company readiness before starting work. For warnings about 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 this tool scores overall company readiness.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

No annotations provided, so description carries full burden. It states 'Read-only' indicating no side effects, and lists the data reported. However, it does not mention rate limits or specific error conditions, which are minor omissions.

Agents need to know what a tool does to the world before 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 plus a helpful contrast with sibling. No unnecessary words, front-loaded with purpose, and efficient.

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

Completeness5/5

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

Given no output schema, the description lists the types of data returned (connection status, financial year, reference data, etc.). It also contrasts with a sibling tool, making the context complete for a readiness check 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 100% with both parameters already described in the input schema. The description does not add additional semantic meaning beyond what the schema provides, meeting 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 'Read-only company health and readiness check' and lists specific reported items (connection status, financial year, etc.). It also distinguishes from the sibling brc_check_transaction_settings by contrasting scope.

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

Usage Guidelines5/5

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

Explicitly says 'Use this for overall company readiness before starting work' and contrasts with brc_check_transaction_settings for specific VAT-sensitive workflows, 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_confirm_company_connectionAInspect

Confirm company connection, finish connection, or complete connection after the secure page. This tool is brc_confirm_company_connection. Use when the user says confirm company connection, finish connection, complete connection after the secure page, or pastes a confirmation code from the success page. 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). Returns an opaque connectionRef for later tool calls when the MCP client rotates session ids (for example Vibe/Mistral). Pass it silently in tool arguments — do not show connectionRef or redconn_ values to normal users. After confirm succeeds, keep passing the same connectionRef on every later tool call — do not call brc_start_company_connection while that connectionRef still works. Never exposes connection credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe connection code from the secure Red connection page success message.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

No annotations exist, so the description carries full burden. It discloses that the tool claims a completed secure connection code, returns an opaque connectionRef for session rotation, and should keep reusing the same connectionRef. It also clarifies that connectionRef is not an API key and does not expose credentials. Slightly lacking a clear statement on whether this is a destructive/mutating action, but the context of 'completing a connection' implies state change.

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 somewhat verbose, repeating the purpose with three synonyms (confirm, finish, complete) and including redundant phrases like 'This tool is brc_confirm_company_connection.' It front-loads the core purpose but could be trimmed by ~30% without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 2 parameters, no output schema, and no annotations, the description covers usage context (after secure page, with confirmation code), the return value (connectionRef), and lifecycle advice (keep reusing, don't restart). It's almost complete but could briefly mention what happens if confirmation fails.

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 'code' comes from the success page and the 'connectionRef' is opaque, reused across calls, and must not be shown to users. 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 explicitly states the tool confirms/finishes/connects a company connection after a secure page. It specifies the verb (confirm/finish/complete) and resource (company connection), distinguishing it from siblings like brc_start_company_connection and other crud 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 clear when-to-use triggers (user says confirm, finish, complete connection, or pastes a confirmation code), explicitly says to use after the secure page, and warns against calling brc_start_company_connection while the connectionRef is valid. Also tells the agent to silently pass connectionRef and not show it to users.

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

brc_create_accrualA
Destructive
Inspect

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 preview and explicitly confirmed creation. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/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 reveals key side effects (generates a reversing child transaction), the routing prerequisite, the preview-before-posting requirement, and the meaning of confirmWrite. It also explicitly warns that a routeToken is not permission to post. This is comprehensive and honest about the tool's operational constraints.

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

Conciseness5/5

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

The description is dense but every sentence serves a purpose: purpose, side effect, confirmWrite warning, routeToken requirement, sequencing, token retention, token warning, and final reminder. No filler or repetition. It is appropriately front-loaded with the core purpose before diving into workflow details.

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

Completeness5/5

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

Given the complexity of this tool (7 required parameters, routeToken workflow, confirmWrite semantics), the description covers all critical operational context. It explains the parent/child transaction behavior, the routing dependency, and the confirmation step. The input schema fully documents all parameters, so the description need not repeat them. The only minor omission is return value details, but with no output schema and the focus on workflow, 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 the baseline is 3. The description adds meaningful context beyond the schema by explaining the routeToken lifecycle and the confirmWrite timing, which are not fully captured in the parameter descriptions alone. It reinforces these critical parameters' semantics without restating every field.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Creates a new parent Accrual.' It distinguishes this from sibling tools by noting the parent/child reversing transaction behavior, which is unique to accruals and not mentioned for other create_* tools. The purpose is immediately clear 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 workflow guidance: call brc_route_request first, retain the routeToken, pass the same token on the final transactional call, and never invent a placeholder token. It also clearly states when not to call with confirmWrite=true (until user explicitly confirms). This goes beyond vague usage hints and gives actionable prerequisites and sequencing.

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
accountNameNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
accountNumberNo
confirmCreateNoMust be true only after the user explicitly confirms creation.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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
Behavior4/5

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

With no annotations provided, the description carries full disclosure burden. It reveals confirmation requirements, the side-effect that omitting categoryId may auto-create a Bank Payments category, and that nominalAcCode must reference an existing account. It also states preview-before-posting still applies. A brief mention of return behavior would round it out, but the safety and side-effect profile is well covered.

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

Conciseness4/5

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

The description is thorough but not bloated; every sentence adds operational value. It could be tightened with a more structured format (bullets) to improve scannability, but it avoids redundancy except for the routeToken emphasis.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 large parameter set (20), lack of annotations, and no output schema, the description goes a long way: it covers workflow prerequisites, required vs optional fields, confirmation, and auto-creation behavior. It omits guidance on several optional fields and doesn't indicate return values, which would be helpful for a transactional 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 55%, so the description must compensate. It explicitly names required fields (acCode, details, lastChq, nominalAcCode) that aren't marked required in the schema, explains categoryId's auto-creation behavior, and details the routeToken lifecycle. However, many optional fields (address, sortCode, accountNumber, etc.) remain undocumented, which prevents a 5.

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

Purpose5/5

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

The description opens with 'Creates a BRC bank account' – a specific verb and resource. It clearly distinguishes itself from update/delete/get/list bank account tools. The action is unmistakable.

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

Usage Guidelines5/5

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

The description provides explicit workflow guidance: call brc_route_request first, retain the routeToken through preview/confirmation, and do not set confirmCreate=true until user confirmation. It also warns that routeToken is not permission to post, which clarifies when the tool should be invoked.

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

brc_create_cash_paymentA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
bankAccountIdNoBank account id for lodgements.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/5

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

With no annotations supplied, the description carries the full behavioral burden and does so thoroughly. It discloses that a routeToken is not posting permission, that preview-before-posting and confirmWrite/confirmDelete still apply, and that confirmCounterpartyExplicit must only be true after explicit user confirmation, plus it warns against inventing placeholder tokens. These are non-obvious, safety-critical behaviors beyond what the schema communicates.

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 average but every sentence earns its place: it covers mode selection, the routeToken lifecycle, confirmation gates, and category validation. It is front-loaded with the core purpose and avoids filler, though there is slight redundancy with the routeToken wording already present in the schema.

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

Completeness4/5

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

For a complex 20-parameter transactional tool with no annotations and no output schema, the description supplies the essential workflow context: call brc_route_request first, retain the token, enforce preview-before-posting, and gate on explicit counterparty confirmation. Remaining details like connectionRef, entryDate, and procDate are already covered by the input schema, so the description is sufficiently complete despite not describing return values.

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 at 85%, so the baseline is 3, but the description adds valuable relational meaning by grouping parameters into three mutually exclusive modes (supplierId+ledger, bankAccountId+lodgement, analysisCategoryId+accountCode) and imposing the CP01-CP03 category constraint. This enhances understanding beyond the individual parameter descriptions without needing to restate every field.

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

Purpose5/5

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

The description opens with the specific verb and resource 'Creates a BRC cash payment' and then distinguishes three concrete modes: supplier payments, bank lodgements, and analysed expenses. This makes the tool's purpose unambiguous and separates it from sibling create tools like brc_create_cash_receipt and brc_create_payment.

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

Usage Guidelines4/5

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

It gives explicit guidance on which parameter combinations to use for which scenario and clearly instructs the agent to call brc_route_request first and pass the returned token through to the final transactional call. It does not name alternatives to use or exclude, but the mode-specific usage conditions are clear enough to guide selection.

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

brc_create_cash_receiptA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
totalNo
acCodeNo
ledgerNo
detailsNo
payloadNo
discountNo
procDateNo
totalNetNo
totalVATNo
totalVatNo
acEntriesNo
entryDateNo
referenceNo
vatRateIdNo
vatTypeIdNo
customerIdNo
percentageNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
vatEntriesNo
accountCodeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionNo
unallocatedNo
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
customFieldsNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior4/5

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

With no annotations, the description carries full behavioral disclosure. It transparently explains that routeToken is not permission to post, that preview-before-posting and confirmWrite apply, and that VAT fields are conditionally sent based on a company setting. It does not cover return values or error behavior, but for a mutating tool it discloses key safety and workflow traits.

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 about 120 words and every sentence contributes useful workflow or safety information. It is front-loaded with the purpose and then organized into prerequisites and confirmation requirements. It is verbose but appropriate for a complex transactional tool with no annotation support.

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 documents the routing and confirmation workflow, which is essential for correct use. However, it does not explain return values, error handling, or how to structure the raw payload versus flat fields. Given 32 parameters, nested objects, and no output schema, these gaps reduce 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 coverage is only 16%, so the description must compensate. It adds meaningful context for routeToken, confirmCounterpartyExplicit, entryDate/procDate defaults, and VAT conditional fields. However, it leaves the remaining 28 parameters including total, acCode, ledger, details, and nested objects without explanation, and only generically refers to 'common flat 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 opens with 'Creates a BRC cash receipt,' which is a specific verb and resource. It clearly identifies the tool's function but does not explicitly distinguish it from similar siblings like brc_create_cash_payment or brc_batch_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?

The description provides clear usage context: call brc_route_request first, retain the routeToken, and pass it on the final transactional call. It also states when confirmCounterpartyExplicit is required. However, it does not mention alternative tools for other transaction types or explicitly state when *not* to use this tool.

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

brc_create_customerAInspect

Creates a BRC customer using a raw BRC payload. Required payload fields: code and name — ask the user if either is missing and return without inventing values. Omit optional fields the user did not provide (address, contact, phone, email, credit terms, VAT registration, and similar). Do not invent placeholders such as Test Address, Dublin, Ireland, creditTerms=30, or vatRegistered=false. 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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesRaw BRC-compatible payload for this endpoint.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 discloses required payload fields, instructs to ask the user rather than invent values, forbids placeholders, notes opening balance behavior, warns about email/name mismatches, and clarifies that routeToken is not permission to post (confirmWrite still applies). This is comprehensive, honest behavior disclosure beyond what schemas alone provide.

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

Conciseness4/5

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

The description is longer than average but every sentence earns its place given the tool's complexity and safety requirements. It front-loads the core purpose and then systematically covers required fields, forbidden inventions, exclusions, email mismatch, routing, and confirmation. It is dense but not wasteful; could be slightly tightened but remains 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 tool's complexity (5 params, nested payload, no output schema, no annotations), the description covers prerequisites, routing, confirmation, placeholders, opening balances, and email checks — nearly all critical context. The only gap is that it does not mention what the tool returns (e.g., created customer ID or success/failure) or how errors are surfaced, which would be helpful for a create operation 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?

Although schema descriptions cover 100% of parameters, the payload parameter is just 'Raw BRC-compatible payload' — the description adds essential semantics by specifying required payload fields (code, name) and optional fields, and by explaining how to handle missing user input. It also clarifies the routeToken and confirmWrite usage, adding meaning far beyond the schema's generic descriptions.

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

Purpose5/5

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

The description starts with a specific verb+resource: 'Creates a BRC customer using a raw BRC payload,' clearly distinguishing it from batch creation (brc_batch_customers) and other entity creation tools. It also contrasts with update/delete tools by focusing on creation and explicitly listing what it does not do (e.g., opening balance 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 clear workflow guidance: call brc_route_request first, retain the routeToken, and use the same token on the final transactional call. It also states an exclusion (does not create/update opening balance transactions) and instructs to warn the user for opening balances. However, it does not explicitly compare with alternatives like brc_batch_customers or brc_update_customer, leaving some ambiguity about when single-create is preferred over batch.

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_batchA
Destructive
Inspect

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 preview and explicitly confirmed creation. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
totalYesTotal journal amount.
procDateYesProcessing date, for example 2024-01-15T00:00:00.
entryDateYesEntry date, for example 2024-01-15T00:00:00.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms creating this Nominal Journal Batch.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
bookTranTypeIdNoBook transaction type id. Nominal Journal Batch is usually 7.
accountTransactionsYesNominal journal account transaction lines. Debits and credits should balance.
Behavior5/5

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

With no annotations provided, the description carries full disclosure responsibility. It transparently explains the preview-before-posting workflow, that a routeToken is not permission to post, and that confirmWrite/confirmDelete still apply, which are critical behavioral traits for a create operation. It also warns against placeholder tokens.

Agents need to know what a tool does to the world before calling it. Descriptions 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 paragraph with the purpose front-loaded. Every sentence adds essential information—creation, balance requirement, confirmation gate, routeToken workflow, and safety constraint—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?

Given the tool's complexity (9 parameters, transactional nature, no output schema), the description communicates the critical workflow and safety constraints. However, it does not describe the return value/response structure or explicitly mention connectionRef, though the schema covers the latter. Overall, it is adequately complete for an agent to act safely.

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 covers all parameters with descriptions, but the tool description adds crucial semantics for the routeToken (workflow origin, retention requirement) and confirmWrite (must be gated on explicit user confirmation). This goes beyond the schema's basic type/length info, though other parameters rely on their schema descriptions.

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

Purpose5/5

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

The description opens with 'Creates a new Nominal Journal Batch,' a specific verb and resource that clearly differentiates this from sibling tools like brc_update_nominal_journal_batch or brc_create_accrual. It further clarifies the core business rule (balanced debit and credit lines), which aids selection.

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 directs the agent to call brc_route_request first, retain and pass the returned routeToken, and never invent a placeholder. It also states not to call with confirmWrite=true until the user explicitly confirms after reviewing the preview, giving clear when-to-call and when-not-to-call guidance.

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

brc_create_paymentA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview 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
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
bankAccountIdYes
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/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 states that routeToken is not permission to post, that preview-before-posting and confirmWrite/confirmDelete still apply, and that confirmCounterpartyExplicit requires explicit user confirmation. These are critical safety and workflow constraints.

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

Conciseness5/5

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

The description is dense yet efficient. Every sentence earns its place: it explains the core purpose, the two usage patterns, the routeToken workflow, and the confirmation rules. There is no redundancy or filler.

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

Completeness4/5

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

The description thoroughly covers workflow, token handling, and confirmation requirements, which is essential for a complex transactional tool. However, with no output schema, it does not describe the return value or error behavior, leaving a minor gap for an agent that needs to know what to expect after 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 68%, and many parameters already have solid descriptions. The description adds value by explaining the two parameter modes and the constraint that analysisCategoryId must be from the Payments book (BP01-BP06) and accountCode must match the category. This goes beyond the schema's per-parameter descriptions but does not cover every parameter.

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

Purpose5/5

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

The description opens with 'Creates a BRC payment from the Payments book', which clearly states the action, resource, and source book. It further distinguishes between two payment modes (supplier vs analysed bank payments), helping the agent select this tool over 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 Guidelines4/5

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

The description provides explicit usage guidance: 'Use supplierId for supplier payments, or analysisCategoryId + accountCode for analysed bank payments.' It also mandates the routeToken workflow and warns against inventing tokens. However, it does not explicitly state when not to use this tool or name alternative tools, so it falls short of a 5.

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

brc_create_prepaymentA
Destructive
Inspect

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 preview and explicitly confirmed creation. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/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 disclosing behavioral traits. It clearly states that this is a write operation that creates a child transaction automatically, that routeToken alone is not permission to post, and that preview-before-posting plus confirmWrite confirmation still apply. It also warns against inventing placeholder tokens, adding critical safety context.

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

Conciseness5/5

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

The description is efficiently organized: it leads with the primary action, then immediately states the most critical safety caveat, followed by the required workflow sequence. Every sentence adds essential information without redundancy or filler. The structure makes it easy for an agent to parse and act on.

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

Completeness5/5

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

Given no output schema and no annotations, the description provides comprehensive context for a complex transactional tool. It explains the parent/child transaction behavior, the required preliminary route_request call, the token management rules, and the confirmation requirement. This covers the critical operational aspects an agent needs to execute correctly.

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

Parameters4/5

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

Schema description coverage is 100%, providing a strong baseline. The description enhances parameter understanding by detailing the routeToken lifecycle (source, retention, reuse, no placeholders) and reiterating the confirmWrite gating, which goes beyond the schema's individual parameter descriptions. It does not fully redefine all 11 parameters but adds meaningful operational context for the most complex ones.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Creates a new parent Prepayment.' It further distinguishes this tool from sibling create tools by noting the parent/child transaction behavior and the reliance on shared logic to generate the reversing child. This makes the purpose unambiguous 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 Guidelines5/5

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

The description provides explicit workflow guidance: call brc_route_request first with the complete original request, retain the returned routeToken, and pass it on the final transactional call. It also explicitly states a when-not condition: do not call with confirmWrite=true until the user has reviewed the preview and confirmed. These are clear directives 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_create_productAInspect

Creates a BRC product using a raw BRC payload. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesRaw BRC-compatible payload for this endpoint.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It discloses the need for a routeToken, that it is not permission to post, and that preview-before-posting and confirmWrite/confirmDelete still apply. It also warns against inventing tokens, which is important safety context. However, it does not describe response behavior or error cases, but the core transactional safeguards are well covered.

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

Conciseness5/5

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

The description is a compact paragraph of four sentences, each adding critical workflow information. It is front-loaded with the core purpose, then details prerequisites and constraints. There is no filler or repetition of schema content, and every sentence earns its place.

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

Completeness4/5

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

Given the tool's complexity (5 params, nested payload, no output schema, no annotations), the description addresses the most critical operational context: the routeToken workflow, preview/confirmation requirements, and the fact that it is transactional. The schema covers all parameter details. The only gap is the lack of mention of return value/response structure, but the output schema absence makes that less critical.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The schema already provides detailed descriptions for payload, routeToken, companyName, confirmWrite, and connectionRef. The description adds context on routeToken sequencing and confirms the confirmWrite gating, but it largely restates what the schema already conveys. No additional parameter-level semantics are provided beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's function: 'Creates a BRC product using a raw BRC payload.' This is a specific verb+resource combination that distinguishes it from other create_* tools in the sibling list (e.g., brc_create_customer, brc_create_sales_invoice). The reference to the raw payload and route workflow further ties it to a specific transactional 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 the agent to call brc_route_request first, retain the routeToken through lookup/preview/confirmation, and pass the same token on the final transactional call. It also states 'Never invent a placeholder token' and clarifies that a routeToken is not permission to post, providing clear when-to-use and workflow guidance. This goes beyond generic usage by naming the prerequisite tool and sequencing.

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

brc_create_purchaseA
Destructive
Inspect

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. A transaction date outside the current financial year is not automatically refused by Red. After the user confirms the requested date, attempt the create request and let the BRC endpoint determine whether that historical date is supported. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
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 important behavioral traits: historical dates are not automatically refused (the endpoint decides), routeToken is routing permission only (not posting permission), and confirmWrite/confirmCounterpartyExplicit must follow user confirmation. It does not mention rate limits, idempotency, or error handling, but the core workflow and safety constraints are well covered. Slightly more could be said about the nature of the write operation (destructive, irreversible) but it's implied.

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

Conciseness4/5

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

The description is longer than average but retains no wasted sentences. Every sentence adds critical context. It is front-loaded with purpose and then flows into usage guidelines, behavioral notes, and parameter conditions. Could be slightly more concise in places (e.g., 'Never invent a placeholder token' is clear but redundant with earlier guidance), 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 18 parameters, no output schema, and no annotations, the description is highly complete. It covers the multi-step workflow dependency on brc_route_request, the date handling behavior, and the confirmation requirements. It does not describe the return value or error responses, but the tool's output (likely success/failure) is implicitly understood. The description enables an agent to use the tool correctly in a complex workflow.

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% parameter description coverage, but the description adds significant value beyond the schema. It explains the conditional requirement for 'reference', the semantics of 'routeToken' (opaque, from route_request, not permission to post), and the strict conditions for 'confirmWrite' and 'confirmCounterpartyExplicit'. It also clarifies the reuse of 'connectionRef'. This is a model of how to enrich parameter understanding.

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

Purpose5/5

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

The description clearly states it creates a BRC purchase using structured MCP fields. It distinguishes itself from the sibling tool brc_create_purchase_gen_ref by mentioning when to prefer that alternative (when the company is configured for manual purchase references). The verb 'creates' and resource 'BRC purchase' 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 explicit usage guidance: requires a reference when manual references are configured, otherwise prefer the gen_ref sibling. It outlines the prerequisite call to brc_route_request, the need to retain routeToken, and the conditions for confirmWrite and confirmCounterpartyExplicit. It also specifies to never invent a placeholder token. This is comprehensive and actionable.

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_refA
Destructive
Inspect

Creates a Purchases Book purchase with a generated reference using structured fields. Use when the company is configured for auto-generated purchase references. A transaction date outside the current financial year is not automatically refused by Red. After the user confirms the requested date, attempt the create request and let the BRC endpoint determine whether that historical date is supported. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
acCodeYes
procDateYes
entryDateYes
netAmountYes
vatRateIdYes
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
supplierIdYes
accountCodeYes
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionYes
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior4/5

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

No annotations exist, so the description carries the full burden. It clearly states that a historical date is not automatically refused, and that the agent should attempt the request and let the endpoint decide. It also explains that routeToken is not permission to post, and that preview-before-posting and confirmWrite/confirmDelete still apply. This is thorough, though it could mention what happens on success/failure more explicitly.

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 fairly concise for the complexity involved, covering purpose, prerequisites, workflow, and constraints in a few sentences. It front-loads the primary purpose. Minor redundancy (e.g., 'routeToken is not permission to post' could be more concise, but it's not wasteful.)

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 high parameter count (17), lack of output schema, and no annotations, the description does a good job of covering the essential workflow and constraints. It does not document return values, but without an output schema that is expected. It could be more complete by describing the error handling or what a successful response looks like, but the provided context is sufficient for an agent to use the tool correctly.

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

Parameters4/5

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

Schema description coverage is very low (29%), so the description must compensate. While the description focuses on workflow and constraints rather than individual parameter semantics, it does add critical context for routeToken, confirmWrite, and confirmCounterpartyExplicit that is not fully explained in the schema. For the 14 required parameters, the description does not detail each one, but the workflow guidance is essential. A slightly higher score is warranted given the complexity and the description's focus on the most important 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 creates a Purchases Book purchase with a generated reference. It explicitly distinguishes its use case (auto-generated references) from a standard purchase creation tool. This is a specific verb+resource+context, and the sibling list includes brc_create_purchase, which supports the differentiation.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance (company configured for auto-generated purchase references). It also gives detailed workflow instructions: call brc_route_request first, retain and pass the routeToken, never invent a placeholder token, and the need for preview-before-posting and confirmWrite. It also specifies the requirement for confirmCounterpartyExplicit and warns against reusing counterparty from earlier previews.

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. Previews before posting include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. Nothing is written to Big Red Cloud until you confirm. 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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
acCodeYes
commentsYes
ddNumberNo
poNumberNo
procDateYes
quantityYes
tranNoteYes
companyIdYesRequired BRC company id for the quote payload. Use the connected company's id from existing records such as customers, products, or sales reps. Do not omit this field.
entryDateYes
productIdYes
referenceNoOptional manual quote reference, max 6 characters. Required when quote references are manual, or when the quote reference setting is unknown. Quote reference must be 6 characters or fewer because Big Red Cloud truncates longer references.
saleRepIdYesSales rep id from brc_list_sales_reps.
unitPriceYes
vatRateIdYes
vatTypeIdNo
layoutTypeNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, 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.
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 clearly states that nothing is written until confirmWrite is true, that previews are required before posting, and that routeToken is not permission to post. It also warns about inventing placeholder tokens and reusing counterparties without confirmation. It could add more about error handling or side effects of creating a quote.

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 dense but well-organized, front-loading the core action and then addressing prerequisites, confirmations, and exclusions. It is slightly long but every sentence adds necessary context for a complex tool with 30 parameters. No waste, but could be broken into clearer sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (30 parameters, 20 required, no output schema, 40% schema coverage), the description covers most prerequisites, confirmation logic, and sibling interactions. It lacks explicit information about the return value or what happens on error. However, for a transactional create tool with many interdependent fields, the description is thorough.

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 only 40%, but the description adds extensive context for many parameters beyond what the schema provides. It explains the purpose and sourcing of saleRepId, saleRepCode, analysisCategoryId, accountCode, routeToken, confirmWrite, confirmCounterpartyExplicit, confirmCrAnalysisCategory, and reference. This compensates well for the schema gaps.

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

Purpose5/5

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

The description clearly states that this tool creates a BRC quote using structured MCP fields. It distinguishes itself from sibling tools like brc_create_quote_gen_ref by mentioning when to use that alternative, and the detail about manual/unknown references further sharpens its purpose.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool (manual or unknown quote references with user-provided reference), what not to use (default sales reps, default analysis categories), and prerequisites (routeToken from brc_route_request, saleRepId, analysisCategoryId). It also explains confirmation fields like confirmCounterpartyExplicit and confirmCrAnalysisCategory.

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. Previews before posting include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. Nothing is written to Big Red Cloud until you confirm. 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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
acCodeYes
commentsYes
ddNumberNo
poNumberNo
procDateYes
quantityYes
tranNoteYes
companyIdYesRequired BRC company id for the quote payload. Use the connected company's id from existing records such as customers, products, or sales reps. Do not omit this field.
entryDateYes
productIdYes
referenceNoOptional manual quote reference, max 6 characters. Required when quote references are manual, or when the quote reference setting is unknown. Quote reference must be 6 characters or fewer because Big Red Cloud truncates longer references.
saleRepIdYesSales rep id from brc_list_sales_reps.
unitPriceYes
vatRateIdYes
vatTypeIdNo
layoutTypeNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, 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.
Behavior4/5

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

With no annotations provided, the description carries full burden. It covers key behavioral traits: nothing is written until confirmWrite=true, preview-before-posting requirement, routeToken routing vs. posting permission, and confirmation steps for counterparty and analysis category. Lacks details on error handling or rate limits, but the main behaviors are well disclosed.

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

Conciseness4/5

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

The description is lengthy (~300 words) but every sentence provides necessary context for a complex tool. It front-loads the purpose and then systematically covers workflow, prerequisites, and confirmation rules. Could be slightly more concise, but all information is relevant 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 high complexity (30 params, 20 required, no output schema, many siblings), the description is quite complete. It explains the full workflow, required preconditions, and confirmation steps. It does not describe the return value or error handling, which would be helpful, but overall it provides sufficient context for correct tool invocation.

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

Parameters3/5

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

Schema description coverage is low (40%). The description adds meaning for critical parameters like saleRepId, saleRepCode, analysisCategoryId, accountCode, routeToken, and the boolean confirm fields. However, many other parameters (e.g., companyName, customerOwnerId, entryDate, productId, quantity) are not explained in the description beyond what's in the schema. The description compensates partially but not fully for the 30 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 explicitly states 'Creates a BRC quote with a generated reference' and specifies when to use it: when quote references are auto-generated or after user confirmation. This clearly distinguishes it from siblings like brc_create_quote (manual reference) and 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 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 criteria ('Use only when quote references are auto-generated...'), prerequisites (saleRepId, routeToken, analysisCategoryId), and exclusions ('Do not use default or demo sales rep values'). It also references the required workflow (call brc_route_request first) and confirms 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_noteA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview 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
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It goes far beyond 'creates' by warning that routeToken is not permission, that preview-before-posting and confirmWrite/confirmDelete still apply, and that default/demo values must never be used. It also reveals when confirmCrAnalysisCategory and confirmCounterpartyExplicit may be set, providing deep transparency into the tool's guardrails.

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

Conciseness5/5

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

The description is long but every sentence earns its place. It is organized by requirement blocks (sales rep, analysis category, route token, counterparty confirmation) and avoids filler. The density is high and directly actionable, with no redundant phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (25 parameters, no annotations, no output schema), the description covers the essential workflow: routing, prerequisites, confirmation gates, and how to obtain missing values. The only notable gap is not describing the return payload or success indicators, but for a create tool this is secondary and likely inferable.

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 32%, so the description compensates for the non-obvious parameters: saleRepId/saleRepCode origin, analysisCategoryId/accountCode sourcing, confirmCrAnalysisCategory semantics, routeToken retention, and confirmCounterpartyExplicit requirements. Some standard parameters like entryDate or netAmount are left to schema names, but the high-risk parameters are 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 opens with a specific verb and resource: 'Creates a BRC sales credit note.' It also differentiates from the closest sibling by explicitly pointing to brc_create_sales_credit_note_gen_ref for auto-reference configurations, making the tool's role unambiguous.

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

Usage Guidelines5/5

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

The description gives clear when-to-use guidance: use this tool when manual sales references are configured, otherwise prefer the gen_ref sibling. It also provides an explicit workflow: call brc_route_request first, list sales reps if missing, and set confirmation flags only after user confirmation — turning the description into an actionable playbook.

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_refA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYes
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/5

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

With no annotations provided, the description carries the full burden and does so excellently. It discloses the required saleRepId/saleRepCode, analysisCategoryId/accountCode, the routeToken lifecycle, the fact that routeToken alone is not permission to post, preview-before-posting requirements, and the precise conditions for confirmCrAnalysisCategory and confirmCounterpartyExplicit. This is rich, non-obvious behavioral detail beyond what any schema could convey.

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 long but every sentence carries necessary information for a complex, multi-step transactional tool. It is front-loaded with the main purpose and then logically sequences prerequisites and confirmations. Slight structural improvement could be made with bullet points, but the density is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 all major invocation requirements: company configuration, sales rep validation, analysis category handling, route token workflow, and explicit confirmation gates. It doesn't mention return values, but with no output schema and a create tool, this is less critical. Overall it is complete for agent invocation in a complex workflow.

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?

While schema coverage is high (86%), the payload parameter is an opaque object. The description adds crucial meaning by specifying that payload must contain saleRepId, saleRepCode, analysisCategoryId, and accountCode, and clarifies that confirmCrAnalysisCategory should only be true after user confirmation. This goes beyond the schema's generic boolean descriptions and clarifies the nested structure.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Creates a BRC sales credit note with an auto-generated reference using a raw BRC payload.' This clearly states what the tool does and distinguishes it from sibling brc_create_sales_credit_note by specifying the auto-generated reference behavior.

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

Usage Guidelines4/5

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

The description says 'Use when the company is configured for auto-generated sales references,' which gives clear when-to-use context. It also specifies to call brc_route_request first and includes explicit 'Do not use default or demo sales rep values' exclusions. However, it never explicitly names the non-gen-ref sibling tool as the alternative, so the guidance is strong but not fully explicit about 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_entryA
Destructive
Inspect

Creates a BRC sales entry using structured MCP fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
acCodeYes
procDateYes
entryDateYes
netAmountYes
vatRateIdYes
customerIdYes
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
accountCodeYes
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionYes
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/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 goes beyond the schema by explaining that a routeToken is not permission to post, that preview-before-posting and confirmWrite/confirmDelete still apply, and that a placeholder token must never be invented. This is safety-critical context that directly informs correct invocation.

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

Conciseness4/5

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

The description is front-loaded with the core purpose and then flows through the workflow requirements in a logical order. Every sentence earns its place, but the description is somewhat dense and lengthy, which is justified given the complex routing workflow.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (17 parameters, no annotations, no output schema), the description adequately covers the critical routing and confirmation steps needed for correct invocation. It does not describe the return value or error behavior, but the primary usage requirements are well specified.

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

Parameters3/5

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

Schema description coverage is only 29%, so the description must compensate. It adds valuable meaning for routeToken (source, retention, reuse, not permission) and confirmCounterpartyExplicit (explicit user confirmation required), which are non-obvious. However, it does not explain the remaining 14 required parameters (e.g., netAmount, vatRateId, procDate), leaving a large gap.

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 sales entry using structured MCP fields, providing a specific verb and resource. It doesn't explicitly distinguish itself from sibling create tools like brc_create_sales_invoice, but the resource 'sales entry' is distinct and the purpose is unambiguous.

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

Usage Guidelines4/5

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

The description gives explicit workflow guidance: call brc_route_request first, retain the routeToken, pass the same token on the final transactional call, and require confirmCounterpartyExplicit once the user explicitly names/confirms the counterparty. It clearly defines prerequisites and sequencing but does not mention alternatives or exclusions relative to 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_sales_invoiceA
Destructive
Inspect

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. Previews before posting include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. Nothing is written to Big Red Cloud until you confirm. 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 preview-before-posting 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 preview-before-posting and before posting, even if the VAT percentage matches. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview 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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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 preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
Behavior5/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure and does so extensively: 'Nothing is written to Big Red Cloud until you confirm,' productId 0 and 1 are blocked at runtime, non-Sales VAT rates are blocked, and routeToken does not grant posting permission. It also explains the preview-before-posting and confirmation workflow in detail.

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

Conciseness3/5

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

The description is extremely long and runs as a dense single block, mixing parameter-specific warnings with workflow prerequisites. There is redundancy—'Nothing is written until you confirm' and the product-name-note warning both appear more than once—and the content would be easier to scan with bullets or section breaks. However, every sentence carries substantive safety or workflow guidance, so the length is partially justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 28-parameter transactional tool with no output schema, the description is exceptionally complete: it documents prerequisites (route_request, sales rep lookup, product lookup), blocked inputs, confirmation flags, VAT constraints, and the preview-before-posting flow. An agent has enough context to correctly sequence lookups, previews, and the final posting call.

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 only 57%, but the description compensates by adding rich semantics for key parameters: priceBasis meanings for gross/net, note defaulting to customer name, deliveryTo not being defaulted, routeToken's role, and the confirm* flags' exact triggering conditions. It also warns against misusing product names as notes and explains where productId/productCode come from.

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

Purpose5/5

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

The first sentence clearly states the tool 'Creates a BRC sales invoice using structured MCP fields,' specifying both the verb and the resulting resource. It also distinguishes itself from the sibling brc_create_sales_invoice_gen_ref by noting when the reference is required and when the alternative should be preferred.

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 guidance on when to use this tool versus brc_create_sales_invoice_gen_ref, and it names required predecessor actions like brc_route_request and brc_list_products. It provides strong exclusion guidance, such as not defaulting to CR01/Customer, not using placeholder product IDs, and not inventing delivery addresses.

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_refA
Destructive
Inspect

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. Previews before posting include a Missing or not provided section for blank customer phone or email only — warnings only, do not invent values. Nothing is written to Big Red Cloud until you confirm. 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. Raw BRC payloads for multi-line sales invoices must use productTrans[] (one object per product line). Each product line must include its own nested acEntries[] for Sales analysis posting — do not send a top-level acEntries array on the invoice. Required header fields include customerId, acCode, entryDate, procDate, saleRepId, saleRepCode, bookTranTypeId, totalNet, totalVAT, total, and unpaid. Red validates line amounts, nested analysis values, qty × unit price (using useTaxInclusiveUnitPrice), and header totals before posting, and returns all validation issues together when the payload does not reconcile. Preview-before-posting still shows what Red will post and waits for confirmation before anything is written to Big Red Cloud. 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 preview-before-posting 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 preview-before-posting and before posting, even if the VAT percentage matches. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply. 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 preview without that confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesRaw BRC payloads for multi-line sales invoices must use `productTrans[]` (one object per product line). Each product line must include its own nested `acEntries[]` for Sales analysis posting — do not send a top-level `acEntries` array on the invoice. Required header fields include customerId, acCode, entryDate, procDate, saleRepId, saleRepCode, bookTranTypeId, totalNet, totalVAT, total, and unpaid. Red validates line amounts, nested analysis values, qty × unit price (using useTaxInclusiveUnitPrice), and header totals before posting, and returns all validation issues together when the payload does not reconcile. Preview-before-posting still shows what Red will post and waits for confirmation before anything is written to Big Red Cloud.
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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 preview, was inferred from context, or was filled in without the user's explicit choice in this conversation.
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 disclosure. It clearly states that nothing is written to Big Red Cloud until confirmation, preview-before-posting shows what will be posted, Red validates totals before posting, and certain values (productId 0/1, non-Sales VAT rates) are blocked at runtime. It also explains defaults for note and deliveryTo, and requires routeToken and explicit counterparty confirmation.

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 long and repetitive. The preview/write-confirmation behavior is stated multiple times, and the note field is described both in the open and later in an 'Optional' block. The structure mixes high-level guidance with field-level documentation, making it harder to scan.

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

Completeness5/5

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

For a complex create tool with nested objects, no output schema, and no annotations, the description is remarkably complete. It covers usage conditions, prerequisites, validation behavior, safety controls, blocked inputs, and required confirmations. No critical context appears missing.

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

Parameters5/5

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

The description adds substantial meaning beyond the input schema. It explains the nested productTrans[] and acEntries[] structure, required header fields, validation rules (qty × unit price, totals reconciliation), the behavior of note and deliveryTo, the priceBasis requirement for Gross Price Entry, and the confirm flags. Although schema coverage is 100%, the schema descriptions are terse; the tool description provides critical guidance.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Creates a BRC sales invoice with an auto-generated reference using a raw BRC payload.' It distinguishes this tool from brc_create_sales_invoice by stating it is used when the company is configured for auto-generated sales references.

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

Usage Guidelines5/5

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

The description explicitly states when to use the tool ('Use when the company is configured for auto-generated sales references'), provides prerequisites (call brc_route_request, list sales reps, list products), and gives exclusions (do not use demo sales reps, do not block non-Sales VAT rates). It also names sibling tools like brc_list_products and brc_list_sales_reps as needed 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_repAInspect

Creates a BRC sales rep using structured MCP fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesSales rep code.
nameYesSales rep name.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations, the description carries the burden of behavioral disclosure. It discloses that 'A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply,' and warns 'Never invent a placeholder token.' This adds critical behavioral context beyond the raw schema, but could further clarify expected outcomes 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 four sentences long, each earning its place: purpose, routeToken requirement, usage workflow, and safety caveat. It is front-loaded with the core purpose and contains no redundant or filler content.

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

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, no output schema, no annotations), the description effectively covers the critical non-obvious workflow: the routeToken prerequisite and the preview/confirmation requirement. It doesn't explain return values or post-creation behavior, but the schema already documents the parameters, and the workflow context is the most important missing piece.

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%, providing full parameter documentation. The description adds meaningful value by explaining the routeToken's origin and lifecycle ('Requires routeToken from brc_route_request... Retain the returned routeToken...'), which goes beyond the schema's static definition and clarifies the parameter's dynamic role.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 rep using structured MCP fields,' identifying the specific verb (creates) and resource (BRC sales rep). This distinguishes it from sibling tools like brc_update_sales_rep or brc_create_customer, and the workflow references make its unique role clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select 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 workflow guidance: 'Call brc_route_request first with the user's complete original action request' and 'Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call.' This clearly states when to use the tool relative to routing, though it doesn't mention alternatives for reading or updating sales reps.

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadYesRaw BRC-compatible payload for this endpoint.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/5

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

With no annotations present, the description carries full behavioral disclosure. It reveals non-obvious behaviors: the tool does not create/update opening balances, routeToken is a routing permission but not posting permission, and confirmWrite/confirmDelete still apply. It also warns against inventing placeholder tokens—critical context for safe invocation.

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

Conciseness4/5

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

The description is front-loaded with the core action and then presents necessary caveats. It is somewhat repetitive around routeToken (requires, call first, retain, pass same token, never invent), but each sentence adds a distinct piece of guidance. It is economical for the complexity involved, though a slight trim would make it a 5.

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

Completeness4/5

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

For a 5-parameter tool with nested objects, no annotations, and no output schema, the description covers the essential workflow (route request first, confirm step) and critical exclusions (opening balance). It does not mention the batch supplier alternative or expected return value, but these are not strictly necessary for correct invocation. Overall, it is nearly complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters well. The description adds little beyond what the schema provides for parameters themselves—it reiterates that payload is raw and routeToken comes from route_request, which is already stated. It does not explain payload content or confirmWrite nuances 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 opens with 'Creates a BRC supplier using a raw BRC payload'—a specific verb+resource pair that clearly distinguishes it from update/delete or batch supplier tools. It further clarifies scope by explicitly stating it does not handle opening balance transactions, 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 Guidelines4/5

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

The description gives explicit usage guidance: call brc_route_request first, retain the routeToken through the workflow, and never invent tokens. It also provides a clear when-not case (opening balance must be entered directly in Big Red Cloud). However, it does not explicitly mention alternatives like brc_batch_suppliers for bulk creation or brc_update_supplier for edits, which would make it a 5.

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

brc_delete_accrualA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent accrual id.
timestampYesBase64 timestamp returned by the accrual, for example K94UQIbL3gg=.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms deleting this accrual.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the confirmation requirement (confirmWrite=true only after explicit user confirmation), the routeToken workflow, preview-before-posting, and the need to retain the same token. It doesn't explicitly state the deletion is permanent/irreversible, but the confirmation requirement implies it.

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

Conciseness4/5

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

The description is front-loaded with the main action and each sentence contributes important workflow or safety information. It is somewhat long (six sentences) but avoidable redundancy is minimal; the length is justified by the tool's destructive and transactional 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?

For a destructive transactional tool with no annotations and no output schema, this description covers the essential workflow: retrieval, routing, token handling, and confirmation. It doesn't explain return values or all parameters (e.g., connectionRef is only in schema), but the schema covers those, and the critical usage context is fully addressed.

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

Parameters5/5

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

Although the schema has high coverage (100%), the description adds substantial semantic value: timestamp must be in Base64 and retrieved via brc_get_accrual, routeToken is obtained from brc_route_request and must be retained and reused, and confirmWrite must only be true after explicit user confirmation. These details go far beyond the schema and reduce invocation errors.

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

Purpose5/5

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

The description opens with 'Removes an existing parent Accrual by id,' which is a specific verb+resource+method that clearly distinguishes this tool from the many other delete_* siblings. It also notes the need for a Base64 timestamp, further refining the purpose.

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

Usage Guidelines5/5

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

The description gives explicit usage steps: call brc_get_accrual first to retrieve the timestamp, call brc_route_request first to obtain a routeToken, and only pass confirmWrite=true after explicit user confirmation. It also warns against inventing a placeholder token and clarifies that routeToken is not permission to post, 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_allocation_resolverA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAllocation resolver id to reverse/delete.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms reversing/deleting this allocation.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 explains the need for routeToken from brc_route_request, the confirmation flow, and that routeToken is not permission to post. It also clarifies the connectionRef parameter indirectly. However, it does not explicitly describe side effects or whether the deletion is reversible beyond the reversal wording, but given the confirmation emphasis, it is fairly 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?

The description is a single dense paragraph, but every sentence earns its place by covering the workflow, prerequisites, and warnings. It is not overly long and front-loads the primary purpose. Slight lack of paragraph breaks, but acceptable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (requires routeToken, confirmation flow, connectionRef), the description provides a complete workflow: call brc_route_request, retain token, pass same token on final call, use confirmWrite only after explicit confirmation. No output schema exists, but the description focuses on invocation rather than return values, which is appropriate for a delete mutation. 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 description coverage is 100%, so the schema already documents all parameters. The description adds value by explaining the workflow context for routeToken and confirmWrite, and by explicitly stating 'Never invent a placeholder token.' It reinforces the purpose of id and confirms the confirmation requirement. This exceeds the baseline 3 by adding operational context that the schema lacks.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 "Reverses/deletes a single allocation by allocation resolver id," using a specific verb and resource. It also distinguishes from siblings by referencing brc_list_allocated_transactions to find the id, and implies this is the deletion counterpart among many delete 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 when-to-use guidance: use brc_list_allocated_transactions first to find the id, and call brc_route_request first with the user's complete original action request. Also gives explicit exclusions: 'Do not call with confirmWrite=true until the user explicitly confirms,' and 'Never invent a placeholder token.' This clearly differentiates from other tools and outlines the workflow.

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

brc_delete_bank_accountA
Destructive
Inspect

Deletes a BRC bank account by id. Only call this after the user has explicitly confirmed deletion. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesbank account id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

Since no annotations are provided, the description carries the full behavioral burden. It discloses that deletion is confirmation-gated, that a routeToken is required and must not be invented, and that a routeToken is not permission to post—preview-before-posting and confirmWrite/confirmDelete still apply. This is substantially more transparent than a bare 'Deletes an account.'

Agents need to know what a tool does to the world before calling it. Descriptions 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 action and required confirmation. Every sentence contributes essential workflow or safety information—there is no filler or unnecessary repetition. It is dense but appropriately sized for the complexity 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?

The description covers routing and confirmation well, but it stops short of explicitly stating that confirmDelete must be set to true for deletion to actually occur, which is critical given the schema's default of false. It also does not clarify the function of companyName beyond the schema. Given the destructive nature of the tool and no output schema, these gaps leave the description strong but not fully complete.

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

Parameters4/5

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

Schema description coverage is 83%, so the baseline is 3. The description adds value by explaining the routeToken lifecycle (retain, pass the same token, never invent a placeholder) and by explicitly stating that confirmWrite/confirmDelete apply. It does not add meaning for id or companyName, but these are adequately described in the schema.

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

Purpose5/5

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

The description opens with 'Deletes a BRC bank account by id,' which is a specific verb + resource + scope statement. It clearly distinguishes this from sibling tools like brc_update_bank_account or brc_get_bank_account, and the required identifier is explicit.

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

Usage Guidelines4/5

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

The description provides a clear precondition ('Only call this after the user has explicitly confirmed deletion') and a mandatory workflow ('Call brc_route_request first... retain the returned routeToken... pass the same token on the final permitted transactional tool call'). While it does not name alternative tools, it gives sufficient when-to-use and how-to-proceed guidance, though explicit exclusions (e.g., 'do not use for updates') are absent.

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

brc_delete_cash_paymentA
Destructive
Inspect

Deletes a BRC cash payment by id. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYescash payment id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 discloses the mandatory routeToken requirement, the sequence of calls, and warns against inventing placeholders. It also clarifies that routeToken is not permission to post and that confirmWrite/confirmDelete still apply, adding critical behavioral context beyond a basic delete statement.

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

Conciseness5/5

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

The description is four sentences, front-loaded with the primary action, then efficiently covering the routing workflow and confirmation requirements. No fluff; each sentence contributes essential guidance for correct invocation.

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

Completeness4/5

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

Given the complexity of the routed delete workflow, the description thoroughly covers the token lifecycle, confirmation steps, and the need to avoid placeholders. It does not mention return values, but for a delete operation with no output schema, that omission is acceptable; overall, it provides sufficient context for safe execution.

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 (83%), but the description adds meaning to routeToken by calling it 'Routing permission only' and explains that confirmDelete still applies, which is useful since confirmDelete has no schema description. It reinforces the role of id and routeToken, complementing the schema details.

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

Purpose5/5

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

The description opens with 'Deletes a BRC cash payment by id,' using a specific verb and resource, and clearly distinguishes from sibling delete tools for other entities like cash receipts or payments. The routing workflow detail further clarifies the tool's role in the delete 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 explicitly instructs to call brc_route_request first, retain the routeToken through the workflow, and pass the same token on the final transactional call. It does not explicitly mention alternatives, but the tool's name and purpose make its use clear; however, it lacks explicit '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_cash_receiptA
Destructive
Inspect

Deletes a BRC cash receipt by id. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYescash receipt id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations provided, the description carries the burden. It discloses the routeToken requirement, the need to retain it through the workflow, and the confirmation caveat. However, it does not explicitly state that the deletion is permanent or irreversible, nor what happens if the id does not exist — a modest transparency gap for a destructive action.

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 six sentences, all relevant and directly tied to correct usage. The first sentence states purpose, then the workflow and caveats follow. Slight repetition of the routeToken concept (four mentions) prevents a 5, but it remains efficient and front-loaded.

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

Completeness4/5

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

Given the complexity of the routeToken+confirmation workflow, the description covers the essential context: the prerequisite call to brc_route_request, token retention, and the applicability of confirmWrite/confirmDelete. It does not describe the tool's return value (no output schema), but the extensive schema descriptions for parameters fill most remaining 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 high (83%), so the baseline is 3. The description adds workflow context for routeToken and mentions confirmDelete, but it largely restates information already present in the schema (e.g., routeToken description already covers 'routing permission only'). It does not explain confirmDelete's default false behavior or connectionRef beyond what the schema provides.

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

Purpose5/5

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

The description opens with 'Deletes a BRC cash receipt by id' — a specific verb, resource, and identifier. This clearly distinguishes it from other delete tools (e.g., delete cash payment) and immediately states the core function.

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

Usage Guidelines5/5

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

Explicit guidance is provided: 'Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first...' and 'Never invent a placeholder token.' It also clarifies that a routeToken is not permission to post, and that preview-before-posting and confirmWrite/confirmDelete still apply — giving clear when-to-use and safety prerequisites.

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

brc_delete_customerA
Destructive
Inspect

Deletes a BRC customer by id. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYescustomer id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/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 routeToken requirement, the multi-step workflow, and the necessity of confirmation. It does not explicitly state irreversibility, but 'deletes' implies it. The description adds valuable context beyond the basic action, though it could mention 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.

Conciseness5/5

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

The description is three sentences with no fluff. It front-loads the core action, then explains the necessary workflow and caveats. Every sentence earns its place, and the size is appropriate 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?

For a delete tool with a precondition (routeToken) and confirmation requirements, the description covers the essential workflow and prerequisites. It lacks information about the return value or post-deletion effects, but given the context signals and no output schema, it is reasonably complete for an agent to invoke correctly.

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

Parameters4/5

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

Schema coverage is high (83%), but the description adds meaningful context for the routeToken parameter (workflow origin) and explicitly references confirmDelete, which has no schema description. This goes beyond the schema, compensating for the undocumented parameter and clarifying the token's role.

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

Purpose5/5

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

The description states the action explicitly: 'Deletes a BRC customer by id.' It clearly identifies the resource (customer) and the operation (delete), distinguishing it from the many other delete tools for different entities. The uniqueness is evident from the name 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?

Provides explicit workflow guidance: call brc_route_request first, retain the routeToken through lookup/preview/confirmation, pass the same token on the final call, never invent a placeholder token. It also warns that a routeToken is not permission to post and that confirmWrite/confirmDelete still apply. This is strong usage direction.

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_batchA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNominal Journal Batch id.
timestampYesBase64 timestamp returned by the Nominal Journal Batch, for example 7aIZQIbL3gg=.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms deleting this Nominal Journal Batch.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations, the description carries the full behavioral burden. It discloses the destructive nature ('Removes'), the need for a fresh timestamp to avoid stale deletion, and important caveats: 'Never invent a placeholder token' and 'A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply'. It does not explicitly mention irreversibility, but the delete semantics are clear.

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 dense and front-loaded with the main action. It covers all critical steps, but the routeToken guidance is slightly redundant ('Requires routeToken from brc_route_request...' plus 'Call brc_route_request first...'). Overall, every sentence earns its place, though it could be slightly tightened.

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

Completeness4/5

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

For a destructive transactional tool, the description covers all important context: the prerequisite get call, the routeToken requirement, the confirmWrite confirmation gate, and the warning about tokens. Given the complexity of the workflow and the lack of an output schema, this is a complete and useful description for the agent.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds value beyond the schema by explaining how to obtain the timestamp ('Use brc_get_nominal_journal_batch first') and the route token workflow ('Call brc_route_request first with the user's complete original action request'). It also clarifies that the same token must be retained across the workflow, which the schema does not fully convey.

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

Purpose5/5

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

The description clearly states 'Removes an existing Nominal Journal Batch by id' — a specific verb + resource + key parameter. It distinguishes this from create/update/get siblings by the action and the required timestamp parameter.

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 workflow guidance: 'Use brc_get_nominal_journal_batch first to retrieve the current timestamp', 'Call brc_route_request first', and 'Do not call with confirmWrite=true until the user explicitly confirms deletion'. This tells the agent when to use the tool and when not to, including the required precursor steps.

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

brc_delete_paymentA
Destructive
Inspect

Deletes a BRC payment by id. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYespayment id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 discloses key behaviors: the routeToken requirement, that a routeToken is not permission to post, that preview-before-posting and confirmWrite/confirmDelete still apply, and that placeholder tokens must never be invented. It does not explicitly state irreversibility or return value, but the 'deletes' wording and safety constraints provide adequate 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.

Conciseness4/5

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

The description is six sentences long, but each sentence carries necessary workflow or safety information. Purpose is front-loaded, and the routing instructions are dense but essential. It could be tightened slightly, but it is not wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 operation with routing, confirmDelete, and no output schema), the description covers the critical contextual elements: prerequisite routing call, token handling, preview-before-posting, and confirmation requirements. It doesn't describe the response format or explicitly state irreversibility, but the workflow details and safety constraints make it sufficiently complete for an agent to invoke correctly.

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

Parameters4/5

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

Schema description coverage is 83% (5 of 6 parameters described), so the baseline is 3. The description adds value by explaining the routeToken workflow in depth, emphasizing never inventing a token, and connecting confirmWrite/confirmDelete to the preview-before-posting requirement. It does not describe confirmDelete in the schema or description, but the description mentions it as applying, which adds some semantic clarity beyond the bare default.

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 payment by id' with a specific verb and resource. However, it doesn't differentiate from sibling tools like brc_delete_cash_payment, which could cause confusion about which payment deletion tool to use.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select 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 workflow context: it requires a routeToken from brc_route_request, explains the sequence of calling routing first and retaining the token through lookup/preview/confirmation, and states that preview-before-posting and confirmWrite/confirmDelete still apply. It doesn't explicitly name alternatives or exclusions, but the context is sufficient for a transactional tool.

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

brc_delete_prepaymentA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesParent prepayment id.
timestampYesBase64 timestamp returned by the prepayment, for example bgUcQIbL3gg=.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms deleting this prepayment.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations provided, the description carries full transparency burden. It discloses the need for a Base64 timestamp, the routeToken workflow, the confirmWrite safeguard, and that a routeToken is not permission to post. It does not explicitly state that deletion is irreversible or describe side effects, but the term 'Removes' plus the emphasis on user confirmation convey the destructive nature adequately. This is more transparent than typical delete tools.

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

Conciseness5/5

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

The description is concise and front-loaded with the core action in the first sentence. Every subsequent sentence earns its place, covering prerequisites, safety, and token workflow without repetition or filler. The structure flows logically from what it does, to requirements, to execution caveats.

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

Completeness4/5

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

The tool has moderate complexity with 6 parameters and no output schema. The description covers the key workflow steps: retrieving the timestamp, routing, and confirmation. It does not explain the connectionRef parameter or expected return values, but these are described in the schema. Given the absence of annotations and output schema, the description is fairly complete but could benefit from noting success/failure behavior or the need for connectionRef.

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, so baseline is 3. The description adds meaningful semantics beyond the schema: it explains how to obtain the timestamp ('Use brc_get_prepayment first'), clarifies the routeToken workflow ('Call brc_route_request first... pass the same token'), and reiterates the confirmWrite rule. This enhances the schema's basic parameter information for the critical fields.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Removes an existing parent Prepayment by id.' This clearly distinguishes it from sibling delete tools like brc_delete_cash_payment or brc_delete_customer, which target different resources. The mention of 'parent Prepayment' adds a specific scope that further separates it from related update tools.

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

Usage Guidelines4/5

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

The description provides explicit prerequisites and workflow: use brc_get_prepayment first to retrieve the timestamp, call brc_route_request first, and retain the routeToken through lookup, preview, and confirmation. It also gives a 'when-not': 'Do not call with confirmWrite=true until the user explicitly confirms deletion.' However, it does not explicitly name alternative tools (e.g., brc_update_prepayment) for cases where deletion is not appropriate, so it falls just short of a 5.

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

brc_delete_productA
Destructive
Inspect

Deletes a BRC product by id. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesproduct id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/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 destructive nature ('Deletes'), the necessity of a routeToken, and that the token alone does not authorize posting (confirmWrite/confirmDelete still apply). However, it does not explicitly state irreversibility or potential side effects on related data, leaving some ambiguity 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 four sentences, each earning its place: the action, the prerequisite, the workflow retention rule, and a caveat. It is front-loaded with the purpose and contains no filler or redundancy.

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

Completeness5/5

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

For a complex transactional tool with a route-token workflow, the description covers the essential context: calling brc_route_request first, retaining the token, confirming before posting, and the fact that this is the final permitted call. The schema handles parameter details (companyName, connectionRef), so the description is complete enough for correct invocation even without an output schema.

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

Parameters4/5

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

Schema coverage is 83%, so the baseline is 3. The description adds value beyond the schema by explaining the routeToken lifecycle (retain the same token through the workflow, never invent a placeholder) and referencing confirmWrite/confirmDelete, which clarifies how to use the confirmation-related parameters. This extra context justifies 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 first sentence "Deletes a BRC product by id" uses a specific verb and resource, clearly identifying the action and scope. It distinguishes this from sibling delete tools (e.g., brc_delete_customer, brc_delete_purchase) by naming 'product' and 'by id' explicitly.

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 procedural guidance: call brc_route_request first, retain the token through lookup/preview/confirmation, pass the same token on the final transactional call, and never invent a placeholder. It also warns that a routeToken is not permission to post, so confirmWrite/confirmDelete still apply, effectively covering when-not and prerequisites.

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

brc_delete_purchaseA
Destructive
Inspect

Deletes a BRC purchase by id using timestamp confirmation. Historical purchases are not automatically blocked because they belong to an earlier financial year. The BRC endpoint determines whether the historical deletion is supported. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPurchase id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/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 timestamp confirmation, historical purchase handling by the endpoint, the routeToken workflow, and the necessity of confirmation. It does not explicitly state the irreversibility of deletion or potential side effects, but overall it provides a good behavioral overview.

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 six sentences long and front-loads the core purpose. Each sentence adds value by covering purpose, historical handling, endpoint behavior, and workflow steps. It is not overly verbose but could be slightly tighter without losing clarity.

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 has 6 parameters and no output schema. The description covers the deletion workflow well but does not indicate what the tool returns (e.g., success message, deleted record). Missing details about connectionRef and companyName usage. For a complex transactional tool, this is a moderate gap.

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

Parameters4/5

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

Schema description coverage is high (83%), so baseline is 3. The description adds meaning by explaining the routeToken's role in the workflow and the necessity of confirmation, which goes beyond schema descriptions. However, it does not elaborate on companyName or connectionRef, so it adds moderate value.

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

Purpose5/5

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

The description clearly states the action ('Deletes a BRC purchase') and the resource ('by id using timestamp confirmation'). It distinguishes this tool from sibling delete tools by specifying it is for purchases and mentions handling of historical purchases, 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 provides explicit when-to-use guidance: calls for brc_route_request first, explains the routeToken workflow, warns against inventing tokens, and clarifies that confirmWrite/confirmDelete still apply. This effectively differentiates this tool from alternatives and sets clear prerequisites.

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

brc_delete_quoteA
Destructive
Inspect

Deletes a BRC quote by id using timestamp confirmation. Loads the quote once to obtain its timestamp and to preview id, reference, customer, total, open or closed state, any linked sales invoice, and timestamp before asking for confirmation. A successful delete is the result; if a later lookup by quote id returns an unexpected error, treat that check as inconclusive rather than as a failed delete. Confirm remaining quotes from the quote list by quote id — quote references are not necessarily unique. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations provided, the description carries full burden. It clearly states that the tool loads the quote first, performs a preview before deletion, and that a successful delete is expected. It also explains fallback behavior: if a later lookup returns an error, treat it as inconclusive, not a failed delete. The multi-step process (load, preview, confirm, delete) is transparent, though specifics about irreversible consequences are implied rather than explicit.

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

Conciseness4/5

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

The description is well-structured with front-loaded purpose and workflow steps. It contains essential guidance but could be trimmed slightly (e.g., repeating 'routeToken' details). Each sentence serves a purpose, though the length is justified by the tool's complexity and lack of annotations.

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

Completeness4/5

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

Given zero annotations, no output schema, and 6 parameters with 83% schema coverage, the description adequately covers the workflow: required precursor tool (brc_route_request), preview-before-delete, confirmation flags, and error handling. It integrates well with sibling context (e.g., brc_route_request, confirmWrite/confirmDelete). Minor gap: no mention of output or success/failure indicators beyond '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 description coverage is 83%, so the schema already documents most parameters. The description adds context for routeToken (workflow origin) and confirmDelete (implies confirmation step) but does not detail the format or constraints for id, companyName, or connectionRef beyond what the schema provides. Thus, baseline 3 is appropriate.

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

Purpose5/5

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

The description starts with a clear verb and resource ('Deletes a BRC quote by id using timestamp confirmation') and immediately distinguishes itself from siblings like brc_close_quote or brc_batch_quotes by specifying the delete action and the timestamp confirmation workflow. The additional detail about previewing id, reference, customer, etc., clarifies the precise scope.

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

Usage Guidelines5/5

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

The description provides explicit workflow guidance: requires routeToken from brc_route_request, instructs to call brc_route_request first with the user's request, retain the routeToken through lookup/preview/confirmation, and never invent a placeholder token. It also addresses when-not by noting that a routeToken is not permission to post and that confirmWrite/confirmDelete still apply.

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_noteA
Destructive
Inspect

Deletes a BRC sales credit note by id using timestamp confirmation. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales credit note id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/5

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

With no annotations provided, the description takes on full disclosure responsibility. It discloses the routeToken dependency, the multi-step workflow, and that preview-before-posting and confirm flags still apply. However, it does not explicitly state that deletion is irreversible or explain what 'timestamp confirmation' means, nor does it detail exactly how confirmDelete must be set.

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

Conciseness4/5

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

The description is front-loaded with the purpose and then builds the workflow logically. It is moderately sized (six sentences) but has some redundancy around routeToken (requires, call first, retain, never invent). Overall, each sentence adds information and the structure is easy to follow.

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 most critical contextual aspect — the routing/confirmation workflow — which is essential for a destructive transactional tool. However, it lacks an explicit statement of irreversibility, leaves 'timestamp confirmation' unexplained, and does not describe any post-delete outcome. Given the absence of an output schema and annotations, these are notable 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 83%, so the baseline is 3. The description adds meaningful semantics for routeToken (must come from brc_route_request, must be retained, never invented) and mentions confirmWrite/confirmDelete. It does not clarify confirmDelete's trigger or add detail for companyName/connectionRef, but those already have 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 begins with a specific verb ('Deletes') and resource ('BRC sales credit note') and clarifies the operation is by id, which clearly distinguishes it from sibling delete/update tools for other resources. The phrase 'using timestamp confirmation' is slightly ambiguous but does not obscure the core purpose.

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

Usage Guidelines4/5

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

The description gives explicit usage guidance: call brc_route_request first, retain and reuse the same routeToken, never invent a placeholder token, and remember that a routeToken does not bypass preview/confirm gates. It clearly sequences the workflow, though it does not name alternative tools (e.g., brc_update_sales_credit_note) as replacements.

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

brc_delete_sales_entryA
Destructive
Inspect

Deletes a BRC sales entry by id using timestamp confirmation. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales entry id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 of behavioral disclosure. It does disclose the routeToken workflow and that routing permission does not override confirmWrite/confirmDelete. However, it doesn't explicitly state that deletion is permanent/irreversible, explain what 'timestamp confirmation' means, or describe the operation's practical effects, leaving meaningful safety details implicit.

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 a clear one-sentence purpose and then expands on the required workflow. It is somewhat redundant around routeToken handling (requires, call first, retain, never invent) but each sentence contributes to the overall task flow and safety emphasis, so it remains reasonably 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?

Given its complexity—a transactional delete with no annotations, no output schema, and a confirmation workflow—the description covers the routeToken prerequisite and confirmation requirement well. However, it leaves 'timestamp confirmation' undefined, gives no guidance on when/how to set confirmDelete (which lacks a schema description), and omits the expected outcome or response. This is adequate but with clear 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 input schema already covers 83% of parameters with meaningful descriptions, including routeToken, confirmWrite, id, companyName, and connectionRef. The description mostly reinforces the routeToken handling and mentions confirmation requirements but does not add new meaning beyond the schema. Baseline 3 is appropriate because the schema does the heavy lifting.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Deletes a BRC sales entry by id using timestamp confirmation.' This clearly distinguishes it from sibling delete tools for other entities, such as brc_delete_sales_invoice or brc_delete_customer, by naming the exact target (BRC sales entry) and the mechanism (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?

The description gives explicit when-to-use guidance by instructing the agent to call brc_route_request first with the user's complete original action request, retain the returned routeToken, and pass the same token on the final transactional call. It also states 'Never invent a placeholder token' and clarifies that routeToken does not replace preview/confirmation. It doesn't explicitly discuss when not to use this tool versus alternatives, so it stops short of a 5.

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

brc_delete_sales_invoiceA
Destructive
Inspect

Deletes a BRC sales invoice by id using timestamp confirmation. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales invoice id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 behavioral disclosure burden. It transparently explains the routeToken workflow, the need for confirmation, and that routeToken alone does not authorize the deletion. The only minor gap is the unexplained 'timestamp confirmation' term, which could confuse the agent.

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

Conciseness4/5

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

The description is three sentences, front-loaded with the main action. The later sentences are somewhat long and overlap with schema descriptions, but they contain essential workflow guidance. No unnecessary fluff, though it could be tightened.

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

Completeness4/5

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

For a destructive transactional tool with 6 parameters and no output schema, the description covers the critical context: the sequential routeToken workflow, the need for preview-before-posting, and the confirmation requirement. It does not mention error handling or specific return outcomes, but these are less critical for a delete operation.

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

Parameters3/5

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

Schema coverage is high (83%), so the baseline is 3. The description adds some context for routeToken usage (call brc_route_request first, never invent a placeholder token) but does not elaborate on other parameters like companyName or connectionRef, which are already documented in the schema. The marginal semantic value over the schema is limited.

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

Purpose5/5

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

The description clearly states the tool 'Deletes a BRC sales invoice by id', using a specific verb and resource. It distinguishes itself from sibling delete tools by naming the exact resource (sales invoice) and adds the 'timestamp confirmation' detail, making its purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: call brc_route_request first, retain the returned routeToken through the workflow, and pass it on the final permitted transactional tool call. It also warns against inventing placeholder tokens and clarifies that a routeToken is not permission to post, with confirmations still applying.

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

brc_delete_sales_repA
Destructive
Inspect

Deletes a BRC sales rep by id using timestamp confirmation. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales rep id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 reveals that the tool requires a routeToken from brc_route_request, mandates preview-before-posting, and that confirmWrite/confirmDelete still apply. It also notes that routeToken is not permission to post. This provides substantial safety context, though it does not mention irreversibility or failure behavior, which are minor 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 four sentences, front-loaded with the core action, then providing essential workflow steps. Every sentence adds value without redundancy. It is appropriately sized for the complexity of the routing workflow and avoids unnecessary detail.

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

Completeness4/5

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

Given the absence of annotations and output schema, the description covers the most critical contextual aspects: the mandatory routeToken workflow, preview-before-posting, and confirmation requirements. It does not describe return values, but for a delete operation these may be less critical. The description is complete enough for a transactional delete tool with a complex routing prerequisite.

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

Parameters4/5

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

Schema coverage is high (83%), so the baseline is 3. The description adds meaningful semantics for the routeToken param by explaining its origin (brc_route_request), its lifecycle (retain through lookup/preview/confirmation), and its limitations (not permission to post). This goes beyond the schema's description and enriches the agent's understanding of how to obtain and use the token.

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

Purpose5/5

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

The description clearly states the tool's function: 'Deletes a BRC sales rep by id using timestamp confirmation.' This provides a specific verb (deletes), a specific resource (BRC sales rep), and a distinguishing mechanism (by id, timestamp confirmation). It is unambiguous and differentiates from sibling tools like create/update/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 Guidelines4/5

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

The description gives explicit workflow guidance: call brc_route_request first, retain the routeToken through lookup/preview/confirmation, and pass the same token on the final transactional call. It also warns against inventing placeholder tokens and clarifies that routeToken is not permission to post. However, it does not explicitly mention when not to use this tool or contrast with alternatives, so it stops short of a 5.

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

brc_delete_supplierA
Destructive
Inspect

Deletes a BRC supplier by id. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYessupplier id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
confirmDeleteNo
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/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 that routeToken is a routing permission only and does not bypass confirmation requirements, and that the token must be carried through the entire workflow. It does not explicitly mention irreversibility or side effects, but the delete action and confirmation requirement are clearly communicated.

Agents need to know what a tool does to the world before calling it. Descriptions 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 paragraph of four sentences, front-loaded with the primary action. Each sentence provides necessary workflow and safety guidance without redundancy or fluff.

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

Completeness4/5

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

Given the tool's complexity (routing, confirmation, multiple params) and lack of output schema/annotations, the description covers the critical workflow and safety prerequisites. It does not explicitly describe what happens after deletion (e.g., permanence or related data effects), but the core requirements 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 high (83%), so baseline is 3. The description adds context for routeToken (workflow prerequisite) and reinforces confirmWrite/confirmDelete applicability, but it largely repeats what the schema already states. It does not add new meaning for id or companyName, and confirmDelete has no schema description but the tool description only implies its 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 opens with 'Deletes a BRC supplier by id,' which is a specific verb+resource statement. It clearly identifies the target (supplier) and the method (by id), distinguishing it from other delete/update tools despite not referencing siblings.

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

Usage Guidelines4/5

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

The description provides explicit workflow guidance: call brc_route_request first, retain the token, and pass the same token on the final transactional call. It also warns against placeholder tokens and clarifies that preview-before-posting and confirmation flags still apply. However, it does not explicitly contrast this with update/other delete tools or state when not to use it.

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

brc_find_help_resourcesA
Read-only
Inspect

Find Big Red Cloud customer help across Freshdesk support articles, customer documentation, recorded webinar videos, and upcoming live webinars. Use when the customer asks a support question or how-to question about Big Red Cloud. For reserved red-help / /red-help commands, prefer brc_red_help (this tool remains for backward compatibility). When the user's message begins with the reserved red-help command (red-help, red-help:, red-help,, or /red-help), treat it as a request for manual instructions — not permission to perform the accounting action. red-help is Red's reserved manual-help command. When a user begins a message with red-help, provide customer-help resources and manual instructions instead of performing the accounting action. Pass the user's question (including the red-help command); the server strips the command and searches with the cleaned query. In red-help mode: do not ask for customer details first; do not call create, update, delete, email, or batch tools unless the user later explicitly asks Red to perform the action. Use brc_start_company_connection only when the cleaned red-help query is specifically about connecting companies. Ordinary wording such as help me, how do I, or show me how does not by itself activate red-help mode — follow normal model-driven routing for those messages. Do not use for connecting companies, listing connected companies, clearing connections, or any company books data. Read-only. Does not require a connected company. Return a concise synthesized answer for the customer: direct answer, clear steps where applicable, then a Sources section with Articles / Videos groupings and exact public links from customerFacingSourcesMarkdown or the sources array. Use only publicUrl or registrationUrl values returned in resources for hyperlinks. Freshdesk links use bigredcloud.freshdesk.com — never rewrite them onto bigredcloud.com/support. Keep screenshot Markdown links beside their related steps — never move them into Sources. Prefer customer documentation for procedural questions, Freshdesk for detailed step-by-step instructions, recorded webinars for video walkthroughs, and upcoming webinars for training/onboarding/live help requests. When the customer asks about upcoming webinars and no upcoming_webinar resources are returned, use customerFacingEmptyUpcomingWebinarMarkdown — do not claim no webinars are scheduled, and do not present recorded webinars as upcoming. Do not show internal resource IDs, Azure blob names, storage URLs, relevance scores, or sync metadata to the customer. For Big Red Cloud how-to or tutorial questions, automatically open the best matching Freshdesk article from usedResourceIds with brc_get_help_resource_details using includeImages=true and imagePresentation=links. Place each relevant screenshot beside its step even when the user did not explicitly ask for images. Never claim no Freshdesk article exists when usedResourceIds includes a matching Freshdesk resource. Sources must list only usedResourceIds — never unrelated login, API-key, user, or webinar search hits. Under Sources, group Freshdesk / documentation under Articles and recorded webinars under Videos — omit an empty Videos heading. For procedural how-tos, automatically include the strongest topic-aligned training video under Videos when one exists — do not require the user to ask for a video. Always emit Sources before any Do this through Red section. When redActionAvailable is true, include customerFacingRedActionMarkdown after Sources and before support — do not start the action unless the user asks. Manual guidance must appear before any offer to perform the action through Red. Always end every help answer with Still need help? and Contact Big Red Cloud Support — support must be last. Never claim company data was changed by a tutorial answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoOptional source filter: freshdesk, customer_docs, recorded_webinar, youtube_video, upcoming_webinar, or all.
categoryNoOptional help category filter, for example bank_feeds or sales.
questionYesPlain-English help question, for example how do bank feeds work or how do I reconcile my bank account.
maxResultsNoMaximum number of matching resources to return. Defaults to 5.
Behavior5/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 discloses read-only behavior, no connected company requirement, red-help mode as manual-help (not permission to act), output structure (Sources, Videos, action sections), link rewriting rules, and handling of empty webinar results. This exceeds typical transparency expectations.

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 long and repetitive. Red-help mode is explained multiple times with overlapping statements ('For reserved red-help... prefer brc_red_help', 'When the user's message begins...', 'In red-help mode...', 'red-help is Red's reserved manual-help command'). While front-loaded with a clear purpose, it is not appropriately sized and many sentences re-state the same rules, so not every sentence earns its place.

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

Completeness5/5

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

For a complex tool with no output schema, the description is remarkably complete. It covers output formatting, source grouping, screenshot placement, empty-webinar handling, red-help constraints, action availability, and support footer requirements. All edge cases an agent would need are addressed, making the tool safely invocable.

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 meaningful semantics for the 'question' parameter: it instructs passing the user's question including the red-help command, and clarifies the server strips the command. It also reinforces how source filters map to content preferences, adding value beyond the schema.

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

Purpose5/5

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

The description clearly states the tool finds Big Red Cloud customer help across multiple source types, with a specific verb ('Find') and resource ('customer help'). It distinguishes from siblings by explicitly naming brc_red_help for reserved commands and stating what the tool is not for (connecting companies, company books data).

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance ('Use when the customer asks a support question or how-to question'), explicit alternatives ('prefer brc_red_help'), and exclusions ('Do not use for connecting companies...'). Also gives detailed routing rules between source types and red-help mode handling.

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_quoteA
Destructive
Inspect

Generates a sales invoice from a BRC quote. Preview-before-posting shows the exact POST /v1/quotes/generateSaleInvoice body (quoteId and optional entryDate/procDate only). Nothing is written until you confirm. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
quoteIdYesQuote id.
procDateNoOptional invoice processing date in ISO format.
entryDateNoOptional invoice entry date in ISO format.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 clearly discloses that 'Nothing is written until you confirm,' explains the preview-before-posting mechanism (shows the exact POST body), and clarifies the lifecycle of routeToken. It does not, however, disclose what happens to the source quote after invoicing (e.g., is the quote closed/marked as invoiced?), missing one 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 7 sentences long and front-loaded with the core purpose. Every sentence adds unique information about usage or behavior, with no filler. It could arguably be slightly more concise by combining two sentences about routeToken lifecycle, but it remains efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 7 parameters, 100% schema coverage, no output schema, and no annotations, the description does well in explaining the workflow (route_request → preview → confirmWrite) and the critical safety mechanisms. However, it lacks a description of the return value (what the agent receives after posting), and omits what happens to the source quote upon successful invoice generation. These are reasonable gaps but prevent top marks.

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 value above the schema by explaining that entryDate and procDate are optional and that the preview shows the exact body with quoteId and those dates. It also adds context around routeToken beyond the schema's description, explaining its lifecycle and requirement. However, it does not add new meaning for companyName or connectionRef beyond what the schema provides.

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

Purpose5/5

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

The description states the specific verb 'Generates a sales invoice from a BRC quote' and distinguishes it from siblings like brc_create_sales_invoice (which creates a new invoice from scratch, not from a quote) and brc_close_quote (which closes a quote without invoicing). The 'from a quote' constraint is clear 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 Guidelines5/5

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

The description provides explicit when-to-use guidance: requires routeToken from brc_route_request, which must be called first with the user's original action request. It also states when-not: 'Never invent a placeholder token' and 'A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.' It names the prerequisite sibling tool brc_route_request explicitly.

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

brc_generate_support_reportA
Read-only
Inspect

Prepare a downloadable plain-text Red support diagnostic report for one currently connected company in this session. Read-only — does not write to Big Red Cloud. Use after showing the simple audit summary. Do not paste the full report into the chat summary unless the user's client cannot attach or download the file. Secrets, credentials, tokens, and connection references are excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCurrently connected company to include in the diagnostic report.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false; the description reinforces this with 'Read-only — does not write to Big Red Cloud.' It adds further transparency by stating that secrets, credentials, tokens, and connection references are excluded from the report, which is not implied by annotations alone.

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 packed into a single sentence but efficiently communicates purpose, read-only nature, timing, output handling, and exclusions. It is front-loaded with the main action. Slightly run-on but not overly verbose; earns its sentences.

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

Completeness4/5

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

With annotations covering the safety profile and no output schema, the description provides adequate context: what the tool does, when to use it, how to handle the output, and what is excluded. The report's content is not described but is implicitly a support diagnostic; this suffices given the tool's simplicity and existing annotations.

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

Parameters3/5

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

Schema description coverage is 100%, and both parameters have detailed descriptions in the input schema (companyName and connectionRef). The tool description does not add semantic value beyond the schema; it only reiterates the 'currently connected company' notion. Given full schema coverage, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool prepares a downloadable plain-text Red support diagnostic report for one currently connected company. It specifies the output format (plain-text, downloadable) and scope (one company), distinguishing it from other brc_* tools by focusing on a support report rather than data manipulation or retrieval.

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

Usage Guidelines4/5

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

The description gives a specific usage context: 'Use after showing the simple audit summary.' It also provides a handling instruction for the output ('Do not paste the full report into the chat summary unless the user's client cannot attach or download the file'). It doesn't explicitly mention alternative tools, but the context is clear enough.

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

brc_get_accrualB
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/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 states that only parent accruals are returned and child accruals are not exposed, but it does not disclose other behavioral traits such as side effects, authentication requirements, or rate limits. This is 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.

Conciseness5/5

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

The description is two sentences, front-loads the purpose, and adds a single constraint. Every word earns its place with no fluff.

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 is provided, and the description does not explain what the returned information contains. For a get-by-id tool, this is a significant gap as the agent cannot anticipate the response 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 schema already documents all parameters. The description adds no extra meaning beyond what is in the 'id' and 'companyName' descriptions. The baseline of 3 is appropriate since the schema does the heavy lifting.

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

Purpose5/5

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

The description clearly states the tool 'returns information about a single parent Accrual by id', specifying the verb, resource, and a key distinction (parent vs child). This distinguishes it from siblings like brc_list_accruals and brc_create_accrual.

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 accrual id and need details, but it lacks explicit guidance on when to use this tool versus alternatives like list or create accruals. No when-not or alternative mentions are provided.

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

brc_get_bank_accountC
Read-only
Inspect

Gets one BRC bank account by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBank account id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations provided, so description must disclose behavior. It merely states the action without addressing outcomes (e.g., error if id not found), auth requirements, or any side effects. Minimal transparency for a read operation.

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

Conciseness4/5

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

Very concise single sentence, front-loaded with key action. No extraneous text. However, it may be too brief given the lack of behavioral details, but for a simple getter it is acceptable.

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 and no annotations, the description should provide more context about return value, error handling, and the role of 'connectionRef'. It fails to explain the connection prerequisite, making it incomplete for proper 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 extra meaning beyond the schema; it only mentions 'by id', which is already clear from the 'id' parameter. No additional clarification for 'connectionRef' or 'companyName'.

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 includes a specific verb 'Gets' and resource 'BRC bank account' with the method 'by id'. It clearly indicates single-record retrieval, distinguishing it from sibling 'brc_list_bank_accounts' which lists multiple. However, it does not explicitly name the sibling or provide a contrast.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'brc_list_bank_accounts' or when not to use it. Lacks context for prerequisites such as needing an established company connection.

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

brc_get_cash_paymentB
Read-only
Inspect

Gets one BRC cash payment by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash payment id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations provided, and the description only says 'gets', which implies read-only. It does not disclose potential error cases (e.g., missing id), return format, or whether it has side effects. The minimal description fails to add meaningful behavioral context.

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

Conciseness4/5

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

Extremely concise (6 words), front-loaded with the action and resource. No redundant information. However, it could include a bit more detail without being overly 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 no output schema and no annotations, the description is incomplete. It does not explain what the tool returns or how to interpret results. A simple get tool still benefits from stating that it returns the payment details or an error if not found.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 what the schema provides for the parameters. It does not explain how the parameters are used beyond 'by id'.

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

Purpose5/5

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

The description clearly states the action (gets) and the resource (one BRC cash payment by id). It effectively differentiates from sibling tools like brc_list_cash_payments (list) and brc_create_cash_payment (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?

Implies use when a specific payment id is known, but does not provide explicit guidance on when to use this tool versus alternatives, nor any prerequisites or conditions.

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

brc_get_cash_receiptC
Read-only
Inspect

Gets one BRC cash receipt by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash receipt id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No behavioral traits are disclosed beyond the basic action. With no annotations, the description should detail side effects, permissions, or response behavior, but it does not.

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

Conciseness4/5

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

The description is very concise at six words, but it lacks any structural context. It is appropriate for a simple getter, though it could benefit from more detail.

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 output schema and annotations, the description should cover return values, error handling, or integration with company connection. It fails to do so, leaving gaps for the agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional parameter information beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states the tool retrieves a single BRC cash receipt by ID, using a specific verb and resource. However, it does not differentiate from sibling tools like brc_get_cash_payment or brc_list_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 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 indicate when to use this tool versus alternatives such as brc_list_cash_receipts or brc_create_cash_receipt.

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_statusA
Read-only
Inspect

Use when the user asks for an API key, secret, or what key was used. Also use for connection duration or time-left questions when listing all companies. 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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/5

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

Without annotations, description carries full burden. It clearly states it returns status only and never the key, which is good. However, it does not disclose any other behavioral traits like authentication requirements, rate limits, 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 concise, with two sentences and a separate behavioral instruction. It is front-loaded with usage context and retains only essential information without unnecessary detail.

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

Completeness4/5

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

Given no output schema, the description adequately explains return value (status only). It covers common use cases (key, secret, duration) and parameter roles. For a simple status check tool, it 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?

Both parameters are fully described in schema (100% coverage). The description adds meaning: explains that companyName is optional and context-summarizing, and connectionRef is an opaque reference with reuse guidance, adding 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 the tool returns connection status and never the key, and specifies it handles API key/secret/duration questions. It distinguishes its purpose from siblings by focusing on key status, though no explicit sibling differentiation is given.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 when to use: for API key/secret questions and connection duration/time-left when listing companies. Also instructs not to repeat keys from chat history. Provides clear context but lacks explicit 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_get_company_processing_settingsA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 performs a read operation and lists the types of settings affected (VAT, cash receipts, etc.). It does not disclose the return format or any potential side effects, but is sufficient for a read operation.

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

Conciseness5/5

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

Two sentences that cover purpose, usage guidance, and behavioral context with no fluff. Key information is 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 no output schema, the description could mention the structure of the returned settings. It lists affected areas but does not indicate if a single record or list is returned. The sibling tool list does not include other settings getters, so no direct alternative guidance.

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

Parameters3/5

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

Schema coverage is 100%, so baseline 3. The description adds context for includeRaw and connectionRef but does not provide additional meaning beyond the schema. The schema already provides detailed descriptions for 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 clearly states it reads BRC company processing/options settings affecting VAT, cash receipts, payment terms, etc. The verb 'Reads' and specific resource 'BRC company processing/options settings' make the purpose unambiguous.

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

Usage Guidelines5/5

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

Explicitly recommends using the tool before VAT-sensitive write workflows, which provides direct when-to-use guidance. Also states settings are read-only in Red and changes must be made in Big Red Cloud, giving 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_get_company_reference_settingsA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

No annotations provided, so the description carries full burden. It discloses that settings are read-only in Red, implying non-destructive behavior. It adds specific conditional guidance for unknown quote settings, which is valuable behavioral context. However, it doesn't mention response format or potential errors, but for a simple read tool this is acceptable.

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

Conciseness5/5

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

Four sentences, front-loaded with purpose. Each sentence adds meaningful information: what it reads, when to use, conditional guidance, and read-only nature. 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?

No output schema exists, and the description does not explain the return value structure. However, for a read operation, 'reads settings' implies a collection of settings. Given full schema coverage and simplicity of the tool, it is minimally adequate but could specify 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?

Schema coverage is 100%, so baseline is 3. The description does not elaborate on parameters beyond the schema's descriptions. No additional semantic value is added for the parameters.

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

Purpose5/5

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

The description clearly states it reads 'BRC reference auto-generation settings' for specific document types (sales, purchases, quotes, etc.). This is a specific verb-resource combination that 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?

Explicit guidance on when to use: 'Use this before preparing or creating quotes, invoices, purchases, or other reference-sensitive records.' Also provides conditional behavior: 'If Quotes is Unknown, do not assume auto-generate; ask for a quote reference or user confirmation first.' And states the tool is read-only, guiding the agent not to attempt modifications.

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_configB
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 states the tool 'Gets' data, implying read-only but does not explicitly confirm no side effects, rate limits, 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.

Conciseness4/5

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

Single sentence with no redundancy. The listed categories add value, though the sentence could be slightly tighter without losing clarity.

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 explains what the tool does but does not describe the return structure or how it differs from sibling tools. With no output schema, additional return context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 does not add any extra meaning or usage context beyond the schema, earning 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 uses a clear verb ('Gets') and specifies the resource ('full BRC company setup configuration') with explicit categories. It distinguishes itself from sibling tools like brc_get_financial_year by indicating it returns a composite of multiple settings.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus more specific getters (e.g., brc_get_financial_year). The description does not specify prerequisites or mention the connectionRef parameter's role.

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

brc_get_customerB
Read-only
Inspect

Gets one BRC customer by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations provided. Description lacks details on read-only nature, error handling (e.g., missing customer), authentication, or rate limits. Minimal behavioral context beyond implied retrieval.

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?

One-sentence description is very concise and front-loaded. However, it omits any usage context, which slightly reduces completeness for a concise statement.

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, description is mostly adequate. But lacks mention of return format (full customer object?) and read-only nature. With no output schema, more context would help.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 schema already documents each parameter. Description adds no extra meaning beyond stating 'by id'. ConnectionRef description in schema is already 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?

Description clearly states 'Gets one BRC customer by id', specifying verb, resource, and lookup method. Distinguishes from siblings like brc_list_customers (list) and brc_batch_customers (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?

No explicit when-to-use or alternatives guidance. Agent must infer from context that this is for single customer retrieval versus list or batch operations.

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_balanceC
Read-only
Inspect

Gets a customer's opening balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations are provided, so the description must carry the full behavioral burden. It only states 'Gets a customer's opening balance' without disclosing whether the operation has side effects, requires permissions, is idempotent, or what the response format is. For a read-only operation, this is minimally implicit but 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 a single short sentence, which is concise but lacks structure. It does not front-load critical context or provide any hooks for understanding the tool's scope. It is adequate but not exemplary.

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, the description should explain what the tool returns. It does not. Also, it does not differentiate from sibling tools like brc_get_supplier_opening_balance or brc_list_customer_op_bal_trans. The description is incomplete for a tool with 3 parameters and no output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema, but it does not detract from it. The parameter roles are clearly defined in the schema, so no extra clarification is needed.

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 the verb 'Gets' and the resource 'customer's opening balance', clearly identifying the tool's purpose. It is specific but could be more precise about what exactly is returned (e.g., a single balance value or record). However, it adequately distinguishes from sibling tools like brc_list_customer_op_bal_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 is provided on when to use this tool versus alternatives. For example, it does not clarify that this tool retrieves the opening balance for a specific customer, while brc_list_customer_op_bal_trans lists multiple transactions. No exclusions or usage context 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_deployment_policyA
Read-only
Inspect

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 the currently enabled read, write, delete, email, and batch capabilities in plain business language. 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. Assistant-only connection diagnostics (never include in customer answers): a missing result or empty list does not by itself mean the connection has expired; only a confirmed authentication failure should be treated as an invalid company credential.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior5/5

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

No annotations exist, so the description fully carries the burden. It discloses output style (plain business language), restrictions (no internal file/code exposure), and an important diagnostic nuance about connection expiry versus authentication failure. This is substantial and non-obvious behavior disclosure.

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 typical, but every sentence serves a purpose: purpose, usage, content scope, exclusions, customer-facing style, internal constraints, and diagnostics. It is front-loaded with the core purpose and usage, then progressively more detailed. While not maximally concise, it is efficiently structured for the complexity it covers.

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

Completeness5/5

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

With no annotations, no output schema, and no parameters, the description must be self-contained. It fully covers what the tool produces, when to use it, how to phrase answers, what to avoid, and even edge-case diagnostics. There are no apparent gaps for an agent deciding to invoke this tool.

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

Parameters4/5

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

The tool has 0 parameters and schema coverage is 100%. Per the rubric, a baseline of 4 is appropriate since there are no params to document. The description adds value by explaining the tool's purpose and usage, which is more than enough for a parameterless tool.

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

Purpose5/5

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

The description clearly states this is the authoritative customer-facing permission and output policy summary for the current Red session. It distinguishes itself from sibling CRUD/batch tools by focusing on policy summarization rather than data operations.

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

Usage Guidelines5/5

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

Explicit usage triggers are provided: when the user asks about capabilities, available tools, permissions, or whether to show technical details. It also lists what not to do (e.g., not list MCP tool names, endpoints, schemas) and clarifies customer-facing vs internal analysis contexts.

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

brc_get_financial_yearC
Read-only
Inspect

Gets BRC company financial year.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states 'Gets BRC company financial year' without mentioning side effects, read-only nature, return format, or error conditions. The detailed connectionRef parameter description in the schema is not part of the tool description.

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 (5 words, single sentence). It is front-loaded with the action and resource, making it easy to parse. However, it lacks structured elements like bullet points or sections, which may be acceptable for a simple getter.

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 getter tool with no output schema and good parameter schema coverage, the description is minimally adequate. It does not explain what the financial year output contains (e.g., object, string) or if there are specific return fields, but the core function is 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 coverage is 100%, with both parameters well-documented in the input schema. The tool description adds no additional parameter meaning beyond what the schema provides. Therefore, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states that the tool retrieves the BRC company financial year, using a specific verb ('Gets') and resource ('BRC company financial year'). It is sufficient to understand the basic function, though it does not differentiate from other getter tools like brc_get_company_options.

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 specify when to use this tool, prerequisites (e.g., prior company connection), or when not to use it (e.g., alternatives). Compared to siblings, there is no guidance on distinguishing from other getters.

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

brc_get_help_resource_detailsA
Read-only
Inspect

Load full help-resource details for a resourceId returned by brc_red_help or brc_find_help_resources. For Big Red Cloud how-to or tutorial questions, call this automatically for the best matching Freshdesk article with includeImages=true and imagePresentation=links — even when the user did not explicitly ask for screenshots. Freshdesk resources return cleaned article text, the canonical Freshdesk publicUrl when available, preferred instructionBlocks, ready-to-use customerFacingScreenshotMarkdown / customerFacingInstructionMarkdown, screenshotUrls for backward compatibility, Sources fields, optional Red-action fields, and optional MCP image content. When includeImages is true, use imagePresentation='links' unless the user explicitly asks for inline image content. Copy the exact Markdown links returned in customerFacingScreenshotMarkdown or customerFacingInstructionMarkdown into the final answer. Place each link after its related step. Use the short View image link text (or View image N when one step has multiple images) — do not paste the descriptive caption as link text or as a second instruction sentence. Never omit valid returned screenshot links after telling the user screenshots are available. Do not merely describe the screenshots. Do not say Here are the screenshots without including the links. Do not replace links with Screenshot 1, Tool result, Show Image, or invent different URLs. Do not depend on tool-result image previews being visible to the user — the final answer must contain the exact signed Markdown links. If no links are returned, clearly say that no matching screenshot was found. Pass the customer question when available so Freshdesk screenshots are selected from the matching workflow branch (for example existing customer versus add customer). Prefer instructionBlocks / customerFacingInstructionMarkdown when present: follow them in order and keep every screenshot Markdown link exact. Never label screenshot links Show Image. Do not invent captions or URLs. Do not group screenshots under a Relevant screenshots section when step-and-link Markdown is available. Omit screenshots from unused workflow branches. Omit unclear screenshots rather than guessing. Do not repeat a screenshot. When instructionBlocks are absent, use customerFacingScreenshotMarkdown with View image links and place each after the most relevant paragraph where possible. Do not rewrite or alter supplied screenshot URLs. Copy customerFacingSourcesMarkdown into a Sources section using the exact publicUrl or registrationUrl returned by this tool. Group Freshdesk / documentation under Articles and recorded webinars under Videos — omit an empty Videos heading. Keep screenshot links beside steps — do not move them into Sources. When redActionAvailable is true, include customerFacingRedActionMarkdown after Sources. Do not start the Red action unless the user asks. Mention preview-before-posting for write actions. Always end with customerFacingSupportMarkdown (Still need help?) after Sources and any Red-action section. Freshdesk links use bigredcloud.freshdesk.com — never rewrite them onto bigredcloud.com/support. Customer documentation returns cleaned article text and the public docs URL. Recorded webinars return title, description, public video URL, and category. Upcoming webinars return title, weekday, description, topics, registration URL, and webinar-series page URL. Read-only. Does not require a connected company. MCP image content blocks are optional compatibility content when imagePresentation is inline or both. Do not claim screenshots were supplied when imageCount is 0 or when no Markdown links are returned. Do not expose Azure blob names, storage URLs, private Freshdesk image URLs, image hashes, or sync metadata in customer-facing text. Never claim company data was changed by a tutorial answer.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionNoOptional customer question used to select the matching Freshdesk workflow screenshots, for example an existing-customer opening balance question versus adding a new customer.
maxImagesNoMaximum Freshdesk screenshots to return. Defaults to 5. Hard maximum 8.
resourceIdYesResource ID from brc_red_help or brc_find_help_resources, for example customer_docs:bank-reconciliation or freshdesk:1001.
includeImagesNoWhen true, Freshdesk articles may include screenshot presentation. Defaults to true.
imagePresentationNoHow to present Freshdesk screenshots. Defaults to links (signed Markdown links only). Use inline for MCP image blocks, or both for Markdown plus image blocks.
Behavior5/5

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

With no annotations provided, the description fully carries behavioral disclosure. It states the tool is read-only, requires no connected company, describes return data for each resource type, and details formatting constraints (e.g., not exposing Azure blob names, never claiming company data changed). This is far beyond typical 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 front-loaded with purpose but becomes an extensive wall of text with many imperative user-facing formatting rules. While every sentence carries some actionable content, the sheer length and monolithic structure make it harder to parse. A more structured bulleted format would improve conciseness without losing information.

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

Completeness5/5

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

Given no output schema and five parameters, the description is exceptionally thorough. It enumerates return fields for Freshdesk articles, customer docs, and webinars, covers optional image content, and gives complete instructions for handling screenshots and support sections. There are no obvious gaps for an agent to invoke and use the tool 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?

Although schema coverage is 100%, the description adds significant parameter meaning: concrete default values for includeImages and imagePresentation, guidance to pass question for workflow selection, and resourceId format examples. It tells the agent exactly how to choose parameter values, exceeding the schema's basic type/description information.

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

Purpose5/5

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

The description opens with a specific verb+resource+scope: 'Load full help-resource details for a resourceId returned by brc_red_help or brc_find_help_resources.' This clearly distinguishes the tool as the detail-retrieval step following the sibling search tools, 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 Guidelines5/5

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

Usage guidance is explicit and actionable: it says to call automatically for how-to/tutorial questions, specifies parameter choices (includeImages=true, imagePresentation=links), clarifies when to pass the customer question, and names the source tools for resourceId. It even handles edge cases like user not requesting screenshots, providing strong when-to-use direction.

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_idsA
Read-only
Inspect

Gets nominal accounts for specific ids by calling GET /v1/nominalAccounts/{id} for each id. Month 1–Month 12 nominal figures are period movements for each financial month, not balances. Running balance = opening balance + cumulative monthly movements. Do not describe individual monthly movement values as monthly balances. If the user asks for balances over time, calculate them from opening balance plus cumulative movements, or explain that only movements are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesComma-separated nominal account ids.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

No annotations provided, so description carries full burden. It explains that each id triggers an API call, month figures are period movements, and how to calculate running balance. Does not cover error handling or performance implications but is sufficient for a read operation.

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

Conciseness5/5

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

Two sentences with essential information, plus a crucial clarification. No redundant information, front-loaded with the main action.

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

Completeness4/5

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

For a tool with 3 parameters and no output schema, the description adequately covers the interpretation of results and usage context. Could mention the typical structure of the returned data, but not essential given the simple nature.

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

Parameters4/5

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

Schema description coverage is 100%, but the description adds semantic value by explaining how to interpret the data returned (movements vs balances) and the relationship between opening balance and cumulative movements.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 'Gets nominal accounts for specific ids' and explains the API call pattern. It distinguishes from sibling tools like list or single get by specifying the by-id batch retrieval. The clarification about month figures being movements not balances further clarifies the tool's purpose.

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

Usage Guidelines4/5

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

Provides explicit guidance on how to interpret monthly figures and how to respond to user queries about balances over time. While it does not explicitly compare to alternative tools, the usage context is clearly defined.

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_idA
Read-only
Inspect

Gets one BRC nominal account by id. Month 1–Month 12 nominal figures are period movements for each financial month, not balances. Running balance = opening balance + cumulative monthly movements. Do not describe individual monthly movement values as monthly balances. If the user asks for balances over time, calculate them from opening balance plus cumulative movements, or explain that only movements are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNominal account id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 monthly figures are movements not balances, explains how to derive running balance, and warns against describing movements as balances. This adds significant transparency beyond just 'gets by ID'.

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 dense paragraph but efficiently packs essential information. It could be slightly more structured (e.g., bullet points for the movement vs balance distinction), but it is not 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?

No output schema, but the description compensates by explaining the critical meaning of monthly figures and how to compute balances. It could mention required parameters, but schema already covers that. Context is reasonably complete for a get-by-id 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 covers all three parameters with descriptions (100% coverage), so baseline is 3. The description reinforces the meaning of the output but adds no new semantic details about the parameters themselves.

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

Purpose5/5

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

Clearly states it gets one nominal account by ID, and explicitly clarifies that monthly figures are period movements not balances. This distinguishes it from sibling tools like brc_get_nom_ac_ledger_by_ids (plural) and brc_list_nominal_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 explicit guidance on when to use this tool versus alternatives, such as brc_get_nom_ac_ledger_by_ids for multiple IDs or brc_list_nominal_accounts for listing. Usage context must be inferred.

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_batchB
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 only states that the tool 'returns information' but does not mention safety aspects (e.g., read-only nature), authentication requirements, or error behavior. Minimal transparency for a read operation.

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

Conciseness5/5

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

The description is a single sentence with no superfluous words. It efficiently communicates the tool's core purpose.

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 and no annotations. The description does not convey what information the response contains (e.g., batch details, fields). It fails to set expectations for the return value, leaving the agent to guess.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters. The description adds no further meaning beyond the schema, 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 the action ('Returns information'), the resource ('a single Nominal Journal Batch'), and the identifying parameter ('by id'). It distinguishes this tool from sibling tools like 'brc_list_nominal_journal_batches' (list) and 'brc_create_nominal_journal_batch' (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 when a specific batch ID is known but provides no explicit guidance on when to use this tool versus alternatives (e.g., listing all batches first). No exclusions or context about 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_get_paymentB
Read-only
Inspect

Gets one BRC payment by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. 'Gets' implies read-only, but no details about side effects, idempotency, or error handling are provided. The schema parameter descriptions for connectionRef add context, but the description itself adds little beyond the 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 single-sentence description is concise and front-loaded. It conveys the core purpose without extraneous words, though it could be slightly more structured with optional usage hints.

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 fairly complete, but it lacks mention of return values or error conditions (e.g., what if id not found). The schema covers parameters, but the description does not address output or failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 score is 3. The description does not add any extra meaning beyond what the schema already provides (e.g., 'by id' is already in the schema).

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

Purpose5/5

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

The description 'Gets one BRC payment by id' uses a specific verb ('gets') and resource ('BRC payment'), clearly identifying the operation. It distinguishes from list_payments (multiple) and other get_* 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 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_payments or brc_get_purchase. The description does not indicate 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_prepaymentA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/5

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

Discloses that child prepayments are not exposed, which is helpful. However, with no annotations, it omits other behavioral traits like that it's read-only, no side effects, or error handling. Basic 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?

Single sentence of 14 words that is front-loaded and contains no fluff. Every word is meaningful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 retrieval tool with high schema coverage, the description covers the core function and a notable limitation (child prepayments not exposed). Minor omission: could state it's read-only. Still 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 already provides descriptions for all 3 parameters (100% coverage). The description adds no extra value beyond the schema, so baseline of 3 is appropriate.

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

Purpose5/5

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

Clearly states it returns info on a single parent Prepayment by id, distinguishes from sibling tools like brc_list_prepayments and brc_get_payment by focusing on prepayments and noting child prepayments are excluded.

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?

Implied usage - use when you need a specific prepayment by id - but no explicit guidance on when not to use or alternatives. Could mention using brc_list_prepayments for multiple prepayments.

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

brc_get_productB
Read-only
Inspect

Gets one BRC product by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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, side effects, or rate limits. The minimal description offers no value beyond the obvious get operation.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words, achieving maximum 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?

While adequate for a simple getter, the description lacks context about return value, the purpose of connectionRef (partially covered in schema), and any prerequisites. It is minimally 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 the schema already documents parameters. The description adds no extra meaning beyond what the schema provides, earning the 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 verb ('Gets') and resource ('one BRC product by id'), making it distinct from sibling tools like brc_list_products (list) and brc_create_product (create).

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_products). The description provides no context for selection among siblings.

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

brc_get_purchaseB
Read-only
Inspect

Gets one BRC purchase by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPurchase id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description should provide behavioral context like response format or side effects, but it only states the basic purpose.

Agents need to know what a tool does to the world before 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, no wasted words, directly conveys the essential purpose.

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 and no extra detail on return values; for a retrieval tool, this is insufficient to fully prepare the 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 baseline is 3; the description adds no extra meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the verb 'Gets' and the resource 'one BRC purchase by id', which is specific and distinguishes from list or batch 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?

No explicit when-to-use or alternatives mentioned; usage is implied but not guided against other get/list tools.

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

brc_get_quoteA
Read-only
Inspect

Gets one BRC quote by id. List and get may not return the same fields (for example note or analysis account codes); treat those as representation differences, not as create or update failures.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 a key behavioral trait: field representations may differ between list and get calls. However, it does not mention other important behaviors such as idempotency, rate limits, authorization needs, or that this is a read-only operation (implicit from 'get' but not explicit). The single disclosure is useful 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 extremely concise: two sentences, both essential. The first sentence states the core purpose, and the second provides a critical behavioral caveat. There is no redundant or vague language.

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

Completeness4/5

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

For a simple get tool with no output schema, the description adequately sets expectations: it confirms retrieval by ID and warns about field differences. It could be more complete by explicitly stating that it returns the full quote object, but the verb 'gets' plus the behavioral note sufficiently imply the return. The required parameters are covered by the schema, and the warning about representation differences adds practical 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 coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema: it mentions 'by id' which corresponds to the id parameter, but does not elaborate on the other parameters (companyName, connectionRef) or their purpose. The schema descriptions already clearly define 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 clearly states 'Gets one BRC quote by id,' specifying the exact verb ('get') and resource ('BRC quote') with a unique identifier. It distinguishes itself from sibling tools like list_quotes (which return multiple quotes) and create/update/delete tools.

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

Usage Guidelines4/5

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

The description implicitly advises when to use this tool (when you need a single quote by id) and contrasts with list operations by noting field differences. It does not explicitly state when not to use it or name alternative tools, but the context of 'list and get' is clear enough for an agent to infer usage.

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_noteB
Read-only
Inspect

Gets one BRC sales credit note by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales credit note id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations are provided, so the description carries full transparency burden. It does not disclose what happens if the ID is not found, whether authentication (connectionRef) is required, or any side effects. As a get operation, it is likely read-only, but the description does not confirm this.

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 with no wasted words. It is efficient but slightly terse, lacking any additional context that could help the agent.

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 is a simple retrieval with three parameters and no output schema, the description is minimally adequate. However, it does not explain the return value or any prerequisites (e.g., need for valid connectionRef), which would be helpful for complete 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 all three parameters (id, companyName, connectionRef). The description adds no extra meaning beyond 'by id', so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'gets', the resource 'BRC sales credit note', and the method 'by id'. It distinguishes from sibling tools like brc_list_sales_credit_notes (which lists many) and brc_update_sales_credit_note (which modifies).

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 credit note by ID, but does not explicitly state when to use this tool versus alternatives (e.g., brc_list_sales_credit_notes for multiple records). No exclusionary guidance is provided.

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

brc_get_sales_entryB
Read-only
Inspect

Gets one BRC sales entry by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales entry id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations provided, so description carries full burden. It only states the basic operation without disclosing any behavioral traits (e.g., read-only, no side effects, 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.

Conciseness3/5

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

Very concise (one sentence), but it under-specifies and lacks important details. Conciseness is good, but completeness suffers.

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 3-parameter schema, lack of output schema, and no annotations, the description is too minimal to fully guide an agent. It misses usage context and behavioral 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%, so baseline is 3. The description adds no additional parameter meaning beyond the schema, but the schema itself is clear.

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

Purpose5/5

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

The description clearly states the specific action (Gets) and resource (BRC sales entry) with the method (by id). It differentiates from sibling get tools that target other entities (e.g., get_customer, get_quote).

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_entries or other get tools. No mentions of 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_sales_invoiceB
Read-only
Inspect

Gets one BRC sales invoice by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales invoice id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description carries full burden. It only says 'gets one...' without disclosing any side effects, permissions, or error conditions. The description is truthful but lacks behavioral context beyond the obvious read operation.

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

Conciseness5/5

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

One sentence, front-loaded with verb and resource, no wasted words. The description is efficiently 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 the description should explain what the returned invoice contains, but it does not. The description also fails to mention that connectionRef must be reused from a prior connection, though the schema covers it. Incomplete for a single-retrieval 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 100%, so baseline is 3. The description adds no extra meaning beyond the schema's parameter descriptions. It does not elaborate on id format or companyName usage, relying solely on 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 (gets), the resource (BRC sales invoice), and the retrieval method (by id). This distinguishes it from sibling tools like brc_list_sales_invoices (list) and brc_batch_sales_invoices (batch).

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., batch or list tools). No mention of prerequisites, such as needing a valid companyName and connectionRef, or that this is for a single invoice retrieval only.

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

brc_get_sales_repB
Read-only
Inspect

Gets one BRC sales rep by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales rep id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/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 disclosing behavioral traits. It only states the basic action, omitting critical details such as what happens if the ID is not found, whether the operation is read-only, or any side effects. No information about idempotency, rate limits, or required permissions is given.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no redundant words. However, it is extremely brief and could add slightly more context 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?

The tool has two required parameters (id, companyName) and one optional (connectionRef), with no output schema. The description does not mention the return format, error handling, or the need for a prior connection setup (despite the schema defining 'connectionRef'). While a simple get operation can be short, additional context would improve usability given the parameter dependencies.

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

Parameters3/5

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

The input schema already describes all parameters (100% coverage). The description adds no extra meaning beyond the schema. For example, the schema explains 'companyName' as a company context name and 'connectionRef' with usage details, so the description does not improve parameter understanding.

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

Purpose5/5

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

The description clearly states the verb (Gets), the resource (BRC sales rep), and the method (by id). It distinguishes from sibling tools like brc_list_sales_reps (list all) and brc_batch_sales_reps (batch), making the specific 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 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 multiple reps, brc_batch_sales_reps for bulk operations). It doesn't mention prerequisites like establishing a connection via brc_confirm_company_connection or when to avoid using it.

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

brc_get_supplierC
Read-only
Inspect

Gets one BRC supplier by id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSupplier id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/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 gives no information about read-only nature, permissions, error cases, or idempotency. A simple get implies read safety, but no explicit traits are mentioned.

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

Conciseness3/5

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

The description is concise (one sentence) but lacks substance. While it is not verbose, it sacrifices informational value for brevity. Ideally, it should include more context 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 absence of an output schema, the description should at least hint at what data is returned. It does not. Additionally, with many sibling tools, it fails to help the agent select this tool over others. The description is incomplete for effective 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% with detailed descriptions for all three parameters (id, companyName, connectionRef). The description adds no extra meaning beyond the schema, so it meets the baseline without additional 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 states 'Gets one BRC supplier by id.' which clearly identifies the action (get) and resource (BRC supplier) and retrieval method (by id). However, it does not distinguish itself from other sibling tools like brc_list_suppliers, missing potential 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 alternatives (e.g., brc_list_suppliers for multiple suppliers). The description lacks any context about 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_supplier_opening_balanceB
Read-only
Inspect

Gets a supplier's opening balance.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesSupplier item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations provided. The description does not disclose what happens if the supplier is missing, the return format, or any side effects. Simple but insufficient for an unannotated 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?

Extremely concise single sentence. No wasted words, but could benefit from slightly more context 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?

Given the complexity of financial data and numerous sibling tools, the description lacks context on what the opening balance represents, how it's calculated, and the response structure. No output schema provided 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 description coverage is 100% with clear field descriptions. The tool description adds no extra meaning beyond what the schema provides, meeting the baseline.

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

Purpose5/5

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

The description clearly states the action ('Gets') and the resource ('supplier's opening balance'). It differentiates from sibling tools like 'get_customer_opening_balance' and 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 (e.g., list_supplier_op_bal_trans). No context about prerequisites or typical use cases.

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_reportA
Read-only
Inspect

Creates a grouped nominal accounts report from GET /v1/nominalAccounts, grouping by account group/type fields when available. Month 1–Month 12 nominal figures are period movements for each financial month, not balances. Running balance = opening balance + cumulative monthly movements. Do not describe individual monthly movement values as monthly balances. If the user asks for balances over time, calculate them from opening balance plus cumulative movements, or explain that only movements are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations provided, the description fully describes the report's output: grouping behavior, interpretation of monthly movements vs balances, and running balance calculation. It discloses the key behavioral traits without omissions, though it could mention if the operation is read-only.

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 the main purpose in the first sentence and critical usage details following. It avoids fluff, though the usage guidelines are embedded rather than separate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 a financial report with monthly movements and running balances, the description provides necessary context. It explains the data semantics and how to handle user requests for balances. Missing details like error conditions or edge cases but overall sufficient.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for both parameters. The tool description adds value by explaining the report context but does not enhance the parameter 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 tool creates a grouped nominal accounts report from a specific endpoint, grouping by account group/type. This distinguishes it from sibling tools like brc_list_nominal_accounts (which lists accounts) and brc_multi_company_nom_ac_report (for multiple companies).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select 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 that monthly figures are movements not balances, and provides guidance on how to compute running balances. It tells the agent what not to do (describe as balances) and how to respond to balance queries. However, it does not compare to alternative tools directly.

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

brc_list_accountsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 fails to mention pagination, filtering, ordering, or the necessity of a companyName and connectionRef. The tool could mutate state (unlikely for a list) but no reassurance is given.

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 with no wasted words, but it is too terse for a tool with 8 parameters and no output schema. It omits crucial details that could be conveyed concisely.

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 parameter count (8), no output schema, and no annotations, the description should provide a richer context—such as what a 'BRC account' is, whether it returns a list of objects, or how pagination works. It fails to do so, leaving the agent with insufficient information.

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 50% (parameters top, page, skip, pageSize, orderBy, filter have descriptions; companyName and connectionRef are described). The description adds no parameter information beyond the schema, and with moderate coverage it does not compensate for missing parameter context.

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

Purpose4/5

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

The description clearly states the tool lists BRC accounts, with a specific verb and resource. However, it does not differentiate from numerous sibling list tools (e.g., brc_list_customers, brc_list_bank_accounts), leaving the agent to guess what distinguishes 'accounts' from 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?

No guidance on when to use this tool, what prerequisites exist (e.g., establishing a company connection via brc_confirm_company_connection), or when to prefer alternative list tools. The agent receives no contextual cues.

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

brc_list_accrualsA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/5

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

With no annotations, the description should disclose behavioral traits. It mentions OData filtering and ordering but does not explicitly state read-only nature, pagination behavior, or rate limits. The 'Returns' phrasing implies no side effects, but more detail would be helpful.

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

Conciseness5/5

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

The description is extremely concise at two sentences, with the most important information (list, filtering, ordering) placed first. 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?

While the description covers the basic functionality, it lacks details about pagination (top/skip), required connectionRef, or return format. Given the complexity of the tool (6 parameters, many siblings), 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 coverage is 100%, so baseline is 3. The description repeats schema info (filter by entryDate, order by id) without adding significant new meaning. No further parameter guidance 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 clearly states it returns a list of Accruals, with optional OData filtering and ordering. It effectively distinguishes from sibling tools like brc_get_accrual (single accrual) and brc_create_accrual.

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 accruals with filtering but does not explicitly differentiate from other list tools (e.g., brc_list_customers) or provide when-to-use/not-use guidance. It relies on the tool name for distinction.

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

brc_list_allocated_transactionsA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 behavioral traits. It only states that the tool returns allocated transactions but does not mention if it is read-only, what the response contains, or any potential side effects. This is insufficient for a list tool.

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

Conciseness5/5

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

The description is concise, consisting of two sentences that effectively front-load the purpose and then provide usage guidance. Every sentence serves a clear purpose 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 tool has three parameters and no output schema. The description covers the primary purpose and usage context but lacks details about the response format, pagination, or what constitutes 'allocated transactions'. This is adequate but leaves 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?

The schema description coverage is 100%, so a baseline of 3 is warranted. The description adds the note 'Requires bookTranId', but the schema already describes the parameter. No additional semantic value is provided beyond the schema.

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

Purpose5/5

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

The description clearly states the tool returns transactions allocated from a specified sender book transaction, using a specific verb and resource. It distinguishes from sibling tools like brc_delete_allocation_resolver by describing the use case for review before modifications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select 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 advises using this tool to review allocations before reversing or deleting them, providing clear context. It also notes the requirement for bookTranId. However, it does not explicitly state when not to use it or suggest alternatives.

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

brc_list_allocation_resolversA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 indicates it is a read operation ('Returns transactions') and requires bookTranId, but does not mention auth needs, side effects, or rate limits. 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?

Two sentences with no wasted words. The key information is front-loaded and each 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?

No output schema exists, so the description should clarify the return format. It says 'Returns transactions' but does not specify fields or structure. Adequate for a simple list tool, but could be more complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description mentions bookTranId in context but adds no new semantic meaning beyond what the schema provides.

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

Purpose4/5

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

The description states it returns transactions eligible for allocation from a specified book transaction, which is a specific verb+resource. It provides clear purpose but does not explicitly differentiate from the sibling 'brc_list_allocated_transactions', though the distinction can be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 to use 'before updating allocations' and requires bookTranId, providing clear context and a prerequisite. Does not mention when not to use or name alternatives, but the guidance is sufficient.

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

brc_list_analysis_categoriesA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/5

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

No annotations are present, so the description must disclose behavior. It indicates the tool is a list operation, but does not mention whether it is read-only, any side effects, pagination behavior, or other traits. For a read-only list tool, basic transparency is met but additional context would be helpful.

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

Conciseness4/5

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

The description is well-structured with the main purpose first, followed by usage rules. It is five sentences long, which is appropriate for the complexity, though some sentences could be slightly trimmed without losing meaning.

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 no annotations, the description covers the essential decision-making context for selecting categories. However, it omits operational details such as how results are returned, pagination, or filtering, making it only partially complete.

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 50% description coverage; parameters like top, page, skip, pageSize lack descriptions. The tool description adds no parameter-level details, so it does not compensate for the gaps. The standard pagination parameters are not explained.

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 it lists BRC analysis categories and explains that they are used for sales invoice/credit note product lines to choose a Sales category matching income type. It clearly identifies the resource and verb, but does not explicitly differentiate from sibling list tools like brc_list_category_types, leaving some ambiguity.

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

Usage Guidelines5/5

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

The description provides explicit guidance: use for sales invoice/credit note lines, choose Sales category matching income type, avoid defaulting to CR categories, and ask user if uncertain. It clearly states when and how to use the tool, including what not to do.

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

brc_list_audit_logA
Read-only
Inspect

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. Show only this simple activity summary in chat. After showing it, also prepare a downloadable support diagnostic with brc_generate_support_report — do not paste technical diagnostic fields into the chat summary. 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
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
includeTechnicalDetailsNoOnly set this to true if the user asks for technical details. Sensitive values are still redacted.
Behavior4/5

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

The description discloses key behavioral traits beyond the input schema: that read-only API calls are not logged, that technical diagnostic fields should not be pasted into the chat summary, and that it scopes results to the current session and connected companies. It also clarifies the connectionRef parameter behavior (reuse, not an API key). Without annotations, this provides strong 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 thorough but somewhat verbose, containing instructional notes that could be more concise. It front-loads the core purpose but includes detailed scope rules that might be better placed in usage guidelines. While every sentence is useful, it could be tightened without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (audit log with session scoping, two parameters, no output schema), the description covers the behavior thoroughly: what is logged, when to use it, how to present results, and exclusions. The only gap is no mention of what the output format looks like (e.g., list of timestamps, actions), though the description says to show a 'simple activity summary'.

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

Parameters4/5

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

The input schema has 100% description coverage, so the baseline is 3. The description adds value by explaining the connectionRef behavior in detail (reuse across tool calls, not an API key) and when to set includeTechnicalDetails to true (only if user asks for technical details). 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 clearly states the tool shows a record of data changes (create, update, delete, etc.) from the Red MCP server session. This distinguishes it from sibling tools like brc_list_accounts or brc_list_customers, which list specific entities rather than an audit log of session activity.

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: use it as the source of truth for 'what did I do today in Red?', show only a simple activity summary in chat, and then prepare a support diagnostic with brc_generate_support_report. It also specifies when not to include activity (other sessions, users, disconnected companies) and what to exclude (unrelated chat history).

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

brc_list_bank_accountsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations exist, and the description fails to disclose behavioral traits such as pagination, filtering, or ordering capabilities that are present in the input schema. The description adds no value in explaining how the list operation behaves beyond the bare fact that it lists accounts.

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 single sentence 'Lists BRC bank accounts.' is concise but underspecified. There is no structure or additional detail to aid understanding. 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?

With 8 parameters and no output schema or annotations, the tool description omits critical context about pagination, response format, and the nature of 'BRC bank accounts'. It is insufficient for an agent to use the tool effectively without additional knowledge.

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 50%, meaning half of the parameters lack schema descriptions. The description does not explain any parameters, including those without schema descriptions (e.g., top, page, skip, pageSize). It adds no meaning beyond the input 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 'Lists BRC bank accounts' which is a clear verb+resource combination. However, it does not differentiate from sibling tools like brc_list_accounts, which may list a different type of account. The purpose is clear but lacks specificity to distinguish from similar 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 provided on when to use this tool versus alternatives. With many sibling list tools (e.g., brc_list_accounts, brc_list_accruals), the absence of usage context hinders correct tool selection.

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_typesB
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only says 'Lists', implying read-only, but fails to mention pagination, filtering, or ordering capabilities (though the input schema includes parameters for top, skip, page, pageSize, filter, orderBy). The agent cannot tell from the description that results can be paginated or filtered.

Agents need to know what a tool does to the world before calling it. Descriptions 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 communicates the core purpose without wasted words. It is appropriately brief for a straightforward listing operation.

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 8 parameters, no output schema, and no annotations, the description is insufficient. It omits essential behavioral context like pagination support, required parameter (companyName), and that this is a safe read operation. A more complete description would aid agent decision-making.

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 50% (4 of 8 parameters have descriptions). The description adds no additional meaning beyond what the schema provides. Parameters like top, skip, page, pageSize, filter, orderBy lack schema descriptions and the description does not clarify them, leaving ambiguity 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?

The description explicitly states the action ('Lists') and the resource ('BRC book transaction types'). This is a specific verb+resource combination that clearly distinguishes it from sibling tools, as no other tool in the list has 'book_transaction_types' in its 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. There is no mention of prerequisites, typical use cases, or when to choose this over other list tools like brc_list_accounts.

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

brc_list_cash_paymentsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It does not mention that it is a read operation, that results are paginated (despite pagination parameters in schema), or any side effects. The description adds negligible behavioral context beyond the tool name.

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 short (5 words), which makes it concise. However, it sacrifices necessary detail, so it is not appropriately sized for the tool's complexity. It could be slightly longer to include key usage notes.

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 8 parameters including required ones, no output schema, and no annotations, the description is far too sparse. It omits critical information like the need for companyName, pagination, and filtering support. The description is insufficient for an agent to use this 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 50%, meaning half the parameters are already described in the schema. The tool description adds no additional information about any parameter, failing to clarify required fields (companyName) or pagination behavior. It should compensate for the uncovered parameters but 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 the action ('Lists') and the resource ('BRC cash payments'), making the purpose understandable. However, it does not differentiate from sibling list tools like brc_list_cash_receipts or brc_list_payments, which is a missed opportunity.

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, nor any context about prerequisites or appropriate scenarios. It is a bare statement with no usage direction.

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

brc_list_cash_receiptsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description carries the full burden. It fails to disclose behavioral traits like pagination behavior, data completeness, or authorization requirements. For a list tool with pagination parameters, this is a significant gap.

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 it is too brief to be informative. It earns its place by stating the core purpose, but lacks necessary structure and detail.

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 8 parameters and no output schema, the description is incomplete. It omits pagination details, filtering, and ordering behavior, leaving the agent without sufficient context 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 50% (4 of 8 parameters have descriptions). The description does not clarify the remaining parameters (top, page, skip, pageSize) or explain how they interact. It adds no meaning beyond what the schema already provides.

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

Purpose4/5

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

The description clearly states the verb 'Lists' and the resource 'BRC cash receipts', making the basic purpose unambiguous. However, it does not differentiate from sibling tools like 'brc_list_cash_payments' or 'brc_batch_cash_receipts', which lowers the score slightly.

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 batch tools or single-get tools. There are no context clues about prerequisites or typical use cases.

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

brc_list_category_typesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations are present, so the description alone must convey behavior. It merely states the action without disclosing traits like pagination limits, filtering support, or whether it is a read-only operation. The description is too sparse to be informative.

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 at five words, which is efficient. However, it sacrifices informativeness for brevity. While not verbose, it fails to provide necessary context, making it less valuable.

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 8 parameters, no output schema, and no annotations, the description is far from complete. It omits return value details, pagination behavior, and integration context, leaving significant gaps 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?

With 50% schema coverage, the description does not compensate for undocumented parameters. It adds no explanation of parameters like 'top,' 'page,' or 'filter.' The schema itself partially describes some parameters, but the tool description contributes nothing, leaving the agent to infer meaning from parameter names alone.

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 'Lists BRC category types,' which clearly identifies the verb and resource. However, among many sibling list tools, it does not differentiate what 'category types' are nor how they differ from other lists like 'product types' or 'analysis categories.' This vagueness reduces clarity.

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 omits context such as prerequisites, filtering, or pagination usage, leaving the agent without direction on appropriate invocation.

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

brc_list_company_contextsB
Read-only
Inspect

Show connected companies and check existing Red company connections. This tool is brc_list_company_contexts. Use this when the user asks which companies are connected, show connected companies, check existing Red company connections, list connected companies, or whether a company is already connected to Red. Lists company contexts currently connected in this MCP server session. Also use when the user asks how long the connection lasts, how much time is left, when companies disconnect, when the session expires, or what timezone the expiry is in. Present the result to the user with the customerMessage text, company names, and expiryMessage when connected. Answer duration and time-left questions using connectionDurationText, timeRemainingText, expiryTimeWithTimezoneText, expiryTimezoneName, expiryTimezoneAbbreviation, expiryUtcOffset, and expiryMessage from the response — do not say you do not know the current time or that you lack a live clock when timeRemainingText is present. Do not ask the user to check their device clock. Do not say local time on its own. Customer duration answers should explain how long the connection lasts, that a fresh secure link is needed after expiry, and that the one-time connection link itself cannot be reused. Do not mention authentication classifications, empty-result logic, connectionRef, rehydration, HTTP status codes, session bindings, or other internal diagnostics in customer answers. Do not show connectionRef, activeConnectionRef, redconn_ values, session IDs, or diagnostic metadata to normal users. Do not show raw ISO expiresAt or credentialType to normal users unless they specifically ask or dev mode is enabled. Connection credentials are never returned. If you have connectionRef from brc_confirm_company_connection, pass it silently on this call when the MCP client rotates session ids. An empty list with a working connectionRef means no companies are bound yet — not a reason to start a new connection if other tools already succeeded with the same connectionRef.

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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. The description is verbose about presentation rules but lacks behavioral transparency: it doesn't state that this is a read-only operation, whether it accepts parameters beyond connectionRef, whether it has side effects, or what happens if the connectionRef is invalid. The description focuses heavily on response formatting and agent behavior rather than the tool's own behavior.

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 excessively long (over 20 sentences) and repetitive. It front-loads useful purpose information but then digresses into detailed presentation rules, guidance for handling time-related fields, and prohibitions on showing internal metadata. Many sentences could be removed or condensed without losing value. The description tries to cover too many edge cases inline.

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 that this is a list tool with one optional parameter and no output schema, the description covers the basic use case. However, it is overly verbose on presentation rules for the response while lacking information about error states, pagination, or performance. The description provides enough context for an agent to use the tool correctly in most scenarios, but the surplus of presentational guidance does not compensate for missing operation details.

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

Parameters3/5

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

Schema description coverage is 100% with only one optional parameter. The description adds value by explaining the parameter's purpose ('Opaque Red connection reference returned by brc_confirm_company_connection') and providing context about session rotation. However, the description does not add meaning beyond what the schema already provides, 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.

Purpose4/5

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

The description clearly states the tool shows connected companies and checks existing Red company connections, which is a specific verb-resource pair. It distinguishes itself from siblings like brc_confirm_company_connection and brc_start_company_connection. However, the description is somewhat bloated with extra usage instructions that dilute the core purpose.

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

Usage Guidelines4/5

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

The description explicitly lists when to use this tool (e.g., 'when the user asks which companies are connected, show connected companies, check existing Red company connections'). It does not explicitly mention when NOT to use it or name alternatives, but the context from sibling tools implies the distinction. The description includes detailed presentational guidance, which helps an agent understand the output formatting expectations.

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

brc_list_company_settingsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description alone must disclose behavior. It fails to mention that this is a read-only operation, requires a connectionRef from brc_confirm_company_connection, or how pagination works via top, page, skip, pageSize, filter, and orderBy parameters.

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 with no waste. However, it is under-informative for a tool with 8 parameters, missing critical context that would justify its 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 the tool's complexity (8 parameters, no output schema, no annotations), the description is incomplete. It omits essential details about pagination, filtering, required companyName, and the mandatory connectionRef parameter.

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 50%, but the description adds no additional meaning to the parameters. It does not explain parameters like top, page, skip, filter, orderBy, pageSize, companyName, or connectionRef beyond what the schema provides.

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

Purpose4/5

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

The description 'Lists BRC company settings' uses a specific verb and resource, making the basic purpose clear. However, it does not differentiate from numerous sibling list tools like brc_list_accounts or brc_list_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 guidance is provided on when to use this tool versus alternatives. For example, it doesn't clarify what qualifies as 'company settings' or how it differs from brc_get_company_options or brc_get_company_processing_settings.

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_transA
Read-only
Inspect

Gets a customer's account transactions, including historical transactions. Returned transactions can contain bookTranId and bookTranTypeId. When acting on a returned transaction, do not choose a CRUD endpoint from bookTypeDesc alone. Resolve bookTranTypeId against the company's /v1/bookTranTypes result first, then use the matching Red transaction tool. Do not assume bookTranId is valid for a different document endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 for behavioral disclosure. It reveals that returned transactions can contain bookTranId and bookTranTypeId, and warns about assumptions. However, it does not mention data limits, pagination, required permissions, or error scenarios, leaving gaps in 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 a single paragraph of four sentences, front-loaded with the core purpose. Every sentence adds value: purpose, key returned fields, and two critical usage warnings. No extraneous information.

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

Completeness3/5

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

Given the tool has 3 parameters, no output schema, and no annotations, the description covers the main use case and result interpretation. However, it lacks details about the return structure (e.g., whether it's an array, pagination) and does not mention the importance of connectionRef (though the schema covers it). Some gaps remain.

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

Parameters3/5

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

Schema description coverage is 100% for all three parameters (itemId, companyName, connectionRef). The description adds no additional parameter context beyond what the schema already provides. Baseline 3 is appropriate as the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool retrieves a customer's account transactions including historical ones. It uses a specific verb-resource combination ('Gets a customer's account transactions'). While it doesn't explicitly differentiate from sibling tools like 'brc_list_supplier_account_trans', the name and context make the customer-specific purpose clear.

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

Usage Guidelines4/5

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

The description provides explicit guidance on how to interpret returned transactions: resolve bookTranTypeId against /v1/bookTranTypes before using a CRUD endpoint, and not to assume bookTranId is valid for different document endpoints. This tells the agent when and how to use the output, though it does not contrast with other list tools.

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_transC
Read-only
Inspect

Gets a customer's opening balance transaction list.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 of disclosing behavioral traits. The word 'gets' implies a read-only operation, but the description does not confirm safety, idempotency, or any other behavioral characteristics such as pagination, ordering, or data limits. This is minimal disclosure.

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 (6 words) that efficiently conveys the tool's purpose. It is front-loaded with the key information. However, it could be slightly more informative without adding much length, so not a 5.

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 an output schema and the moderate complexity of a list operation, the description is insufficiently complete. It does not explain what the returned list contains (e.g., fields, data structure), whether pagination is supported, or any ordering. The agent may lack critical context to interpret results 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 input schema already documents all three parameters. The description adds no additional meaning or context beyond what the schema 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.

Purpose4/5

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

The description 'Gets a customer's opening balance transaction list' clearly states the action (gets) and resource (customer's opening balance transaction list). It is specific and distinct from sibling tools like brc_get_customer_opening_balance (which gets the balance itself) and brc_list_customer_account_trans (which lists general account transactions). However, it does not explicitly differentiate itself from siblings, so it falls short of a 5.

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

Usage 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_customer_account_trans or brc_get_customer_opening_balance. There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage solely from the 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_quotesC
Read-only
Inspect

Gets quotes for a specific customer.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesCustomer item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations are provided, so the description should disclose behavioral traits. It does not state whether this is a read-only operation, any required permissions, or side effects. The description only states the basic action, leaving agents uninformed about invariances 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?

At one sentence, it is extremely concise, but this brevity omits critical details such as what the tool returns or how to use parameters. Conciseness should not sacrifice informativeness; the description is under-specified.

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?

Without an output schema, the description should explain the return value. It does not. Additionally, with 3 parameters and no behavior details, the description is insufficient for an agent to fully understand the tool's usage. Contextual completeness is lacking.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a clear description. The tool description adds no additional meaning beyond the schema. However, it is consistent and does not introduce confusion. Baseline score of 3 is appropriate as the schema already conveys the 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 'Gets quotes for a specific customer' clearly indicates the verb (gets) and resource (quotes) with a filter (specific customer). It differentiates from sibling tools like brc_list_quotes (all quotes) and brc_get_quote (single quote by ID), but could be more specific about whether it lists all quotes for that customer.

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_quotes or brc_get_quote. There is no mention of prerequisites, when not to use, or context for choosing this tool. The description is silent on 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_customersC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations provided, so description must disclose behavior. It only says 'lists customers' without mentioning pagination, read-only nature, or side effects. Schema parameters suggest pagination but description does not elaborate.

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?

Single sentence is concise but severely under-specified for an 8-parameter tool. It lacks critical operational details and feels incomplete rather than efficient.

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 (8 params, no output schema, many siblings), the description omits essential context: company requirement, pagination, filtering, sorting, and connection reuse. Highly insufficient.

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 50%, but the tool description adds no additional meaning to any parameter. Unexplained parameters (top, skip, page, pageSize) remain ambiguous.

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 customers (verb + resource). However, it does not differentiate from sibling brc_list_customers_without_dormant, nor mention the required company context, which is essential for clarity.

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_customers_without_dormant or brc_get_customer. Missing context on company name requirement.

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_dormantC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 says 'lists' without mentioning that the operation is read-only, supports pagination via parameters, or requires a valid connectionRef. Important behavioral traits 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.

Conciseness4/5

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

The description is a single sentence of 6 words, making it very concise. However, it may be overly minimal given the tool's complexity, but for pure conciseness it scores well. Structure is appropriate.

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 completeness given the 8-parameter input schema and no output schema. It does not mention pagination, filtering, ordering, the required companyName and connectionRef, or how results relate to other tools. The agent is left without sufficient context 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 50% (4 of 8 parameters described), but the tool description adds no parameter information beyond what is in the schema. It does not explain the purpose of pagination parameters (top, skip, pageSize) or the role of connectionRef, leaving the agent to rely solely on 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 'Lists' and the resource 'BRC customers without dormant records', directly distinguishing it from the sibling brc_list_customers (which presumably includes dormant records).

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 vs alternatives, such as brc_list_customers, nor any prerequisites like requiring a connectionRef or companyName. It fails to inform the agent about selection criteria.

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

brc_list_nominal_accountsA
Read-only
Inspect

Lists BRC nominal accounts. Month 1–Month 12 nominal figures are period movements for each financial month, not balances. Running balance = opening balance + cumulative monthly movements. Do not describe individual monthly movement values as monthly balances. If the user asks for balances over time, calculate them from opening balance plus cumulative movements, or explain that only movements are available.

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations provided, the description takes on full responsibility. It clearly discloses that the data represents movements and explains how to derive balances, which is key for correct interpretation. It does not cover other behavioral aspects like pagination or error handling, but for a read-only list tool, it adds significant 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 a single paragraph of four sentences, efficiently conveying the purpose, key distinction (movements vs. balances), calculation formula, and usage advice. There is no redundancy, and every 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?

The description provides essential context about data interpretation but lacks details about the output structure, pagination parameters, or typical use cases for the other parameters. Given no output schema, more information about return fields 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 description does not add any parameter-specific meaning beyond what the input schema provides. Schema coverage is 50%, and while the description could have compensated for undocumented parameters, it focuses on data semantics rather than parameter details. Thus, it meets the baseline but does not exceed it.

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

Purpose5/5

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

The description explicitly states it 'Lists BRC nominal accounts' and clarifies the distinction between monthly movements and balances, making the tool's purpose very clear and distinguishing it from potential misinterpretations.

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

Usage Guidelines4/5

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

The description provides explicit guidance on how to interpret monthly figures as movements, not balances, and advises on how to answer balance-related queries. It does not explicitly mention when not to use the tool or alternatives, but the guidance is strong enough for correct usage.

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

brc_list_nominal_journal_batchesA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 accurately describes the read-like behavior (list, filter, order, paginate) but does not explicitly state that the tool is read-only or mention 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?

The description is concise (two sentences) with no wasted words. The first sentence states purpose and capabilities; the second provides usage context. Front-loaded effectively.

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 has no output schema, yet the description does not specify return fields or structure. For a list tool, this is a minor gap; the agent might infer from schema, but completeness would be improved by mentioning key returned fields.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description reiterates filtering by entryDate and ordering by id, which are already documented in the schema. No additional parameter semantics are added.

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

Purpose5/5

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

The description clearly states the verb ('Returns a list of'), the resource ('Nominal Journal Batches'), and adds capabilities like filtering by entryDate and ordering by id. It distinguishes from sibling list tools for 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 Guidelines4/5

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

The description advises using this tool before update or delete operations to identify the correct id and timestamp. This provides clear context, though it does not explicitly mention when not to use it or list alternatives.

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_groupsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations provided, the description should disclose behavioral traits like read-only nature, pagination, or side effects. It offers none, leaving the agent uninformed.

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 at one sentence, but it is too sparse and lacks structure. It does not front-load critical information or earn its place with meaningful 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 complexity (8 parameters, no output schema, no annotations), the description is completely inadequate. It fails to explain owner type groups, pagination, filtering, or connection management.

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. Despite schema_description_coverage of 50%, the tool has 8 parameters, and the description does not explain how to use them or what they affect.

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 owner type groups', but it does not differentiate from sibling tools like brc_list_owner_types, 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. There is no mention of prerequisites, context, 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_owner_typesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/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 only says 'lists' without mentioning pagination, filtering, read-only nature, or any other behavioral traits, leaving the agent underinformed.

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 (one sentence) with no extraneous words. However, it could benefit from a slightly more structured approach to improve clarity, but it is not 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 8 parameters, no output schema, and no annotations, the description is insufficient. It does not explain the concept of owner types, pagination behavior, or expected output, leaving the agent without enough context 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 coverage is 50%, but the description adds no parameter information. The schema itself documents some parameters, but the description does not clarify the meaning of parameters like top, page, skip, or pageSize beyond what the schema provides, failing to compensate for the coverage gap.

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 'Lists' and resource 'BRC owner types', clearly indicating the tool's function. It distinguishes itself from sibling list tools by being specific to owner types, though it 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?

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or context for use. This is a significant gap for a tool with many siblings.

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

brc_list_paymentsD
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations provided, so description must convey behavior. It only states the basic action, omitting details like pagination, filtering, ordering, authentication requirements, or side effects. The schema hints at these but description does not expose them.

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 but at the expense of completeness. The single sentence fails to provide essential guidance, making it under-specified rather than efficiently 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 (8 parameters, many sibling tools, no output schema), the description is grossly incomplete. It does not clarify the payment list scope, pagination behavior, or relationship to other payment tools, leaving the agent to rely entirely on parameter names.

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 50% (4/8 params have descriptions). The description adds no parameter information beyond the schema. Undocumented parameters like top, page, skip, pageSize lack semantic explanation, forcing the agent to infer from names.

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' is a tautology that barely adds value over the tool name. It does not specify the scope or type of payments listed, nor differentiate from sibling tools like brc_batch_payments or brc_get_payment.

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 on when to use this tool versus alternatives (e.g., brc_get_payment for a single payment, brc_batch_payments for bulk operations). No context about prerequisites or typical use cases.

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

brc_list_prepaymentsB
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 states the return type (list) and supported filtering/ordering, but does not disclose pagination behavior, rate limits, auth requirements, or other traits. This is a significant gap.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It efficiently communicates the core purpose and key optional features, fitting the tool's simplicity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 moderate complexity (6 parameters, no output schema, no annotations), the description covers the main purpose and supported options. It lacks details on pagination defaults or result format, but the schema provides sufficient parameter documentation, making the description reasonably complete.

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

Parameters3/5

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

Schema coverage is 100% with all parameters described. The description adds value by reinforcing that filter applies to entryDate and orderBy to id, but does not explain top, skip, companyName, or connectionRef. It provides marginal added meaning beyond the schema, warranting the baseline 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 returns a list of the company's Prepayments with a specific verb and resource. It distinguishes from sibling tools like brc_get_prepayment (singular) but does not explicitly differentiate from other list tools beyond the resource name, so it is clear but could be more explicit.

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 by entryDate and optional ordering by id, which provides implicit usage context. However, it does not provide explicit guidance on when to use this tool vs alternatives (e.g., brc_get_prepayment for single records) 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_productsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 but only says 'Lists BRC products.' It fails to mention pagination behavior, filtering capabilities, whether dormant products are included, or the response format.

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, making it extremely concise and front-loaded. No unnecessary words or repetition, though it could benefit from structuring to include key behavioral notes.

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 8 parameters, no output schema, and no annotations, the description is severely incomplete. It omits information about pagination (page, pageSize, top, skip), filtering, ordering, and the purpose of parameters like connectionRef, which are critical 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?

Schema description coverage is 50% (4 of 8 params documented). The description adds zero parameter information, failing to compensate for the low coverage as required. It does not explain any parameter usage beyond what's 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 'Lists BRC products', identifying the verb and resource. However, it does not distinguish this tool from the similar sibling 'brc_list_products_without_dormant', missing an opportunity for differentiation.

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

Usage 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_products_without_dormant' or other list tools. The description offers no usage 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_list_products_without_dormantC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 pagination, rate limits, idempotency, or any side effects. The agent is left 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.

Conciseness3/5

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

The description is a single concise sentence with no wasted words. However, it is too sparse, sacrificing necessary detail for brevity. It is acceptable but not exemplary.

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 8 parameters, no output schema, and no annotations, the description is severely incomplete. It fails to explain the filter condition, pagination behavior, or 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?

With 50% schema description coverage, the description adds no meaning to the parameters. It does not explain the filter condition 'without dormant' in terms of parameters or provide context for the pagination 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 clearly states the verb 'lists' and the resource 'BRC products', and adds a filter condition 'without dormant records'. This distinguishes it from brc_list_products, though it does not explicitly name the sibling.

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

Usage 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_list_products or other list tools. The description implies a purpose but lacks explicit usage instructions 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_product_typesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It only states it lists product types, omitting details about pagination, filtering, ordering, or required parameters like companyName. For a tool with 8 parameters, 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.

Conciseness2/5

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

The description is overly terse. While concise, it sacrifices useful detail. It is a single sentence that merely restates the tool's name, failing to front-load any additional value. Every sentence should earn its place; this one doesn't.

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 complexity of 8 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain return values, pagination behavior, or the necessity of companyName. A more complete description would cover these aspects.

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 50% (4 of 8 parameters have descriptions). The description adds no explanation for any parameter, leaving the agent to rely solely on the schema. The schema's parameter descriptions are minimal, and the description does not compensate for the missing ones.

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 product types,' which clearly identifies the action (list) and resource (product types). However, it does not distinguish this tool from similar sibling tools like brc_list_products or brc_list_products_without_dormant, missing an opportunity to clarify differences.

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 imply different resource scopes, but the description offers no context on when to pick product types over products or other lists.

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

brc_list_purchasesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It only says 'lists,' omitting that it likely returns a paginated list (as inferred from schema parameters), that it is read-only, or any authentication or data-consistency implications. This under-description hinders correct tool invocation.

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 (one sentence) but lacks structure or front-loading of key information. Important details are absent, making it under-informative rather than efficiently compact.

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 (8 parameters, many sibling tools, no output schema), the description is severely incomplete. It does not explain return values, pagination, filtering, or connection handling, leaving the agent with insufficient 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?

The description adds no meaning beyond the input schema. With 50% schema description coverage, several parameters (e.g., top, page, skip) lack documentation in both schema and description. The description fails to explain how parameters like filter or orderBy work.

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 'Lists BRC purchases,' which is a clear verb+resource combination. However, it does not differentiate this tool from many sibling list tools (e.g., brc_list_sales, brc_list_payments) or the batch variant brc_batch_purchases, making it ambiguous for an agent to choose 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 is provided on when to use this tool versus alternatives like brc_get_purchase or brc_batch_purchases. There is no mention of prerequisites, filtering capabilities, or context for invocation.

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

brc_list_quotesA
Read-only
Inspect

Lists BRC quotes. List and get may not return the same fields (for example note or analysis account codes); treat those as representation differences, not as create or update failures. Quote references are not necessarily unique — identify a quote by id.

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

The description adds significant behavioral context beyond what is available from annotations (which are absent). It warns about representation differences between list and get, and clarifies that quote references are not unique. This helps the agent understand edge cases without needing to discover them through errors.

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

Conciseness5/5

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

The description is concise with three short, dedicated sentences. Each sentence adds unique information: one for purpose, one for field representation, and one for identity uniqueness. No filler or redundancy.

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

Completeness4/5

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

Given the tool has 8 parameters with 50% schema coverage and no output schema, the description does a good job addressing core behavioral concerns (field differences, identity) but falls slightly short on providing comprehensive parameter guidance for all 8 parameters. The key pain points for an agent are covered.

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

Parameters3/5

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

The description does not mention any parameters, but schema coverage is 50% meaning the schema already provides descriptions for 4 of 8 parameters. The description adds value by clarifying that companyName is required and providing guidance on connectionRef, but the remaining 4 undocumented parameters (like filter and orderBy) lack explanation beyond what the schema provides.

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

Purpose5/5

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

The description clearly states 'Lists BRC quotes', which is a specific verb+resource combination. It distinguishes itself from sibling tools like brc_get_quote by warning about field differences between list and get operations, which is a valuable differentiation.

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

Usage Guidelines4/5

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

The description provides good context on when to use this tool by noting that list and get may return different fields and that quote references are not unique. However, it does not explicitly exclude any usage scenarios or mention alternatives beyond the implicit comparison with get.

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

brc_list_salesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 disclosing behavioral traits. However, it only says 'lists combined' without detailing any side effects, required permissions, rate limits, or how the combination works (union, aggregation, etc.).

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 with no wasted words, making it concise. However, it is underspecified for a tool with 8 parameters and many siblings; the conciseness comes at the cost of missing critical information.

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's complexity (8 parameters, no output schema, many siblings), the description fails to explain pagination, filtering, ordering, the meaning of 'combined', or the required connectionRef. It is inadequate for an agent to use the tool effectively 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?

The description does not reference or explain any of the 8 input parameters. Although the schema covers 50% (e.g., filter, orderBy, companyName, connectionRef have descriptions), the description adds no additional meaning, leaving the agent to infer usage entirely from 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 the tool lists combined BRC sales entries, sales invoices, and sales credit notes. This clearly distinguishes it from sibling tools that list each type individually, providing a specific verb and resource scope.

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 offers no guidance on when to use this tool versus the individual list tools (e.g., brc_list_sales_entries). There is no mention of context, prerequisites, or scenarios where the combined list is preferred.

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_notesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

Description does not disclose behavioral traits such as pagination, filtering, or read-only nature. Since no annotations exist, the description should provide these details but fails to do so.

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 extremely concise at one sentence. While it is front-loaded, it is arguably too brief, but efficiency earns a 4.

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 8 parameters and no output schema or annotations, the description is incomplete. It omits essential context like the need for a company connection, pagination behavior, and return format.

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 50% with some parameters described, but the description adds no additional meaning to the parameters. It does not explain the purpose of parameters like top, page, skip, etc.

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 'Lists BRC sales credit notes' which is a specific verb and resource. However, it does not distinguish from sibling list tools like brc_list_sales_invoices or brc_list_sales_entries, but the naming convention makes it clear enough.

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 such as brc_get_sales_credit_note or brc_batch_sales_credit_notes. No context on prerequisites like establishing a company connection.

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

brc_list_sales_entriesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. It only says 'lists', implying a read operation, but does not explicitly state read-only nature, permissions required, return behavior, or any side effects. This is minimal for a 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?

The description is extremely concise with a single sentence. It is front-loaded and contains no filler. However, it sacrifices informativeness for brevity, but as a standalone it is efficient.

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 8 parameters, no output schema, and multiple sibling tools, the description is severely incomplete. It does not explain what a sales entry is, how pagination works, what the filter/orderBy parameters do, or how the connectionRef should be used. The tool's complexity demands much more detail.

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. Schema description coverage is 50%, meaning half the parameters lack descriptions in the schema, yet the description does not compensate by explaining any parameter usage, such as pagination or filtering nuances.

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 sales entries' clearly states the verb (lists) and resource (BRC sales entries). It distinguishes from sibling list tools by specifying the exact resource type, though it does not differentiate further.

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 mention when to use this tool versus alternatives, such as brc_list_sales or brc_list_sales_invoices, nor does it give context about 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_sales_invoicesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

The description only says 'Lists BRC sales invoices' with no behavioral details. It does not mention pagination, filtering capabilities, read-only nature, authentication requirements, or any side effects. Without annotations, the description fails to disclose important behavioral traits evident from the input schema parameters (e.g., top, page, filter).

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 (only 2 words) but at the expense of necessary information. It is under-specified and fails to convey critical context that an agent needs to use the tool correctly. Simplicity is not an excuse for incompleteness.

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 (8 parameters, 50% schema coverage, no output schema, many sibling tools), the description is wholly inadequate. It lacks any explanation of pagination, filtering, output format, or prerequisites (e.g., requiring a valid connectionRef from brc_confirm_company_connection). The description does not enable proper tool selection or 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 50% coverage and includes some descriptions for filter, orderBy, companyName, and connectionRef. However, the description adds no additional meaning to parameters like top, page, skip, or pageSize. It does not explain how to use pagination or filtering, leaving the agent without guidance on parameter usage 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?

The description states the verb 'Lists' and resource 'BRC sales invoices,' but it does not differentiate from sibling list tools like brc_list_sales_credit_notes or brc_batch_sales_invoices. The purpose is clear but lacks specificity to distinguish among many similar 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 such as brc_batch_sales_invoices or brc_list_sales. There are no conditions for use, exclusions, or references to sibling tools.

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

brc_list_sales_repsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

With no annotations provided, the description carries full burden but only says 'Lists BRC sales reps.' It does not disclose pagination, filtering, required companyName, or any behavioral traits like 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?

The description is a single sentence, concise and front-loaded. However, it is too terse given the complexity of the tool.

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 8 parameters, no output schema, and no annotations, the description is insufficient. It omits key details like pagination, filtering, and connection 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?

Schema description coverage is 50%, yet the description adds no parameter meaning beyond the schema. It does not explain pagination (top, skip, pageSize), filtering, or the required companyName and connectionRef.

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

Purpose4/5

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

The description clearly states the tool lists BRC sales reps. However, it does not distinguish this from sibling tools like brc_list_sales or brc_batch_sales_reps, 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 on when to use this tool versus alternatives. Lacks explicit 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_list_supplier_account_transB
Read-only
Inspect

Gets a supplier's account transactions, including historical transactions. Returned transactions can contain bookTranId and bookTranTypeId. When acting on a returned transaction, do not choose a CRUD endpoint from the display description alone. Resolve bookTranTypeId against the company's /v1/bookTranTypes result first, then use the matching Red transaction tool. Do not assume bookTranId is valid for another document endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesSupplier item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/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 behavioral disclosure. It warns that bookTranId may not be valid for other endpoints and that the agent should not rely on display descriptions to choose CRUD endpoints. However, it does not mention idempotency, rate limits, authentication requirements, or the full return structure. The description adds some transparency but leaves significant gaps.

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 five sentences and front-loaded with the purpose. Every sentence adds value, particularly the important behavioral warnings. It is concise without being terse, though the guidance could be slightly more compact. Overall, it is well-structured 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 no output schema, the description should explain return values more thoroughly. It mentions that transactions can contain bookTranId and bookTranTypeId, but does not describe other fields, pagination, or filtering. The tool has only 3 parameters, all well-described in schema, but the lack of output details leaves the agent guessing about the response structure. The post-call guidance partially compensates, but completeness is only adequate.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no additional meaning to itemId, companyName, or connectionRef beyond what is in the schema. The baseline of 3 is appropriate as the description does not need to compensate for missing schema info, but also does not enrich 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 the tool 'Gets a supplier's account transactions, including historical transactions.' This provides a specific verb-resource pair. It is not confused with sibling tools like brc_list_customer_account_trans or brc_list_supplier_op_bal_trans, though it does not explicitly differentiate from them. The scope is clear enough for an agent to understand the main purpose.

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

Usage Guidelines3/5

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

The description gives important post-call guidance on how to handle returned bookTranId and bookTranTypeId, but it does not state when to use this tool versus alternatives like brc_list_supplier_op_bal_trans or brc_get_supplier. There is no when/when-not or explicit context for choice. The usage is implied by the name and purpose, but not explicitly guided.

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_transB
Read-only
Inspect

Gets a supplier's opening balance transaction list.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemIdYesSupplier item id.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior2/5

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

No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only states that the tool 'Gets' data, but does not mention side effects, authentication needs, rate limits, pagination, or what the return format is. This is inadequate for a 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?

The description is a single sentence with no fluff. It is concise and front-loaded. However, it could be slightly more structured to include usage context without sacrificing 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 the tool has 3 parameters, no output schema, and is one of many list tools, the description is too minimal. It does not explain what fields the list contains, when the tool is appropriate, or how it differs from similar tools. The agent would lack critical context to use it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter already has a description. The tool description adds no further meaning beyond the schema. According to guidelines, baseline is 3 when coverage is high. There is no added value from the 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 'Gets a supplier's opening balance transaction list' uses a specific verb (Gets) and clearly identifies the resource (supplier's opening balance transaction list). It distinguishes from sibling tools like brc_list_supplier_account_trans (which likely lists all transactions) and brc_get_supplier_opening_balance (which probably gets the balance amount).

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_list_supplier_account_trans. The description does not specify prerequisites, context, or when not to use it. The agent receives no help in differentiating usage.

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

brc_list_suppliersC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior1/5

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

No annotations exist, and the description fails to disclose any behavioral traits. It does not mention that this is likely a read-only, paginated operation, nor does it note potential performance implications or required permissions.

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 fails to convey useful information beyond the tool name. It does not 'earn its place' because it adds no value for 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 the tool has 8 parameters, no output schema, and no annotations, the description is grossly incomplete. Essential information about pagination, filtering, and the required connectionRef parameter is missing.

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 50%, meaning some parameters lack descriptions. The tool description adds no additional meaning beyond the schema. Key parameters like pagination (top, skip) and filtering (filter, orderBy) are not explained in context.

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 specifies the action ('Lists') and resource ('BRC suppliers'), which is clear but very minimal. It does little to distinguish from sibling list tools 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 vs alternatives like brc_list_supplier_account_trans or brc_list_suppliers_without_dormant. No context about prerequisites, pagination, or filters 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_user_defined_fieldsC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 'Lists' without clarifying read-only nature, authentication requirements, pagination behavior, or any side effects. The agent has no insight into what happens during invocation.

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 at one sentence, which is efficient. However, the brevity sacrifices useful details that could fit without bloat. Still, it earns high marks for being front-loaded and minimal.

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 8 parameters and no output schema, the description is too sparse. It fails to explain what user defined fields are, how results are structured, or pagination limits. The tool's complexity demands more context, especially among many sibling 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 adds no parameter information beyond what is in the schema. With only 50% schema coverage, the description should compensate by explaining key parameters like companyName or pagination controls, 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 it lists BRC user defined fields, which is specific and unambiguous. However, it does not differentiate from sibling list tools beyond the tool name, missing an opportunity to highlight uniqueness among many similar 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. The description lacks context on prerequisites, filtering support, or scenarios where this tool is preferred over other list tools.

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_typesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 of disclosing behavioral traits. It only states that it lists types, with no mention of read-only behavior, authentication needs, rate limits, or side effects. This is a significant gap for a tool with a mutation-capable sibling set.

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 extremely concise (one sentence), it is under-specified and omits critical information needed for correct tool usage. The brevity sacrifices usefulness, making it closer to a tautology than a helpful guide.

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 8 parameters, a required companyName, no output schema, and 50% schema description coverage, the description is woefully incomplete. It provides no information on return values, pagination behavior, or the meaning of 'VAT analysis types' in context, leaving the agent to guess.

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 explain any parameter beyond the schema's own descriptions (50% coverage). It adds no context on how fields like 'top', 'page', 'skip', or 'companyName' affect the listing, nor does it clarify that 'connectionRef' must be reused. The schema descriptions for some parameters exist, but the description fails to tie them together.

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 VAT analysis types', making the purpose understandable. However, it does not differentiate from sibling tools like brc_list_vat_types or brc_list_vat_categories, which list similar entities, so it lacks sibling differentiation.

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

Usage 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, nor any prerequisites or exclusions. The description is minimal and offers no decision-making support for the agent.

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

brc_list_vat_categoriesA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior3/5

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

No annotations are provided, so the description should disclose behavioral traits fully. It correctly implies this is a read-only listing operation but does not mention pagination, filtering, or that results are pageable despite the input schema including pagination parameters. The business rule is helpful but does not cover all behavioral aspects.

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

Conciseness5/5

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

The description is three sentences long, front-loads the purpose, provides examples, and includes a critical business rule. No redundant or unnecessary information—every sentence earns its place.

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

Completeness3/5

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

Given the 8 parameters and no output schema, the description is somewhat incomplete. It covers the core purpose and business rule but omits details about the output structure (e.g., which fields are returned) and does not mention that the tool supports optional pagination or filtering, which are important 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 50% (4 of 8 parameters have descriptions), but the description adds no parameter-specific information. It does not explain how to use pagination (top, page, skip), filtering, or the required companyName parameter beyond what the schema provides. The examples of categories do not aid 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 the tool lists BRC VAT categories, provides concrete examples (Sales, Purchases for Resale, etc.), and explains the purpose: to determine which VAT category a VAT rate belongs to. It also includes a critical business rule about sales documents, distinguishing it from siblings like brc_list_vat_rates and brc_list_vat_types.

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

Usage Guidelines4/5

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

The description explicitly tells when to use this tool (to identify VAT categories for rates) and provides a key constraint: sales invoices/credit notes must use Sales VAT categories. However, it does not explicitly mention when not to use it or suggest alternatives like brc_list_vat_rates for rate-specific needs.

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

brc_list_vat_ratesA
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 behavioral traits such as read-only nature, pagination behavior, or any side effects. The implied read-only nature from the name is insufficient, and the description lacks any warnings or authorization requirements.

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

Conciseness5/5

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

The description is exceptionally concise, consisting of three clear sentences. It is front-loaded with the main action and each sentence contributes valuable information without redundancy.

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 8 parameters and no output schema, the description only covers the tool's purpose and basic usage of the returned data. It does not explain parameters like companyName, connectionRef, pagination, or filtering, leaving significant gaps for an agent to use the tool correctly.

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

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 for any of the 8 parameters. With only 50% schema description coverage, the description fails to compensate for parameters like top, skip, pageSize, and filter, which are left 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 that the tool lists VAT rates and explains their relationship to VAT categories via vatCategoryId. It distinguishes itself from sibling tools like brc_list_vat_categories by providing usage context for sales vs purchase categories.

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 the agent to use a VAT rate with a Sales vatCategoryId for sales invoices/credit notes, even if a purchase rate has the same percentage. It also recommends cross-referencing brc_list_vat_categories to properly group rates before selecting one.

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

brc_list_vat_typesC
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 simply says 'Lists' without mentioning pagination, filtering, required parameters, or side effects. The presence of 8 parameters suggests complexity not addressed.

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 short sentence, which is concise but at the expense of substance. Important details about pagination, filtering, or returned data are omitted, making it less useful than a slightly longer but informative description.

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 8 parameters (1 required) and no output schema, the description is severely lacking. It provides no information about input semantics, expected output format, or error conditions, leaving agents underinformed.

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 50%, and the description adds no value beyond repeating the tool's function. It does not explain how parameters like top, page, filter, or companyName affect results, so agents get no help from the 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 states 'Lists BRC VAT types', which is a clear verb and resource. While it distinguishes from sibling tools like brc_list_vat_rates, it lacks any additional context such as scope or format.

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_vat_categories or brc_list_vat_analysis_types. There are no exclusions or context cues 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_multi_company_nom_ac_reportA
Read-only
Inspect

Creates a grouped nominal accounts report for multiple companies using GET /v1/nominalAccounts for each company. Month 1–Month 12 nominal figures are period movements for each financial month, not balances. Running balance = opening balance + cumulative monthly movements. Do not describe individual monthly movement values as monthly balances. If the user asks for balances over time, calculate them from opening balance plus cumulative movements, or explain that only movements are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNamesYesThe company names to report on.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 month values are period movements (not balances), provides the formula for running balance, and instructs on correct language (avoid saying 'monthly balances'). It also mentions the source endpoint. It does not explicitly state the tool is read-only, but the 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 four sentences, with no wasted words. It front-loads the core action, then explains key behavioral details, and ends with actionable guidance. 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 tool's moderate complexity (multi-company, monthly movement semantics), no output schema, and full schema coverage, the description adequately covers what the tool does, how the data should be interpreted, and how to handle user queries about balances. It is complete enough 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.

Parameters5/5

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

Schema coverage is 100%, and the description adds substantial value beyond the schema: it explains that connectionRef must be reused from brc_confirm_company_connection and should not be restarted on empty results. This significantly aids correct invocation.

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

Purpose5/5

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

The description clearly states the tool creates a grouped nominal accounts report for multiple companies, using a GET endpoint for each company. It distinguishes itself from the likely single-company sibling brc_grouped_nominal_accounts_report by emphasizing multi-company scope.

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

Usage Guidelines3/5

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

While the description provides guidance on interpreting the month figures and how to handle balance queries, it does not explicitly state when to use this tool over other reporting or data retrieval tools. The usage context is implied but not contrasted with alternatives.

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

brc_open_edu_adminA
Read-only
Inspect

Return the protected URL for Red's content administration page (Freshdesk articles, YouTube videos, and visibility controls). Use when a Big Red Book / Big Red Cloud staff member asks to open Red's admin page, the BRC Edu admin page, or the content resources admin. Returns only the customer-facing protected admin URL — never a shared secret, query parameter, token, or bypass link. Opening the link still requires Microsoft Entra sign-in; only authorised staff can access the page. Does not bypass authentication. Does not require a connected company. Do not invent or append secret query parameters. Do not expose BRC_EDU_ADMIN_UPLOAD_SECRET or any upload secret.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 disclosing behavior. It states that the tool returns only a protected URL, requires Microsoft Entra sign-in, doesn't bypass authentication, doesn't require a connected company, and warns against exposing secrets. These details go well beyond a generic statement and give the agent a clear behavioral model.

Agents need to know what a tool does to the world before calling it. Descriptions 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 and then provides necessary security and usage context. Each sentence adds value—especially the explicit warnings about not exposing secrets. Despite its length, it remains tightly focused and avoids redundancy.

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

Completeness5/5

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

For a zero-parameter URL-returning tool, the description is complete. It covers what the tool returns, who should use it, the authentication requirement, and critical security boundaries. There is no output schema, but the description clearly states that the return value is a protected URL.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description correctly does not attempt to document nonexistent parameters, and it clarifies that no connected company is required, which could otherwise be mistaken for a prerequisite. The empty schema leaves nothing else to explain.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Return the protected URL for Red's content administration page.' It clearly names the page's contents (Freshdesk articles, YouTube videos, visibility controls), and this tool is distinct from all sibling tools, which mostly handle accounting operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select 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 a Big Red Book / Big Red Cloud staff member asks to open Red's admin page, the BRC Edu admin page, or the content resources admin. It doesn't explicitly name alternative tools, but the context is sufficiently clear and unambiguous.

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_ratesA
Destructive
Inspect

Processes VAT rates for VAT categories via POST /v1/vatCategories/vatRates. Requires a full vatCategoryRates array and confirmProcess=true. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
payloadNoDeprecated. Use vatCategoryRates instead of a raw payload object.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
effectiveDateNoNot a valid standalone payload. Use vatCategoryRates instead.
confirmProcessNo
vatCategoryRatesNoFull BRC payload array for POST /v1/vatCategories/vatRates, e.g. [{ vatCategoryId: 1, vatRates: [...] }].
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 discloses the prerequisite routeToken requirement, explicitly states that routeToken is not permission to post, and reminds that confirmations still apply. It also specifies that a full vatCategoryRates array and confirmProcess=true are required. However, it does not describe the success/error response format or any potential side effects beyond the implied POST operation, so it is not a perfect transparency score.

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

Conciseness4/5

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

The description is moderately concise at about five sentences, front-loading the core action and endpoint before explaining requirements. Each sentence adds useful context (endpoint, payload requirements, routeToken workflow, and permission limits). It could be tightened slightly by merging repeated routeToken instructions, but it remains efficiently structured and free of fluff.

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

Completeness4/5

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

Given the tool's complexity (8 parameters, nested objects, no output schema, no annotations), the description covers the essential workflow prerequisites and the role of routeToken. It does not explicitly describe return values or error handling, but with no output schema and high schema coverage, this is a minor gap. The description sufficiently orients an agent toward the correct sequencing and confirmation obligations.

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 high (88%), and the description adds meaningful semantics beyond the schema: it emphasizes a 'full' vatCategoryRates array, explicitly requires confirmProcess=true, and clarifies the source and lifecycle of routeToken. It also warns against placeholder tokens. The schema itself covers most parameters, so the description provides valuable context on critical parameters like confirmProcess and vatCategoryRates. A score of 4 reflects this additional clarification.

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

Purpose5/5

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

The description clearly identifies the action ('Processes VAT rates for VAT categories') and the specific endpoint ('POST /v1/vatCategories/vatRates'). It unambiguously distinguishes this from sibling tools such as brc_list_vat_rates and brc_list_vat_categories by focusing on the processing/write operation rather than listing.

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: call brc_route_request first, retain and reuse the same routeToken, pass it on the final transactional call, and never invent a placeholder token. It also clarifies that routeToken alone does not grant permission to post, and that preview-before-posting plus confirmWrite/confirmDelete still apply. This effectively tells when and how to use the tool relative to the routing workflow.

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

brc_red_helpA
Read-only
Inspect

MANDATORY FOR RED-HELP COMMANDS: When the user's message starts with red-help or /red-help, call this tool before searching for or calling any accounting action tool. Red Help — Manual Instructions and Resources. This tool is brc_red_help. Also use it for Big Red Cloud help and how-to questions: how do I, how can I, show me how, tell me how, where do I, what are the steps, tutorial, help article, and manual instructions in Big Red Cloud. This tool gives manual Big Red Cloud instructions and searches Freshdesk, YouTube, BRC Edu, webinars, screenshots and other available help resources. red-help means the user does not want Red to perform the accounting action — never replace a red-help request with create, update, delete or post tools. Pass the text after red-help as the query. Examples: User: "red-help how do I add a sales invoice" Call: brc_red_help({ query: "how do I add a sales invoice" }) User: "/red-help add a customer manually" Call: brc_red_help({ query: "add a customer manually" }) Searchable for common accounting-help topics: manual instructions, how to, help article, tutorial, screenshots, sales invoice, purchase invoice, customer, supplier, bank reconciliation, credit note, payment, receipt, VAT, reports and company setup. Read-only. Does not require a connected company, companyName, connectionRef, or accounting record details. After results, call brc_get_help_resource_details for the best Freshdesk match with includeImages=true and imagePresentation=links. Recommended entry point for reserved red-help / /red-help commands. brc_find_help_resources remains available for backward compatibility.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesText after the red-help command, for example how do I add a sales invoice or add a customer manually.
Behavior5/5

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

Since no annotations are provided, the description carries the full burden. It clearly states the tool is read-only, does not require a connected company or accounting details, and searches multiple help resources (Freshdesk, YouTube, BRC Edu, webinars, screenshots). No contradictions with 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 fairly long but all sentences earn their place: mandatory usage note, tool purpose, when to use, parameter explanation, behavioral traits, and post-call instructions. Could be slightly trimmed (e.g., repeated phrases), but it's clearly structured and front-loaded with the critical mandatory note.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 explains what the tool does (searches help resources), its read-only nature, and what to do after (call brc_get_help_resource_details). It covers the tool's role in the broader workflow, making it fully actionable for the AI agent.

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

Parameters5/5

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

Schema coverage is 100% for the single 'query' parameter. The description adds significant meaning by explaining the parameter as 'Text after the red-help command' and providing concrete examples (e.g., 'how do I add a sales invoice' and 'add a customer manually'), which goes 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 tool is for handling red-help or /red-help commands and general help/how-to questions in Big Red Cloud. It specifies the verb 'call this tool' and resource 'manual instructions and help resources', and distinguishes it from sibling tools by noting it is mandatory for red-help commands and that brc_find_help_resources remains for backward compatibility.

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 user message starts with 'red-help' or '/red-help'. Also gives when-not-to-use: never replace a red-help request with update tools. Provides examples of how to call with the query parameter, and instructs the agent to call brc_get_help_resource_details after results.

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 of behavioral disclosure. It does reveal important behaviors: the need for a routeToken, that it is a transactional tool, and that preview-before-posting and confirmation are still required. However, it does not state whether the operation is reversible, what permissions are needed, or what happens to the quote's state beyond 'reopen.' This is a moderate level of 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?

The description is fairly concise at four sentences, and each sentence adds valuable context: the action, the prerequisite, the workflow steps, and a security warning. It could be slightly tightened by reducing repeated mentions of 'routeToken,' but overall it is well-structured and direct.

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 a mutation with no annotations and no output schema, so the description must cover the key context. It explains the routeToken workflow and confirmation requirement, which are critical. However, it does not describe the return value or any post-condition of reopening a quote. Given the moderate complexity and the absence of structured metadata, the description is adequate but not fully complete.

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

Parameters3/5

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

The input schema has 100% coverage with detailed descriptions for all parameters, including id, routeToken, companyName, confirmWrite, and connectionRef. The description adds some context about routeToken's role and confirmation, but the schema already provides the necessary parameter semantics. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's action: 'Reopens a BRC quote.' This is a specific verb and resource, and 'reopen' uniquely distinguishes it from sibling tools like brc_close_quote or brc_update_quote. No ambiguity remains about what the tool does.

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

Usage Guidelines4/5

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

The description provides explicit usage context: it requires a routeToken from brc_route_request, and instructs to call that first and retain the token through the workflow. It also warns against inventing placeholder tokens and reminds that confirmWrite/confirmDelete still apply. While it doesn't explicitly compare to alternatives, the workflow guidance is clear and practically sufficient.

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

brc_resolve_book_transaction_typeA
Read-only
Inspect

Resolves a bookTranTypeId from a BRC customer or supplier account transaction against the connected company's live /v1/bookTranTypes list. Use this before choosing a get/update/delete transaction tool when accountTrans returns bookTranId and bookTranTypeId. Do not infer the document type from bookTypeDesc alone and do not assume transaction type ids are globally fixed across companies.

ParametersJSON Schema
NameRequiredDescriptionDefault
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
bookTranTypeIdYes
Behavior4/5

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

Annotations already provide readOnlyHint=true and destructiveHint=false, so the description doesn't need to repeat safety. It adds valuable context about IDs being company-specific and not globally fixed, which is a key behavioral caveat. Also highlights that resolution is against the live list, implying freshness. No contradiction with annotations.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and usage. The first sentence states what it does; the second gives when-to-use and crucial cautions. No fluff, every sentence earns its place.

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

Completeness4/5

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

The tool is a simple resolver with no output schema, and the description effectively explains its role and inputs. However, it does not explicitly state what it returns (e.g., the resolved bookTranType object or just confirmation). Given the lack of output schema, a bit more clarity on the return value would improve completeness, but the description is adequate for the tool's purpose.

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

Parameters3/5

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

Schema coverage is 67% with descriptions for companyName and connectionRef; bookTranTypeId has constraints but no description. The description mentions accountTrans and the live list, providing context for bookTranTypeId and companyName, but doesn't add format or syntax details beyond schema. It doesn't compensate fully for the missing bookTranTypeId description, but the schema constraints are clear enough. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's action: resolving a bookTranTypeId from a customer or supplier account transaction against the company's live bookTranTypes list. It specifies the input source (accountTrans) and the target (live list), and distinguishes it from sibling get/update/delete transaction tools by positioning it as a preparatory 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?

Explicit when-to-use guidance is provided: 'Use this before choosing a get/update/delete transaction tool when accountTrans returns bookTranId and bookTranTypeId.' It also gives explicit warnings against alternatives (do not infer from bookTypeDesc, do not assume global IDs), which clarifies when not to use this tool and what to avoid.

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

brc_route_requestA
Read-only
Inspect

MANDATORY FIRST STEP for broad Red requests involving read, create, update, delete, correct, undo, reverse, email, or batch actions. This tool is brc_route_request. Classify and route a user request between Red's two main behaviours: action (perform the accounting workflow) and help (manual Big Red Cloud instructions). Also returns connection, read, correction, unsupported_action, or unknown when those specialised modes apply. Pass the user's complete original message — never only a confirmation word such as yes or delete it when starting a new action. Action mode always returns a non-empty preferredTools list, allowedTools, and an opaque short-lived routeToken — pass that routeToken on every subsequent transactional tool call for the permitted workflow, including after lookup and preview. unsupported_action means Red cannot map the request to an enabled workflow — explain that to the user; do not invent a routeToken. Help mode runs the unified help search, returns manual resources, sets blockTransactionalTools true, and never issues a transactional routeToken. How-to wording (how do I, how can I, show me how, tell me how, where do I, what are the steps, manual steps for, red-help, /red-help) → mode help. Explicit action wording (add a customer, create a sales invoice, delete customer ABC, can you add a customer for me) → mode action with routeToken. Correction / undo / reverse / put it back / change it back / restore wording → mode correction: plan first, do not write immediately, and do not issue a transactional routeToken. This first request is not write confirmation. A routeToken does not replace preview-before-posting or user confirmation (confirmWrite). Help mode does not persist — each brc_route_request call is classified independently unless returning confirmation continuation for a pending preview. Read-only classification and help search. Does not require a connected company. When a company is already connected, pass connectionRef silently so the routeToken can bind to that connection and survive MCP session rotation.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesThe user's complete original message to classify, for example add a customer or how do I add a customer.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/5

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

With no annotations present, the description carries the full burden of behavioral disclosure. It thoroughly discloses that the tool is read-only, does not require a connected company, returns a routeToken for action mode, sets blockTransactionalTools for help mode, and warns against inventing a routeToken for unsupported actions. This is comprehensive and leaves no hidden 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 quite lengthy but well-structured with clear logical sections. Every sentence adds value, and the complexity of the tool justifies the length. However, some sentences could be tightened without losing meaning, and the front-loading with 'MANDATORY FIRST STEP' is effective. Still, it is slightly more verbose than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (multiple routing modes, return values, and edge cases), the description is remarkably complete. It explains the return behavior for each mode, covers special cases like correction and unsupported_action, and provides guidance on connectionRef and session persistence. Without an output schema, the description adequately fills the gap.

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

Parameters5/5

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

Although the input schema already provides descriptions for both parameters (100% coverage), the description adds significant context: for 'message', it specifies that it must be the complete original message and never just a confirmation word; for 'connectionRef', it explains how to reuse it across calls and warns against creating new connections unnecessarily. This greatly enhances the agent's understanding of correct 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 explicitly states that this is the mandatory first step for a broad range of Red requests, and it classifies and routes user requests into specific modes (action, help, correction, etc.). It clearly distinguishes its purpose from the many sibling tools that perform specific actions, making it unique and well-defined.

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, explicit guidance on when to use this tool, what to pass (complete original message, not confirmation words), and how to handle different modes (action vs help vs correction). It also explains what to do with unsupported_action, that help mode does not persist, and when to pass connectionRef, leaving no ambiguity for the agent.

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

brc_send_email_statementA
Destructive
Inspect

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 an email preview or attempting a workaround. Do not call this tool with confirmSend=true until the user has reviewed a plain-English email preview and explicitly confirmed they want to send it. The email preview 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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmSendNoMust be true only after the user has reviewed the email preview 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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/5

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

With no annotations, the description carries full transparency burden and delivers: it discloses the confirmation workflow (confirmSend only after user review), the no-recipient stop behavior, the separation of posting confirmation and email send confirmation, and the routeToken's permission limits. This is exemplary disclosure of side effects and prerequisites.

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 lengthy but structured and every sentence provides operational guidance. It is front-loaded with the core purpose, then covers constraints, workflow, and edge cases. It avoids fluff but would benefit from tighter phrasing for the repeated 'do not' instructions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (14 params, routing, multi-recipient logic, confirmation), the description covers the critical operational workflow thoroughly. However, since there is no output schema, the absence of any mention of what the tool returns (e.g., success/failure, sent email ID) leaves a small completeness gap.

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

Parameters4/5

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

Although schema coverage is 100%, the description adds valuable parameter context, such as the meaning of confirmSend (only after explicit confirmation), sendMode restrictions (separate only on explicit user choice), and the behavior when toAddress is empty (must ask for recipient). These enrich the bare schema descriptions, so it earns above the baseline 3.

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

Purpose5/5

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

Description opens with 'Sends a customer statement email,' clearly identifying the verb and resource. It explicitly restricts to supported document types, distinguishing from sibling email tools (e.g., brc_send_sales_invoice_email, brc_send_quote_email) by stating statements are the only supported type here and listing unsupported 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 guidance: says to tell users when a document type is unsupported, lists supported types, and instructs to stop without workarounds. Also specifies the required routing flow (call brc_route_request first, reuse routeToken), confirmation prerequisites, and handling of multiple recipients, which goes beyond typical usage notes.

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

brc_send_quote_emailA
Destructive
Inspect

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 an email preview or attempting a workaround. Do not call this tool with confirmSend=true until the user has reviewed a plain-English email preview and explicitly confirmed they want to send it. The email preview 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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmSendNoMust be true only after the user has reviewed the email preview 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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/5

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

With no annotations, the description carries the full burden of behavioral disclosure, and it excels. It reveals that confirmSend must be gated on user review of an email preview, that missing recipient email must halt the send, that BCC vs separate mode requires explicit user choice, and that routeToken does not bypass preview-before-posting. These are critical safety behaviors disclosed in detail.

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

Conciseness4/5

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

The description is long but every sentence carries operative guidance—no filler. It is logically structured: purpose, limitations, confirmation requirements, recipient handling, and routeToken workflow. The length is justified by the tool's safety-critical nature, though it could be tightened by trimming redundancy with schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (11 params, no annotations, no output schema), the description fully covers operational context: supported types, refusal procedure, preview/confirmation steps, recipient edge cases, and the mandatory routeToken flow. Nothing essential is missing for an agent to select and invoke the tool correctly.

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

Parameters4/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description adds valuable context beyond the schema: how to handle absent customer email, when to ask about BCC vs separate sends, and the significance of routeToken in the transactional workflow. This elevates parameter understanding beyond raw field descriptions.

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

Purpose5/5

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

The description opens with a clear, specific verb+resource: "Sends a quote email." It distinguishes this tool from sibling email tools (brc_send_sales_invoice_email, brc_send_email_statement) by scoping it to quotes, and further clarifies which document types Red can email overall, making the tool's purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool (quote emails) and when not (unsupported document types), even providing a scripted refusal for unsupported types. It also mandates a prerequisite workflow: call brc_route_request first, retain the routeToken, and explains the multi-step confirmation process. This is model guidance for when to invoke vs alternative actions.

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_emailA
Destructive
Inspect

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 an email preview or attempting a workaround. Do not call this tool with confirmSend=true until the user has reviewed a plain-English email preview and explicitly confirmed they want to send it. The email preview 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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmSendNoMust be true only after the user has reviewed the email preview 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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
salesInvoiceIdYesBRC field: salesInvoiceId.
Behavior5/5

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

With no annotations, the description fully discloses the safety-critical behaviors: it mandates preview-before-send, explicit user confirmation, recipient email checks, BCC vs separate handling, and warns that routeToken is not permission to post. It also covers connectionRef reuse and confirmSend semantics.

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 long but densely packed with actionable rules; it opens with the core purpose and then groups related guidance. Some redundancy exists (e.g., repeated emphasis on confirmation), but every sentence has 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?

As a transactional tool with no annotations or output schema, the description covers prerequisites, edge cases, user-confirmation requirements, parameter usage, and unsupported-type handling, making it 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.

Parameters5/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 behavioral constraints for parameters: confirmSend requires explicit confirmation, sendMode='separate' only on explicit user choice, toAddress as override, routeToken provenance, and connectionRef reuse. This goes well 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 opens with a clear verb+resource statement ('Sends a sales invoice email') and immediately clarifies scope by listing unsupported document 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?

It explicitly instructs when to stop (unsupported document types), requires brc_route_request as a prerequisite, and provides a detailed workflow for preview and confirmation. It also clarifies sendMode usage with multiple recipients.

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

MANDATORY FIRST TOOL for company connection requests. This tool is brc_start_company_connection. Use this FIRST when the user says connect my company, connect my companies, connect my companies to Red, connect Big Red Cloud, link a company, add another company, set up Red, authenticate a company, reconnect a company, or onboard one or multiple companies. Call it immediately: it works before any company is connected and does not require companyName or connectionRef. Do not tell the user to go manually to the Big Red Cloud website when this tool is available — start the secure Red / Big Red Cloud connection flow here instead. Starts the secure Red / Big Red Cloud connection flow and generates a fresh one-time secure Red connection link and confirmation code. Supports one or multiple companies in the same visit. Use only when there is no active company connection, no valid connectionRef, the user explicitly asks to connect or reconnect, try again after a failed connection, expired session credentials, or when an old, used, or stale secure connection link no longer works. Do not call this tool when a valid connectionRef from brc_confirm_company_connection is already available and recent tool calls succeeded with it. Do not call this tool because a lookup returned no rows, partial data, or an empty list — that means no matching records, not an expired connection. Do not call this tool after successful company data retrieval unless the user explicitly asks to connect, reconnect, or add more companies. Always call this tool again to generate a new link — never reuse a previous connection link. 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. Do not paste an API key into chat.

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/5

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

With no annotations, the description carries full burden. It details the behavior: returns a one-time link (no expiry but single use), the user enters data on a secure page, returns to chat with a confirmation code, supports one or multiple companies, and does not require the optional parameter. 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?

The description is relatively long but front-loaded with the critical 'MANDATORY FIRST TOOL' statement. Every sentence adds value, including clear do's and don'ts. It could be slightly more concise, but for a complex multi-step tool, the length is justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (connection flow, one-time links, confirmation codes) and the absence of an output schema, the description covers the flow comprehensively. It explains the return value, user actions, and agent behavior. It could be more explicit about the next tool (brc_confirm_company_connection), but the context is sufficient for an agent to understand the workflow.

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

Parameters4/5

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

The input schema has one optional parameter (connectionRef) with 100% coverage. The description adds significant value by clarifying that this parameter is not required for this tool and should not be used when a valid connectionRef exists. It also explains the parameter's purpose in the broader flow, going beyond the schema description.

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

Purpose5/5

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

The description explicitly states 'MANDATORY FIRST TOOL for company connection requests' and clearly defines the verb ('starts the secure Red / Big Red Cloud connection flow') and resource ('generates a fresh one-time secure Red connection link and confirmation code'). It distinguishes itself from the sibling tool brc_confirm_company_connection by being the first step in the 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?

Provides explicit triggers ('when the user says connect my company...'), prohibitions ('Do not call this tool when a valid connectionRef...already available', 'Do not call this tool because a lookup returned no rows'), and guidance on when to call again ('Always call this tool again to generate a new link'). This is comprehensive and leaves no ambiguity.

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

brc_update_accrualA
Destructive
Inspect

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 preview and explicitly confirmed the update. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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=.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/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 key behavioral traits: routeToken is required and must not be invented, a routeToken is not permission to post, preview-before-posting still applies, child accruals are not exposed, and confirmWrite has a strict confirmation requirement. This goes well beyond basic tool description.

Agents need to know what a tool does to the world before calling it. Descriptions 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 and then delivers 5-6 sentences of dense, non-redundant guidance. Every sentence adds necessary safety or workflow detail, with no filler.

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

Completeness4/5

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

For a complex transactional tool with 13 parameters and no output schema, the description covers prerequisites, workflow, and confirmation semantics thoroughly. It omits return values and explicit error/stale-timestamp handling, but those are somewhat inferable from the workflow. Overall, it is highly complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 clear descriptions for all parameters. The main description adds workflow context (e.g., timestamp from brc_get_accrual, routeToken from brc_route_request) but does not introduce parameter 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 opens with a specific verb+resource: 'Updates an existing parent Accrual by id.' It clearly differentiates from sibling tools (brc_create_accrual, brc_delete_accrual, brc_list_accruals) and even adds the 'parent' qualifier to distinguish from non-exposed child accruals.

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 step-by-step guidance is provided: use brc_get_accrual first to retrieve the current accrual and timestamp, call brc_route_request first and retain the token, and do not set confirmWrite=true until the user explicitly confirms. This clearly states 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_update_allocationsA
Destructive
Inspect

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 preview and explicitly confirmed posting. Required fields: bookTranId and allocationResolvers with allocated amounts and receiver book transaction ids. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
bookTranIdYesBook transaction id to allocate from, for example 1001.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms posting the allocation update.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
allocationResolversYesAllocations to create or update.
Behavior4/5

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

With no annotations, the description carries the burden of disclosing security and mutation behavior. It does well by explaining that routeToken is not permission to post, preview-before-posting still applies, and confirmWrite must be user-confirmed. However, it does not fully disclose what happens when updating existing allocations (e.g., whether omitted allocations are removed or replaced), which is a minor transparency 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 long but front-loads purpose and critical preconditions. Most sentences carry important workflow or safety information. It is slightly repetitive around routeToken (requirement, call, retain, pass, never invent, not permission), which could be condensed without losing meaning.

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

Completeness4/5

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

This is a complex transactional tool with no output schema. The description covers required fields, prerequisite tools, confirmation flow, and routeToken handling. It does not explain post-call behavior or error scenarios, and it assumes the agent understands the allocation preview concept, but the key contextual information is present.

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

Parameters4/5

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

The schema covers all parameters with descriptions, so the baseline is 3. The tool description adds value by explaining the relationship between bookTranId and allocationResolvers, how to obtain eligible receiver transactions via brc_list_allocation_resolvers, and the routeToken lifecycle. This goes beyond the schema's standalone parameter definitions.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Creates or updates allocations for a sender book transaction.' This clearly distinguishes the tool from siblings like brc_delete_allocation_resolver and brc_list_allocation_resolvers by stating the action and target. The scope is unambiguous.

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

Usage Guidelines5/5

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

The description gives explicit when-to-use guidance: call brc_list_allocation_resolvers first, call brc_route_request first, and do not use confirmWrite=true until user confirmation. It also states the ordering and token reuse requirements, which is strong operational guidance beyond generic usage.

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

brc_update_bank_accountA
Destructive
Inspect

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. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBank account id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It discloses the merge semantics, the need for a routeToken, the confirmation workflow, and the fact that routeToken is not permission to post. It also mentions preview-before-posting and confirmWrite/confirmDelete. It could go further by stating whether updates are reversible or what happens to unspecified fields, but overall it provides substantial 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?

The description is front-loaded with the core purpose, then gives workflow guidance. It is somewhat repetitive—'requires routeToken' appears twice and confirmation is mentioned twice—but every sentence carries useful information and the length is justified for a multi-step transactional tool.

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

Completeness4/5

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

For a complex tool with 7 parameters, nested objects, no annotations, and no output schema, the description covers the essential workflow: routing, preview, confirmation, and token handling. It does not describe return values, but that is not required when no output schema exists. A minor gap is the lack of mention of connectionRef or companyName usage, though these are schema-documented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 context about routeToken not being permission and confirmWrite requirements, but does not explain parameter meanings beyond what the schema says. For example, it does not clarify the difference between 'payload' and 'updates' beyond schema's existing 'alias for updates' and 'fields to merge into the existing record.' Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Updates a BRC bank account using merged fields,' which clearly identifies the verb (updates), resource (BRC bank account), and mechanism (merged fields). This distinguishes it from create/delete/get/list siblings and other update tools by naming the specific resource type.

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

Usage Guidelines4/5

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

Provides strong when-to-use guidance: call brc_route_request first, retain the routeToken, show a plain-English summary, and get explicit confirmation before invoking. It also warns against placeholder tokens and reminds that confirmWrite still applies. However, it does not explicitly name alternative tools for creating or deleting bank accounts, so it misses a fully explicit exclusion.

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

brc_update_cash_paymentA
Destructive
Inspect

Updates an existing Cash Payment by merging supplied fields onto the current record. Fields that can be merged include total, entryDate, procDate, supplierId, acCode, note, ledger, discount, bankAccountId, bankAccountCode, lodgement, analysisCategoryId, accountCode, and description. This update flow is a verified action on the existing record. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash payment id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 that the tool performs a merge (not a full replacement), requires a verified action (routeToken), and that confirmWrite is mandatory before any write. It does not mention reversibility or side effects (e.g., triggering other processes), but the core behavioral traits are well-covered.

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

Conciseness4/5

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

The description is front-loaded with the core action and field list, then adds workflow instructions. While it is moderately long, every sentence contributes useful information. Minor redundancy (e.g., 'preview-before-posting and confirmWrite/confirmDelete still apply' could be slightly tighter), but overall well-structured and efficient.

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

Completeness4/5

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

Given the tool's complexity (7 parameters, nested objects, no output schema), the description covers the purpose, merge behavior, required workflow (routeToken, preview, confirmWrite), and the list of mergeable fields. It does not explain return values (no output schema exists) or error conditions, but the provided context is sufficient for an agent to use the tool correctly in the intended workflow.

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

Parameters5/5

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

Schema description coverage is 100%, but the description adds significant value by listing the specific fields that can be merged (total, entryDate, procDate, etc.), which are not enumerated in the schema properties for 'payload' or 'updates' (which are generic objects). This transforms the parameter semantics from opaque to actionable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships 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 ('Updates an existing Cash Payment') and the resource ('Cash Payment'), with a specific verb ('merge supplied fields'). It lists the modifiable fields, distinguishing it from sibling tools like brc_create_cash_payment (create) and brc_delete_cash_payment (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 when-to-use context: after brc_route_request, with a valid routeToken, and following a workflow (lookup, preview, confirmation). It warns against inventing tokens and clarifies that routeToken does not grant posting permission, with confirmWrite still required. This is comprehensive guidance.

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

brc_update_cash_receiptA
Destructive
Inspect

Updates a BRC cash receipt using merged fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCash receipt id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations, the description carries the full transparency burden. It discloses the routing requirement, the need to reuse the same token, and that a routeToken alone does not authorize posting, plus the continuing need for preview/confirmation. This is valuable behavioral context beyond a simple 'update' statement. The phrase 'merged fields' is somewhat ambiguous, but overall it gives a clear safety model.

Agents need to know what a tool does to the world before calling it. Descriptions 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 core purpose, and every sentence contributes essential workflow or safety guidance. There is no redundancy, filler, or restatement of the tool name.

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 covers the routing and confirmation workflow, which is critical for correct use. However, it lacks detail on the semantics of 'merged fields' (does it do a partial merge or full replacement?) and does not mention what the tool returns, which matters given there is no output schema. This leaves meaningful gaps for a 7-parameter, nested-object transactional tool.

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

Parameters3/5

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

The input schema provides descriptions for all 7 parameters (100% coverage), so the baseline is 3. The description adds practical context around routeToken (e.g., never invent one, it's not permission to post) and confirms the confirmWrite requirement, but this largely echoes what is already in the schema properties. It does not add substantial new meaning to the fields themselves.

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

Purpose5/5

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

The description opens with 'Updates a BRC cash receipt using merged fields,' which clearly identifies the action (update), the resource (cash receipt), and the mechanism (merged fields). This distinguishes it from sibling create/delete/get tools and from other update tools targeting different resources.

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

Usage Guidelines4/5

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

It provides explicit workflow guidance: call brc_route_request first, retain and pass the same routeToken, and never invent a placeholder. It also warns that a routeToken is not permission to post and that preview-before-posting and confirmWrite/confirmDelete still apply. However, it does not explicitly state when to use this tool over alternatives (e.g., brc_create_cash_receipt), so it falls short of a 5.

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

brc_update_customerA
Destructive
Inspect

Updates a BRC customer using merged fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCustomer id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 routing requirement, explicitly states that a routeToken is not permission to post, and mandates preview-before-posting and confirmWrite/confirmDelete. This goes beyond the schema and provides critical behavioral context, though it doesn't detail failure modes or side effects beyond 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?

Three sentences: purpose, workflow, safety caveat. Every sentence earns its place and the most critical information (route flow) is front-loaded. No fluff.

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

Completeness4/5

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

For a transactional update tool with a mandatory routing workflow, the description covers the required sequence and safety gates. The schema handles parameter details. It doesn't mention connectionRef or return values, but those are documented in the schema, and there's no output schema. The core complexity is 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 covers 100% of parameters. The description adds value by explaining the routeToken lifecycle (obtain from brc_route_request, reuse across lookup/preview/confirmation, never invent) and clarifying that confirmWrite is required, which complements the schema's own 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?

States specifically that it updates a BRC customer by merging fields, distinguishing it from create_customer/delete_customer and other update_* siblings. The verb+resource is clear and specific.

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

Usage Guidelines4/5

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

Provides explicit workflow guidance: must call brc_route_request first, retain and reuse the same routeToken, and only call this tool on the final transactional call. However, it does not explicitly name alternative tools or state when not to use this tool, so it gets a 4 rather than 5.

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_batchA
Destructive
Inspect

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 preview and explicitly confirmed the update. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after the user explicitly confirms updating this Nominal Journal Batch.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
bookTranTypeIdNoBook transaction type id. Nominal Journal Batch is usually 7.
accountTransactionsYesUpdated nominal journal account transaction lines.
Behavior5/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 required routeToken workflow, confirms the token is not permission to post, highlights preview-before-posting, and requires explicit user confirmation for confirmWrite=true. This is rich behavioral context beyond any structured fields.

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

Conciseness4/5

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

The description is longer than two sentences, but every sentence covers an essential aspect of the workflow (purpose, prerequisite lookup, routeToken handling, confirmation gate). It is front-loaded with the primary action and logically structured, though it could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, no output schema, and a complex transactional workflow, the description covers key prerequisites, sequencing, and safety constraints. It could specify exactly how to obtain a preview or what the response looks like, but the provided guidance is sufficient for an agent to execute the update 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 91% and the schema already provides strong descriptions for routeToken and confirmWrite. The description adds lifecycle guidance for routeToken ('retain through lookup, preview, confirmation; never invent a placeholder') and clarifies the preview/confirmWrite gate, which goes slightly beyond the schema.

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

Purpose5/5

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

The description opens with 'Updates an existing Nominal Journal Batch by id', a specific verb+resource+identifier. It is clearly distinguished from sibling create/delete/get tools by action and workflow instructions.

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 call brc_get_nominal_journal_batch first and brc_route_request first, and warns not to call with confirmWrite=true until the user confirms. This provides clear sequencing, prerequisites, and a when-not-to-call condition.

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

brc_update_paymentA
Destructive
Inspect

Updates a BRC payment using merged fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPayment id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations, the description carries the transparency burden. It discloses the required workflow dependency on brc_route_request and warns against treating routeToken as posting permission, which is a critical behavioral nuance. However, it omits details about permissions, return values, or failure behavior, though 'updates' implies mutation.

Agents need to know what a tool does to the world before calling it. Descriptions 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 main action and followed by tightly scoped workflow instructions and caveats. Every sentence contributes essential guidance with no filler or redundancy.

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

Completeness4/5

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

Given the tool's complexity (7 params, nested objects, required route token workflow, and a large sibling family), the description covers the critical workflow steps and transactional safeguards well. It does not describe return values or error behavior, but the schema covers paramet semantics, and the workflow guidance is the main contextual gap that needed addressing.

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

Parameters3/5

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

The input schema provides 100% parameter descriptions, including routeToken and confirmWrite semantics. The description mostly restates the routeToken requirement already in the schema (e.g., 'routing permission only') and adds no new parameter information. Baseline of 3 is appropriate since schema does the heavy lifting.

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

Purpose4/5

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

The description opens with 'Updates a BRC payment using merged fields,' clearly identifying the action (update) and resource (BRC payment). It does not explicitly differentiate from sibling update tools like brc_update_cash_payment, but the resource name is specific enough to avoid major ambiguity.

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

Usage 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: call brc_route_request first, retain the routeToken through lookup/preview/confirmation, and never invent a placeholder. It also clarifies that routeToken is not permission to post and that preview-before-posting and confirmWrite/confirmDelete still apply, effectively stating when and when not to use this tool.

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

brc_update_prepaymentA
Destructive
Inspect

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 preview and explicitly confirmed the update. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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=.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior5/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 disclosing behavioral traits. It transparently explains that this is a transactional write operation requiring routeToken, that confirmWrite must only be true after user confirmation, and that 'routeToken is not permission to post' — preview-before-posting still applies. It also notes child prepayments are not exposed, adding useful context.

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

Conciseness4/5

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

The description is a single block of text but is appropriately sized for the complexity of the tool. Every sentence adds value: purpose, prerequisite workflow, confirmation rule, and routeToken handling. Slightly verbose but no wasted words; a short bulleted structure could improve scannability, but the content is dense and relevant.

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

Completeness4/5

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

The description covers the core workflow, prerequisites, and safety rules, which is essential for a transactional tool with 13 parameters and no output schema. It does not describe return values or error handling, but that may not be necessary for an update tool. The complex routing and confirmation process is fully explained, so the description is largely complete for the agent's needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 even without additional description. The description reinforces the semantics of 'timestamp' and 'routeToken' but does not add significant meaning beyond what the schema already provides. It mentions the need to retrieve the timestamp via get_prepayment, but that is also implied in the schema description.

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

Purpose5/5

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

The description clearly states the tool's function: 'Updates an existing parent Prepayment by id.' It distinguishes itself from sibling tools by specifying 'parent' prepayment and noting that 'Child prepayments are not exposed by the public API,' which clarifies scope relative to other prepayment-related tools.

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

Usage Guidelines5/5

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

Provides explicit step-by-step usage guidance: call 'brc_get_prepayment' first to retrieve the current prepayment and timestamp, call 'brc_route_request' first, retain the routeToken through the workflow, and do not set confirmWrite=true until explicit user confirmation. This clearly instructs when and how to use the tool, including prerequisites and safety conditions.

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

brc_update_productA
Destructive
Inspect

Updates a BRC product using merged fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesProduct id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
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 discloses the merge semantics, the required token routing workflow, and the confirmation gate before posting. This goes beyond a simple 'updates product' statement and gives 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.

Conciseness5/5

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

The description is a single concise paragraph of five sentences. It is front-loaded with the core purpose, then gives essential workflow and safety instructions. Every sentence contributes, with no filler or redundancy.

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

Completeness4/5

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

Given the tool's complexity (7 params, nested objects, no output schema), the description covers the essential routing workflow, merge semantics, and confirmation requirements. It does not explain return values, but the schema provides rich descriptions for parameters like connectionRef and confirmWrite, so the overall 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?

Schema description coverage is 100%, giving a baseline of 3. The description adds meaning by explaining 'merged fields' (clarifying how payload/updates are applied) and elaborating on routeToken usage (retain and reuse, never invent). This adds value beyond the schema's property descriptions.

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

Purpose5/5

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

The description states 'Updates a BRC product using merged fields,' which clearly identifies the verb (updates), resource (BRC product), and method (merged fields). This distinguishes it from sibling tools like brc_create_product, brc_delete_product, and brc_get_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?

The description provides explicit workflow guidance: call brc_route_request first, retain the routeToken through lookup/preview/confirmation, and pass the same token on the final transactional call. It also gives exclusions ('Never invent a placeholder token') and clarifies that routeToken is not permission to post, with confirmWrite/confirmDelete still applying.

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

brc_update_purchaseB
Destructive
Inspect

Updates a BRC purchase using structured MCP fields. Historical transaction dates are not automatically blocked. Existing historical purchases may support text, monetary, date and delete operations; the BRC endpoint is the source of truth. When changing monetary values, preserve the existing unpaid/unallocated state and allow BRC to recalculate allocation fields where required. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPurchase id.
noteNo
acCodeNo
procDateNo
entryDateNo
netAmountNo
vatRateIdNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
supplierIdNo
accountCodeNo
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
descriptionNo
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
vatPercentageNo
bookTranTypeIdNo
analysisCategoryIdNo
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 that historical transaction dates are not automatically blocked, and that when changing monetary values the existing unpaid/unallocated state must be preserved. It also explains the routeToken workflow and confirmation requirement. However, it does not describe error handling, idempotency, rate limits, or what happens on failure, 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.

Conciseness4/5

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

The description is front-loaded with the purpose ('Updates a BRC purchase') and then provides necessary details in a logical order: historical dates, monetary value handling, then routeToken workflow. The length is justified by the complexity of the tool. It could be slightly more concise, but every 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 tool has 17 parameters, no output schema, and no annotations, the description is moderately complete. It covers the workflow and some behavioral constraints. However, it fails to describe the return value, error conditions, and the meaning of many parameters. For a tool of this complexity, more completeness is needed to make it fully usable.

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 29% (5 of 17 parameters have descriptions). The description adds context for routeToken and confirmWrite (workflow rules) but does not explain the other 12 parameters like note, acCode, procDate, etc. Given the low coverage, the description should compensate more by describing the non-obvious parameters, 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 'Updates a BRC purchase' which specifies the verb and resource. The tool name also makes the purpose obvious. However, it does not explicitly differentiate from other update tools like brc_update_customer or brc_update_sales_invoice, though the context of 'purchase' 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?

The description provides extensive workflow guidance: requires routeToken from brc_route_request, must call brc_route_request first, retain the token, never invent a placeholder, and that confirmWrite must be true only after preview and user confirmation. It also mentions preserving monetary state during updates. It does not explicitly state when not to use this tool or alternatives, but the workflow instructions are clear and actionable.

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

brc_update_quoteA
Destructive
Inspect

Updates a BRC quote's manual reference only. Quote.note is not persisted by this update and is not accepted here. Loads the current quote, preserves all other fields (including timestamp, product lines, analysis entries, totals, customer, sales rep, dates, comments, and closed state), applies the new reference, then PUTs the full record. Manual quote references must be 6 characters or fewer because Big Red Cloud truncates longer references. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesQuote id.
referenceNoOptional manual quote reference, max 6 characters. Required when quote references are manual, or when the quote reference setting is unknown. Quote reference must be 6 characters or fewer because Big Red Cloud truncates longer references.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

Since no annotations are provided, the description carries the full burden. It transparently describes the internal behavior: loads the current quote, preserves all other fields, applies the new reference, then PUTs the full record. It also explains the truncation behavior by Big Red Cloud. The only minor gap is not stating explicitly whether the operation is atomic or if there are side effects on related data, but given the detailed explanation, this is a strong score.

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

Conciseness4/5

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

The description is relatively concise given the complexity of the tool and the number of parameters. It front-loads the core purpose and then provides necessary context. A slight reduction could be made by moving the routeToken workflow details to a separate note, but overall it is well-structured and 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 the 6 parameters (3 required), no output schema, and no annotations, the description provides substantial context: it explains the workflow dependencies (routeToken, confirmWrite), the behavior on update (preserves fields), and constraints (reference length). It covers the essentials for correct usage. There is no output schema, but the description focuses on input and behavior, which is appropriate. Minor gap: it could mention what the return value is (e.g., updated quote object or success status), but not critical.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds significant value above the schema: it explains that the reference parameter is only for manual references, that Quote.note is not persisted, and provides context on the routeToken workflow and confirmWrite requirement. This extra context about how parameters interact with the system behavior justifies a 4.

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 updates a BRC quote's manual reference only, which distinguishes it from related sibling tools like brc_close_quote, brc_reopen_quote, or brc_update_*. However, it does not explicitly contrast with these 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 states when to use this tool (update a quote's manual reference), what not to update (Quote.note is not accepted), and provides a detailed workflow: call brc_route_request first, retain routeToken, and mentions that preview-before-posting and confirmWrite still apply. It also gives a constraint on reference length (6 characters or fewer) and specific instructions on what the tool preserves (all other fields). This is comprehensive 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_noteA
Destructive
Inspect

Updates an existing BRC sales credit note. Supports text/reference fields, transaction dates, customer/sales-rep fields, and complete product/monetary updates. Historical credit notes are not automatically blocked because they belong to an earlier financial year. The BRC API is the source of truth for whether the requested historical change is permitted. For monetary changes, provide productTrans, totalNet, totalVAT and total together. Do not manually change unpaid; Red preserves the existing BRC value. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales credit note id.
noteNo
totalNo
detailsNo
procDateNoProcessing date. Historical dates may be attempted; BRC determines whether the update is permitted.
totalNetNo
totalVATNo
entryDateNoEntry date. Historical dates may be attempted; BRC determines whether the update is permitted.
referenceNo
saleRepIdNo
vatTypeIdNo
customerIdNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
ourReferenceNo
productTransNoComplete BRC productTrans collection. Preserve existing line ids and accounting/VAT data when modifying an existing credit note.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
yourReferenceNo
Behavior4/5

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

Without any annotations provided, the description must carry the full burden of behavioral disclosure, and it does well. It explicitly states that historical credit notes are not automatically blocked and that the BRC API is the source of truth for permission. It cautions that a routeToken is not permission to post, so preview-before-posting and confirmWrite/confirmDelete still apply. The only missing piece is no mention of response behavior (e.g., whether it returns the updated credit note or just success/failure), but the complexity of the tool is high and the description covers key risk areas 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 9 sentences long, which is appropriate for such a complex tool with 19 parameters. It front-loads the core purpose and supported fields, then dives into workflow requirements. Every sentence adds value—there's no fluff or repetition of schema content. The only minor point is that the sentence about historical credit notes could be slightly tighter, but the density of information is justified given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (19 parameters, 3 required, no output schema, no annotations), the description is remarkably complete. It covers the full workflow prerequisite (routeToken from brc_route_request), explains the confirmWrite guard, warns about historical dates, and specifies how to handle productTrans. While an output schema is absent, the description doesn't promise return format but sets correct expectations about the transactional nature. For such a high-stakes financial mutation tool, the description provides enough context for correct agent decision-making.

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 at 42%, meaning the description must compensate for undocumented parameters. It does so effectively by grouping parameters into categories ('text/reference fields, transaction dates, customer/sales-rep fields, and complete product/monetary updates') and providing critical usage context for the complex routeToken and confirmWrite parameters. The detailed guidance on productTrans ('Preserve existing line ids and accounting/VAT data') and the warning about not manually changing unpaid go well beyond the schema. However, some parameters like note, details, or ourReference lack any description-level guidance, preventing a 5.

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

Purpose5/5

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

The description starts with a clear verb-resource pair ('Updates an existing BRC sales credit note') and immediately lists the updatable domains (text/reference, transaction dates, customer/sales-rep, product/monetary). This distinguishes it from sibling update tools like brc_update_sales_invoice or brc_update_sales_entry by specifying the exact resource type and update scope. The purpose 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 when-to-use guidance by detailing the prerequisite workflow: 'Requires routeToken from brc_route_request' and 'Call brc_route_request first.' It gives clear 'when not to' rules: 'Do not manually change unpaid' and 'Never invent a placeholder token.' It also warns about historical credit notes not being automatically blocked, relying on the BRC API for permission checks. Sibling tools like brc_create_sales_credit_note are implicitly distinguished by the update vs. create verb, and the route workflow is explained in full.

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

brc_update_sales_entryA
Destructive
Inspect

Updates an existing BRC Sales Entry. Supports text/reference changes, transaction dates, customer/account fields, and complete monetary/accounting update attempts. Historical Sales Entries are not automatically blocked because they belong to an earlier financial year. The BRC API is the source of truth for whether a requested historical change is permitted. A note/reference-only update may be performed without supplying monetary fields. For monetary changes, provide totalNet, totalVAT, total, acEntries and vatEntries together so Red can validate the accounting values before sending the update. Do not manually change unpaid; Red preserves the existing BRC value. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales Entry id, normally the bookTranId returned by customer account transactions.
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.
totalNoNew gross total. For monetary edits this must equal totalNet + totalVAT.
acCodeNoCustomer account code.
detailsNoSales Entry details/description field.
procDateNoProcessing date in ISO format. Historical dates may be attempted; BRC determines whether the change is permitted.
totalNetNoNew total net value. For monetary edits this must be supplied together with totalVAT, total, acEntries and vatEntries.
totalVATNoNew total VAT value. For monetary edits this must be supplied together with totalNet, total, acEntries and vatEntries.
acEntriesNoComplete BRC accounting-entry collection. For monetary edits, the sum of each entry's value must equal totalNet.
entryDateNoEntry date in ISO format. Historical dates may be attempted; BRC determines whether the change is permitted.
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.
vatTypeIdNoVAT type id.
customerIdNoCustomer id.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
vatEntriesNoComplete BRC VAT-entry collection. Each entry should contain the BRC vatRateId, percentage and net amount used to calculate VAT.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
bookTranTypeIdNoBook transaction type id. Sales Entries normally use the existing record's transaction type.
Behavior4/5

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

The description discloses that historical Sales Entries are not automatically blocked, that the BRC API determines permissibility, and that the 'unpaid' field should not be manually changed. It also notes that a routeToken is not permission to post and that preview-before-posting and confirmWrite/confirmDelete still apply. Since no annotations are provided, the description carries the full burden; it covers safety and workflow constraints well, though it could briefly mention that the tool is a write operation (mutation) explicitly.

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 fairly long (about 12 sentences) but front-loaded with the core purpose. Some sentences could be more concise (e.g., explaining the routeToken workflow could be tightened). The information is well-organized but could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (19 parameters, no output schema, no annotations), the description is quite complete. It covers prerequisites (routeToken, companyName, connectionRef), workflow steps (route request first), and constraints for monetary vs. non-monetary updates. The only gap is that it does not explain the return value or confirmation behavior after a successful update.

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

Parameters4/5

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

Input schema has 100% coverage, so baseline is 3. The description adds significant value by explaining the relationship between monetary parameters (totalNet, totalVAT, total, acEntries, vatEntries must be supplied together) and the constraint that the sum of acEntries values must equal totalNet. It also clarifies that note defaults to customer name when left blank and that reference maps to multiple BRC fields. However, the description does not elaborate on the nested structure of acEntries or vatEntries beyond what's 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 updates an existing BRC Sales Entry, listing supported field categories (text/reference, transaction dates, customer/account, monetary/accounting). It distinguishes from sibling tools like brc_create_sales_entry and brc_get_sales_entry by specifying 'updates an existing' entry.

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 the tool without monetary fields (note/reference-only updates) and when to provide monetary fields together (totalNet, totalVAT, total, acEntries, vatEntries). It also warns about historical entries not being automatically blocked and defers to the BRC API. Additionally, it explains the prerequisite routeToken workflow, referencing brc_route_request and the need to retain the token across calls.

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

brc_update_sales_invoiceA
Destructive
Inspect

Updates an existing BRC sales invoice. Can update text/reference fields, transaction dates, customer/sales-rep fields, and the full productTrans line collection. Historical invoices are not automatically blocked because they fall outside the current financial year. The BRC API is the source of truth for whether a historical invoice can be changed. When changing monetary values, provide a complete internally consistent productTrans collection and matching totalNet, totalVAT and total. Do not guess monetary fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

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.
totalNo
detailsNo
procDateNoProcessing date. Historical dates are permitted as an attempted update; BRC may accept or reject them.
totalNetNo
totalVATNo
entryDateNoEntry date. Historical dates are permitted as an attempted update; BRC may accept or reject them.
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.
saleRepIdNo
vatTypeIdNo
customerIdNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
ourReferenceNo
productTransNoComplete BRC productTrans collection. Use this when changing invoice lines, quantities, unit prices, VAT or line amounts.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
yourReferenceNo
bookTranTypeIdNo
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 BRC API is the source of truth for historical changes, that routeToken is required but does not authorize posting, and that confirmWrite must be true after user preview. It also explains connectionRef reuse behavior. However, it does not explicitly mention side effects (e.g., audit logging, email triggers) or what happens on partial failure.

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 its core purpose and update scope. It logically progresses from what to how (workflow) and then to parameter-specific guidance. Some redundancy exists (routeToken workflow detailed twice), and the sentence about historical invoices could be tighter, but overall it is well-organized and 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 20 parameters, no output schema, and no annotations, the description covers essential context: what the tool does, the required workflow sequence, critical parameter constraints (confirmWrite, routeToken, productTrans consistency), historical invoice behavior, and connectionRef lifecycle. It leaves no major gaps for an agent to make incorrect 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 50%, but the description compensates by adding detailed behavioral rules for key parameters: explains routeToken workflow, confirmWrite preconditions, note defaulting rules, reference field mappings, productTrans completeness requirement for monetary changes, and historical date handling. This goes well 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 opens with a clear verb-resource pair ('Updates an existing BRC sales invoice') and enumerates the specific updatable areas (text/reference fields, transaction dates, customer/sales-rep fields, productTrans collection). This specificity distinguishes it from sibling 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?

Explicitly states when to use (updating invoices) and when not to assume block (historical invoices are not automatically blocked). Provides mandatory prerequisites: requires routeToken from brc_route_request, calls out the full workflow (route_request → lookup → preview → confirmWrite), and warns that routeToken alone is not permission to post. Also cautions against guessing monetary fields and inventing placeholder tokens.

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

brc_update_sales_repA
Destructive
Inspect

Updates a BRC sales rep using structured MCP fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSales rep id.
codeNo
nameNo
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/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 important behavioral traits: routeToken is a routing permission only, preview-before-posting and confirmWrite/confirmDelete still apply, and the token must not be invented. This exceeds typical descriptions, though it does not cover auth specifics, return values, or exact mutation semantics.

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 four sentences, front-loaded with the core purpose, then explaining the routing workflow. Each sentence adds value; no filler. Slightly longer than necessary but justified by the required workflow details.

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 an update tool with 7 parameters and no output schema, the description covers the critical routing and confirmation workflow thoroughly but omits expected return values, success/failure behavior, and meaning of the undocumented parameters. It is adequate but has clear 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 71% (5/7 described). The description repeats the routeToken and confirmWrite semantics already present in the schema but adds no new meaning for the undocumented 'code' and 'name' parameters. It does not compensate for the coverage gap, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Updates a BRC sales rep using structured MCP fields,' which clearly states the action (update), the resource (BRC sales rep), and the method (structured MCP fields). This is specific and easily distinguishes from create/delete/get tools for sales reps, and the sibling brc_batch_sales_reps is implicitly separate.

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

Usage Guidelines4/5

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

The description provides explicit usage context: it must be preceded by brc_route_request, the returned routeToken must be retained and passed on the final call, and placeholders are forbidden. It does not explicitly name alternatives (e.g., batch updates) but the workflow guidance is clear and actionable.

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

brc_update_supplierA
Destructive
Inspect

Updates a BRC supplier using merged fields. Requires routeToken from brc_route_request for the matching action workflow. Call brc_route_request first with the user's complete original action request. Retain the returned routeToken through lookup, preview, and confirmation, and pass the same token on the final permitted transactional tool call. Never invent a placeholder token. A routeToken is not permission to post — preview-before-posting and confirmWrite/confirmDelete still apply.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSupplier id.
payloadNoAlias for updates.
updatesNoFields to merge into the existing record.
routeTokenYesOpaque routeToken from brc_route_request for this action workflow. Required for transactional tools. Routing permission only — does not replace preview-before-posting or confirmWrite.
companyNameYesCompany context name, for example YOUR-COMPANY-NAME.
confirmWriteNoMust be true only after a plain-English preview before posting 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. Nothing is written to Big Red Cloud until you confirm.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
Behavior4/5

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

With no annotations provided, the description carries the full transparency burden. It discloses that routeToken is not permission to post and that preview-before-posting and confirmWrite/confirmDelete still apply. It also forbids placeholder tokens, providing valuable behavioral guardrails beyond the schema.

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

Conciseness5/5

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

The description is front-loaded with the core purpose and each subsequent sentence adds necessary workflow context. It is concise without redundancy, covering the routing workflow, token retention, and confirmation safeguards in a compact form.

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

Completeness4/5

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

Given the tool's complexity (7 params, nested objects) and no output schema, the description sufficiently covers the workflow prerequisites and safety requirements. It could have included return-value expectations or error handling, but these are not essential for an update tool when schema coverage is complete.

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

Parameters3/5

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

Schema description coverage is 100%, so all parameters are already documented. The description reinforces routeToken behavior and 'merged fields' semantics, but it doesn't add significant new meaning beyond the schema's descriptions, such as the distinction between payload and updates or expected parameter formats.

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

Purpose5/5

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

The description opens with 'Updates a BRC supplier using merged fields,' which clearly identifies the verb (update), the resource (BRC supplier), and the mechanism (merged fields). It distinguishes this from sibling tools like create_supplier, delete_supplier, get_supplier, and list_suppliers.

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

Usage Guidelines4/5

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

The description gives explicit workflow guidance: call brc_route_request first, retain and reuse the returned routeToken, and only pass it on the final permitted transactional call. It also warns against inventing placeholder tokens. It does not explicitly name alternative tools, but the update-specific scope is clear from the purpose.

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

brc_validate_transaction_dateB
Read-only
Inspect

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.
connectionRefNoOpaque Red connection reference returned by brc_confirm_company_connection. Pass this exact value on every later tool call when the MCP client rotates session ids (for example Vibe/Mistral). Keep reusing the same connectionRef after successful tool calls — do not start a new connection because a lookup returned empty or partial data. It is not an API key and does not contain credentials.
transactionDateYesDate to validate in YYYY-MM-DD format.
Behavior2/5

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

No annotations provided, so description must disclose behavior. Only says 'checks' without specifying side effects, idempotency, or return format. Insufficient for a mutation-free 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 sentence, efficient and front-loaded. No unnecessary words.

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?

Low complexity tool but no output schema and description omits return value or error conditions. Not complete enough for an agent to understand what to expect.

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

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 no new meaning beyond the schema's parameter descriptions.

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

Purpose5/5

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

Explicitly states it checks a transaction date against the company's current financial year. Clear verb-resource-scope, distinguishes from sibling CRUD 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 or when not to use this tool. Does not mention prerequisites (e.g., need an active company connection) or alternatives like brc_get_financial_year.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Hosted MCP server for Exact Online. Ask questions, pull reports, and prepare bookings you approve first.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables interaction with Bigcapital accounting through MCP, providing tools for customers, vendors, invoices, payments, reports, and more via an unofficial API wrapper.
    5
    AGPL 3.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for ConnectWise PSA (Manage) enabling ticket management, time entry, and read-only lookups of companies, contacts, and configurations with role-based access control and bring-your-own-API-keys support.
    143
    4
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.