Skip to main content
Glama

Server Details

Gmx - 139 tools for perpetuals, options, and position data

Status
Unhealthy
Last Tested
Transport
Streamable HTTP
URL
Repository
junct-bot/gmx-mcp
GitHub Stars
0

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

Score is being calculated. Check back soon.

Available Tools

139 tools
addRouterBInspect

Calls addRouter(_router: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_routerYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description carries full behavioral disclosure burden and succeeds in key areas: explicitly marks it as a write function, warns about onlyOwner-style restrictions, and clarifies 'No return value'. This safety-critical context for smart contract interactions adds significant value beyond 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?

Four sentences efficiently structured: function signature, write classification with access warning, prerequisite instruction, and return value declaration. Each sentence earns its place without redundancy, though the opening signature restatement is somewhat unnecessary given 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?

For a complex blockchain mutation tool with no annotations and no output schema, the description covers critical safety aspects (access control, write nature) but omits domain semantics—what a router is, what protocol state changes occur, or side effects. Adequate but incomplete for the complexity level.

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

Parameters3/5

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

Schema coverage is 100% with _router already documented as an Ethereum address. The description mentions '_router: string' in the function signature but adds no additional semantic meaning, validation rules, or format guidance beyond what the schema already provides. Baseline score appropriate for complete schema coverage.

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 identifies this as a 'Write function' but opens with tautological 'Calls addRouter(_router: string)' that merely restates the tool name. While it signals state mutation, it fails to explain what a 'router' represents in this DeFi protocol context or distinguish its purpose from sibling removeRouter.

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

Usage Guidelines3/5

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

Provides prerequisite guidance regarding access control ('may have access control restrictions', 'Check contract source for modifier requirements'), which is useful for blockchain interactions. However, it lacks explicit comparison to alternatives like removeRouter or approvedRouters to help determine when to use this specific tool.

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

adjustForDecimalsBInspect

Calls adjustForDecimals(_amount: string, _tokenDiv: string, _tokenMul: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_amountYesuint256 (uint256, pass as decimal string).
_tokenDivYesaddress (Ethereum address, 0x-prefixed).
_tokenMulYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description carries full burden and effectively discloses key behavioral traits: explicitly states 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function.' It also documents the return type ('Returns uint256') which is crucial since no output schema exists. However, it omits the calculation formula or precision 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?

Four efficient sentences with no fluff. Front-loaded with the function signature, followed by safety properties (read-only, unrestricted), and return type. Each sentence earns its place, though the read-only and unrestricted declarations could potentially be combined for even tighter prose.

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?

Adequate for a simple 3-parameter view function. Compensates for missing output schema by specifying return type (uint256). However, given the complexity of the surrounding contract ecosystem (evident from 100+ sibling functions), the description should explain the business logic—specifically how this decimal adjustment fits into token swaps, margin trading, or liquidity provision workflows.

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

Parameters3/5

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

Input schema has 100% description coverage, establishing baseline expectations. The description repeats the parameter signature with types ('_amount: string, _tokenDiv: string, _tokenMul: string') but adds no semantic context about what tokenDiv and tokenMul represent conceptually (divisor/multiplier tokens) or the relationship between them. Merely confirms the schema without enriching understanding.

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

Purpose3/5

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

The description states it calls the adjustForDecimals function and identifies it as read-only, but fails to explain what mathematical operation 'adjusting for decimals' actually performs (e.g., normalizing amounts between different token decimal precisions). It does not distinguish this utility from similar conversion functions among the 100+ sibling tools like tokenToUsdMin or getRedemptionAmount.

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. Given the extensive sibling list includes multiple price conversion and calculation functions (getFeeBasisPoints, getDelta, usdToToken, etc.), the description should specify scenarios where decimal adjustment is specifically required before trading or liquidity operations.

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

allWhitelistedTokensAInspect

[DISCOVERY] Calls allWhitelistedTokens(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesuint256 (uint256, pass as decimal string).
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 and successfully discloses critical behavioral traits: read-only nature, lack of state modification, unrestricted access (no auth requirements), and the return type (address). It omits potential revert conditions (e.g., index out of bounds) but covers the essential safety profile.

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

Conciseness4/5

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

The description is efficiently structured in four sentences covering function signature, mutability, permissions, and return value. The '[DISCOVERY]' tag and 'param0' notation are slightly mechanical but do not waste space. Every sentence conveys distinct information.

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

Completeness4/5

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

For a single-parameter getter without an output schema, the description adequately covers the return type ('Returns address') and access pattern. Given the presence of sibling tools like 'allWhitelistedTokensLength', it could explicitly mention this is an indexed array access, but the core information is present for invocation.

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

Parameters3/5

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

The input schema has 100% description coverage explaining the uint256 format. The description mirrors this ('param0: string') but fails to add semantic meaning—specifically that param0 represents an array index into the whitelist. With complete schema coverage, this meets the baseline but adds no additional 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 identifies this as a read-only call returning an address, and the '[DISCOVERY]' prefix suggests auto-generated contract inspection. However, it leans on the function name rather than explaining the business logic (retrieving a whitelisted token address by index), and does not differentiate from sibling 'whitelistedTokens' which may access the same data differently.

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted' regarding access control, which is useful. However, it fails to provide guidance on when to use this versus 'whitelistedTokens' or how to iterate using 'allWhitelistedTokensLength', leaving the agent to infer the array-index access pattern.

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

allWhitelistedTokensLengthAInspect

Calls allWhitelistedTokensLength(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 of behavioral disclosure. It effectively communicates that the operation is read-only ('does not modify contract state') and permissionless ('any address can call'), while specifying the return type (uint256).

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

Conciseness5/5

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

The description consists of three tight, information-dense sentences with no filler. Each sentence earns its place by declaring the function call, read-only nature, unrestricted access, and return type.

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?

With no output schema provided, the description mentions the return type (uint256) but omits the semantic meaning of the value (i.e., the count/number of whitelisted tokens). Given the lack of annotations and output schema, this semantic gap is notable.

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, establishing a baseline score of 4. The input schema requires no additional semantic explanation 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 clearly identifies this as a read operation that returns a uint256 length value, providing specific verb (calls/gets) and resource (whitelisted tokens). However, it fails to distinguish from the sibling tool 'whitelistedTokenCount' which appears to serve an identical purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'whitelistedTokenCount' or 'allWhitelistedTokens'. The 'unrestricted' statement indicates permissionless access but does not constitute usage guidance for tool selection.

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

approvedRoutersCInspect

Calls approvedRouters(param0: string, param1: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
param1Yesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

Without annotations, the description carries the full burden and successfully discloses that the operation is read-only and unrestricted. However, it fails to explain what the boolean return value signifies (true=approved, false=not?), what error conditions might occur, or the semantic roles of the two address inputs.

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 compact at one sentence, but the opening clause 'Calls approvedRouters(...)' wastes space by restating the tool name and parameter signatures. The remaining content ('Read-only...', 'Unrestricted...', 'Returns bool') is efficiently structured and front-loaded with important safety information.

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

Completeness3/5

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

For a simple boolean getter with no output schema, the description provides the essential return type and safety characteristics. However, given the presence of related mutation siblings (addRouter/removeRouter), it should clarify the approval checking logic and address parameter roles to be fully complete.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description redundantly lists parameter types ('param0: string, param1: string') which offers no value beyond the schema, and fails to explain what the two Ethereum addresses represent semantically (e.g., router address and user address).

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 identifies this as a read-only function returning a boolean, but opens with tautological noise ('Calls approvedRouters'). It fails to explain what 'approved' means in this contract context or what relationship the two addresses have (router vs user?), leaving the core business purpose vague despite the technical return type disclosure.

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?

While it notes the function is 'Unrestricted' regarding caller permissions, it provides no guidance on when to use this versus sibling mutation tools like 'addRouter' or 'removeRouter'. No prerequisites or comparison to alternatives are offered to help an agent decide if this is the right tool for their task.

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

BASIS_POINTS_DIVISORBInspect

Calls BASIS_POINTS_DIVISOR(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 explicitly states 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function,' which clearly communicates safety and access traits. It also discloses the return type (uint256) since no output schema exists.

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

Conciseness5/5

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

The description consists of four efficient sentences with zero waste: (1) function call identification, (2) mutability characteristics, (3) access control, and (4) return type. Information is front-loaded and every sentence earns its place.

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

Completeness3/5

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

For a simple parameter-less getter, the description covers operational essentials (read-only, unrestricted, return type). However, it lacks semantic context about what the divisor value represents (e.g., 'typically 10000 for basis point math'), which would help the agent understand when to invoke this versus hardcoding constants.

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 contains zero parameters. According to the scoring rubric, zero parameters warrants a baseline score of 4. The description appropriately does not invent parameter semantics where none exist.

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

Purpose3/5

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

The description states it 'Calls BASIS_POINTS_DIVISOR()' and returns uint256, which identifies the action and resource. However, it fails to explain what the basis points divisor represents (e.g., the constant 10000 used for percentage calculations) or how it differs semantically from similar constant getters like FUNDING_RATE_PRECISION or PRICE_PRECISION among the siblings.

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?

While the description notes the function is 'Unrestricted' regarding access control, it provides no guidance on when to use this tool versus alternatives, or what calculations require this specific divisor value. No prerequisites or contextual usage hints are provided.

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

bufferAmountsCInspect

Calls bufferAmounts(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses that the function is read-only, unrestricted, and returns uint256. However, it lacks context about gas costs, reversion conditions, or the semantic meaning of the returned value.

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?

Four short sentences efficiently convey the call signature, mutability, access restrictions, and return type without redundancy. Well-structured for quick parsing, though the opening 'Calls bufferAmounts' is unnecessary given 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?

For a single-parameter read function without output schema, the description adequately covers the return type (uint256) and access pattern. However, it omits domain-specific context about what buffer amounts represent in this DeFi vault system and their relationship to pool liquidity.

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

Parameters3/5

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

The input schema has 100% description coverage (param0 documented as Ethereum address), establishing baseline adequacy. The description mentions 'param0: string' but adds no semantic meaning beyond the schema, such as which token address to query or expected address format examples.

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

Purpose3/5

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

The description states it returns uint256 and is read-only, providing basic technical purpose, but 'Calls bufferAmounts' is tautological. It fails to explain what 'buffer amounts' represent semantically (e.g., liquidity buffers) or distinguish from similar getters like poolAmounts or reservedAmounts.

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 notes the function is 'Unrestricted' regarding access, but provides no guidance on when to query buffer amounts versus sibling state-reading functions such as poolAmounts, reservedAmounts, or guaranteedUsd.

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

buyUSDGBInspect

Calls buyUSDG(_token: string, _receiver: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_receiverYesaddress (Ethereum address, 0x-prefixed).
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 and effectively discloses: (1) it's a write/mutating function, (2) access control risks exist, and (3) it returns uint256. This covers critical behavioral traits for a blockchain interaction, though it omits side effects like balance changes.

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?

Four concise sentences with logical flow: function signature, mutability warning, safety instruction, return type. The first sentence is somewhat wasted on tautology, but overall no fluff and appropriately front-loaded with critical safety info.

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 2-parameter financial smart contract function with no output schema, the description covers essential safety aspects (access control) and return type. However, it lacks business logic context (what USDG is, slippage tolerance, or error conditions) needed for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100% (both parameters documented as Ethereum addresses), establishing baseline 3. The description repeats parameter names/types but adds no semantic context (e.g., that _token is the asset being sold, or that _receiver receives the minted USDG).

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

Purpose3/5

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

The description states it 'Calls buyUSDG' which is tautological, but identifies it as a 'Write function.' However, it fails to explain what 'buying USDG' actually accomplishes (e.g., minting stablecoins, swapping assets) or how it differs from siblings like 'sellUSDG' or 'swap.'

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 warns about access control restrictions ('onlyOwner') and advises checking contract source, which is safety guidance. However, it provides no functional guidance on when to use this tool versus alternatives like 'sellUSDG' or prerequisites such as token approvals.

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

BuyUSDGCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
accountYesaddress (Ethereum address, 0x-prefixed).
usdgAmountYesuint256 (uint256, pass as decimal string).
tokenAmountYesuint256 (uint256, pass as decimal string).
feeBasisPointsYesuint256 (uint256, pass as decimal string).
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 correctly identifies this as an event subscription rather than a state-changing transaction, but does not clarify whether this creates a persistent subscription or one-time query, what data structure is returned, or filtering limitations.

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 two-sentence description contains no redundant words and is appropriately front-loaded with the critical distinction that this is an event. However, extreme brevity limits its utility, as no expansion on the event's business logic is provided.

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 having 5 well-documented input parameters, the description lacks essential context for an event tool: it does not explain what triggers the event (a USDG purchase), what the output looks like (no output schema exists), or how to interpret the returned event data. Significant gaps remain for agent comprehension.

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

Parameters3/5

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

The schema has 100% description coverage for all 5 parameters (account, token, amounts, feeBasisPoints). The description adds no parameter-specific context, but the schema comprehensively documents types and formats, warranting the baseline score of 3.

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 identifies this as a contract event for log filter subscriptions, distinguishing it from the 'buyUSDG' function sibling (camelCase vs PascalCase convention). However, it fails to explain what the event represents (e.g., 'Emitted when USDG is purchased/minted'), leaving the domain semantics unclear.

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 phrase 'Subscribe via log filters' implies the mechanism for use but provides no explicit guidance on when to use this event subscription versus calling the 'buyUSDG' function directly. No prerequisites, alternatives, or exclusions are mentioned.

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

clearTokenConfigBInspect

Calls clearTokenConfig(_token: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses: (1) state-mutating nature ('Write function'), (2) authorization requirements ('access control restrictions'), and (3) return value behavior ('No return value'). However, it omits the actual side effects of clearing (what happens to the token's state) and whether the operation is reversible.

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

Conciseness4/5

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

Four sentences with minimal redundancy. The front-loaded function signature is unnecessary, but the subsequent sentences efficiently cover write classification, access control warnings, and return value. No extraneous information is included.

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?

Adequate for a single-parameter administrative function, covering invocation safety and return behavior. However, given this appears to be a DeFi vault contract tool (evidenced by siblings like `setTokenConfig`, `addRouter`), the description should specify whether clearing removes the token from the whitelist or merely resets its configuration values.

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

Parameters3/5

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

The input schema has 100% description coverage for the single `_token` parameter. The description mentions '_token: string' which adds no semantic value beyond the schema, but meets the baseline expectation when schema documentation is complete. No additional context about address format or valid token addresses is provided.

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 identifies this as a 'Write function' targeting token configuration, but opens with a tautological function signature ('Calls clearTokenConfig(_token: string)') that merely restates the tool name. While it distinguishes from read-only siblings via the 'Write function' label, it fails to clarify what 'clearing' specifically entails (removing from whitelist vs. resetting parameters).

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

Usage Guidelines3/5

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

Provides explicit warning about access control restrictions ('e.g. onlyOwner') and advises checking contract source for modifiers, which functions as prerequisite guidance. However, it lacks explicit comparison to sibling tool `setTokenConfig` or guidance on when clearing is preferred over updating configuration.

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

ClosePositionCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesbytes32 (32-byte hex string, 0x-prefixed).
sizeYesuint256 (uint256, pass as decimal string).
collateralYesuint256 (uint256, pass as decimal string).
realisedPnlYesint256 (int256, pass as decimal string).
averagePriceYesuint256 (uint256, pass as decimal string).
reserveAmountYesuint256 (uint256, pass as decimal string).
entryFundingRateYesuint256 (uint256, pass as decimal string).
Behavior2/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. It only states that this relates to log subscription without explaining return format, pagination for historical queries, subscription lifecycle, or whether this is idempotent. The phrase 'Subscribe via log filters' hints at read-only behavior but lacks specifics.

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 brief at two short sentences with no redundant text. However, for a tool with 7 parameters and complex blockchain context, this brevity results in under-specification rather than efficient communication. Every sentence earns its place, but there are too few sentences.

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?

Inadequate for a 7-parameter blockchain event tool with no output schema. The description fails to explain the relationship to the position lifecycle (when this event fires), what data it returns, or how to interpret the parameters (e.g., that 'realisedPnl' represents profit/loss at position closure). Missing crucial context 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?

The input schema has 100% description coverage with detailed type information (bytes32, uint256, int256) and format instructions ('pass as decimal string'). The description adds no semantic context about what 'key' represents or how 'realisedPnl' is calculated, but with complete schema coverage, the baseline score applies.

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?

Identifies this as an event subscription tool ('Event emitted by the contract. Subscribe via log filters') rather than an action, distinguishing it from siblings like 'decreasePosition'. However, it fails to clarify whether the tool queries historical events, creates a subscription, or decodes logs, leaving the actual function ambiguous.

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?

Provides no explicit guidance on when to use this event tool versus calling action methods like 'decreasePosition' or 'liquidatePosition'. While the event/action distinction is implied by the description, there is no 'when-to-use' or 'when-not-to-use' guidance for an agent trying to close a position.

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

CollectMarginFeesCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
feeUsdYesuint256 (uint256, pass as decimal string).
feeTokensYesuint256 (uint256, pass as decimal string).
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 but only mentions the subscription mechanism. It fails to disclose authentication requirements, expected event frequency, triggers for margin fee collection, or whether this is a read-only subscription versus a triggering action. The description lacks critical context about the event's significance in the margin trading lifecycle.

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 consists of only two brief sentences with zero redundant wording, making it highly concise. However, this extreme brevity contributes to under-specification for a complex DeFi contract tool. While every sentence earns its place, the structure lacks necessary elaboration for proper agent comprehension.

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 margin fee collection in what appears to be a perpetual vault contract (evidenced by sibling tools like 'liquidatePosition' and 'increasePosition'), the description is insufficient. It lacks explanation of event trigger conditions, the relationship between the token address and fee amounts, and expected return values. For a 3-parameter tool with no annotations or output schema, significantly more contextual detail is required.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 technical type descriptions (e.g., 'uint256, pass as decimal string'), establishing a baseline understanding of data formats. The description adds no semantic context about what 'feeUsd' versus 'feeTokens' represent in margin calculations or provide examples of valid inputs. No additional constraints or relationships between parameters are documented 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 identifies the tool as subscribing to contract events via log filters, providing a basic mechanism. However, it fails to explain what 'CollectMarginFees' represents (e.g., fees collected during position closure) or how it differs from the sibling 'CollectSwapFees' tool. The phrase 'Event emitted by the contract' is generic and lacks specific business logic.

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 'CollectSwapFees' or other fee-related functions. There are no stated prerequisites for subscription or filtering criteria. While it mentions 'log filters,' it does not specify appropriate usage scenarios or conditions.

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

CollectSwapFeesCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
feeUsdYesuint256 (uint256, pass as decimal string).
feeTokensYesuint256 (uint256, pass as decimal string).
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 establishes the subscription pattern (log filters) but omits critical details: when the event fires (what contract actions trigger it), whether it's a one-time query or continuous stream, and what the return data structure looks like. It meets minimum viability but lacks richness.

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

Conciseness4/5

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

Two sentences with zero redundancy. Front-loaded with the critical fact that this is an event (not a function call). However, given the tool's complexity (3 required params, no annotations), the extreme brevity arguably underserves the agent's information needs, preventing 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?

Insufficient for a 3-parameter event subscription tool with no annotations and no output schema. Missing: event trigger conditions, relationship to swap operations, expected frequency, and differentiation from the 90+ sibling tools (particularly 'CollectMarginFees'). The description assumes familiarity with the contract's event architecture.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 types (address, uint256), so the baseline is 3. The description adds no parameter context (e.g., that 'feeUsd' represents the USD value of collected fees, or that 'token' is the fee-bearing asset), but given comprehensive schema documentation, no additional text is strictly necessary.

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 identifies this as a contract event and mentions log filter subscription, but fails to explain what 'CollectSwapFees' specifically represents (e.g., event emitted when swap fees are accumulated) or how it differs from sibling 'CollectMarginFees'. It states what it is (an event) but not what it does functionally.

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 subscribe to this event versus querying historical data or using other fee-related tools like 'CollectMarginFees'. The only usage hint is 'Subscribe via log filters' with no context on trigger conditions or prerequisites.

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

cumulativeFundingRatesCInspect

Calls cumulativeFundingRates(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior3/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 of disclosing safety and auth characteristics, which it does ('Read-only,' 'Unrestricted'). However, it fails to explain what the returned uint256 represents (e.g., funding rate precision, what the address parameter signifies, or whether this value is used for position funding fee calculations).

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

Conciseness4/5

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

The description is compact at three sentences with no significant fluff. However, the first sentence 'Calls cumulativeFundingRates(param0: string)' is redundant given the tool name and schema, slightly reducing efficiency.

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 financial tool in a complex perpetual/DEX protocol (evidenced by 80+ siblings including positions, swaps, and funding mechanics), simply stating 'Returns uint256' is insufficient. Given the lack of output schema, the description should explain the return value's semantics (funding rate units, cumulative calculation method) and the address parameter's domain (likely token address).

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description mentions 'param0: string' which merely duplicates schema information. It does not add semantic meaning beyond the schema's 'address' type hint, failing to clarify whether this address represents a token, trader, or market pool.

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 identifies this as a read-only operation returning uint256, which partially clarifies purpose. However, the opening 'Calls cumulativeFundingRates(param0: string)' is tautological, and it fails to explain what 'cumulative funding rates' represent in this DeFi context or how this differs from siblings like getNextFundingRate, fundingRateFactor, or updateCumulativeFundingRate.

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 states 'Unrestricted — any address can call this read function,' which provides basic access control context. However, there is no guidance on when to use this specific funding rate function versus the numerous sibling funding-related tools (e.g., whether this retrieves historical cumulative rates vs current rates).

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

DecreaseGuaranteedUsdCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully clarifies that this is an event subscription (read operation) rather than a write operation despite the imperative name 'Decrease...'. However, it lacks details on what triggers this event, the return format, or whether the parameters are indexed filters.

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 at two sentences with no filler. Information is front-loaded: first sentence identifies the nature (event emission), second provides the action (subscription method). While appropriately brief for the complexity, it borders on underspecified for agents lacking domain knowledge.

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 only 2 primitive parameters with 100% schema coverage and no output schema, the description meets minimum requirements. However, it omits domain context (DeFi vault mechanics, guaranteed USD concept) that would help agents understand when this event is relevant to their task.

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

Parameters3/5

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

Schema description coverage is 100%, providing 'token' and 'amount' types. The description adds no additional semantic context (e.g., that token refers to a whitelisted collateral asset, or that amount is the delta of guaranteed USD). Baseline score applies since schema is self-documenting but description doesn't enrich it.

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 identifies the tool as an event subscription ('Subscribe via log filters') and names the event source ('Event emitted by the contract'). However, it fails to explain what 'DecreaseGuaranteedUsd' represents in business terms (e.g., reducing USD guarantees in a vault), leaving agents to infer from the cryptic name alone.

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

Usage Guidelines2/5

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

The description provides the mechanism ('Subscribe via log filters') but offers no contextual guidance on when to use this specific event subscription versus sibling events like 'IncreaseGuaranteedUsd' or other log filters. No filtering strategy or use-case hints are provided.

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

DecreasePoolAmountCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
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 mentions 'log filters' suggesting a read-only monitoring behavior, but fails to specify what data is returned (event logs, subscription IDs), whether this captures historical or future events, or any rate limiting concerns.

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 consists of two brief sentences that are front-loaded. While the content is somewhat ambiguous regarding the exact mechanism, there is minimal waste—every word attempts to convey the nature of the tool (event-based, filter subscription).

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

Completeness2/5

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

Given the lack of an output schema and annotations, the description should explain what the tool returns (e.g., event objects, confirmation of subscription) and clarify the operational model. It leaves critical gaps regarding the invocation result and event lifecycle.

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

Parameters3/5

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

The input schema has 100% description coverage (token as Ethereum address, amount as uint256), establishing clear parameter semantics on its own. The description adds no additional context about these parameters, meeting the baseline expectation when schema coverage is high.

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 identifies the tool relates to an 'Event emitted by the contract' and mentions subscription via log filters, which hints at its purpose. However, it fails to clearly articulate what the tool actually does upon invocation (e.g., query historical events, establish a subscription, or decode logs), and does not explicitly distinguish this event-watching capability from similar action-oriented siblings like 'decreasePosition'.

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 for subscription. While it implies this is for monitoring the DecreasePoolAmount event, it does not clarify use cases or when to prefer querying over subscribing.

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

decreasePositionCInspect

Calls decreasePosition(_account: string, _collateralToken: string, _indexToken: string, _collateralDelta: string, _sizeDelta: string, _isLong: boolean, _receiver: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_receiverYesaddress (Ethereum address, 0x-prefixed).
_sizeDeltaYesuint256 (uint256, pass as decimal string).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_collateralDeltaYesuint256 (uint256, pass as decimal string).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

Explicitly identifies this as a 'Write function' and warns about potential onlyOwner modifiers, which is critical given no annotations exist. However, it lacks disclosure of side effects (token transfers to receiver), what the returned uint256 represents, 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.

Conciseness4/5

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

Efficiently structured with function signature first, followed by mutation warning, access control note, and return type. No filler text, though the parameter type listing is redundant with the schema.

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 7-parameter DeFi mutation with no annotations, the description is insufficient. It omits critical context: the relationship between parameters (collateral vs index tokens), what decreasing a position actually does, and the meaning of the return value. The 'Returns uint256' mention is helpful but underspecified.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description lists all parameters with types in the first sentence, but this merely duplicates the schema without adding semantic context (e.g., explaining that _sizeDelta represents the position size reduction or that _receiver gets the withdrawn collateral).

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

Purpose3/5

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

The description states it 'Calls decreasePosition' with the full function signature, which provides specificity but is somewhat tautological. It fails to explain the domain meaning of 'decreasing a position' (e.g., reducing leverage, partial close) and does not differentiate from siblings like ClosePosition or LiquidatePosition.

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?

Contains a warning about access control restrictions and advises checking contract source, but provides no guidance on when to use this tool versus alternatives like ClosePosition, LiquidatePosition, or the capitalized DecreasePosition sibling.

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

DecreasePositionCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
feeYesuint256 (uint256, pass as decimal string).
keyYesbytes32 (32-byte hex string, 0x-prefixed).
priceYesuint256 (uint256, pass as decimal string).
isLongYesbool.
accountYesaddress (Ethereum address, 0x-prefixed).
sizeDeltaYesuint256 (uint256, pass as decimal string).
indexTokenYesaddress (Ethereum address, 0x-prefixed).
collateralDeltaYesuint256 (uint256, pass as decimal string).
collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

No annotations provided, so description carries full burden. It correctly identifies this as an event (not a function call) and mentions log filters, but lacks context on emission triggers, data retention, or whether this streams indefinitely.

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 at two sentences. While no words are wasted, the brevity is arguably insufficient for a 9-parameter DeFi event tool where domain context is critical.

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 9 parameters in a complex DeFi protocol (evident from siblings like 'liquidatePosition', 'vault', 'usdg'), the description inadequately explains the event's business meaning, trigger conditions, or relationship to position lifecycle events like 'ClosePosition' or 'IncreasePosition'.

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

Parameters3/5

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

Input schema has 100% coverage with technical type descriptions. The description adds no business semantics (e.g., explaining that 'sizeDelta' represents the change in position size), but baseline 3 is appropriate given comprehensive schema documentation.

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 identifies this as an event subscription tool ('Subscribe via log filters'), but fails to explain what 'DecreasePosition' signifies (reducing a leveraged trading position) or distinguish it from the similarly named sibling 'decreasePosition' function.

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 event subscription versus querying state directly, or prerequisites for subscription. Does not mention that this event fires when traders reduce position size.

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

DecreaseReservedAmountCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

Without annotations, the description carries the full burden. It correctly identifies this as a passive subscription ('Event emitted') rather than an action, which is crucial safety information. However, it lacks details on subscription lifecycle (real-time vs historical), return payload structure, or rate limiting that annotations would typically cover.

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 at two sentences with no filler. Information is front-loaded with the event type identification. However, given the high domain complexity and lack of annotations, this brevity results in under-specification rather than efficient communication.

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 DeFi vault tool with 85+ siblings and no annotations, the description is insufficient. It fails to explain what triggers this event (e.g., position closure, liquidation), how it relates to vault token management, or the structure of the emitted event data.

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

Parameters3/5

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

With 100% schema description coverage (token as Ethereum address, amount as uint256), the schema fully documents the parameters. The description adds no parameter context, warranting the baseline score of 3 for high-coverage schemas.

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 identifies this as an event subscription tool ('Subscribe via log filters') rather than a state-changing operation, which prevents confusion given the action-oriented name 'DecreaseReservedAmount'. However, it fails to explain what 'ReservedAmount' refers to in this DeFi context (e.g., reserved liquidity in a vault) or how it relates to sibling tools like IncreaseReservedAmount.

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 subscribe to this event versus querying current reserved amounts via 'reservedAmounts', or when to use this versus listening to similar pool events. No mention of prerequisites like contract addresses or network selection.

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

DecreaseUsdgAmountCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

With no annotations provided, the description carries the full burden. It implies read-only behavior via 'Subscribe via log filters' but does not explicitly confirm safety, rate limits, or whether the subscription persists across sessions. It also omits what event fields are returned beyond the filter parameters.

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

Conciseness4/5

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

Extremely brief at two sentences with no redundancy. However, the first sentence ('Event emitted by the contract') is passive/descriptive while the second ('Subscribe via log filters') is imperative, creating a slight structural disjoint that could be unified for 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?

For a simple 2-parameter event tool without output schema, the description is minimally adequate. However, it lacks critical context about the event's significance in the protocol (reduction of USDG supply) and does not explain the relationship between the filter parameters and the returned event data.

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

Parameters3/5

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

Schema description coverage is 100%, documenting 'token' as an Ethereum address and 'amount' as uint256. The description adds no additional semantic context (e.g., that 'token' refers to the collateral token being redeemed, or that 'amount' represents the USDG quantity burned), meeting the baseline for high-coverage schemas.

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 identifies the tool as an event subscription interface ('Subscribe via log filters'), distinguishing it from transaction-based siblings like 'decreasePosition'. However, it fails to explain what 'DecreaseUsdgAmount' represents in business terms (e.g., USDG burning/redemption events) or what data the subscription returns.

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 querying state directly or using sibling event tools like 'IncreaseUsdgAmount'. No mention of whether this captures historical logs or real-time subscriptions only.

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

directPoolDepositBInspect

Calls directPoolDeposit(_token: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses mutation ('Write function'), authorization risks ('access control restrictions'), and return value behavior ('No return value'). However, it omits critical behavioral details: whether tokens are transferred from the caller, what state changes occur in the pool, or potential revert conditions.

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 four-sentence structure is efficient and front-loaded with the function signature (useful EVM context). No words are wasted, though the brevity sacrifices necessary detail about the financial operation being performed.

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 this is a DeFi value-moving operation (depositing assets into a pool), the description is inadequate. It fails to explain the financial mechanics, necessary approvals, event emissions, or side effects on pool liquidity. For a single-parameter write function with no output schema, it should provide more operational 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?

The input schema has 100% coverage, documenting that `_token` is an Ethereum address. The description merely repeats the parameter name and type (`_token: string`) without adding semantic meaning—such as whether this must be a whitelisted token, the token's role in the deposit, or validation requirements.

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 identifies this as a 'Write function' which distinguishes it from view functions in the sibling list, but the opening 'Calls directPoolDeposit(_token: string)' is tautological. It fails to explain the business purpose—what 'direct pool deposit' actually accomplishes (e.g., adding liquidity to a vault pool) or what happens to the deposited tokens.

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

Usage Guidelines3/5

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

It provides a specific usage constraint by warning about access control restrictions (e.g., onlyOwner) and advises checking contract source for modifiers. However, it lacks guidance on when to use this versus sibling alternatives like `increasePosition` or `buyUSDG`, or prerequisites like token approvals.

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

DirectPoolDepositCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
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 correctly implies a read-only subscription pattern by mentioning 'log filters,' but lacks critical details about what data the subscription returns, whether it provides real-time updates or historical logs, or the format of the emitted event data beyond the input filter parameters.

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

Conciseness4/5

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

The description is extremely concise at two sentences. Every word earns its place—establishing the event nature and subscription mechanism immediately. However, the brevity borders on under-specification for a blockchain event tool where additional context would prevent confusion with the transaction-creating function variant.

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 an event subscription tool with no output schema, the description should explain what the agent receives when this event fires and what the parameters represent in the event context (deposit token and quantity). The current description provides no return value documentation or event semantics, leaving significant gaps despite the simple parameter schema.

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

Parameters3/5

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

The input schema has 100% description coverage for both parameters ('token' and 'amount'), documenting the data types (address and uint256) and formats. The description adds no parameter-specific context, meeting the baseline score for high schema coverage but not compensating with semantic context (e.g., clarifying these are filter criteria for the event logs).

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 identifies this as an event subscription tool ('Event emitted by the contract. Subscribe via log filters'), which clarifies the mechanism. However, it fails to explain what 'DirectPoolDeposit' semantically represents (e.g., liquidity provision events) or what business logic triggers this event, leaving the agent to infer purpose from the name alone.

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

Usage Guidelines2/5

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

While it mentions 'Subscribe via log filters,' there is no guidance on when to monitor this event versus calling related state-changing functions (like potential deposit functions). No alternatives or prerequisites are mentioned despite numerous sibling tools with similar naming patterns (PascalCase vs camelCase) that likely represent the corresponding function calls.

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

errorControllerAInspect

Calls errorController(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully discloses key behavioral traits: read-only nature ('does not modify contract state'), access control ('any address can call'), and return type ('Returns address'). It omits details about what the error controller address represents, but covers the critical safety and access properties.

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

Conciseness5/5

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

The description consists of four short sentences, each earning its place: identifying the function, declaring read-only status, stating access restrictions, and specifying the return value. It is appropriately sized and front-loaded with essential safety information.

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

Completeness4/5

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

Given the simplicity (zero parameters) and lack of output schema, the description adequately covers the return type ('address') and operational constraints. It successfully compensates for the missing output schema and annotations, though it could briefly clarify what the error controller address is used for.

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 contains zero parameters. Per the baseline rules for zero-parameter tools, this earns a score of 4. There are no parameters requiring semantic clarification in the description text.

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 an address and is read-only, distinguishing it from the sibling 'setErrorController'. However, 'Calls errorController()' is somewhat tautological, and it doesn't explicitly state it 'gets' or 'retrieves' the error controller address, slightly weakening the clarity.

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

Usage Guidelines3/5

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

The description provides implicit guidance by stating it is 'Read-only' and 'Unrestricted', contrasting with state-modifying alternatives like 'setErrorController'. However, it lacks explicit guidance on when to use this versus siblings like 'errors' or 'setErrorController'.

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

errorsCInspect

Calls errors(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns string.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesuint256 (uint256, pass as decimal string).
Behavior3/5

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

Since no annotations exist, the description carries the full burden. It successfully discloses 'Read-only' status and 'Unrestricted' access, plus return type (string). However, it lacks depth on what the returned string contains (error message format?) or parameter 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?

Four efficient sentences with no filler. Information is front-loaded with the function signature, followed by safety/access control attributes, and return type. Could combine 'Returns string' with first sentence but generally tight.

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 this DeFi protocol (100+ functions including margin trading, swaps, liquidations), the description is insufficient. It doesn't explain the error registry pattern, what valid param0 values are, or how this fits into error handling workflows.

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

Parameters3/5

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

Schema coverage is 100% and already documents the uint256/string typing. The description mentions 'param0: string' but adds no semantic meaning (e.g., 'error code index' or 'error identifier'), settling at the baseline for high schema coverage.

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

Purpose3/5

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

The description states it calls the 'errors' function and returns a string, but 'Calls errors' is somewhat tautological. It fails to explain what 'errors' represents in this DeFi vault context (likely an error message lookup by code) or how it differs from dozens of other read functions in the sibling list.

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

Usage 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 versus other troubleshooting methods (like validateLiquidation) or what specific error codes should be queried. No mention of prerequisites or alternatives.

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

feeReservesCInspect

Calls feeReserves(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

Without annotations, the description carries the safety disclosure burden and correctly states 'Read-only — does not modify contract state.' It also discloses the return type (uint256). However, it fails to explain what the returned value represents (e.g., fee amount in wei, USD units, or basis points) or the implications of the parameter (which token's reserves are being queried).

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 efficiently structured in three sentences totaling ~20 words. It front-loads the function signature and immediately follows with safety characteristics. However, extreme brevity comes at the cost of omitting semantic details that would aid tool selection.

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 annotations, the description inadequately explains the return value. Stating only 'Returns uint256' without units, scaling, or semantic meaning (e.g., 'returns the amount of accumulated swap fees for the specified token') leaves critical gaps for an agent attempting to interpret or display the result.

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

Parameters3/5

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

With 100% schema description coverage ('address (Ethereum address, 0x-prefixed)'), the baseline is met. The description mentions 'param0: string' which aligns with the schema but adds no semantic context about what the address represents (e.g., the token address for which to query accumulated fees).

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

Purpose3/5

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

The description states it calls the feeReserves function and returns a uint256, establishing it as a read operation. However, it fails to explain what 'fee reserves' represent in this DeFi vault context (likely accumulated protocol fees), making it indistinguishable from similar sibling getters like reservedAmounts or poolAmounts without prior domain knowledge.

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 notes the function is 'Unrestricted — any address can call,' providing basic authorization context. However, it offers no guidance on when to use this versus related state queries (e.g., tokenBalances, poolAmounts) or what business logic scenarios warrant checking fee reserves.

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

fundingIntervalAInspect

Calls fundingInterval(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 effectively communicates safety (read-only, does not modify state) and access permissions (unrestricted). It also discloses the return type (uint256), though it omits what the uint256 represents (e.g., seconds, blocks).

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

Conciseness5/5

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

Four short sentences with no filler. Information is front-loaded with the operation name, followed by safety characteristics, access restrictions, and return type. Every sentence serves a distinct purpose.

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

Completeness4/5

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

For a simple parameterless read function without an output schema, the description adequately covers the essential contract: operation identity, mutability, access control, and return type. It could be improved by specifying the semantic meaning of the returned uint256 (time interval units) to fully complete the contract.

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

Parameters4/5

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

The tool has zero parameters and 100% schema description coverage (trivially). Per the evaluation rules, zero parameters warrants a baseline score of 4. The description does not need to compensate for any parameter documentation gaps.

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

Purpose4/5

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

The description states the tool calls fundingInterval() and returns a uint256, clearly identifying it as a read operation retrieving a funding interval value. While 'Calls fundingInterval()' is slightly circular, the 'Read-only' designation and return type specification provide adequate specificity to distinguish it from state-modifying siblings.

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted — any address can call this read function,' which provides access control guidance. However, it lacks explicit guidance on when to use this versus related siblings like getNextFundingRate, cumulativeFundingRates, or MIN_FUNDING_RATE_INTERVAL.

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

fundingRateFactorBInspect

Calls fundingRateFactor(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully discloses that the operation is 'Read-only' and 'does not modify contract state,' covering safety. However, it omits critical context about the return value semantics (e.g., what the uint256 represents, its precision, or valid ranges) beyond the raw type.

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 efficiently structured with four short, distinct statements covering the function call, safety, permissions, and return type. It loses one point for the slightly redundant opening 'Calls fundingRateFactor()' which restates the tool name without adding semantic 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 no output schema exists, the description should explain the return value's meaning. While it states 'Returns uint256,' it fails to describe what this value represents (e.g., 'the current funding rate multiplier used to calculate hourly funding fees'). For a simple getter with 0 inputs, the description is minimally adequate but leaves gaps in semantic understanding.

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 contains zero parameters. As per the baseline rules for 0-parameter tools, this earns a 4. The description correctly does not invent parameter documentation where none exist.

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

Purpose3/5

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

The description states it calls the fundingRateFactor() function and returns a uint256, but 'Calls fundingRateFactor()' is tautological. It fails to explain what the funding rate factor actually represents (e.g., a multiplier for funding fee calculations) or how it differs from siblings like stableFundingRateFactor or MAX_FUNDING_RATE_FACTOR.

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted — any address can call this read function,' providing useful permission context. However, it lacks guidance on when to use this tool versus alternatives like getNextFundingRate or stableFundingRateFactor, which are relevant given the DeFi contract context.

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

FUNDING_RATE_PRECISIONAInspect

Calls FUNDING_RATE_PRECISION(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully discloses the safety profile ('Read-only — does not modify contract state'), access permissions ('Unrestricted'), and return type ('Returns uint256'). It does not mention rate limits or the specific numerical value/scale expected.

Agents need to know what a tool does to the world before 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 with zero waste: function signature, mutability state, access control, and return type. Each sentence provides distinct, non-redundant information and is appropriately front-loaded.

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

Completeness4/5

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

For a parameterless constant getter without output schema, the description adequately covers the return type (uint256) and operational constraints. It could be improved by explaining what the precision value represents (e.g., 'scaling factor for funding rate calculations'), but it is sufficient for safe invocation.

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

Parameters4/5

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

The tool has zero parameters, which per guidelines establishes a baseline of 4. The schema is empty and requires no additional semantic explanation.

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

Purpose4/5

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

The description clearly identifies this as a read-only getter returning uint256, but the first sentence 'Calls FUNDING_RATE_PRECISION()' is tautological. It doesn't explain what 'funding rate precision' semantically represents (e.g., the decimal scaling factor) to distinguish it from sibling precision constants like BASIS_POINTS_DIVISOR or PRICE_PRECISION.

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

Usage Guidelines3/5

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

The description provides access control guidance ('Unrestricted — any address can call'), which is useful. However, it lacks guidance on when to use this specific precision constant versus the many similar constants available in siblings (e.g., PRICE_PRECISION, USDG_DECIMALS, BASIS_POINTS_DIVISOR).

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

getDeltaBInspect

Calls getDelta(_indexToken: string, _size: string, _averagePrice: string, _isLong: boolean, _lastIncreasedTime: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { _0: boolean, _1: string }.

ParametersJSON Schema
NameRequiredDescriptionDefault
_sizeYesuint256 (uint256, pass as decimal string).
_isLongYesbool.
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_averagePriceYesuint256 (uint256, pass as decimal string).
_lastIncreasedTimeYesuint256 (uint256, pass as decimal string).
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 and effectively discloses that the function is read-only, requires no authorization, and returns a structured object { _0: boolean, _1: string }. However, it does not explain what the boolean and string represent semantically (e.g., profit flag and delta amount).

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

Conciseness4/5

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

The description is compact and efficiently structured, front-loading critical safety information ('Read-only', 'Unrestricted') before detailing the signature and return type. The opening 'Calls getDelta' is slightly redundant with the tool name but serves to introduce the parameter list.

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

Completeness3/5

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

Given the complexity of the DeFi vault protocol (evident from 100+ sibling tools), the description provides minimal viable context: it specifies the return structure (compensating for lack of output schema) and safety properties. However, it omits crucial domain context like what 'delta' calculates (price difference, funding fee, etc.) and how it relates to position management.

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

Parameters3/5

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

The input schema has 100% description coverage (types like uint256, bool, address are documented), establishing a baseline of 3. The description lists the parameter names and types but adds no business semantics (e.g., what _lastIncreasedTime represents or that _indexToken is the position's underlying asset).

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

Purpose3/5

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

The description states it 'Calls getDelta' with specific parameters and returns a boolean and string, but does not explain what 'delta' represents (e.g., PnL, funding rate delta) or the business logic of the calculation. It mentions the function signature but fails to distinguish from siblings like getPositionDelta or getGlobalShortDelta.

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

Usage Guidelines3/5

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

The description notes the function is 'Read-only' and 'Unrestricted,' providing basic safety and permission context, but lacks explicit guidance on when to use this raw calculation function versus retrieving stored position data via getPositionDelta or other sibling tools.

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

getFeeBasisPointsBInspect

Calls getFeeBasisPoints(_token: string, _usdgDelta: string, _feeBasisPoints: string, _taxBasisPoints: string, _increment: boolean). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_incrementYesbool.
_usdgDeltaYesuint256 (uint256, pass as decimal string).
_feeBasisPointsYesuint256 (uint256, pass as decimal string).
_taxBasisPointsYesuint256 (uint256, pass as decimal string).
Behavior4/5

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

With no annotations provided, the description successfully discloses critical behavioral traits: it explicitly states 'does not modify contract state' and 'any address can call this read function,' covering safety and authorization. However, it omits calculation logic details, potential revert conditions, or gas considerations.

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

Conciseness4/5

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

Three sentences with no extraneous information. The first sentence is somewhat redundant (repeating signature already defined in schema), but the subsequent sentences efficiently convey safety characteristics. Information is front-loaded with the function signature, though the opening could be more descriptive.

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 accepts five parameters for a calculation, yet lacks business logic explanation. It compensates for the missing output schema by stating 'Returns uint256,' but does not clarify what the returned value represents (basis points percentage, absolute fee, etc.) or provide calculation context. Adequate but incomplete for a complex financial calculation 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 100% description coverage for all five parameters (types and formats). The description merely lists the parameter signature without adding semantic context (e.g., explaining that _usdgDelta represents supply change, or how _increment affects the calculation). Baseline score applies since schema carries full load.

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 opens with 'Calls getFeeBasisPoints...' which is tautological, merely restating the tool name. While it specifies the function signature and return type, it fails to explain what the function actually calculates (e.g., computing adjusted fee rates) or how it differs from sibling tools like swapFeeBasisPoints, taxBasisPoints, or getPositionFee.

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 notes the tool is 'Read-only' and 'Unrestricted,' but provides no guidance on when to use this specific fee calculation versus the numerous sibling fee-related tools (e.g., marginFeeBasisPoints, stableSwapFeeBasisPoints). No prerequisites, conditions, or alternative selection criteria are provided.

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

getFundingFeeBInspect

Calls getFundingFee(_token: string, _size: string, _entryFundingRate: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_sizeYesuint256 (uint256, pass as decimal string).
_tokenYesaddress (Ethereum address, 0x-prefixed).
_entryFundingRateYesuint256 (uint256, pass as decimal string).
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 successfully discloses that the operation is read-only, unrestricted (any address can call), and returns uint256. However, it omits what the returned value represents (fee amount in what unit/precision) and potential revert conditions.

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 efficiently structured across three short sentences. The first sentence contains redundant type information already present in the schema, but overall there is minimal waste and the key behavioral properties (read-only, unrestricted) are 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?

For a calculation tool with 3 parameters and no output schema, the description covers the function signature and access patterns but lacks explanation of the return value's semantic meaning (currency, precision) and the business logic of funding fee calculation. Adequate but incomplete for DeFi contract interaction.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description lists the three parameters with types but adds no semantic context beyond the schema (e.g., what _entryFundingRate represents chronologically, or that _size refers to position size). It neither improves upon nor detracts from the schema documentation.

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

Purpose3/5

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

The description states it 'Calls getFundingFee' which restates the tool name (tautology), but clarifies it returns uint256. However, it fails to explain what a funding fee actually represents (accrual calculation for perpetual positions) or how it differs from sibling fee functions like getPositionFee or getNextFundingRate.

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?

While it notes the function is 'Read-only' and 'Unrestricted', it provides no guidance on when to use this specific calculation versus the 10+ sibling fee and funding-related tools (e.g., getNextFundingRate, getPositionFee). No prerequisites or alternative selection criteria are provided.

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

getGlobalShortDeltaAInspect

Calls getGlobalShortDelta(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { _0: boolean, _1: string }.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
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 and succeeds in communicating the safety profile (read-only, non-destructive) and access control (unrestricted). It also manually documents the return structure ({ _0: boolean, _1: string }) since no output schema exists, though it omits semantic meaning of those 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 consists of four efficient sentences, each delivering distinct value: function signature, mutability guarantee, access control, and return type structure. There is no redundant or wasted language; information is front-loaded with the call signature followed by critical behavioral constraints.

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

Completeness4/5

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

For a simple single-parameter read function, the description is nearly complete. It compensates for the missing output schema by specifying the return type structure, documents the single required parameter through the schema, and discloses behavioral traits. It falls short of a 5 only because it does not explain the semantic meaning of the boolean and string return values (e.g., what condition the boolean represents).

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 the _token parameter fully documented as an Ethereum address. The description mentions '_token: string' which aligns with but does not extend beyond the schema's type information. At this coverage level, the baseline score of 3 is appropriate as the description does not need to compensate for missing schema documentation.

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

Purpose3/5

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

The description uses the tautological 'Calls getGlobalShortDelta' which merely restates the tool name, earning only baseline clarity. While the return type hint ({ _0: boolean, _1: string }) suggests it retrieves delta values for global short positions, it fails to explain what 'Global Short Delta' actually represents or how it differs from siblings like getDelta or getPositionDelta.

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

Usage Guidelines3/5

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

The description provides implied usage context by stating the function is 'Read-only' and 'Unrestricted — any address can call this read function', indicating no authentication requirements. However, it lacks explicit guidance on when to prefer this over similar delta-calculation siblings (e.g., getPositionDelta) or what business logic scenarios warrant its use.

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

getMaxPriceAInspect

Calls getMaxPrice(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
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 and effectively discloses key behavioral traits: 'Read-only — does not modify contract state' and 'Unrestricted — any address can call'. This covers the safety and permission profile well, though it could add revert conditions or price precision details.

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

Conciseness5/5

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

Three sentences with zero waste. Information is front-loaded with the function signature, followed by critical behavioral properties (read-only/unrestricted) and return type. 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?

For a single-parameter read function, the description is minimally adequate. It notes the return type (uint256) compensating for the lack of output schema. However, given the complexity of the sibling ecosystem (90+ functions), it should explain what 'max price' means (e.g., maximum price for swaps/collateral).

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

Parameters3/5

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

The input schema has 100% description coverage (the _token parameter is documented as an Ethereum address). The description mentions '_token: string' but adds no semantic meaning beyond the schema. With high schema coverage, baseline 3 is appropriate.

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

Purpose4/5

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

The description identifies the function as read-only and specifies it returns uint256, which clarifies beyond the name. However, it fails to distinguish from sibling getMinPrice or explain what 'max price' represents in this DeFi context (e.g., maximum oracle price).

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 versus getMinPrice or other price-related siblings. The description does not indicate use cases such as 'use this for long position pricing' or similar contract-specific logic.

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

getMinPriceBInspect

Calls getMinPrice(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

Excellent disclosure given no annotations: explicitly states 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function'. Also specifies return type (uint256) which compensates for missing output schema.

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

Conciseness4/5

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

Three short sentences with minimal waste. The first sentence restates the function signature (slight redundancy), but the remaining sentences efficiently convey critical behavioral properties. Front-loaded with the essential call pattern.

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?

Adequate for a single-parameter getter: mentions return type despite no output schema. However, missing crucial context like price decimals/precision (common in DeFi contracts) and the specific meaning of 'minimum' (min of multiple oracles? TWAP floor?).

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

Parameters3/5

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

Schema has 100% coverage describing _token as an Ethereum address. The description mentions '_token: string' but this merely restates the signature without adding semantic context (e.g., 'the whitelisted token address to query'). Baseline 3 is appropriate when schema carries the load.

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

Purpose3/5

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

The description states it calls getMinPrice and returns uint256, but does not explain what 'minimum price' means in this DeFi context (e.g., minimum token price from oracle, floor price, etc.). It distinguishes read-only behavior but lacks semantic clarity on the business purpose.

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

Usage Guidelines2/5

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

No guidance provided on when to use getMinPrice versus siblings like getMaxPrice, getPosition, or other price-related functions. The agent cannot determine if this returns the minimum acceptable collateral price, historical low, or current floor price without trial and error.

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

getNextAveragePriceCInspect

Calls getNextAveragePrice(_indexToken: string, _size: string, _averagePrice: string, _isLong: boolean, _nextPrice: string, _sizeDelta: string, _lastIncreasedTime: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_sizeYesuint256 (uint256, pass as decimal string).
_isLongYesbool.
_nextPriceYesuint256 (uint256, pass as decimal string).
_sizeDeltaYesuint256 (uint256, pass as decimal string).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_averagePriceYesuint256 (uint256, pass as decimal string).
_lastIncreasedTimeYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

Without annotations, the description carries the full burden and successfully discloses that the operation is 'Read-only' and 'Unrestricted' (any address can call). However, it omits details about calculation precision, revert conditions, or the meaning of the returned value (price with what decimals?).

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

Conciseness4/5

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

The description is compact and front-loaded with the function signature. While efficient, the first sentence is partially redundant since the schema already defines the parameters. The safety properties are clearly stated in separate sentences.

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

Completeness3/5

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

Given the complexity of position calculations and 7 parameters, the description is minimally adequate. It notes the return type (uint256) compensating somewhat for the missing output schema, but lacks explanation of the calculation's business logic or what the return value represents.

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

Parameters3/5

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

With 100% schema description coverage, the baseline is 3. The description lists parameters in the signature but adds no semantic context beyond the schema (e.g., does not explain that _sizeDelta represents the increase in position size or that _lastIncreasedTime affects funding calculations).

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 function signature and indicates it returns a uint256, but fails to explain what 'next average price' actually calculates (e.g., the new average entry price when increasing a position size). It relies on the function name to convey meaning, which is vague without domain knowledge.

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 calculation versus siblings like getPosition or getPositionDelta. No mention of prerequisites such as needing existing position data or how this fits into the trading workflow.

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

getNextFundingRateAInspect

Calls getNextFundingRate(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

Without annotations, the description carries the full burden and successfully discloses critical behavioral traits: it explicitly states the operation is read-only ('does not modify contract state') and permissionless ('any address can call'). Minor gap: doesn't interpret the uint256 return value (e.g., precision, units, or what 'next' timeframe refers to).

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

Conciseness5/5

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

Extremely efficient three-sentence structure with zero waste: function signature, safety constraints, and return type. Information is front-loaded and dense. No redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 this is a simple single-parameter getter with full schema coverage, the description is nearly complete. It mentions the return type to compensate for missing output schema. Minor deduction for not explaining funding rate semantics or return value units, which would be necessary for the agent to interpret the raw uint256 result correctly.

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

Parameters3/5

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

Schema coverage is 100% with clear type documentation ('Ethereum address, 0x-prefixed'). The description mirrors this with '_token: string' but adds no semantic context beyond the schema, such as specifying this must be a whitelisted token address or providing an example. Baseline 3 is appropriate since schema is comprehensive.

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

Purpose4/5

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

States the specific action (calls getNextFundingRate) and target resource (funding rate for a token), including the return type (uint256). However, it assumes the agent understands what a 'next funding rate' represents in this DeFi context without explaining the domain concept or time horizon (next funding interval).

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

Usage Guidelines3/5

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

Provides safety context ('Read-only', 'Unrestricted') which implies when it's safe to call, but fails to differentiate from sibling funding-related tools like getFundingFee, cumulativeFundingRates, or fundingRateFactor. No guidance on when to prefer this over other funding queries.

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

getNextGlobalShortAveragePriceBInspect

Calls getNextGlobalShortAveragePrice(_indexToken: string, _nextPrice: string, _sizeDelta: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_nextPriceYesuint256 (uint256, pass as decimal string).
_sizeDeltaYesuint256 (uint256, pass as decimal string).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
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 effectively communicates safety (read-only, does not modify state) and access control (unrestricted), plus specifies the return type (uint256). It could improve by explaining what the returned value represents (e.g., price precision units).

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

Conciseness5/5

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

Extremely efficient four-sentence structure. Front-loaded with function signature, followed by safety guarantees, access permissions, and return type. No redundant or filler text.

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?

Adequate for a 3-parameter read-only function with no output schema, covering mutability and return type. However, it lacks domain context about the calculation's purpose (calculating average entry prices for global short exposure) and does not clarify the units or precision of the returned uint256.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%, establishing a baseline of 3. The description lists parameters with their types but adds no semantic context beyond the schema (e.g., explaining that _sizeDelta represents the change in position size or _nextPrice is the anticipated mark price).

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

Purpose3/5

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

The description states it calls a specific smart contract function and identifies it as read-only, but relies heavily on the function name to convey meaning. It lacks explanation of what 'next global short average price' represents conceptually (e.g., the average entry price for short positions after a size change).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus siblings like getNextAveragePrice or getGlobalShortDelta. While it notes the function is 'unrestricted,' it does not describe scenarios or prerequisites for invocation.

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

getPositionBInspect

Calls getPosition(_account: string, _collateralToken: string, _indexToken: string, _isLong: boolean). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { _0: string, _1: string, _2: string, _3: string, _4: string, _5: string, _6: boolean, _7: string }.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

With no annotations provided, the description adequately discloses that the function is read-only and unrestricted (callable by any address). However, it fails to explain the semantics of the 8 returned tuple fields (_0 through _7), only listing their types, leaving the agent unaware of what data (size, collateral, entry price, etc.) is actually returned.

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

Conciseness4/5

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

The description is compact and efficiently structured into four segments: function signature, read-only nature, access restrictions, and return type. It contains minimal redundancy, though repeating parameter types that are fully documented in the schema is slightly wasteful.

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 4-parameter read operation with simple types, the description covers the technical signature and basic behavioral constraints. However, given the complexity of DeFi position data (8 return fields), the description is incomplete without documenting what the returned values represent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 lists parameters with types but adds no semantic meaning beyond the schema (e.g., it does not explain that _isLong indicates a long vs short position, or that _indexToken represents the traded asset).

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 tool calls getPosition with specific parameters (account, collateralToken, indexToken, isLong), indicating it retrieves a trading position. However, it does not explicitly differentiate from sibling tools like getPositionDelta, getPositionFee, or getPositionLeverage, which return specific subsets of position data.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this comprehensive getter versus the specialized sibling getters (getPositionDelta, getPositionLeverage, etc.). The description notes it is unrestricted and read-only, but lacks selection criteria or prerequisites.

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

getPositionDeltaCInspect

Calls getPositionDelta(_account: string, _collateralToken: string, _indexToken: string, _isLong: boolean). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { _0: boolean, _1: string }.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description effectively carries the full burden by disclosing 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function'. It also specifies the exact return structure '{ _0: boolean, _1: string }' which compensates for the missing output schema.

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

Conciseness4/5

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

The description is efficiently structured in four short clauses. No sentences are wasted; even the function signature repetition serves to map parameters to return values. However, the signature repetition is somewhat redundant given the schema.

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

Completeness3/5

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

Given the lack of annotations and output schema, the description provides essential safety context (read-only, unrestricted) and return type structure. However, it lacks semantic explanation of what the boolean and string return values represent (e.g., hasProfit, deltaAmount) and doesn't clarify the business logic of 'position delta' calculation.

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

Parameters3/5

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

The input schema has 100% description coverage with types and formats already documented. The description merely repeats the parameter list with types ('_account: string, _collateralToken: string...') without adding semantic meaning (e.g., what '_isLong' represents in trading contexts). Baseline 3 is appropriate when schema coverage is complete.

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 opens with 'Calls getPositionDelta(...)' which tautologically restates the tool name. While it mentions the return type structure, it fails to explain what 'position delta' actually calculates (e.g., profit/loss, price difference) or how it differs from sibling tools like 'getDelta' or 'getPosition'.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus the numerous sibling position-querying tools (getPosition, getPositionFee, getPositionLeverage, getDelta). The 'Read-only' and 'Unrestricted' statements describe properties, not use cases or selection criteria.

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

getPositionFeeBInspect

Calls getPositionFee(_sizeDelta: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_sizeDeltaYesuint256 (uint256, pass as decimal string).
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 and successfully discloses key behavioral traits: it explicitly states 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function'. However, it fails to explain what the returned uint256 represents (e.g., fee amount in wei, basis points, etc.).

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 efficiently structured with four short sentences. Key safety information (read-only, unrestricted) is front-loaded. However, the opening sentence 'Calls getPositionFee...' wastes space restating the obvious instead of defining the concept.

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 complex DeFi domain and lack of output schema, the description should explain return value semantics (fee calculation method, token units). It mentions 'Returns uint256' but this is insufficient compared to the rich sibling ecosystem available. Missing differentiation from related fee functions leaves gaps.

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

Parameters3/5

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

The input schema has 100% description coverage, documenting _sizeDelta as a uint256 decimal string. The description merely echoes '_sizeDelta: string' without adding semantic context about what the size delta represents (e.g., position size change) or expected value format beyond the schema's explanation.

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 primarily states 'Calls getPositionFee(_sizeDelta: string)' which is tautological—it merely repeats the function name and signature without explaining what a 'position fee' represents or how it differs from sibling fee functions like getFundingFee or getFeeBasisPoints. While it adds 'Returns uint256', this lacks semantic meaning (units, currency).

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 the numerous similar position and fee-related siblings (e.g., getFundingFee, getPosition, getFeeBasisPoints). There are no prerequisites, conditions, or explicit alternatives mentioned.

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

getPositionKeyBInspect

Calls getPositionKey(_account: string, _collateralToken: string, _indexToken: string, _isLong: boolean). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bytes32.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description successfully carries the full burden of behavioral disclosure. It explicitly states the function is read-only, unrestricted (any address can call), and returns bytes32. This covers the essential behavioral traits for a blockchain view function, though it omits potential revert conditions or gas considerations.

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 efficiently structured with three distinct sentences covering the function signature, state modification behavior, and access/return characteristics. While repeating the full parameter list is slightly redundant given the schema, there is no extraneous information and the critical details are 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?

For a simple view function with no output schema, the description adequately covers the return type (bytes32) and input requirements. However, it misses the opportunity to explain what the position key represents (a unique identifier hash) and how it relates to the broader position management workflow evident in sibling tools like 'increasePosition' and 'decreasePosition'.

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

Parameters3/5

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

The input schema has 100% description coverage with type information for all four parameters. The description lists the parameters in the function signature but adds no semantic context beyond the schema (e.g., explaining that _isLong indicates a long vs short position, or that the tokens represent the collateral and index/market pair). Baseline 3 is appropriate given the complete schema coverage.

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

Purpose4/5

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

The description clearly identifies this as a read operation returning a bytes32 position key, with specific parameters listed. It distinguishes from siblings like 'getPosition' by specifying the return type (bytes32 key vs position data), though it could more explicitly explain that this generates a unique identifier rather than retrieving position state.

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 safety information (read-only, unrestricted access) but offers no guidance on when to use this tool versus alternatives like 'getPosition', 'getPositionDelta', or 'getPositionLeverage'. It does not explain that this is typically a prerequisite step to generate the key needed for other position lookups.

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

getPositionLeverageAInspect

Calls getPositionLeverage(_account: string, _collateralToken: string, _indexToken: string, _isLong: boolean). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
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 successfully declares the read-only nature ('does not modify contract state'), access control ('Unrestricted — any address can call'), and return type ('Returns uint256'), providing essential safety and usage 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 efficiently structured in three sentences: function signature, safety properties, and return type. The first sentence is slightly redundant with the tool name, but every sentence provides distinct value (params, read-only status, access, return type) without verbosity.

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

Completeness4/5

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

For a getter function with 4 parameters and no output schema, the description is reasonably complete. It compensates for the missing output schema by specifying the return type (uint256). However, it lacks clarification on the leverage format (e.g., whether 10x leverage returns 10, 10000, or 10000000).

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

Parameters3/5

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

The input schema has 100% description coverage (address types and bool are well-documented). The description lists the parameters but adds no semantic context beyond the schema (e.g., explaining that `_isLong` determines direction or that `_indexToken` is the traded asset). With high schema coverage, baseline 3 is appropriate.

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

Purpose4/5

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

The description clearly identifies this as a read operation that retrieves position leverage, distinguishing it from siblings like `getPosition` or `getPositionDelta`. While opening with 'Calls getPositionLeverage...' is slightly tautological, it immediately specifies the four key parameters, clarifying the scope of the query.

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. Given siblings like `getPosition` (likely returns full position data) and `getPositionDelta`, the description should clarify that this specifically retrieves leverage ratio when that single metric is needed, rather than full position state.

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

getRedemptionAmountBInspect

Calls getRedemptionAmount(_token: string, _usdgAmount: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_usdgAmountYesuint256 (uint256, pass as decimal string).
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 and successfully discloses key behavioral traits: read-only nature ('does not modify contract state'), permissionlessness ('any address can call'), and return type ('Returns uint256'). It does not, however, explain potential failure modes or revert conditions.

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 efficiently packed into one sentence with functional details parenthetically noted. The opening clause 'Calls getRedemptionAmount' is slightly tautological given the tool name, but the remainder adds value without verbosity.

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?

Without an output schema, the description mentions the return type (uint256) but omits critical semantic details—such as what the value represents (token quantity in wei?), whether it accounts for fees/slippage, or the calculation methodology. For a financial calculation tool, this context is missing.

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

Parameters3/5

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

The input schema has 100% description coverage (token address and uint256 format), establishing a baseline of 3. The description mentions the parameter names and types but adds no additional semantic context (e.g., that _usdgAmount is the amount to burn, or what the token represents) 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 identifies this as a call to getRedemptionAmount with specific parameters and notes it returns uint256. However, it fails to distinguish from similar siblings like getRedemptionCollateral and getRedemptionCollateralUsd, or explain what 'redemption' means in this context (e.g., burning USDG for tokens).

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?

While it notes the function is 'Unrestricted — any address can call,' it provides no guidance on when to use this tool versus the many related redemption/collateral calculation siblings (getRedemptionCollateral, getRedemptionCollateralUsd, etc.). No prerequisites or selection criteria are offered.

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

getRedemptionCollateralBInspect

Calls getRedemptionCollateral(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

Without annotations, the description carries the full burden and successfully discloses read-only safety ('does not modify contract state'), permissionlessness ('any address can call'), and return type ('uint256'). However, it omits what the uint256 represents semantically (e.g., token amount in wei, collateral value).

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

Conciseness5/5

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

Three sentences efficiently convey the function signature, safety profile, and return type with no redundancy. Critical safety information (read-only, unrestricted) is 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?

Adequate for a simple getter with one parameter—covers basic invocation needs. However, given the DeFi context (evident from siblings like USDG, vault functions), the description lacks domain-specific context about collateral mechanics, redemption logic, or return value units that would aid correct usage.

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

Parameters3/5

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

The input schema has 100% coverage with clear typing ('address (Ethereum address, 0x-prefixed)'). The description merely repeats the parameter name and type without adding semantic context (e.g., which token's redemption collateral is being queried), meeting the baseline for high schema coverage.

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

Purpose3/5

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

The description states it calls the getRedemptionCollateral function and returns uint256, but offers no explanation of what 'redemption collateral' represents or how it differs from siblings like getRedemptionCollateralUsd or getRedemptionAmount. It relies on the function name to convey meaning.

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 notes the function is 'Unrestricted' regarding access permissions, but provides no guidance on when to use this tool versus the many similar getter siblings (e.g., getRedemptionAmount, getRedemptionCollateralUsd) or what query scenarios warrant this specific call.

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

getRedemptionCollateralUsdBInspect

Calls getRedemptionCollateralUsd(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description effectively carries the full burden by explicitly declaring 'Read-only' and 'Unrestricted' access characteristics. It also specifies the return type (uint256). However, it lacks details on return value semantics (decimals, units) or failure modes.

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?

Four efficient sentences with no redundancy. Information is well-structured: function signature first, followed by behavioral constraints (readonly/unrestricted), then return type. 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?

For a single-parameter read function, the description covers the essential safety profile and return type. However, it lacks domain context—what redemption collateral represents, the precision of the USD value, and the relationship to similar redemption-related sibling tools. Adequate but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 _token parameter fully documented as an Ethereum address. The description mirrors this with '(_token: string)' but adds no additional semantic context (e.g., 'the token for which to query redemption collateral value'). Baseline score appropriate for high schema coverage without description enrichment.

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 technical action (calls the contract function) and return type (uint256), but fails to explain the semantic purpose—what 'redemption collateral USD' actually represents or how it differs from sibling functions like getRedemptionCollateral or getRedemptionAmount. It relies on the function name to convey meaning.

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., getRedemptionCollateral vs getRedemptionCollateralUsd). There are no prerequisites, conditions, or contextual recommendations for selection.

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

getTargetUsdgAmountBInspect

Calls getTargetUsdgAmount(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description effectively carries the safety burden by explicitly stating 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function'. It also discloses the return type (uint256). This provides essential behavioral context that would typically come from structured annotations.

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

Conciseness4/5

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

The description is efficiently structured with three short sentences: function signature, safety/permissions, and return type. There is no redundant information, though the first sentence is somewhat tautological. Information is appropriately front-loaded with the function call format.

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 single-parameter read function without output schema, the description covers mechanical aspects (call signature, return type, safety). However, it lacks context on what the returned uint256 represents (units, decimals, calculation methodology) and how it relates to protocol mechanics, which would help an agent interpret the result correctly.

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

Parameters3/5

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

The input schema has 100% description coverage for the single `_token` parameter. The description merely echoes that it accepts a token string, adding no additional semantic value (e.g., whether it accepts any ERC20 or only whitelisted collateral tokens). Baseline score of 3 is appropriate when schema documentation is complete.

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 technical action (calling a function) and return type (uint256), but fails to explain what 'target USDG amount' represents semantically (e.g., debt ceiling, optimal collateral ratio, or supply target). It relies on the function name itself without clarifying the business logic for an agent unfamiliar with this specific DeFi protocol.

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 versus sibling tools like `maxUsdgAmounts`, `usdgAmounts`, or `getRedemptionAmount`. Given the numerous USDG-related state readers available, the description offers no criteria for selecting this specific metric over alternatives that sound conceptually similar.

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

getUtilisationCInspect

Calls getUtilisation(_token: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses the read-only nature and unrestricted access. However, it lacks critical behavioral context about the return value (what the uint256 represents—basis points, percentage, raw amount?), error conditions, or units of measurement.

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

Conciseness4/5

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

The description is compact with three efficient sentences and no redundant fluff. Information is front-loaded with the function signature, followed by behavioral constraints and return type. Minor deduction for the slightly tautological opening sentence.

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 single-parameter getter without an output schema, the description adequately covers the basics (parameter, safety, return type). However, it misses the semantic meaning of the return value and lacks guidance on interpreting utilization metrics, leaving gaps for effective tool selection.

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

Parameters3/5

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

The input schema has 100% description coverage, clearly defining _token as an Ethereum address. The description mentions the parameter in the function signature but adds no semantic meaning beyond what the schema already provides, warranting the baseline score for high-coverage schemas.

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

Purpose3/5

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

The description states it calls a specific contract function and returns a uint256, but fails to explain what 'utilisation' actually measures (e.g., pool utilization ratio, token usage percentage) or how it differs from sibling getters like getPoolAmounts or getReservedAmounts. The first sentence largely restates the tool name with the parameter signature.

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?

While it notes the function is 'Read-only' and 'Unrestricted', there is no guidance on when to use this tool versus the numerous alternative getter functions available (getPosition, getDelta, getFeeBasisPoints, etc.). No prerequisites or contextual triggers are provided.

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

globalShortAveragePricesCInspect

Calls globalShortAveragePrices(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

Without annotations, the description carries the safety burden and successfully discloses 'Read-only' and 'Unrestricted' access. However, it omits critical behavioral context: what the returned uint256 represents (price precision, denominated asset) and how the average is calculated.

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?

Four short sentences with minimal redundancy. The opening 'Calls globalShortAveragePrices(param0: string)' is somewhat tautological, but the remaining sentences efficiently convey access control and return type without waste.

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 DeFi protocol tool (evidenced by 100+ siblings involving positions, funding rates, and liquidation), the description lacks essential context: the parameter's semantic role, the return value's units/precision, and the financial meaning of the calculation. No output schema exists to compensate.

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

Parameters3/5

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

Schema coverage is 100% (param0 described as Ethereum address), establishing baseline 3. The description repeats 'param0: string' without adding semantic meaning—failing to clarify what address is expected (token address? trader address? pool address?).

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

Purpose3/5

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

The description states it calls the function and returns uint256, but relies on the function name itself to convey meaning. It does not explain what 'global short average prices' actually calculates (e.g., average entry price for short positions) or distinguish from siblings like getNextGlobalShortAveragePrice or globalShortSizes.

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 versus alternatives. Given siblings like getNextGlobalShortAveragePrice and getGlobalShortDelta exist, the description fails to clarify which short-pricing tool is appropriate for specific scenarios.

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

globalShortSizesBInspect

Calls globalShortSizes(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 effectively discloses the safety profile (read-only, does not modify state) and access restrictions (unrestricted). It also specifies the return type (uint256). However, it omits what the returned value represents semantically (e.g., the unit or scale of the short size).

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?

Four sentences, generally efficient. The first sentence ('Calls globalShortSizes...') wastes space restating the tool name, but the remaining sentences deliver valuable behavioral information without redundancy.

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

Completeness3/5

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

Adequate for a simple single-parameter read function. It compensates for the missing output schema by stating the return type. However, it lacks explanation of the business logic (what 'short sizes' means in the context of the protocol) and appropriate sibling differentiation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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%, documenting param0 as an Ethereum address. The description mentions 'param0: string' but adds no semantic meaning beyond the schema (e.g., it doesn't clarify whether this is a token address, trader address, or market identifier). Baseline score appropriate for high schema coverage.

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

Purpose3/5

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

The description states it 'Calls globalShortSizes' which is somewhat tautological, though it clarifies the return type (uint256). It fails to explain what 'global short sizes' actually represents (e.g., total short position size for a token) or how it differs from siblings like getGlobalShortDelta or globalShortAveragePrices.

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?

Provides no guidance on when to use this versus similar sibling tools (getGlobalShortDelta, globalShortAveragePrices). The only usage hint is 'Unrestricted — any address can call', which describes access control rather than use cases.

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

govAInspect

Calls gov(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully discloses key behavioral traits: it explicitly states the operation is read-only ('does not modify contract state'), specifies access control ('Unrestricted — any address can call'), and reveals the return type ('Returns address'). It misses only minor details like gas considerations or revert 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 consists of three highly efficient sentences with no wasted words. It front-loads the action ('Calls gov()'), immediately follows with behavioral constraints ('Read-only', 'Unrestricted'), and concludes with the return value. Every sentence earns its place.

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

Completeness5/5

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

Given this is a simple getter with no parameters and no output schema, the description is complete. It explains what the function does, who can call it, its side effects (none), and what it returns. No additional context is necessary for an agent to invoke this tool correctly.

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

Parameters4/5

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

The tool has zero parameters, which establishes a baseline of 4 per the scoring rules. The empty input schema requires no additional semantic clarification from the description, and the 100% schema coverage (vacuously true for zero params) is sufficient.

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 'Calls gov()' and 'Returns address', making it clear this retrieves a governance address (likely the contract owner/admin). It implicitly distinguishes from sibling 'setGov' by emphasizing it is read-only, though it could be more explicit about what 'gov' represents (e.g., 'governance contract address').

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

Usage Guidelines3/5

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

The description implies usage through 'Read-only' and 'Unrestricted' (any address can call), indicating no permissions are needed and it's safe to call. However, it lacks explicit guidance on when to use this versus alternatives like 'setGov', or prerequisites for interpreting the returned address.

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

guaranteedUsdAInspect

Calls guaranteedUsd(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully delivers: it declares the read-only nature (no state modification), unrestricted access policy, and return type (uint256). This compensates well for missing structured safety 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?

Three sentences efficiently convey function signature, safety profile, access control, and return type. No extraneous information, though the opening 'Calls guaranteedUsd...' is slightly redundant given the tool name.

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

Completeness4/5

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

For a simple single-parameter read operation, the description is complete. It compensates for the lack of output schema by explicitly stating 'Returns uint256', giving the agent necessary type information to handle the response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 param0 clearly documented as an Ethereum address. The description mentions 'param0: string' which is less specific than the schema, but since the schema is complete, it meets the baseline expectation without adding redundant detail.

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

Purpose3/5

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

The description states it calls the function and returns uint256, but opens with tautological 'Calls guaranteedUsd(param0: string)'. It fails to explain what 'guaranteedUsd' conceptually represents (e.g., guaranteed collateral value for a token) despite having opaque blockchain-specific nomenclature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 'Read-only' and 'Unrestricted — any address can call', providing clear guidance on access control and safety. However, it does not differentiate when to use this versus sibling read functions like 'getPosition' or 'tokenToUsdMin'.

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

hasDynamicFeesAInspect

Calls hasDynamicFees(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations provided, the description carries full burden and successfully discloses read-only nature, unrestricted access, and boolean return type. However, it omits what the boolean signifies (true/false semantics) and potential revert conditions.

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

Conciseness5/5

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

Three short sentences with zero fluff. Front-loaded with function name, followed by safety traits and return type. Every clause 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?

Adequate for a simple getter but incomplete due to lack of output schema and no explanation of what the returned boolean represents (e.g., true if dynamic fees enabled). Missing contextual relationship to sibling fee functions.

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 contains zero parameters, establishing baseline 4. The description confirms this is a parameterless call by stating 'Calls hasDynamicFees()' with no argument mention, consistent with the empty schema.

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

Purpose4/5

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

States it calls the hasDynamicFees() function and returns a boolean, establishing it as a read operation checking a specific contract state. While 'Calls hasDynamicFees()' is somewhat tautological, the addition of 'Read-only' and 'Returns bool' clarifies the operation type and output.

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?

Mentions 'Unrestricted' access indicating no permissions needed, but provides no guidance on when to use this versus other fee-related functions like getFeeBasisPoints or swapFeeBasisPoints, or what to do with the boolean result.

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

includeAmmPriceBInspect

Calls includeAmmPrice(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully communicates read-only safety ('does not modify contract state'), permissionlessness ('any address can call'), and return type ('Returns bool'). No contradictions with structured data.

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?

Four sentences totaling ~20 words is appropriately brief, but the opening sentence ('Calls includeAmmPrice()') wastes precious front-loaded space on tautology rather than value. Subsequent sentences efficiently convey access patterns and return type.

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 state-reading tool with no parameters and no output schema, mentioning the boolean return and unrestricted access provides minimum viable context. However, it should clarify what 'include AMM price' means semantically (the boolean's business logic) to be 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?

Zero parameters present per input schema (empty object). Per scoring rules, 0-parameter tools receive baseline score of 4. No parameter documentation is required or provided.

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 opens with tautology ('Calls includeAmmPrice()') restating the tool name rather than explaining the business purpose. While 'Returns bool' hints at a getter function, it fails to specify what the boolean represents (e.g., whether AMM pricing is enabled) or distinguish from other read-only sibling getters.

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

Usage Guidelines3/5

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

Provides implicit usage guidance through access control statements ('Unrestricted — any address can call'), indicating no authentication requirements. However, it lacks explicit when-to-use guidance, comparisons to sibling tools (e.g., when to check this vs. other price configurations), or prerequisites.

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

IncreaseGuaranteedUsdCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
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 successfully indicates this is a log subscription tool rather than a state-changing transaction, but fails to describe return format (event objects vs. arrays), polling intervals, historical range limits, or error conditions when filters match no events.

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 brief (two sentences) with no filler. The information is front-loaded with the event nature declared immediately. However, given the complexity of blockchain event subscription and the lack of other metadata, this brevity contributes to under-specification rather than elegant efficiency.

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 DeFi vault contract tool with no output schema and no annotations, the description is inadequate. It does not explain what 'guaranteedUsd' represents in the protocol, when this event is typically emitted (e.g., during position increases), what data structure is returned, or how to interpret the token/amount values in 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?

The input schema has 100% description coverage (token as address, amount as uint256), establishing a baseline of 3. The description adds no additional context about these parameters—specifically, whether the amount represents the increase delta, the new total, or a filter threshold for event queries.

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 identifies the subject (an event emitted by the contract) but fails to clearly state what the tool actually does—whether it subscribes to real-time events, queries historical logs, or filters by the provided parameters. It also does not distinguish from sibling tools like DecreaseGuaranteedUsd or explain how this event relates to the contract's functionality.

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

Usage Guidelines1/5

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

No guidance is provided on when to use this tool versus alternatives, what prerequisites exist (e.g., connected wallet, specific network), or when to choose this over querying state directly via tools like guaranteedUsd. The phrase 'Subscribe via log filters' implies usage but doesn't explain when this is appropriate.

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

IncreasePoolAmountCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully clarifies this is a read-only subscription interface, not a state-changing transaction (critical given the imperative 'Increase' naming). However, it omits emission triggers, return data structure, and whether this streams ongoing events or queries historical logs.

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

Conciseness5/5

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

Two sentences with zero redundancy. Every word conveys essential information (event type, subscription method). No filler or unnecessary elaboration.

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 the simple 2-parameter schema, the description lacks critical domain context: what triggers the event, the relationship between the token/amount parameters and the event payload, and expected return format. The imperative name creates significant ambiguity that the description only partially resolves.

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

Parameters3/5

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

Input schema has 100% description coverage with clear type definitions (Ethereum address, uint256). The description adds no parameter context or constraints, meeting the baseline for well-documented schemas.

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?

Identifies the tool as monitoring an 'Event emitted by the contract' and specifies the mechanism ('Subscribe via log filters'), clarifying it is not a function to increase pool amounts. However, it fails to explain what the event represents semantically (e.g., liquidity deposits) or what 'pool amount' refers to in this domain.

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?

Provides the technical mechanism ('Subscribe via log filters') but offers no guidance on when to use this event subscription versus querying state directly (e.g., vs poolAmounts sibling) or whether to use this for historical queries versus real-time monitoring.

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

increasePositionBInspect

Calls increasePosition(_account: string, _collateralToken: string, _indexToken: string, _sizeDelta: string, _isLong: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_sizeDeltaYesuint256 (uint256, pass as decimal string).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

With no annotations provided, the description carries the burden. It correctly identifies the write nature, access control risks, and 'No return value'. However, it omits key behavioral details like whether this transfers tokens, emits events, or reverts under specific conditions (e.g., insufficient collateral).

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?

Compact three-sentence structure with no filler. The function signature is front-loaded, followed by behavioral warnings and return value. Efficient use of space, though the opening 'Calls increasePosition...' is slightly redundant with 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?

Adequate for a raw contract interaction tool: it discloses the write nature, access control risks, and lack of return value (compensating for missing output schema). However, for a complex financial operation involving 5 parameters and significant state changes, it lacks context on side effects (e.g., position updates, fee accrual).

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

Parameters3/5

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

Input schema has 100% description coverage (types and formats like '0x-prefixed'), establishing a baseline of 3. The description repeats the parameter list from the schema but adds no business-level semantics (e.g., explaining that _sizeDelta represents the USD amount to increase position by, or that _isLong indicates bullish/bearish direction).

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?

Identifies it as a 'Write function' and lists the parameter types, but relies heavily on the function name ('increasePosition') without explaining the business logic (e.g., increasing leverage/size of a margin trading position). Does not differentiate from siblings like 'IncreasePosition' (capitalized) or 'decreasePosition'.

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

Usage Guidelines3/5

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

Provides critical safety guidance about access control restrictions (e.g., onlyOwner) and advises checking contract source for modifiers. However, lacks guidance on when to use this versus 'decreasePosition' or 'ClosePosition', or prerequisites like token approvals.

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

IncreasePositionCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
feeYesuint256 (uint256, pass as decimal string).
keyYesbytes32 (32-byte hex string, 0x-prefixed).
priceYesuint256 (uint256, pass as decimal string).
isLongYesbool.
accountYesaddress (Ethereum address, 0x-prefixed).
sizeDeltaYesuint256 (uint256, pass as decimal string).
indexTokenYesaddress (Ethereum address, 0x-prefixed).
collateralDeltaYesuint256 (uint256, pass as decimal string).
collateralTokenYesaddress (Ethereum address, 0x-prefixed).
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. While it identifies this as an event subscription, it lacks critical behavioral details: whether this is a persistent subscription or one-time fetch, what triggers the event (blockchain state changes), whether it returns historical logs or only new ones, and performance characteristics for a 9-parameter filter.

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 at two short sentences. No redundant or filler text. However, the brevity comes at the cost of omitting necessary context for a complex blockchain event subscription tool with 9 parameters.

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?

Inadequate for the complexity. This is a 9-parameter blockchain event subscription tool with no output schema and no annotations. The description should explain the trading domain context (perpetual/ margin trading), the event trigger conditions, and what data is returned when the event fires, but provides none of this.

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

Parameters3/5

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

The input schema has 100% description coverage with type information (uint256, address, bytes32). The description adds no parameter-specific context, but with complete schema documentation, this meets the baseline expectation without additional penalty or credit.

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?

Identifies this as an event subscription tool ('Event emitted by the contract. Subscribe via log filters'), distinguishing it from the 'increasePosition' function sibling. However, it fails to explain the business semantics of 'increasing a position' (adding collateral/size to a leveraged trade) despite having trading-related parameters like collateralToken, sizeDelta, and isLong.

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?

Mentions 'Subscribe via log filters' indicating the mechanism, but provides no guidance on when to use this event subscription versus querying state directly, or how it relates to sibling events like DecreasePosition/ClosePosition. No mention of filter criteria behavior or subscription lifecycle.

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

IncreaseReservedAmountCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

Without annotations, the description carries the burden of disclosure. It successfully clarifies this is a read-only event subscription (not a state-changing transaction), but omits what triggers the event, its side effects in the protocol, or return format details.

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

Conciseness4/5

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

Extremely concise at two sentences with zero redundancy. Information is front-loaded with the critical 'Event emitted' classification first, though brevity comes at the cost of domain context.

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

Completeness2/5

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

Given the complexity of the vault protocol (evident from 90+ siblings including margin trading, swaps, and liquidations), the description is insufficient. It should explain that 'reserved amount' relates to collateral reservation for leveraged positions, and when this event typically fires.

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

Parameters3/5

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

Input schema has 100% description coverage (token as Ethereum address, amount as uint256 string). The description adds no parameter semantics, but baseline 3 is appropriate since the schema fully documents both required fields.

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 clarifies this tool subscribes to contract events via log filters, distinguishing it from function-call siblings (e.g., increasePosition vs IncreasePosition). However, it fails to explain what 'reserved amount' means in this DeFi vault context or what the event signifies semantically.

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 monitor this event versus related siblings like DecreaseReservedAmount, nor when to use this instead of querying reservedAmounts directly. No prerequisites or filtering advice is included.

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

IncreaseUsdgAmountCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
amountYesuint256 (uint256, pass as decimal string).
Behavior2/5

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

No annotations provided, so description carries full burden. It indicates this is a read/subscription operation ('Subscribe via log filters'), but omits critical blockchain-specific behaviors such as block confirmation requirements, polling intervals, rate limits, or whether the subscription is persistent versus one-time.

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 brief at two sentences. While no words are wasted, the extreme brevity leaves significant gaps in context. Structure is appropriately front-loaded with the event classification, but insufficient detail is provided for the complexity of blockchain event subscription.

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 zero annotations, no output schema, and the complexity of DeFi event monitoring, the description is inadequate. It fails to explain the event's business logic (USDG mechanics), return data structure, or expected latency characteristics essential for blockchain tool selection.

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

Parameters3/5

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

Input schema has 100% description coverage (token as Ethereum address, amount as uint256), establishing baseline of 3. The description adds no semantic context about what these parameters filter (e.g., that 'token' specifies which asset's USDG amount increased, or that 'amount' is the specific value to filter by).

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?

Identifies the tool as an event subscription mechanism ('Event emitted by the contract. Subscribe via log filters'), but fails to explain what the IncreaseUsdgAmount event represents (e.g., minting of USDG stablecoin) or when it is emitted. Does not differentiate from sibling event tools like IncreasePoolAmount or DecreaseUsdgAmount.

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?

Provides no guidance on when to use this tool versus alternatives like DecreaseUsdgAmount, nor does it specify whether this is for historical log retrieval or real-time streaming. No prerequisites or contextual conditions are mentioned.

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

initializeAInspect

Calls initialize(_router: string, _usdg: string, _priceFeed: string, _liquidationFeeUsd: string, _fundingRateFactor: string, _stableFundingRateFactor: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_usdgYesaddress (Ethereum address, 0x-prefixed).
_routerYesaddress (Ethereum address, 0x-prefixed).
_priceFeedYesaddress (Ethereum address, 0x-prefixed).
_fundingRateFactorYesuint256 (uint256, pass as decimal string).
_liquidationFeeUsdYesuint256 (uint256, pass as decimal string).
_stableFundingRateFactorYesuint256 (uint256, pass as decimal string).
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 explicitly states 'Write function' (mutation), warns about access control modifiers, and notes 'No return value'. This covers safety profile and side effects adequately, though it omits revert conditions (e.g., if called twice).

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?

Four sentences efficiently structured: function signature for quick scanning, write classification, access control warning, and return value status. The parameter list in sentence one is redundant with schema but aids readability without excessive verbosity.

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?

Adequate for a 6-parameter initialization function with no output schema. It covers the critical safety warning (access control) and operation type. However, given the complexity of DeFi vault initialization, it should mention this is typically single-use or refer to the 'isInitialized' sibling for state checking.

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

Parameters3/5

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

Schema description coverage is 100%, documenting all 6 parameters as Ethereum addresses or uint256 strings. The description lists parameters but adds no semantic context beyond types (e.g., what '_usdg' represents or how '_fundingRateFactor' affects the protocol), meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description lists the specific contract addresses and parameters being initialized (router, usdg, priceFeed, fee factors), distinguishing this as the core contract setup function among the many operational siblings (buyUSDG, sellUSDG, etc.). While 'Calls initialize' restates the name, the parameter enumeration clarifies the scope.

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

Usage Guidelines3/5

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

It warns about access control restrictions ('onlyOwner') and advises checking contract source for modifiers, implying authorization requirements. However, it fails to state this is likely a one-time initialization (given sibling 'isInitialized' exists) or that it must be called before operational functions.

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

inManagerModeAInspect

Calls inManagerMode(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully discloses key behavioral traits: it confirms the read-only nature ('does not modify contract state'), access restrictions ('Unrestricted'), and return value ('bool'). This adequately covers the safety and operational profile of the contract call.

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

Conciseness5/5

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

The description consists of four short, information-dense sentences covering function invocation, mutability, access control, and return type. Every sentence earns its place with no redundant or wasted words.

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

Completeness4/5

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

For a simple state-query tool with no parameters and no output schema, the description is complete. It compensates for the missing output schema by explicitly stating 'Returns bool', providing sufficient information for an agent to understand the tool's contract.

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 contains zero parameters, which establishes a baseline score of 4 per the evaluation criteria. The description correctly implies no arguments are needed by simply stating 'Calls inManagerMode()' without mentioning inputs.

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

Purpose4/5

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

The description clearly identifies the action ('Calls inManagerMode()') and return type ('Returns bool'), distinguishing it from sibling setter functions like 'setInManagerMode'. While it doesn't explain the business logic of 'manager mode' itself, it sufficiently identifies the specific contract function being invoked.

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

Usage Guidelines3/5

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

The description provides access control guidance ('Unrestricted — any address can call'), implying when the tool can be used (without authentication). However, it lacks explicit guidance on when to prefer this over related tools like 'isManager' or 'setInManagerMode'.

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

inPrivateLiquidationModeAInspect

Calls inPrivateLiquidationMode(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Without annotations, the description effectively carries the safety disclosure burden by explicitly stating 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function'. It also compensates for the missing output schema by noting 'Returns bool', though it omits what true/false values signify semantically.

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

Conciseness5/5

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

The description is optimally concise with four discrete, front-loaded clauses covering function purpose, mutability, permissions, and return type. Every clause provides distinct information with no redundancy or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 getter with no output schema, the description adequately covers the return type (bool) and operational constraints. It is missing only the semantic interpretation of the boolean return value (what true vs false means regarding liquidation restrictions) to be 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?

With zero parameters, the baseline score applies. The description confirms no inputs are required by showing empty parentheses in 'Calls inPrivateLiquidationMode()', which aligns with the empty input schema. No additional parameter semantics are needed or provided.

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

Purpose4/5

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

The description identifies this as a read-only call to check the private liquidation mode state and distinguishes it from sibling setter functions like setInPrivateLiquidationMode. However, it relies on the function name rather than explaining the business concept (e.g., 'Checks if liquidations are restricted to authorized addresses'), which limits clarity for users unfamiliar with the contract.

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

Usage Guidelines3/5

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

The description implies usage through 'Read-only' and 'Unrestricted' labels, signaling this is for checking state without permissions. However, it lacks explicit guidance on when to use this versus the liquidation tools (e.g., 'Check this before calling liquidatePosition to verify you have access').

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

isInitializedAInspect

Calls isInitialized(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 effectively communicates that the operation is read-only ('does not modify contract state'), requires no authentication ('Unrestricted'), and returns a boolean. It could improve by explaining the semantic meaning of the return value (true = initialized, false = not initialized).

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

Conciseness5/5

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

The description consists of four efficient sentences with zero waste: function identification, safety profile, permission level, and return type. Information is front-loaded and logically ordered.

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

Completeness4/5

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

Given the tool's simplicity (zero input parameters, boolean output) and lack of output schema, the description adequately covers the essential behavioral contract by specifying the return type. It meets the minimum viable threshold for completeness, though explicitly stating what the boolean signifies would provide full context.

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

Parameters4/5

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

The input schema contains zero parameters. Per the evaluation rules, zero parameters establishes a baseline score of 4. The description correctly does not invent parameter documentation where none are 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 tool calls isInitialized() and returns a bool, distinguishing it from the sibling 'initialize' tool by explicitly noting it is 'Read-only'. However, it doesn't explicitly define what 'initialized' means in this contract context (e.g., whether true indicates the vault is ready for use).

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted — any address can call this read function', which provides basic permission guidance. However, it lacks explicit when-to-use guidance (e.g., 'call this before invoking state-changing functions to ensure the contract is ready') or when-not-to-use alternatives.

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

isLeverageEnabledAInspect

Calls isLeverageEnabled(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden effectively. It explicitly states the function is read-only ('does not modify contract state'), unrestricted ('any address can call'), and documents the return type ('Returns bool'), providing necessary 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?

Four short sentences efficiently structured: invocation pattern, safety profile (read-only), permissions (unrestricted), and return type. The opening 'Calls isLeverageEnabled()' is slightly tautological but acceptable given the subsequent valuable behavioral disclosures.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 low complexity (zero inputs, single boolean output) and absence of output schema, the description is appropriately complete. It compensates for missing annotations and output schema by documenting the return type and access controls, which is sufficient for a simple state getter.

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 contains zero parameters. Per scoring guidelines, the baseline score for zero-parameter tools is 4. The description appropriately does not invent parameter semantics where none exist.

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 indicates this is a read function checking if leverage is enabled (via 'Calls isLeverageEnabled()' and 'Returns bool'). While it doesn't explicitly contrast with sibling 'setIsLeverageEnabled', the name and 'Read-only' designation make the scope distinct.

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

Usage Guidelines3/5

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

Provides implicit usage context by stating it is 'Unrestricted — any address can call', indicating no special permissions are required. However, it lacks explicit guidance on when to use this vs. 'getPositionLeverage' or other leverage-related siblings.

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

isLiquidatorAInspect

Calls isLiquidator(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses key behavioral traits: read-only safety ('does not modify contract state'), access control ('any address can call'), and return type ('Returns bool'). This effectively compensates for the 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 compact with four short sentences. The first sentence ('Calls isLiquidator...') is redundant given the tool name and schema, but the remaining three efficiently convey read-only nature, access restrictions, and return type. Structure is logical with constraints following the signature.

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

Completeness4/5

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

Given the tool has only one parameter (well-documented in schema) and no output schema, the description adequately covers the gap by specifying the boolean return type. For a simple state-query function, the combination of schema and description provides sufficient context for invocation.

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

Parameters3/5

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

The input schema has 100% coverage (param0 described as Ethereum address), so the description meets the baseline. It mentions 'param0: string' which merely duplicates schema information without adding semantic context about what the address represents (e.g., 'the address to check for liquidator status').

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 implies the tool checks whether an address is a liquidator via the function name, and the 'Read-only' and 'Returns bool' statements clarify it is a view function. However, it opens with a tautological 'Calls isLiquidator' rather than explicitly stating the business purpose, slightly weakening 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?

While it notes the function is 'Read-only' and 'Unrestricted' (implying safe, permissionless usage), it provides no guidance on when to use this versus sibling tools like setLiquidator, validateLiquidation, or liquidatePosition. No workflow context or prerequisites are mentioned.

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

isManagerAInspect

Calls isManager(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses that the operation is read-only ('does not modify contract state'), unrestricted ('any address can call'), and specifies the return type ('Returns bool'), giving the agent clear expectations about side effects and outputs.

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

Conciseness5/5

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

The description is extremely concise with four efficient sentences: function signature, mutability guarantee, access control, and return type. Every sentence provides distinct value with no redundancy or filler.

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

Completeness4/5

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

For a simple single-parameter boolean query with no output schema, the description is complete. It compensates for the missing output schema by declaring the bool return type, covers safety (read-only) and auth (unrestricted), though it could briefly clarify what 'manager' status entails in this contract ecosystem.

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

Parameters3/5

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

Schema description coverage is 100% (param0 is documented as an Ethereum address), so the schema carries the semantic load. The description mentions 'param0: string' which aligns with the schema but adds no additional meaning beyond confirming the parameter signature.

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

Purpose4/5

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

The description clearly identifies this as a read-only call to check manager status, returning a boolean. However, it relies on the function name 'isManager' to convey semantic meaning rather than explicitly stating it 'checks if an address has manager privileges/role', and does not differentiate from siblings like setManager or inManagerMode.

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 notes that the function is 'Unrestricted — any address can call' which establishes access prerequisites, but provides no guidance on when to use this tool versus alternatives like setManager, or what constitutes a manager in this protocol context.

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

isSwapEnabledAInspect

Calls isSwapEnabled(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 disclosure. It successfully documents the read-only safety profile ('does not modify contract state'), access control ('Unrestricted — any address can call'), and return type ('Returns bool'). It misses edge cases or error conditions but covers the essential behavioral traits.

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

Conciseness5/5

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

Four short sentences with zero redundancy. Critical information (read-only nature, unrestricted access, return type) is front-loaded and efficiently communicated without filler text.

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

Completeness5/5

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

For a simple state-reading function with no parameters and no output schema, the description is complete. It adequately explains what the tool does, its safety characteristics, access requirements, and return value, leaving no significant gaps given the low complexity.

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

Parameters4/5

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

The input schema contains zero parameters. According to calibration rules, 0 params = baseline 4. The description correctly omits parameter discussion as there are none to document, and does not need to compensate for schema gaps.

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

Purpose4/5

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

The description indicates it checks the swap enabled state (via 'Calls isSwapEnabled()' and 'Returns bool'), and distinguishes from sibling 'setIsSwapEnabled' by explicitly noting it is 'Read-only'. However, the opening 'Calls isSwapEnabled()' is slightly tautological rather than describing the business purpose directly.

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

Usage Guidelines3/5

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

The description provides implicit guidance by noting it is 'Read-only' (suggesting use for checking state vs modifying it) and 'Unrestricted' (indicating no special permissions needed). However, it lacks explicit guidance on when to use this vs other state-checking functions or workflow prerequisites.

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

lastFundingTimesBInspect

Calls lastFundingTimes(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 successfully communicates the read-only nature ('does not modify contract state'), access controls ('Unrestricted — any address can call'), and return type ('uint256'), which is critical safety information for blockchain interactions.

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

Conciseness4/5

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

The description is three sentences and appropriately brief. While the first sentence ('Calls lastFundingTimes...') wastes space by restating the tool name, the subsequent sentences efficiently convey critical behavioral properties (read-only, unrestricted, return type) without unnecessary verbosity.

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 single-parameter getter, the description is minimally adequate: it compensates for missing annotations with safety information and specifies the return type since no output schema exists. However, it lacks explanation of what the uint256 represents (timestamp, block number, etc.) and fails to contextualize how this value relates to the funding mechanism versus sibling functions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 adequately documents that param0 is an Ethereum address. The description mentions 'param0: string' which restates the schema information but adds no additional semantic context (e.g., whether this is a token address, trader address, or market identifier), meeting the baseline for high schema coverage.

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 basic operation ('Calls lastFundingTimes') and return type, but the first sentence is largely tautological. It fails to distinguish from numerous siblings like 'cumulativeFundingRates', 'getNextFundingRate', or 'fundingInterval', and doesn't explain what 'last funding times' represents in the protocol context.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives (e.g., when to query lastFundingTimes vs cumulativeFundingRates). No prerequisites or conditions are specified, leaving the agent without selection criteria among the many funding-related functions available.

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

liquidatePositionBInspect

Calls liquidatePosition(_account: string, _collateralToken: string, _indexToken: string, _isLong: boolean, _feeReceiver: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_feeReceiverYesaddress (Ethereum address, 0x-prefixed).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

Strong disclosure given zero annotations: explicitly labels it as a 'Write function', warns about potential access control restrictions, and states 'No return value'. This successfully communicates mutation risk and permission requirements that would otherwise be unknown.

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

Conciseness4/5

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

Three sentences with no filler. The function signature in sentence one is somewhat redundant with the schema, but the subsequent sentences efficiently pack critical behavioral warnings. Appropriate length for the complexity.

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

Completeness3/5

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

Adequate for basic invocation but insufficient for a high-stakes financial operation. Missing: liquidation mechanics (what happens to the position), economic effects (fees, collateral distribution), failure modes, or relationship to the validation tools. No output schema exists, so the 'No return value' note is essential and present.

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

Parameters3/5

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

Schema coverage is 100% with clear type descriptions (Ethereum addresses, boolean). The description repeats the parameter list but adds no semantic meaning beyond the schema (e.g., doesn't explain that _indexToken represents the traded asset or that _feeReceiver receives liquidation fees).

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

Purpose3/5

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

The description states it calls the liquidatePosition function with specific parameters, but this largely restates the tool name and schema. It fails to explain what 'liquidating a position' actually accomplishes (e.g., closing underwater positions, seizing collateral) and does not distinguish from the sibling 'LiquidatePosition' tool.

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

Usage Guidelines3/5

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

Provides safety-critical guidance about access control restrictions (e.g., onlyOwner) and advises checking contract source, which is helpful. However, it lacks guidance on when to use this tool versus siblings like 'LiquidatePosition', 'validateLiquidation', or 'decreasePosition'.

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

LiquidatePositionBInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesbytes32 (32-byte hex string, 0x-prefixed).
sizeYesuint256 (uint256, pass as decimal string).
isLongYesbool.
accountYesaddress (Ethereum address, 0x-prefixed).
markPriceYesuint256 (uint256, pass as decimal string).
collateralYesuint256 (uint256, pass as decimal string).
indexTokenYesaddress (Ethereum address, 0x-prefixed).
realisedPnlYesint256 (int256, pass as decimal string).
reserveAmountYesuint256 (uint256, pass as decimal string).
collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

With no annotations provided, the description carries the full burden. It correctly identifies the tool as event-driven subscription behavior rather than a state-changing call, which is critical. However, it lacks details on subscription lifecycle (persistent vs. one-time), event delivery format, or what happens when a liquidation event matches the filter.

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 at two sentences with zero redundancy. Every word earns its place by identifying the contract event nature and subscription mechanism. However, given the complexity (10 parameters, blockchain context), it may be overly terse rather than appropriately sized.

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 fails to explain what the subscription returns (event data structure, streaming behavior), how long the subscription persists, or error conditions. For a 10-parameter event subscription tool, the description is incomplete regarding operational outcomes.

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

Parameters3/5

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

Input schema has 100% description coverage with Solidity type definitions. The description implies these parameters serve as log filter criteria by mentioning 'Subscribe via log filters,' but does not elaborate on parameter semantics (e.g., explaining that 'account' is the liquidated trader, 'realisedPnl' is the liquidation P&L). Baseline 3 for high schema coverage.

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

Purpose4/5

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

The description clearly identifies this as an event subscription tool ('Event emitted by the contract. Subscribe via log filters') rather than an execution function, distinguishing it from the sibling 'liquidatePosition' (lowercase) which likely performs the liquidation. However, it could explicitly mention the monitoring/listening nature vs. execution.

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?

While 'Subscribe via log filters' implies usage context, there is no explicit guidance on when to use this event subscription versus the execution function 'liquidatePosition', or what the use case is (monitoring liquidations vs. performing them). No alternative tools are referenced.

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

liquidationFeeUsdAInspect

Calls liquidationFeeUsd(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully discloses read-only safety ('does not modify contract state'), permissionlessness ('any address can call'), and return type ('uint256'). It misses semantic details about the return value units or scale.

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

Conciseness4/5

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

The description is compact at three sentences, but the opening sentence restates the function name without adding value. The remaining sentences efficiently pack behavioral constraints and return type information, earning a high but not perfect score.

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?

Without an output schema, the description should explain what the returned uint256 represents (e.g., 'liquidation fee in USD with 30 decimals'). Merely stating the type 'uint256' is insufficient for complete understanding of the return value's business meaning.

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 contains zero parameters, establishing a baseline score of 4. The description correctly implies no arguments are needed by focusing solely on behavior and return type, requiring no additional parameter clarification.

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 first sentence 'Calls liquidationFeeUsd()' is tautological and wastes space. While 'Read-only' and 'Returns uint256' clarify the operation type, the description fails to explain what the liquidation fee represents (e.g., fee amount, rate, or threshold) or distinguish this getter from the 30+ similar sibling getter functions.

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

Usage Guidelines3/5

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

The description provides valuable permission context ('Unrestricted — any address can call'), which helps the agent understand no special authorization is needed. However, it lacks guidance on when to use this versus related functions like 'validateLiquidation' or 'liquidatePosition'.

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

marginFeeBasisPointsBInspect

Calls marginFeeBasisPoints(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 successfully communicates the safety profile ('Read-only — does not modify contract state'), access control ('Unrestricted — any address can call'), and return format ('Returns uint256'), covering the essential behavioral traits for a blockchain read function.

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 consists of four short, front-loaded sentences with minimal waste. While the first sentence ('Calls marginFeeBasisPoints()') is somewhat tautological, it serves as a subject header. The remaining sentences efficiently convey read-only status, access restrictions, and return type without redundancy.

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

Completeness4/5

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

Given the low complexity (zero parameters, no nested objects, no output schema) and absence of annotations, the description provides sufficient context for safe invocation. It covers mutability, access control, and return type. A semantic explanation of 'margin fee basis points' would improve it, but the description is functionally complete for a simple getter.

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 contains zero parameters. Per the scoring rules, zero-parameter tools receive a baseline score of 4. The description does not need to compensate for parameter documentation, and the empty schema is inherently complete.

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 mechanical action ('Calls marginFeeBasisPoints()') and return type ('Returns uint256'), but fails to explain what 'margin fee basis points' semantically represents (e.g., the fee rate charged on margin positions). It distinguishes itself as read-only among many state-mutating siblings, but lacks resource-specific context.

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

Usage Guidelines2/5

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

The description notes the function is 'Unrestricted — any address can call,' indicating no authentication requirements, but provides no guidance on when to use this specific fee getter versus siblings like 'getFeeBasisPoints', 'swapFeeBasisPoints', or 'mintBurnFeeBasisPoints'. No 'when-not' or alternative selection criteria are provided.

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

MAX_FEE_BASIS_POINTSBInspect

Calls MAX_FEE_BASIS_POINTS(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully discloses the read-only nature and unrestricted access permissions. However, it omits whether this returns a constant or mutable state, the units (basis points out of what denominator?), or gas considerations typical for blockchain calls.

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

Conciseness5/5

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

The description consists of four short, front-loaded sentences with zero redundancy. Each sentence delivers distinct, essential information: function signature, mutability guarantee, permission level, and return type.

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 zero-parameter tool, the description covers the mechanical basics (call semantics, return type). However, given the rich sibling landscape of fee-related functions, it should explain the semantic meaning of the returned value (e.g., 'the maximum possible fee percentage charged on swaps') to aid tool selection.

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 contains zero parameters. Per the rubric, zero parameters establishes a baseline score of 4. The description does not need to compensate for missing schema documentation.

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

Purpose3/5

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

The description states it calls the specific function and returns uint256, but relies heavily on the function name for semantic meaning. It does not explain what 'max fee basis points' represents (e.g., the protocol-wide fee cap) or how it differs semantically from siblings like getFeeBasisPoints or swapFeeBasisPoints.

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

Usage Guidelines3/5

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

The description provides access control context ('Unrestricted — any address can call') and safety information ('Read-only'), which helps determine when it can be invoked. However, it lacks explicit guidance on when to use this specific fee getter versus the many sibling fee-related functions (e.g., marginFeeBasisPoints, getFeeBasisPoints).

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

MAX_FUNDING_RATE_FACTORBInspect

Calls MAX_FUNDING_RATE_FACTOR(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Excellent disclosure of safety profile ('Read-only — does not modify contract state'), access controls ('Unrestricted'), and return type ('Returns uint256') given the absence of annotations. Minor gap: does not explain the format/semantics of the returned value (e.g., whether it's a percentage, divisor, or multiplier).

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

Conciseness5/5

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

Four short sentences efficiently cover function identification, safety, permissions, and return type with zero waste. Information is front-loaded with the function call, followed by critical behavioral constraints.

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?

Adequate for a simple state-reading tool with no parameters, covering mechanics and basic safety. However, given the complex DeFi context (evidenced by 100+ sibling tools), it lacks conceptual context about how this maximum factor constrains funding rate calculations.

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 zero parameters, establishing a baseline of 4. The description correctly implies no arguments are needed by stating simply 'Calls MAX_FUNDING_RATE_FACTOR()' with no parameter discussion, which is appropriate for a parameterless constant getter.

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?

States that it calls the MAX_FUNDING_RATE_FACTOR() function and returns a uint256, but does not explain the semantic meaning of the value (e.g., what the maximum funding rate factor represents in the protocol) or distinguish it from the sibling 'fundingRateFactor' 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?

Provides permission context ('Unrestricted — any address can call') but lacks guidance on when to use this tool versus related funding rate tools like 'fundingRateFactor' or 'stableFundingRateFactor', or what business logic requires reading this specific constant.

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

maxGasPriceAInspect

Calls maxGasPrice(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 effectively. It clearly states the operation is read-only (safe, no state change), unrestricted (no auth needed), and returns uint256. However, it omits what the uint256 represents (e.g., wei units) or potential revert conditions.

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?

Four short sentences efficiently convey key information. The opening 'Calls maxGasPrice()' is slightly redundant with the tool name, but the subsequent sentences immediately deliver critical read-only and access control information.

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

Completeness4/5

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

For a zero-parameter getter with no output schema, the description provides sufficient operational context: mutability (none), access control (public), and return type. It adequately covers what an agent needs to know to invoke the tool 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?

Input schema has zero parameters, triggering the baseline score of 4. The description correctly implies no inputs are needed by focusing solely on the return value and behavior.

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

Purpose4/5

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

The description identifies this as a read-only call that returns uint256, distinguishing it from the sibling setter `setMaxGasPrice`. While 'Calls maxGasPrice()' is somewhat circular, the read-only classification and return type specification clarify the tool's function.

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

Usage Guidelines3/5

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

The 'Unrestricted' note implies no permission requirements, but there is no explicit guidance on when to use this versus alternatives (e.g., 'call this to check current gas limits before transacting'). Usage context is implied rather than stated.

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

maxLeverageAInspect

Calls maxLeverage(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 successfully discloses the read-only nature, unrestricted access permissions, and return type (uint256). It does not cover potential error states or gas considerations, but covers the essentials for a state-reading function.

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

Conciseness5/5

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

Four short sentences with zero waste. Front-loaded with the operation name, followed by behavioral constraints, access restrictions, and return type. Every clause provides unique information not available in structured fields.

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

Completeness5/5

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

For a zero-parameter read function with no output schema, the description is complete. It compensates for the missing output schema by specifying 'Returns uint256', and covers the essential behavioral context given the lack of annotations.

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

Parameters4/5

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

The input schema has zero parameters. Per the scoring guidelines, 0 params equals a baseline score of 4. The description appropriately does not invent parameters where none exist.

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

Purpose4/5

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

The description identifies this as a read operation that retrieves the max leverage value (returns uint256). It distinguishes itself from sibling 'setMaxLeverage' by explicitly stating 'Read-only — does not modify contract state', clarifying this is a getter rather than a setter.

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

Usage Guidelines3/5

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

It provides access control information ('Unrestricted — any address can call'), which is helpful. However, it lacks explicit guidance on when to use this versus related position/leverage tools (e.g., getPositionLeverage or setMaxLeverage), leaving usage somewhat implied.

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

MAX_LIQUIDATION_FEE_USDAInspect

Calls MAX_LIQUIDATION_FEE_USD(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully discloses that the operation does not modify contract state and requires no special permissions. However, it omits the units/precision of the returned uint256 (e.g., whether it's in 1e30 USD units like similar DeFi protocols) and whether this is a constant or governable state.

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

Conciseness5/5

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

The description consists of four efficient clauses with no redundancy: function identification, state mutability, permission level, and return type. Every phrase conveys distinct information required for invocation.

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

Completeness3/5

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

Given the lack of output schema, the description mentions 'Returns uint256' but fails to explain the semantic meaning of the value (e.g., 'maximum liquidation fee amount in USD' or its decimal precision). For a simple getter with no inputs, this is minimally adequate but leaves interpretation of the returned value to guesswork.

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

Parameters4/5

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

With zero parameters and 100% schema coverage (empty object), the baseline score applies. The description appropriately does not invent parameters, matching the empty input schema exactly.

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

Purpose4/5

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

The description clearly identifies this as a read-only call to retrieve the MAX_LIQUIDATION_FEE_USD value and states it returns a uint256. However, while it restates the function name, it could better distinguish from sibling 'liquidationFeeUsd' by explaining this represents a protocol cap/maximum rather than the current fee.

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 notes the function is unrestricted (any address can call) and read-only, but provides no guidance on when to query this maximum value versus the current 'liquidationFeeUsd' or other fee-related siblings. No prerequisites or comparison context is given.

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

maxUsdgAmountsCInspect

Calls maxUsdgAmounts(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

Since no annotations are provided, the description carries the full disclosure burden. It successfully communicates 'Read-only' and 'Unrestricted' access properties, and states the return type (uint256). However, it omits what the returned uint256 represents semantically (e.g., maximum mintable USDG for a given token) and lacks other behavioral details like units or scaling factors.

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 compact at four phrases, but the first sentence is wasted on tautology. The remaining content ('Read-only', 'Unrestricted', 'Returns uint256') is appropriately front-loaded but could be condensed further.

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 a single well-documented parameter but no output schema or annotations, the description should explain the business meaning of the return value and the specific purpose of 'maxUsdgAmounts'. It provides only mechanical information (read-only, uint256 return) without semantic context for a blockchain vault contract 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?

With 100% schema description coverage ('address (Ethereum address, 0x-prefixed)'), the baseline is 3. The description adds 'param0: string' which is redundant with the schema type, and fails to clarify what the address represents (token address? user address?). It neither adds value nor contradicts 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 opens with 'Calls maxUsdgAmounts(param0: string)' which is tautological, merely restating the function name and signature. It fails to explain what 'maxUsdgAmounts' represents (e.g., maximum USDG supply limits per token) or what business logic it retrieves, distinguishing it from siblings like 'usdgAmounts' or 'getTargetUsdgAmount'.

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 provided on when to use this tool versus the numerous sibling tools (e.g., 'usdgAmounts', 'getTargetUsdgAmount', 'setUsdgAmount'). It does not explain what scenario requires checking 'max' amounts versus current amounts.

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

MIN_FUNDING_RATE_INTERVALAInspect

Calls MIN_FUNDING_RATE_INTERVAL(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 successfully communicates that the operation is read-only ('does not modify contract state'), requires no authentication ('any address can call'), and returns a specific type ('uint256'), giving the agent sufficient safety and 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 consists of four efficient sentences with zero redundancy. Critical information (function name, read-only status, access restrictions, return type) is front-loaded and each sentence earns its place by providing distinct behavioral or type information.

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

Completeness3/5

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

For a simple getter with no output schema, the description adequately covers basic operation and return type. However, it lacks semantic context about what the 'minimum funding rate interval' represents (e.g., time between funding payments) and how it relates to the broader funding mechanism, which would help the agent understand when to select this over the 80+ sibling tools.

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 contains zero parameters, which establishes a baseline score of 4 per the evaluation rules. No additional parameter semantics are required or expected.

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

Purpose4/5

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

The description identifies the specific contract function being called and clarifies it returns a uint256 value. While 'Calls MIN_FUNDING_RATE_INTERVAL()' partially restates the tool name, the additional context about it being a read-only operation that retrieves a specific constant distinguishes it from sibling mutation tools like setFundingRate.

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted — any address can call this read function,' which provides basic access control guidance. However, it lacks explicit guidance on when to use this versus similar funding-related siblings like fundingInterval or getNextFundingRate, leaving the agent to infer based on the 'MIN' prefix alone.

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

MIN_LEVERAGEAInspect

Calls MIN_LEVERAGE(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Without annotations, the description effectively discloses key behavioral traits by stating it is 'Read-only — does not modify contract state' and specifying the return type as uint256. It successfully communicates the safety profile and output format that would otherwise be unknown to the agent.

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

Conciseness5/5

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

The description consists of four short, distinct sentences that efficiently communicate the function call, mutability, access control, and return type without redundant information. Every sentence earns its place by providing unique, valuable context in a front-loaded manner.

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

Completeness4/5

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

Given the tool's simplicity as a parameter-free read function, the description adequately compensates for the missing output schema by explicitly stating 'Returns uint256.' The coverage of access control and mutability provides sufficient context for safe invocation of this constant getter.

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 contains zero parameters, establishing a baseline score of 4 per the scoring rules. The description correctly omits parameter discussion as none exist, requiring no additional semantic clarification beyond the empty schema structure.

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 tool 'Calls MIN_LEVERAGE()' and returns a uint256, but does not explain what the minimum leverage value represents semantically or how it differs from siblings like maxLeverage or isLeverageEnabled. It provides the technical action but lacks business context about the constant's meaning.

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted — any address can call this read function,' which provides access control context, but does not specify when to query this value versus other configuration getters. No alternatives or prerequisites are mentioned despite many similar sibling tools existing.

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

minProfitBasisPointsCInspect

Calls minProfitBasisPoints(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 of behavioral disclosure. It successfully indicates the function is read-only and unrestricted ('any address can call'), and specifies the return type (uint256), providing necessary safety and access 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?

Extremely concise with four short, efficient sentences. No filler words. Technical properties (read-only, unrestricted, return type) are front-loaded and clearly demarcated.

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?

Minimum viable for a single-parameter view function. It identifies the return type (uint256) which compensates partially for the missing output schema, but lacks explanation of what the basis points value represents (e.g., minimum profit threshold for positions) or units.

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

Parameters3/5

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

With 100% schema description coverage (param0 described as Ethereum address), the baseline is 3. The description mentions 'param0: string' but adds no semantic meaning beyond the schema; in fact, it is less specific than the schema which identifies it as an 0x-prefixed address.

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 begins with 'Calls minProfitBasisPoints' which is tautological, merely restating the tool name. While it notes the return type (uint256), it fails to explain what 'minimum profit basis points' represents or how it differs from sibling basis point functions like marginFeeBasisPoints or swapFeeBasisPoints.

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 the numerous sibling tools (e.g., marginFeeBasisPoints, stableSwapFeeBasisPoints). No prerequisites, context, or 'when-not-to-use' information is included.

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

minProfitTimeAInspect

Calls minProfitTime(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

Without annotations, the description effectively discloses key behavioral traits: explicitly stating 'Read-only — does not modify contract state', 'Unrestricted — any address can call', and the return type 'uint256'. This compensates well for the absence of structured annotations.

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

Conciseness5/5

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

Three efficient sentences with no waste: function identification, safety/permission properties, and return type. Information is front-loaded with read-only status.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 state getter with no input parameters and no output schema, the description is adequate by specifying the return type (uint256). It could be improved by explaining what the returned value represents (e.g., time duration in seconds).

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 with 100% schema coverage (empty object), establishing a baseline of 4. No parameter description is needed or provided.

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

Purpose4/5

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

The description identifies this as a call to the minProfitTime() function and specifies it returns uint256, though it doesn't explain the semantic meaning of 'minProfitTime' (e.g., minimum time for profit realization). It distinguishes from siblings by function 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?

The description provides no guidance on when to use this tool versus sibling getter functions like minProfitBasisPoints, fundingInterval, or MIN_FUNDING_RATE_INTERVAL. No prerequisites or exclusions are stated.

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

mintBurnFeeBasisPointsBInspect

Calls mintBurnFeeBasisPoints(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully discloses that the operation is read-only and unrestricted (no auth needed), and specifies the return type (uint256). However, it omits what the uint256 represents semantically (e.g., that it requires division by BASIS_POINTS_DIVISOR to get a percentage) or any edge cases.

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

Conciseness5/5

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

The description is efficiently structured in four short sentences with zero redundancy. Key traits (function name, read-only nature, access control, return type) are front-loaded and clearly separated, making it easy to scan.

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 zero-parameter getter with no output schema, the description provides the essential safety context (read-only, unrestricted) and return type. However, given the cryptic nature of 'basis points' in DeFi contexts, it lacks completeness regarding the value's semantics, valid ranges, or relationship to the BASIS_POINTS_DIVISOR sibling 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 contains zero parameters. Per guidelines, this establishes a baseline of 4. The description correctly does not invent parameters, though it helpfully notes the return value type (uint256) which compensates for the lack of an output 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 it calls the specific function and returns a uint256, but opens with a tautology ('Calls mintBurnFeeBasisPoints()'). It fails to explain what 'mint burn fee basis points' actually represents conceptually (e.g., the fee rate for minting/burning tokens) or distinguish why one would use this over sibling fee getters like swapFeeBasisPoints or marginFeeBasisPoints.

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 notes the function is 'Read-only' and 'Unrestricted,' which provides basic safety context, but offers no explicit guidance on when to use this versus the numerous sibling fee-related tools (e.g., getFeeBasisPoints, stableSwapFeeBasisPoints). No prerequisites or exclusion criteria are provided.

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

poolAmountsCInspect

Calls poolAmounts(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses key safety traits: read-only nature, unrestricted access, and return type (uint256). However, it omits what the uint256 represents semantically (e.g., token units, wei) and whether the returned amount includes decimals.

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

Conciseness4/5

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

The description is compact at three sentences with no filler words. However, the first sentence wastes space on implementation detail ('Calls poolAmounts') rather than leading with purpose, slightly reducing structural effectiveness.

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 single-parameter read function, the description covers basic operation and return type. However, given the complex DeFi vault context suggested by 80+ siblings, it lacks domain-specific context about what 'pool amounts' signifies (total liquidity vs available liquidity) and units of measurement.

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

Parameters3/5

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

The input schema has 100% description coverage (param0 documented as Ethereum address). The description merely echoes the parameter name and type ('param0: string') without adding semantic value beyond the schema, warranting the baseline score of 3.

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 opens with tautology ('Calls poolAmounts') that merely restates the tool name. While it mentions returning uint256, it fails to explain what 'poolAmounts' represents conceptually (e.g., liquidity balance, staked tokens) or how it differs from siblings like bufferAmounts, reservedAmounts, or usdgAmounts.

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 states access is 'Unrestricted' but provides no guidance on when to use this tool versus the numerous sibling amount-getters (bufferAmounts, feeReserves, guaranteedUsd, etc.). No prerequisites or contextual triggers are mentioned.

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

positionsAInspect

Calls positions(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { size: string, collateral: string, averagePrice: string, entryFundingRate: string, reserveAmount: string, realisedPnl: string, lastIncreasedTime: string }.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesbytes32 (32-byte hex string, 0x-prefixed).
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 effectively. It explicitly states the read-only safety profile, unrestricted access permissions, and provides the complete return structure with all eight field names and types, which is critical behavioral context.

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

Conciseness4/5

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

The description is efficiently structured with four distinct clauses covering invocation, safety, permissions, and return values. The initial 'Calls positions(param0: string)' is slightly redundant with the tool name, but the dense return value specification (necessary due to lack of output schema) 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 simplicity (1 parameter) and lack of structured output schema, the description adequately compensates by detailing the return object structure inline. It covers access control and safety. It could be improved by explaining the semantic meaning of param0 (position identifier) and its relationship to sibling tools.

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

Parameters3/5

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

The input schema has 100% coverage describing param0 as a bytes32 hex string. The description merely repeats 'param0: string' without adding semantic meaning (e.g., explaining this is a position key/identifier or how to obtain it), meeting the baseline for well-schematized parameters but not exceeding it.

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

Purpose4/5

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

The description clearly identifies this as a read operation on position state and lists the specific financial fields returned (size, collateral, averagePrice, etc.). It implicitly distinguishes from state-modifying siblings (increasePosition, decreasePosition) via the 'Read-only' label, though it could better differentiate from getter siblings like 'getPosition'.

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

Usage Guidelines3/5

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

The description provides implicit guidance through 'Read-only' and 'Unrestricted' labels, indicating when to use it (permissionless state reading). However, it lacks explicit comparison to alternatives like 'getPosition' or 'getPositionKey' to clarify when this specific function should be preferred.

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

priceFeedAInspect

Calls priceFeed(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 disclosure. It effectively communicates three key behavioral traits: it does not modify state ('Read-only'), requires no specific privileges ('Unrestricted'), and specifies the return type ('Returns address'). It misses what the address represents (e.g., oracle contract), but covers the essential safety profile.

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

Conciseness5/5

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

Four short sentences deliver distinct information: the function call, mutability guarantees, access controls, and return type. There is no redundant or wasted language; each clause earns its place in the agent's decision-making process.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 getter function with no output schema, the description is nearly complete by specifying the return type (address). It could be improved by explaining what the address represents (e.g., 'oracle address') or how it relates to the pricing mechanism, but it provides sufficient information for invocation.

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

Parameters4/5

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

The input schema contains zero parameters, establishing a baseline score of 4. The description correctly omits parameter discussion since none exist, requiring no additional semantic clarification 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 states the tool calls the priceFeed() function and returns an address, providing a clear verb and resource. While 'Calls priceFeed()' borders on tautology, the addition of 'Returns address' distinguishes it from sibling state-modifying functions like 'addRouter' or 'buyUSDG' that likely return transaction data or booleans.

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

Usage Guidelines3/5

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

The description implies usage context by stating 'Read-only' and 'Unrestricted,' signaling it is safe to call without permissions. However, it lacks explicit guidance on when to use this versus alternative price-related functions like 'getMaxPrice' or 'getMinPrice' from the sibling list.

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

PRICE_PRECISIONAInspect

Calls PRICE_PRECISION(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully communicates critical blockchain-specific traits: it explicitly states the operation is 'Read-only' and does not modify contract state, imposes no access restrictions ('Unrestricted'), and specifies the return type (uint256). It misses only semantic details about the return value's meaning.

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

Conciseness5/5

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

The description consists of four short, front-loaded sentences with zero waste. Each sentence delivers distinct critical information: the function invocation, safety profile (read-only), authorization requirements (unrestricted), and return type. No redundancy or filler text is present.

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 parameterless read function with no output schema, the description adequately covers operational safety and basic return type information. However, it is incomplete regarding the semantic meaning of the PRICE_PRECISION constant (what value it holds, its purpose in calculations, or its relationship to other system constants), which would be necessary for full contextual understanding.

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

Parameters4/5

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

The tool accepts zero parameters. Per the evaluation rubric, zero-parameter tools receive a baseline score of 4. The description appropriately does not invent parameter semantics where none exist, and the empty input schema is self-documenting.

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

Purpose3/5

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

The description states it 'Calls PRICE_PRECISION()' which is somewhat tautological and circular, and while it notes the function returns uint256, it fails to explain what 'price precision' actually represents in the system (e.g., the fixed-point decimal multiplier). It does not differentiate from similar sibling constant-getters like BASIS_POINTS_DIVISOR or FUNDING_RATE_PRECISION.

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

Usage Guidelines3/5

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

The description provides implicit usage guidance by stating it is 'Unrestricted — any address can call this read function,' which clarifies permission requirements. However, it lacks explicit guidance on when to use this constant versus other similar precision-related constants in the sibling list, or what calculations require this specific value.

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

removeRouterAInspect

Calls removeRouter(_router: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_routerYesaddress (Ethereum address, 0x-prefixed).
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 and effectively discloses: (1) write/mutating nature, (2) potential access control restrictions, and (3) absence of return value. It appropriately warns about prerequisites (checking contract source) but could mention revert conditions or event emission 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?

Four well-structured sentences with no wasted words: signature declaration, write classification with access control, prerequisite instruction, and return value disclosure. Information is front-loaded with critical safety warnings (write function, onlyOwner) before operational details. Minor deduction for slightly redundant opening clause.

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

Completeness4/5

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

Given the lack of output schema, explicitly stating 'No return value' is essential and present. The 100% input schema coverage plus access control warnings provide sufficient context for a single-parameter admin function. Could be improved by mentioning this is irreversible or emits specific events, but adequate for safe invocation.

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

Parameters3/5

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

Schema coverage is 100%, with the '_router' parameter already documented as an Ethereum address. The description mentions the parameter in the opening sentence but doesn't add semantic context beyond the schema (e.g., explaining it must be a previously added router address, or valid contract address format). Baseline 3 is appropriate when 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 identifies this as a 'Write function' that removes a router, distinguishing it from read-only siblings. While the opening sentence 'Calls removeRouter...' is somewhat tautological, the explicit 'Write function' classification and access control warnings clearly establish its destructive/administrative purpose compared to the many getter functions in the sibling list.

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

Usage Guidelines4/5

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

Provides explicit guidance on access control restrictions (e.g., onlyOwner) and advises checking contract source for modifier requirements—critical for blockchain admin functions. However, it doesn't explicitly reference the sibling 'addRouter' as the inverse operation or specify when removal is appropriate versus addition.

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

reservedAmountsBInspect

Calls reservedAmounts(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description effectively carries the full burden by explicitly stating 'Read-only — does not modify contract state' and 'Returns uint256.' It also notes the unrestricted access pattern. However, it omits what the returned uint256 represents semantically (e.g., token amount in wei) 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.

Conciseness4/5

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

Three sentences with minimal waste. The first sentence 'Calls reservedAmounts(param0: string)' is slightly redundant with the tool name and schema, but the subsequent sentences efficiently convey access control and safety properties.

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 single-parameter getter with no output schema, the description covers the basic mechanical aspects (read-only, return type). However, given the complexity of the contract ecosystem (evident from 100+ siblings), it lacks contextual explanation of what 'reserved amounts' means in the vault's accounting system.

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

Parameters3/5

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

Schema coverage is 100% and already describes param0 as an Ethereum address. The description mentions 'param0: string' which adds no semantic value beyond the schema and is actually less specific (string vs address). It fails to clarify whether the address is a token address, user address, or position key.

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 identifies this as a read-only function returning uint256, but 'Calls reservedAmounts' is tautological. It fails to explain what 'reserved amounts' represents (e.g., collateral reserved for positions) or distinguish it from similar sibling functions like bufferAmounts, poolAmounts, or usdgAmounts.

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. While it states 'Unrestricted — any address can call this read function,' it does not clarify when an agent should query reservedAmounts versus poolAmounts, feeReserves, or other amount-related functions in the sibling list.

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

routerAInspect

Calls router(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

No annotations provided, so description carries full disclosure burden. It effectively communicates safety ('Read-only — does not modify contract state'), authorization ('Unrestricted'), and output ('Returns address'). Does not contradict any 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?

Four short sentences with zero waste: function call, safety property, access control, and return value. Each sentence earns its place and is front-loaded with critical information.

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

Completeness4/5

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

For a simple parameterless getter with no output schema, the description adequately covers the return type (address) and behavioral constraints. Given the low complexity and rich sibling context, this is sufficient for correct agent 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?

Input schema contains zero parameters. With no parameters to document, this meets the baseline score of 4 for parameterless tools.

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

Purpose4/5

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

States it 'Calls router()' and 'Returns address', providing a clear verb-resource pairing. The singular 'address' return type distinguishes it from sibling 'approvedRouters' (likely returns multiple), while 'Read-only' distinguishes it from state-modifying siblings like 'addRouter' and 'removeRouter'.

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

Usage Guidelines3/5

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

Provides implicit guidance through 'Unrestricted — any address can call' and 'Read-only' descriptors, helping determine permission requirements. However, it lacks explicit 'when to use vs alternatives' guidance (e.g., not explicitly stating to use 'approvedRouters' for a list vs this for the primary router).

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

sellUSDGBInspect

Calls sellUSDG(_token: string, _receiver: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_receiverYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully flags the write nature and access control risks, and notes the return type (uint256). However, it fails to describe what the return value represents (e.g., amount of tokens received) or the specific state changes (e.g., USDG burned, tokens transferred).

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

Conciseness4/5

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

The description is appropriately compact at three sentences with no redundant phrases. However, the most critical information ('Write function') appears in the second sentence rather than being front-loaded, and the function signature repetition could be replaced with semantic explanation.

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 blockchain mutation tool with 2 simple parameters and no output schema, the description covers essential safety concerns (access control) but omits the business logic of the exchange mechanism and the meaning of the return value. It does not reference the evident sibling naming conflict (sellUSDG vs SellUSDG) that would confuse tool selection.

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

Parameters3/5

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

The input schema has 100% description coverage (both parameters documented as Ethereum addresses), establishing a baseline of 3. The description repeats the parameter names in the function signature but adds no semantic clarity beyond the schema—specifically, it does not clarify that _token is the asset to receive or that _receiver is the beneficiary of those tokens.

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 identifies this as a 'Write function' and names the specific smart contract function called, but relies on tautology ('Calls sellUSDG'). It fails to explain what 'selling USDG' actually accomplishes (e.g., burning USDG to receive _token) and does not distinguish from the sibling tool 'SellUSDG' (capitalized variant).

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

Usage Guidelines3/5

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

The description provides a prerequisite warning about access control ('may have access control restrictions... Check contract source'), which is useful for blockchain contexts. However, it lacks explicit guidance on when to use this versus siblings like 'buyUSDG' or 'SellUSDG', or what conditions must be met regarding token allowances or balances.

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

SellUSDGCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
accountYesaddress (Ethereum address, 0x-prefixed).
usdgAmountYesuint256 (uint256, pass as decimal string).
tokenAmountYesuint256 (uint256, pass as decimal string).
feeBasisPointsYesuint256 (uint256, pass as decimal string).
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 identifies the tool as event-related but fails to explain what invoking it returns (historical logs? subscription handle?), whether it requires specific node endpoints, or how the log filtering behaves. The behavioral model is underspecified.

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 only two sentences and no wasted words. However, it sacrifices necessary specificity for brevity, and the most important information (what event is being subscribed to) is not front-loaded.

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 blockchain event subscriptions, the presence of 5 parameters, and the critical distinction needed from the 'sellUSDG' function sibling, the description is incomplete. It lacks explanation of the event's business meaning, return format, and the relationship between the parameters and the sell operation.

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

Parameters3/5

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

The input schema has 100% description coverage (all 5 parameters have type descriptions), establishing a baseline of 3. The description adds no additional context about what 'account' (seller?), 'token' (purchased token?), or the amounts represent in the business logic of selling USDG.

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 identifies this as an event subscription tool ('Event emitted by the contract', 'Subscribe via log filters'), but fails to specify what the event represents (selling USDG) or clearly distinguish its purpose from the sibling 'sellUSDG' function. It provides the mechanism but not the domain context.

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

Usage Guidelines2/5

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

While it mentions 'Subscribe via log filters' implying a monitoring use case, it provides no explicit guidance on when to use this event tool versus the 'sellUSDG' function sibling, nor does it state prerequisites or exclusions for subscription. The contrast between monitoring and executing is left implicit.

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

setBufferAmountBInspect

Calls setBufferAmount(_token: string, _amount: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_amountYesuint256 (uint256, pass as decimal string).
Behavior4/5

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

With no annotations provided, the description effectively carries the safety burden: it explicitly declares 'Write function,' warns about potential access control modifiers, and states 'No return value' (compensating for the lack of output schema). It misses gas implications or revert conditions, but covers the critical 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?

Four sentences with zero fluff. Information is front-loaded with the function signature and write classification, followed by critical access control warnings, and ends with the return value note. The tautological first sentence slightly detracts from an otherwise tight structure.

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 two-parameter write function with no output schema, the description adequately covers technical invocation details (write nature, access control, return value). However, it lacks domain context—what the buffer amount represents, its relationship to pool liquidity, or valid value ranges—leaving gaps in conceptual 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 input schema has 100% description coverage (specifying address format and uint256 decimal string). The description merely echoes parameter names and types ('_token: string, _amount: string') without adding semantic meaning—such as whether _amount represents wei, token units, or what the buffer amount conceptually controls. Baseline 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.

Purpose3/5

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

The opening sentence 'Calls setBufferAmount...' is tautological, merely restating the tool name. While it clarifies this is a 'Write function,' it fails to explain what 'buffer amount' means in this protocol context (e.g., liquidity buffer, insurance reserve) or how it differs from sibling setters like setUsdgAmount or setFees.

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

Usage Guidelines3/5

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

The description provides valuable safety guidance about access control restrictions (e.g., onlyOwner) and advises checking contract source requirements. However, it lacks guidance on when to use this specific setter versus the 30+ other configuration tools available, or prerequisites for valid inputs.

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

setErrorBInspect

Calls setError(_errorCode: string, _error: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_errorYesstring.
_errorCodeYesuint256 (uint256, pass as decimal string).
Behavior4/5

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

Explicitly declares 'Write function' (mutation), warns about potential access control modifiers, and states 'No return value.' Without annotations, this provides essential behavioral context, though it omits details like event emission or whether it overwrites existing error codes.

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?

Four sentences totaling one line. The opening signature restatement is slightly redundant with the schema, but the subsequent warnings about access control and return values are efficiently placed. No filler text.

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

Completeness4/5

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

Appropriate for a simple 2-parameter administrative setter. Acknowledges the lack of return value and highlights access control risks. Given no output schema and no annotations, it covers the essential safety and behavioral context needed for a blockchain write 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?

Input schema has 100% coverage with type descriptions (including the uint256 decimal string hint). The description mirrors the parameter types but adds no semantic context about valid error code ranges or expected error string formats, resting at the baseline for high schema coverage.

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?

Identifies itself as a 'Write function' and mentions setting errors, but primarily restates the function signature rather than explaining the domain purpose (e.g., mapping error codes to human-readable messages in the vault contract). Does not differentiate from sibling error-related functions like setErrorController.

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

Usage Guidelines3/5

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

Provides critical safety guidance regarding access control restrictions (onlyOwner), advising users to check contract source code. However, lacks guidance on when to use this versus other administrative functions or prerequisites for the error strings themselves.

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

setErrorControllerAInspect

Calls setErrorController(_errorController: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_errorControllerYesaddress (Ethereum address, 0x-prefixed).
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 and succeeds: it explicitly states this is a 'Write function' (mutation), warns of authorization requirements (destructive/auth implications), and notes 'No return value'. This covers the critical safety and behavioral traits needed for blockchain contract interactions.

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?

Four sentences, each serving a distinct purpose: function signature mapping, operation type classification, security warning, and return value disclosure. Only minor redundancy exists in the first sentence. The structure appropriately front-loads the critical access control warning for a privileged blockchain operation.

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

Completeness4/5

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

Given the tool is a single-parameter setter with no output schema, the description is sufficiently complete. It covers the essential blockchain-specific safety context (permissions) that structured fields cannot convey. The only gap is a brief explanation of the error controller's role in the system, though this may be inferred from sibling tool names.

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

Parameters3/5

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

Schema description coverage is 100%, establishing a baseline of 3. The description mentions '_errorController: string' but does not add semantic meaning beyond the schema's 'address (Ethereum address, 0x-prefixed)' definition. It fails to explain what the error controller address actually governs in the contract logic.

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

Purpose4/5

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

The description clearly identifies this as a 'Write function' that sets the error controller address, distinguishing it from read-only siblings like 'errorController'. While the opening 'Calls setErrorController...' is somewhat tautological, the inclusion of access control context ('onlyOwner') clarifies this is a privileged state-changing operation.

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

Usage Guidelines3/5

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

The description provides prerequisite guidance by warning about 'access control restrictions (e.g. onlyOwner)' and advising to 'Check contract source for modifier requirements before calling'. However, it does not explicitly distinguish when to use this versus similar setter siblings like 'setError' or clarify the business logic of what an error controller controls.

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

setFeesAInspect

Calls setFees(_taxBasisPoints: string, _stableTaxBasisPoints: string, _mintBurnFeeBasisPoints: string, _swapFeeBasisPoints: string, _stableSwapFeeBasisPoints: string, _marginFeeBasisPoints: string, _liquidationFeeUsd: string, _minProfitTime: string, _hasDynamicFees: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_minProfitTimeYesuint256 (uint256, pass as decimal string).
_hasDynamicFeesYesbool.
_taxBasisPointsYesuint256 (uint256, pass as decimal string).
_liquidationFeeUsdYesuint256 (uint256, pass as decimal string).
_swapFeeBasisPointsYesuint256 (uint256, pass as decimal string).
_marginFeeBasisPointsYesuint256 (uint256, pass as decimal string).
_stableTaxBasisPointsYesuint256 (uint256, pass as decimal string).
_mintBurnFeeBasisPointsYesuint256 (uint256, pass as decimal string).
_stableSwapFeeBasisPointsYesuint256 (uint256, pass as decimal string).
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 and effectively discloses: (1) state mutation ('Write function'), (2) authorization requirements ('access control restrictions'), (3) revert risk ('Check contract source'), and (4) return value behavior ('No return value'). It could enhance by mentioning event emission or atomicity guarantees.

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

Conciseness4/5

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

Three sentences efficiently cover: the function signature with all nine parameters, the write/auth warnings, and the return value. Despite the lengthy parameter list in sentence one, this is necessary given the complexity; no words are wasted on tautological restatements of the tool name.

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

Completeness4/5

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

For a complex state-changing function with nine required parameters, no annotations, and no output schema, the description adequately covers the critical missing context: mutability, access control risks, and void return. It appropriately delegates parameter format details to the schema while focusing description on behavioral traits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 type description ('uint256...pass as decimal string'), establishing a baseline of 3. The description lists all nine parameters in the function signature but adds minimal semantic context beyond the parameter names themselves (e.g., doesn't explain what distinguishes '_taxBasisPoints' from '_stableTaxBasisPoints').

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

Purpose4/5

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

The description identifies this as a 'Write function' that sets multiple fee parameters (tax, swap, margin, liquidation, etc.), distinguishing it from sibling getter functions like 'getFeeBasisPoints' and single-purpose setters like 'setFundingRate'. However, it relies heavily on listing parameter names rather than explicitly summarizing the business purpose (e.g., 'Configures vault trading fees').

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 context that this is a write operation and includes a critical security warning about access control restrictions (e.g., onlyOwner), advising to check contract source before calling. While it doesn't explicitly name sibling alternatives, the parameter listing makes it clear this is for batch fee configuration versus individual updates.

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

setFundingRateAInspect

Calls setFundingRate(_fundingInterval: string, _fundingRateFactor: string, _stableFundingRateFactor: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_fundingIntervalYesuint256 (uint256, pass as decimal string).
_fundingRateFactorYesuint256 (uint256, pass as decimal string).
_stableFundingRateFactorYesuint256 (uint256, pass as decimal string).
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 and successfully discloses: (1) state-mutation nature ('Write function'), (2) authorization risks ('access control restrictions'), and (3) return behavior ('No return value'). Missing gas cost implications or failure mode details, but covers critical 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?

Efficient three-part structure: function signature mapping, access control warning, return value note. The explicit parameter list in the first sentence is slightly redundant with the schema but clarifies the underscore-prefixed parameter names. No filler content; every sentence serves a distinct 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?

For a state-changing contract function with no annotations, the description adequately covers safety (access control) and technical interface (no return value). However, it lacks domain context (what funding rates are, when they should be changed) and fails to distinguish from similarly-named siblings (UpdateFundingRate). Acceptable but incomplete for complex financial operations.

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

Parameters3/5

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

Schema has 100% description coverage (uint256 types with string encoding). The description lists parameter names and types but adds no semantic meaning about valid ranges, units (e.g., seconds for interval, basis points for factors), or calculation methodology. Baseline score appropriate since schema is complete but description doesn't enrich 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?

Clearly identifies as a setter for funding rate parameters ('Calls setFundingRate...') and explicitly labels it as a 'Write function', distinguishing it from getter siblings like fundingInterval and fundingRateFactor. Could be improved by explaining the business purpose (configuring perpetual swap funding mechanisms) rather than just the function signature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 safety-critical guidance: 'may have access control restrictions (e.g. onlyOwner)' and instructs to 'Check contract source for modifier requirements before calling.' This effectively communicates prerequisites (ownership/permissions) and risks. Does not differentiate from similar mutation tools like UpdateFundingRate.

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

setGovBInspect

Calls setGov(_gov: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_govYesaddress (Ethereum address, 0x-prefixed).
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It successfully identifies the write nature, access control risks, and 'No return value'—critical for smart contract interactions. However, it omits the severe impact of this action (transferring protocol control) and doesn't mention gas implications or emitted events typical of governance changes.

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?

Four efficient sentences with no filler. Information is front-loaded with the function signature (useful for Solidity developers), followed by critical safety warnings (write nature, access control), and ends with return value disclosure. Structure respects the agent's need to quickly assess execution risks.

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 this is a critical admin function for what appears to be a DeFi vault protocol (per siblings like liquidatePosition, vault variables), the description is minimally adequate. It covers access control but lacks domain-specific warnings about the irreversible/high-stakes nature of transferring governance authority, which should be explicit for this severity of 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 100% with clear Ethereum address typing. The description mirrors the parameter ('_gov: string') but fails to add semantic value beyond the schema—such as explaining this is the 'new governance address that will assume protocol control' or validation requirements beyond the 0x prefix.

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 identifies this as a write function that sets governance ('setGov'), but opens with tautological function syntax ('Calls setGov(_gov: string)') rather than stating the business purpose. It distinguishes from read-only siblings by marking it as a write function with access control, but doesn't explain what governance controls in this protocol context.

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

Usage Guidelines3/5

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

Provides explicit prerequisite guidance to 'Check contract source for modifier requirements before calling' and warns of 'onlyOwner' restrictions, which is valuable for blockchain contexts. However, it lacks explicit when-not-to-use guidance or alternatives for non-owner users.

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

setInManagerModeBInspect

Calls setInManagerMode(_inManagerMode: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_inManagerModeYesbool.
Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully discloses that this is a write operation and explicitly states 'No return value' (matching the lack of output schema). However, it omits what actually happens when manager mode is toggled (side effects, events emitted, state changes) beyond the access control warning.

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 efficiently structured in three sentences with no filler. It front-loads the function signature, immediately identifies the write nature, and concludes with practical cautions and return value info. Each sentence serves a distinct 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?

For a single-parameter write function with no output schema, the description covers the mechanical essentials (signature, mutability, access control risks, no return). However, given the complexity of the sibling tool set (50+ similar contract functions), it lacks domain context explaining what 'manager mode' means in this specific protocol, which would aid selection.

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

Parameters3/5

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

Schema coverage is 100% with the parameter described as 'bool.' in the schema. The description mentions the parameter signature but adds no semantic meaning beyond the schema—specifically, it does not explain what 'true' or 'false' values signify (e.g., enabling/disabling manager restrictions). Baseline 3 is appropriate given the schema coverage.

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 identifies this as a setter for 'manager mode' and labels it as a 'Write function', but does not explain what manager mode actually controls or how it differs from siblings like 'setManager' (which likely sets an address) or 'setInPrivateLiquidationMode'. It restates the function signature without clarifying the business logic.

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 warns about access control restrictions (e.g., onlyOwner) and advises checking contract source for modifiers, which is useful safety guidance. However, it fails to specify when this tool should be used versus the numerous similar setter siblings (e.g., when to enable/disable manager mode vs. other operational modes).

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

setInPrivateLiquidationModeAInspect

Calls setInPrivateLiquidationMode(_inPrivateLiquidationMode: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_inPrivateLiquidationModeYesbool.
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 and successfully discloses: (1) mutability ('Write function'), (2) authorization requirements ('may have access control restrictions'), and (3) return value behavior ('No return value'). This covers the essential behavioral traits needed 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.

Conciseness5/5

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

Three well-structured sentences with zero waste: function signature, access control warning, and return value note. Information is front-loaded and dense 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?

For a single-parameter setter with no output schema, the description adequately covers safety concerns (access control), mutability, and return values. It lacks explanation of the domain concept (what private liquidation mode entails) but is otherwise technically complete for contract interaction.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 documented as 'bool.' The description mentions the parameter name and type ('_inPrivateLiquidationMode: boolean') but does not add semantic meaning beyond the schema, such as explaining that true enables private liquidation and false disables it. Baseline 3 is appropriate given complete schema coverage.

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 identifies the tool as calling the specific contract function and notes it is a 'Write function,' but it does not explain what 'private liquidation mode' actually means or how it affects contract behavior. It functionally restates the tool name with parameter types, lacking domain context that would distinguish it from similar setter functions like setInManagerMode.

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

Usage Guidelines4/5

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

Explicitly warns about access control restrictions (e.g., onlyOwner) and advises checking contract source for modifier requirements before calling. This provides crucial prerequisites for invocation, though it does not specify business logic scenarios for enabling/disabling this mode.

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

setIsLeverageEnabledBInspect

Calls setIsLeverageEnabled(_isLeverageEnabled: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isLeverageEnabledYesbool.
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 successfully identifies the operation as a write function, warns about potential access control restrictions, and explicitly states 'No return value.' This covers the critical safety and behavior traits an agent needs to invoke the tool correctly.

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

Conciseness3/5

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

The description is three sentences and reasonably compact. However, the first sentence merely restates the function signature, wasting space. The critical access control warning is well-placed, but the structure could be improved by leading with the behavioral classification ('Write function') rather than the tautological call signature.

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 boolean setter with no output schema, the description adequately covers the essential behavioral contract (write operation, access control, no return). However, given the complexity of the sibling tool set (numerous leverage and swap configuration functions), it lacks context about what specific protocol behavior this toggle controls (e.g., whether it affects existing positions).

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

Parameters3/5

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

Input schema has 100% description coverage (the single parameter has a description, albeit minimal: 'bool.'). The description mentions the parameter name and type but adds no semantic clarification about what true/false values represent (e.g., enabling vs disabling leverage trading). Baseline score of 3 is appropriate since schema coverage is complete.

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 identifies this as a 'Write function' that sets leverage status, which clarifies the action. However, it opens with a tautological signature ('Calls setIsLeverageEnabled...') and fails to differentiate from siblings like setMaxLeverage or setIsSwapEnabled, leaving some ambiguity about specific scope.

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

Usage Guidelines3/5

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

The description provides explicit guidance to 'Check contract source for modifier requirements before calling' regarding access control (e.g., onlyOwner), which warns about prerequisites. However, it lacks guidance on when to use this specific toggle versus other configuration functions or the consequences of disabling leverage.

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

setIsSwapEnabledBInspect

Calls setIsSwapEnabled(_isSwapEnabled: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isSwapEnabledYesbool.
Behavior4/5

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

With no annotations provided, the description effectively carries the burden by explicitly declaring 'Write function', warning about access control restrictions, and noting 'No return value'. This disclosure of mutation risk and authorization requirements is essential for blockchain/smart contract interactions.

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?

Four sentences efficiently structured: function signature, mutation classification, access control warning, and return value notice. The opening tautology slightly reduces efficiency, but overall every sentence provides necessary information without redundancy.

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

Completeness4/5

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

For a simple boolean setter with no output schema, the description is appropriately complete. It covers the critical blockchain-specific concerns (write operation, access modifiers, return void) that would be necessary for safe invocation, though it could briefly explain the business impact of enabling/disabling swaps.

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

Parameters3/5

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

The schema has 100% coverage (albeit minimal with just 'bool.'). The description repeats the parameter name and type but adds no semantic context about what true/false signifies (though the function name implies this). Baseline 3 is appropriate since the schema adequately documents the parameter structure.

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 identifies this as a 'Write function' and names the parameter, but opens with a tautology ('Calls setIsSwapEnabled'). It lacks explanation of what 'swap' functionality specifically refers to in this contract context, failing to differentiate from sibling setters like setIsLeverageEnabled or setInManagerMode beyond the parameter name.

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

Usage Guidelines3/5

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

Provides a safety-critical usage guideline to 'Check contract source for modifier requirements before calling' and warns about access control (onlyOwner). However, it lacks guidance on when to use this versus other state-changing tools or the prerequisite conditions (e.g., governance requirements).

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

setLiquidatorAInspect

Calls setLiquidator(_liquidator: string, _isActive: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_isActiveYesbool.
_liquidatorYesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses: mutation behavior ('Write function'), authorization risks ('access control restrictions'), and output behavior ('No return value'). Missing details on state changes (what happens to liquidation capability).

Agents need to know what a tool does to the world before 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 efficient sentences with zero waste. Front-loaded with function signature, followed by operation type, security warning, and return value. 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?

Adequate for a simple 2-parameter setter with no output schema, covering technical safety (access control) and mechanics. However, gaps remain regarding domain context (role of liquidators in the vault system) and implications of activation/deactivation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 type definitions. The description restates parameter types in the function signature but adds no additional semantic meaning (e.g., what 'active' means for a liquidator, address format validation) 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?

Clear that this sets/designates a liquidator address and their active status via a write operation. Identifies as a 'Write function' distinguishing from read-only siblings like isLiquidator, though could clarify what a liquidator does in this system.

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

Usage Guidelines3/5

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

Provides critical safety guidance about access control restrictions (e.g., onlyOwner) and advises checking contract source. However, lacks guidance on when to use this versus other admin functions like setManager or setInPrivateLiquidationMode.

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

setManagerAInspect

Calls setManager(_manager: string, _isManager: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_managerYesaddress (Ethereum address, 0x-prefixed).
_isManagerYesbool.
Behavior4/5

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

With no annotations provided, the description effectively carries the safety disclosure burden by explicitly labeling this as a 'Write function', warning about access control modifiers, and stating 'No return value'. It appropriately flags that this is a privileged state-changing operation requiring specific permissions.

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

Conciseness5/5

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

Four tightly constructed sentences with zero redundancy: function signature identification, write classification, access control warning, and return value disclosure. Each sentence delivers distinct, high-value information for blockchain interaction safety.

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

Completeness4/5

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

Adequate for a simple two-parameter setter function with no output schema. The access control warning compensates for missing annotations. Could be improved by briefly explaining the managerial role's permissions (e.g., ability to whitelist tokens or execute privileged operations) given the complexity of the sibling tool ecosystem.

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

Parameters3/5

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

Since schema description coverage is 100% (detailing Ethereum address format for _manager and boolean for _isManager), the baseline is appropriately met. However, the description merely echoes the parameter types from the schema without adding semantic context (e.g., explaining that _isManager=true grants privileges while false revokes them).

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

Purpose4/5

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

The description identifies this as a manager configuration function with specific parameters, though it primarily mirrors the function signature rather than explaining the business concept of 'manager' status within this protocol (e.g., granting vs revoking privileges). It distinguishes itself as a write operation, which helps differentiate from the likely read-only sibling 'isManager'.

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

Usage Guidelines3/5

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

Provides critical prerequisite guidance by warning about access control restrictions (e.g., onlyOwner) and advising to check contract source requirements. However, it fails to differentiate when to use this tool versus similar administrative siblings like 'setGov', 'setLiquidator', or other setters in the list.

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

setMaxGasPriceAInspect

Calls setMaxGasPrice(_maxGasPrice: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_maxGasPriceYesuint256 (uint256, pass as decimal string).
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 correctly identifies the write nature, warns about potential access control restrictions, and explicitly states 'No return value' (important given the lack of output schema). It could improve by explaining what gas price limit this parameter actually enforces in the protocol.

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?

Four sentences efficiently structured: function signature, operation type, security warning, and return value. The caution about checking contract source is necessary for blockchain contexts and earns its place. Slightly technical in tone but appropriate for the domain.

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?

Adequately covers safety-critical aspects (access control, no return value) for a single-parameter setter. However, given this is a DeFi protocol tool among many similar setters, the description lacks domain context about what maxGasPrice limits (transaction costs? liquidations?) and how it affects protocol behavior.

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

Parameters3/5

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

The schema has 100% coverage with the parameter description 'uint256 (uint256, pass as decimal string)'. The tool description mentions '_maxGasPrice: string' which aligns with the schema but adds no additional semantic context (e.g., units like wei/gwei, valid ranges, or what the threshold represents). Baseline score for high schema coverage.

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

Purpose4/5

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

Identifies this as a 'Write function' that sets the maxGasPrice parameter, distinguishing it from the likely getter 'maxGasPrice' in the sibling list. The mention of 'Write function' clarifies the mutation nature, though it could further explain what maxGasPrice controls in the protocol.

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

Usage Guidelines3/5

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

Provides critical prerequisite guidance by warning about access control restrictions (e.g., onlyOwner) and advising to check contract source modifiers. However, it lacks explicit guidance on when to use this versus other configuration setters like setFees or setGov, or what conditions warrant changing the max gas price.

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

setMaxLeverageAInspect

Calls setMaxLeverage(_maxLeverage: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_maxLeverageYesuint256 (uint256, pass as decimal string).
Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden. It successfully identifies this as a write operation (state mutation), warns about potential access control restrictions, and explicitly states 'No return value'. This covers the critical behavioral traits for a blockchain interaction, though it omits gas considerations or event emission details.

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

Conciseness4/5

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

The description is appropriately sized at four sentences. It efficiently packs function signature, operation type, security warning, and return value information without redundancy. Each sentence serves a distinct purpose, though 'Calls setMaxLeverage(_maxLeverage: string)' merely echoes the schema structure.

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 complex DeFi protocol context (100+ sibling functions), the description provides minimal viable context: it identifies the operation type and access risks. However, it fails to explain what 'max leverage' controls, the impact of changing it, or why an agent would invoke this versus other protocol configuration functions.

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

Parameters3/5

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

The input schema has 100% description coverage for the single '_maxLeverage' parameter (documenting it as uint256 passed as decimal string). The description mentions the parameter name in the function signature but adds no semantic context beyond the schema regarding what constitutes valid leverage values or their implications.

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

Purpose4/5

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

The description identifies this as a write function calling setMaxLeverage with a specific parameter type. While 'Calls setMaxLeverage' is somewhat tautological, the addition of 'Write function' clearly distinguishes it from read-only siblings like 'maxLeverage'. However, it doesn't explicitly differentiate from other configuration setters like 'setMaxGasPrice' or 'setIsLeverageEnabled'.

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

Usage Guidelines3/5

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

The description provides implicit usage guidance by warning about access control restrictions (e.g., onlyOwner) and advising to check contract source for modifiers. However, it lacks explicit 'when to use' guidance, doesn't contrast with the getter 'maxLeverage', and doesn't mention prerequisites like governance permissions or transaction signing requirements.

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

setPriceFeedAInspect

Calls setPriceFeed(_priceFeed: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_priceFeedYesaddress (Ethereum address, 0x-prefixed).
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 and effectively discloses: (1) mutation nature ('Write function'), (2) authorization requirements ('access control restrictions'), and (3) return value status ('No return value'). Could be improved by describing side effects (e.g., 'updates the oracle address used for all price queries').

Agents need to know what a tool does to the world before 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 with zero waste: function signature, write classification with auth warning, prerequisite check instruction, and return value declaration. Front-loaded with critical information (write nature and auth) and maintains tight focus on operational requirements.

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

Completeness4/5

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

Appropriate for a single-parameter contract write function with no output schema. Covers critical blockchain-specific concerns: mutability, access control, and return values. Missing domain context about the price feed's role in the vault system, but sufficient for safe invocation by an agent familiar with DeFi protocols.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (parameter described as Ethereum address), so the baseline is 3. The description mentions `_priceFeed: string` but adds no semantic meaning beyond the schema's type definition. It does not explain what constitutes a valid price feed contract or why one would change it.

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

Purpose4/5

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

Clearly identifies this as a setter for the price feed (write function) and distinguishes from the sibling getter `priceFeed` by specifying the write nature. However, it doesn't explain what the price feed is used for in the system (e.g., oracle for asset pricing), which would help distinguish it from other setters like `setTokenConfig`.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 crucial context about access control restrictions (onlyOwner) and explicitly advises checking contract source for modifier requirements. This gives clear prerequisites for usage. Lacks explicit comparison to alternative setters (e.g., when to use this vs `setTokenConfig`), but the access control warning is highly actionable guidance.

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

setTokenConfigAInspect

Calls setTokenConfig(_token: string, _tokenDecimals: string, _tokenWeight: string, _minProfitBps: string, _maxUsdgAmount: string, _isStable: boolean, _isShortable: boolean). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_isStableYesbool.
_isShortableYesbool.
_tokenWeightYesuint256 (uint256, pass as decimal string).
_minProfitBpsYesuint256 (uint256, pass as decimal string). Value in basis points (e.g. 500 = 5%, 10000 = 100%).
_maxUsdgAmountYesuint256 (uint256, pass as decimal string).
_tokenDecimalsYesuint256 (uint256, pass as decimal string).
Behavior4/5

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

No annotations provided, so description carries full burden. Correctly identifies this as a 'Write function' (mutation), discloses 'No return value,' and warns about access control modifiers. Missing: reversibility details, side effects (events emitted), or whether this creates new configs vs. updates existing ones.

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

Conciseness4/5

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

Three sentences with zero filler. Front-loaded with function signature (slightly redundant given schema but acceptable for Solidity context), followed by critical behavioral classification (write function), access warning, and return value disclosure. Efficient structure appropriate for technical blockchain tooling.

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?

Adequate for a 7-parameter admin function with no output schema: it covers the safety-critical access control aspect and return value. However, for a complex DeFi vault configuration tool, it lacks explanation of how these parameters interact (e.g., relationship between isShortable and tokenWeight, or validation constraints). Minimum viable but gaps remain in operational 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?

Input schema has 100% description coverage with detailed type information (uint256 as decimal string, basis points explanation). The description repeats the function signature but adds no semantic meaning beyond the schema (e.g., doesn't explain what tokenWeight represents in the pool mechanics). Baseline 3 appropriate when 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 identifies this as a configuration setter for tokens, listing the specific seven parameters being configured (decimals, weight, profit basis points, etc.). While it opens with a tautological 'Calls setTokenConfig...', it distinguishes from siblings like clearTokenConfig or setGov by specifying the exact token parameter scope. It could be improved by explaining what these configurations control in the vault 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 critical usage constraint: 'may have access control restrictions (e.g. onlyOwner)' and explicitly advises checking 'contract source for modifier requirements before calling.' This warns the agent about prerequisites. Lacks explicit comparison to clearTokenConfig (when to update vs. remove), but the access control guidance is substantial.

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

setUsdgAmountBInspect

Calls setUsdgAmount(_token: string, _amount: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_amountYesuint256 (uint256, pass as decimal string).
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 of behavioral disclosure. It successfully communicates three critical traits: it is a write/mutation operation ('Write function'), requires specific authorization ('access control restrictions'), and has no return value ('No return value'). This adequately covers the safety profile for a contract interaction.

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?

Four sentences with zero filler. Each conveys distinct information: function signature, write nature/access control, prerequisite check instruction, and return value. Slightly redundant opening sentence ('Calls setUsdgAmount' restates the tool name) prevents a perfect score.

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 two-parameter setter function with no output schema, the description covers the essential technical safety aspects (write permissions, access control). However, it lacks domain context about what USDG represents or the implications of modifying these amounts, which would help an agent understand the business logic impact of this vault configuration change.

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

Parameters3/5

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

The input schema has 100% description coverage (Ethereum address format and uint256 decimal string), so the description is not required to compensate. The description mentions parameter types (_token: string, _amount: string) but this adds no semantic value beyond the schema's detailed type information. Baseline score appropriate.

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

Purpose3/5

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

The description states it 'Calls setUsdgAmount' which is somewhat tautological, but partially recovers by identifying it as a 'Write function' and listing parameter types. However, it fails to explain what 'setting USDG amount' functionally accomplishes in the protocol context (e.g., configuring vault limits) or how it differs from sibling tools like IncreaseUsdgAmount.

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

Usage Guidelines3/5

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

Provides valuable safety guidance regarding access control restrictions (onlyOwner) and advises checking contract source code, which is critical for blockchain interactions. However, it lacks guidance on when to use this absolute setter versus the sibling IncreaseUsdgAmount/DecreaseUsdgAmount functions, which is essential for correct vault management.

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

shortableTokensBInspect

[DISCOVERY] Calls shortableTokens(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description effectively discloses critical behavioral traits: it explicitly states 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function', which informs the agent of safety and permissions. It also notes the return type is bool, though it fails to explain what true/false semantically represents.

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 '[DISCOVERY]' prefix appears to be metadata leakage rather than helpful documentation. The sentence 'Calls shortableTokens(param0: string)' restates the function signature unnecessarily. However, the key safety information ('Read-only', 'Unrestricted') is front-loaded, and the overall length is appropriate for a simple read function.

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 single-parameter read function without an output schema, the description adequately compensates by stating the return type (bool). However, it lacks explanation of what the boolean represents (e.g., 'true if the token can be shorted') and omits any mention of revert conditions or edge cases, leaving slight gaps for a 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?

The input schema has 100% description coverage for the single 'param0' parameter (identifying it as an Ethereum address). The description redundantly lists 'param0: string' without adding syntax constraints, format examples, or semantic meaning beyond what the schema already provides, warranting the baseline score.

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

Purpose3/5

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

The description states it calls 'shortableTokens' which is tautological, but clarifies it returns a boolean. It does not explain what 'shortable' means in this DeFi context (likely whether a token can be used as collateral for short positions), forcing the agent to infer from sibling tool names like 'IncreasePosition' and 'liquidatePosition'.

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 versus other token inspection tools like 'whitelistedTokens' or 'stableTokens'. The agent cannot determine if this is a prerequisite for other operations or when to prefer it over alternative checks.

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

stableFundingRateFactorAInspect

Calls stableFundingRateFactor(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations provided, the description carries the full disclosure burden. It explicitly states 'Read-only — does not modify contract state' and 'Returns uint256', clearly communicating the safety profile and return type. It does not describe the value format (e.g., basis points vs. raw), but covers the essential 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 consists of four short sentences, each delivering distinct information: function invocation, mutability guarantee, access restriction, and return type. There is minimal redundancy, though 'Calls stableFundingRateFactor()' is somewhat tautological.

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 absence of an output schema, the description discloses the return type (uint256), satisfying minimum requirements. However, for a DeFi protocol tool with complex siblings, it lacks context on what the returned value represents (e.g., multiplier, rate, or configuration constant) and its units of measurement.

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 contains zero parameters (100% coverage of empty set). Per the baseline rules for zero-parameter tools, this scores a 4. The description correctly implies no arguments are needed by focusing solely on the return value and access properties.

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 mechanically states it 'Calls stableFundingRateFactor()' and returns a uint256, but does not explain what a stable funding rate factor represents semantically. It fails to differentiate from the sibling 'fundingRateFactor' tool or clarify when to query this specific constant versus others.

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted — any address can call this read function,' which provides access control guidance. However, it lacks guidance on when to use this tool versus similar funding rate getters like 'fundingRateFactor' or 'MAX_FUNDING_RATE_FACTOR'.

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

stableSwapFeeBasisPointsBInspect

Calls stableSwapFeeBasisPoints(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 disclosure. It effectively communicates that the operation is read-only ('does not modify contract state'), requires no special permissions ('Unrestricted'), and returns a uint256 value, covering essential safety and behavioral traits.

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

Conciseness5/5

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

The description consists of four short, declarative sentences with no redundant information. Key properties (read-only nature, access restrictions, return type) are clearly stated without verbosity.

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 compensates for missing annotations and lack of output schema by stating the read-only nature and return type (uint256), it lacks semantic context about what the returned value represents (basis points for stable swaps) and omits differentiation from related fee functions.

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 input parameters, establishing a baseline score of 4 per calibration guidelines. The description correctly does not attempt to add parameter semantics where none exist.

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 tautologically states it 'Calls stableSwapFeeBasisPoints()' without explaining the semantic purpose (retrieving fee basis points for stablecoin swaps). While it notes the return type, it fails to distinguish from similar sibling tools like swapFeeBasisPoints or stableTaxBasisPoints.

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 notes 'Unrestricted — any address can call' but provides no guidance on when to use this tool versus alternatives such as swapFeeBasisPoints (for non-stable swaps) or stableTaxBasisPoints. No 'when-not' or selection criteria are specified.

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

stableTaxBasisPointsAInspect

Calls stableTaxBasisPoints(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations provided, the description adequately discloses key behavioral traits: it explicitly states 'Read-only — does not modify contract state' and 'Unrestricted' access. It also clarifies the return type ('Returns uint256') compensating for the missing output schema.

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

Conciseness5/5

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

The description consists of four short sentences with zero redundancy. Information is efficiently ordered: function identification, mutability guarantee, access control, and return type. 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 simple parameter-less view function with no annotations, the description successfully covers all necessary invocation context: mutability, access restrictions, and return type. The absence of an output schema is adequately compensated by the explicit return type declaration.

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 contains zero parameters. Per the rubric, 0 parameters establishes a baseline of 4, which this meets. No additional parameter semantics are needed or provided.

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 function returns a uint256 but fails to explain what 'stableTaxBasisPoints' represents (e.g., the fee rate for stable token transactions). The opening sentence 'Calls stableTaxBasisPoints()' is tautological, restating the tool name without adding semantic meaning. It does not distinguish this from sibling tools like taxBasisPoints or stableSwapFeeBasisPoints.

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

Usage Guidelines3/5

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

The description notes that the function is 'Unrestricted — any address can call this read function,' which provides basic access control guidance. However, it lacks guidance on when to use this specific fee parameter versus siblings like taxBasisPoints or marginFeeBasisPoints, leaving the agent without selection criteria.

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

stableTokensCInspect

[DISCOVERY] Calls stableTokens(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses that the operation is 'Read-only' and does not modify contract state. It also states the return type (bool). However, it omits what the boolean signifies (true/false semantics) and potential failure modes or gas considerations.

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 four sentences and reasonably concise. However, the '[DISCOVERY]' prefix appears to be metadata rather than descriptive content, and the first sentence merely restates the function signature, wasting prime real estate. The behavioral notes are appropriately placed but the structure front-loads tautology.

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 boolean query with one parameter, the description covers basic safety properties (read-only, unrestricted) and return type. However, it fails to explain the domain concept (what constitutes a 'stable' token) or provide context about the contract state being queried. Given the lack of output schema, mentioning the bool return is helpful, but the description remains semantically incomplete.

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

Parameters3/5

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

The input schema has 100% description coverage ('address (Ethereum address, 0x-prefixed)'). The description merely notes 'param0: string' without adding semantic context (e.g., 'the token address to check for stability'). With full schema coverage, this meets the baseline score of 3 but adds no additional value.

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 is tautological, stating only that it 'Calls stableTokens(param0: string)' without explaining what 'stable' means in this context (e.g., checking if a token is a stablecoin). While it mentions the return type (bool), it fails to describe the business logic or semantic purpose of the check.

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

Usage Guidelines3/5

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

The description notes that the function is 'Unrestricted — any address can call this read function,' which provides permission context. However, it lacks guidance on when to use this tool versus siblings like 'whitelistedTokens' or 'shortableTokens,' or what conditions warrant checking if a token is stable.

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

swapBInspect

Calls swap(_tokenIn: string, _tokenOut: string, _receiver: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenInYesaddress (Ethereum address, 0x-prefixed).
_receiverYesaddress (Ethereum address, 0x-prefixed).
_tokenOutYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description effectively carries the safety burden by explicitly labeling this as a 'Write function', warning about access control restrictions, and noting the uint256 return value. This disclosure of mutability and authorization risks is essential for DeFi contract interactions.

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?

Four concise sentences with no fluff. Information is front-loaded with the function signature, followed by critical safety warnings (write nature, access control), and return type. Each sentence earns its place, though the opening could be more descriptive than just 'Calls swap()'.

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?

Adequate for a basic contract interaction tool: it mentions the return type (uint256) despite no output schema, and warns about access control. However, for a financial swap function, it lacks business logic context (e.g., what the uint256 represents—likely amount out—or how pricing works) given the complexity and risk of the operation.

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

Parameters3/5

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

The schema has 100% coverage with clear Ethereum address descriptions for all three parameters. The description repeats the parameter signature but adds no additional semantic context (e.g., that _tokenIn is the token being sold, _receiver is the destination) beyond what the schema and parameter names already provide.

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

Purpose3/5

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

The description states it calls a swap function with specific address parameters, implying token exchange, but opens with tautological 'Calls swap()'. It fails to distinguish from the sibling 'Swap' tool (capitalized) or clarify when to use this versus similar trading functions like buyUSDG/sellUSDG.

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

Usage Guidelines3/5

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

Provides a prerequisite warning ('Check contract source for modifier requirements') regarding access control restrictions (onlyOwner), which is crucial for blockchain write functions. However, it lacks explicit guidance on when to choose this tool over alternatives like the capitalized 'Swap' or other trading functions in the extensive sibling list.

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

SwapCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesaddress (Ethereum address, 0x-prefixed).
tokenInYesaddress (Ethereum address, 0x-prefixed).
amountInYesuint256 (uint256, pass as decimal string).
tokenOutYesaddress (Ethereum address, 0x-prefixed).
amountOutYesuint256 (uint256, pass as decimal string).
feeBasisPointsYesuint256 (uint256, pass as decimal string).
amountOutAfterFeesYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

Without annotations, the description carries the full burden of indicating this is a read-only monitoring operation (event subscription) rather than a state-changing transaction. However, it omits details about subscription lifecycle, return format (event logs), or whether this is a real-time stream vs historical query.

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 brief at two sentences. Both sentences earn their place by establishing the event nature and subscription mechanism, though the extreme brevity leaves significant gaps in context.

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

Completeness2/5

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

For a 7-parameter blockchain event with complex DeFi semantics (token inputs/outputs, fee calculations), the description is inadequate. It lacks explanation of the event trigger conditions, output format, or relationship to the swap execution flow.

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

Parameters3/5

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

With 100% schema description coverage where each parameter documents its data type (address/uint256), the description correctly relies on the schema. It adds no supplementary parameter semantics, which is acceptable given the high schema coverage baseline.

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 identifies this as an event subscription tool ('Subscribe via log filters') distinguishing it from the execution function 'swap' in the sibling list, but fails to explain what the 'Swap' event represents (token exchange) or its business logic.

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 subscribe to this event versus querying state directly (e.g., using getPosition) or executing a swap. Does not mention prerequisites like address filtering or block range constraints typical for log filters.

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

swapFeeBasisPointsCInspect

Calls swapFeeBasisPoints(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 successfully indicates the operation is 'Read-only' and does not modify state, and specifies unrestricted access. However, it omits what the returned uint256 represents (e.g., that 10 = 0.1% fee) or whether this reads a state variable versus computing a dynamic value.

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

Conciseness5/5

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

Four short sentences with zero redundancy. Each sentence conveys distinct, essential information (function call, mutability, permissions, return type) given the absence of annotations or output schema.

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 zero-parameter getter, the description adequately covers basic invocation requirements and return type (compensating for the missing output schema). However, it lacks semantic context about the basis points unit (typically 1/10000) and doesn't clarify if this returns a constant or configurable protocol parameter.

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 contains zero parameters and schema description coverage is 100% (trivially). With no parameters to document, the baseline score applies.

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 opens with the tautological 'Calls swapFeeBasisPoints()' which merely restates the tool name. While it implies this retrieves a fee value, it fails to explain what 'swap fee basis points' semantically represents (e.g., the base fee rate charged on swaps) or how it differs from siblings like getFeeBasisPoints or stableSwapFeeBasisPoints.

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 notes the function is 'Unrestricted — any address can call' which provides permission context, but offers no guidance on when to use this specific fee getter versus the numerous sibling fee-related functions (e.g., getFeeBasisPoints, stableSwapFeeBasisPoints, marginFeeBasisPoints).

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

taxBasisPointsBInspect

Calls taxBasisPoints(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 explicitly states the operation is 'Read-only — does not modify contract state' and 'Unrestricted' regarding access control, plus discloses the return type 'uint256'. This effectively compensates for missing annotations regarding mutability and permissions.

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

Conciseness4/5

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

The description is efficiently structured in four short sentences. It front-loads critical safety information (read-only, unrestricted) before mentioning the return type. The opening sentence 'Calls taxBasisPoints()' is redundant with the tool name but does not significantly detract from overall 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?

For a simple getter function with no input parameters and no output schema, the description covers mutability, access control, and return type. However, it lacks semantic context for the return value (e.g., that it represents a tax rate in basis points) and does not explain the divisor (BASIS_POINTS_DIVISOR) likely used to interpret the value, leaving the agent without full context to use the returned uint256 meaningfully.

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 contains zero parameters. Per scoring rules, zero parameters establishes a baseline score of 4. The description correctly does not fabricate parameter semantics where none exist.

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

Purpose3/5

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

The description states it calls the taxBasisPoints function and returns a uint256, but relies on tautology ('Calls taxBasisPoints()') without explaining what tax basis points represent (e.g., swap tax rate). It distinguishes from state-changing siblings by noting 'Read-only,' but fails to differentiate from similar read-only siblings like stableTaxBasisPoints or swapFeeBasisPoints.

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 notes 'Unrestricted — any address can call,' providing access control context, but offers no guidance on when to use this tool versus the numerous similar fee-related siblings (stableTaxBasisPoints, swapFeeBasisPoints, marginFeeBasisPoints, etc.). No 'when-not' or alternative selection criteria are provided.

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

tokenBalancesBInspect

Calls tokenBalances(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses three key traits: read-only nature ('does not modify contract state'), authorization level ('Unrestricted — any address can call'), and return type ('Returns uint256'). Missing only finer details like unit precision or revert conditions.

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

Conciseness4/5

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

Three sentences with no redundant phrases. The structure front-loads the function signature (slightly tautological but brief) followed by safety and return information. Efficient use of space, though the first sentence could provide more 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?

Adequate for a single-parameter getter function without output schema. Covers safety and return type, but incomplete regarding what the uint256 represents (raw token amount? normalized value?) and which contract's balance is being queried. Sibling tools suggest this is a vault contract, but the description doesn't clarify.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 'param0' already described as an Ethereum address. The description mentions 'param0: string' which adds no semantic value beyond the schema (and is less specific). Baseline score maintained since schema fully documents the parameter, though the description missed an opportunity to clarify this is likely the token address.

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

Purpose3/5

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

The description states it returns a uint256 and is read-only, but fails to explain what the 'tokenBalances' represents (e.g., vault balance of a token, user balance). The phrase 'Calls tokenBalances(param0: string)' is nearly tautological, though the return type and safety properties add some 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 provided on when to use this versus sibling balance-related functions like 'poolAmounts', 'feeReserves', or 'bufferAmounts'. The only usage hint is 'Unrestricted', indicating no authorization required, but lacks context on why an agent would select this specific balance query.

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

tokenDecimalsAInspect

Calls tokenDecimals(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses critical behavioral traits: read-only nature (no state modification), permissionless access (any address can call), and return type (uint256). It does not address error conditions or invalid address handling.

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

Conciseness4/5

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

The description is compact at four short sentences. The opening 'Calls tokenDecimals(param0: string)' is slightly redundant (repeating the tool name and parameter signature), but the remaining sentences efficiently convey safety and return characteristics.

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

Completeness4/5

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

For a simple single-parameter read function with no output schema, the description adequately covers the contract's behavior, return type, and access restrictions. No significant gaps remain given the tool's low 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?

The input schema has 100% coverage with param0 clearly described as an Ethereum address. The description merely echoes 'param0: string' without adding semantic value beyond the schema, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description implies the tool retrieves decimal precision for a token (returns uint256 given an address), distinguishing it from trading/position management siblings. However, it opens with the tautological 'Calls tokenDecimals(param0: string)' rather than explicitly stating 'Gets the number of decimals for a token'.

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

Usage Guidelines3/5

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

The description notes the function is 'Read-only' and 'Unrestricted,' implying safe usage for metadata retrieval without transaction requirements. However, it lacks explicit guidance on when to use this versus related utilities like adjustForDecimals or clearTokenConfig.

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

tokenToUsdMinCInspect

Calls tokenToUsdMin(_token: string, _tokenAmount: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_tokenAmountYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

No annotations provided, so description carries full burden. It successfully discloses read-only safety and unrestricted access, but lacks details on what the returned uint256 represents (e.g., USD value precision), potential revert conditions (invalid token addresses), or gas considerations.

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

Conciseness4/5

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

The description is compact with four efficient sentences. Each conveys distinct metadata (signature, safety, permissions, return type) without redundancy, though the opening function signature restatement is slightly wasteful.

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 simple 2-parameter schema with full coverage, the description provides adequate technical metadata. However, it lacks semantic completeness regarding the 'Min' calculation logic and fails to contextualize the tool within the broader set of price/conversion siblings.

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

Parameters3/5

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

Schema description coverage is 100%, providing detailed type information for both parameters. The description merely echoes the function signature without adding semantic context (e.g., that _tokenAmount should be in token decimals), meeting the baseline for well-documented schemas.

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

Purpose3/5

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

The description states it calls 'tokenToUsdMin' (tautological) but adds that it is read-only and returns uint256. However, it fails to explain the semantic purpose (converting token amounts to minimum USD value) or distinguish from siblings like usdToTokenMin or getMinPrice.

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. While it notes the function is 'Unrestricted,' it does not indicate appropriate use cases, prerequisites, or when to prefer this over sibling conversion functions.

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

tokenWeightsBInspect

Calls tokenWeights(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
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 and successfully discloses mutability (read-only, no state modification), authorization requirements (unrestricted, any address), and return type (uint256). It does not explain the semantic meaning of the returned value (e.g., precision or business logic), preventing a score of 5.

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 efficiently structured across three sentences covering function call, safety properties, and return type with minimal redundancy. The first sentence is mechanically descriptive ('Calls tokenWeights(param0: string)') but serves as a function signature summary without excessive wordiness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 this is a single-parameter read function with no output schema, the description adequately covers the essential behavioral contract: it identifies the parameter, declares the read-only nature, notes unrestricted access, and specifies the uint256 return type. Missing only the semantic interpretation of 'token weights' for a complete 5.

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

Parameters3/5

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

The input schema has 100% description coverage ('address (Ethereum address, 0x-prefixed)'), so the baseline is 3. The description mentions 'param0: string' but adds no semantic meaning beyond the schema (e.g., that this is the token address to query). It meets expectations given complete schema coverage.

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

Purpose3/5

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

The description states it 'Calls tokenWeights' which is somewhat tautological, but clarifies it is read-only and returns uint256. However, it fails to explain what 'token weights' represent in the protocol context (e.g., allocation percentages, fee multipliers) or how this differs from sibling 'totalTokenWeights'.

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

Usage Guidelines3/5

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

The description provides implicit usage guidance by stating 'Read-only' and 'Unrestricted — any address can call,' which signals safe, permissionless access. However, it lacks explicit when-to-use guidance versus siblings like 'totalTokenWeights' or 'tokenBalances,' leaving the agent to infer based on function name alone.

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

totalTokenWeightsAInspect

Calls totalTokenWeights(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 and successfully discloses key traits: read-only nature ('does not modify contract state'), unrestricted access ('any address can call'), and return type ('Returns uint256'). It misses details like the value's precision or units, but covers the critical safety and access patterns.

Agents need to know what a tool does to the world before 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 with zero waste: function identification, safety guarantee, access control, and return type. Each sentence earns its place and follows logical priority (what it is, what it doesn't do, who can use it, what it returns).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn 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 state-viewing function with no output schema, the description is adequately complete. It compensates for the missing output schema by specifying 'Returns uint256.' It could enhance completeness by describing what the total represents (summation of individual token weights) or the expected magnitude/precision of the return value.

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

Parameters4/5

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

The input schema has zero parameters, establishing a baseline of 4. The description correctly provides no parameter details since none are needed, and does not waste space explaining empty inputs.

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 'Calls totalTokenWeights()' and returns a uint256, which clearly identifies the operation and return type. While slightly tautological, the name itself is descriptive in this smart contract context. It could be improved by explaining what 'total token weights' represents (e.g., sum of all token weights in the vault) and distinguishing from sibling 'tokenWeights'.

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

Usage Guidelines3/5

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

The description notes the function is 'Unrestricted — any address can call this read function,' providing useful access control context. However, it lacks explicit guidance on when to use this versus the sibling 'tokenWeights' function or other related state getters.

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

updateCumulativeFundingRateBInspect

Calls updateCumulativeFundingRate(_token: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
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 and discloses key behavioral traits: it explicitly states 'Write function', warns about potential access control restrictions, and notes 'No return value'. However, it omits what the cumulative funding rate calculation entails, side effects on the vault state, or revert conditions.

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

Conciseness4/5

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

The description is compact at four sentences, front-loaded with the function signature and immediately declaring it a write function. There is minimal redundancy, though the opening 'Calls updateCumulativeFundingRate' largely restates 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?

For a single-parameter write function without output schema, the description adequately covers the essentials: parameter type, write nature, auth requirements, and absence of return values. However, it lacks domain context about what cumulative funding rates represent in the vault system or their relationship to positions and liquidation.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 the '_token' parameter fully documented as an Ethereum address. The description mentions '(_token: string)' but adds no semantic meaning beyond what the schema already provides (e.g., no explanation of which tokens are valid or how to obtain the address). Baseline 3 is appropriate given schema completeness.

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 identifies this as a write function that updates cumulative funding rates and specifies the token parameter. However, it functions somewhat tautologically ('Calls updateCumulativeFundingRate') and fails to distinguish from the sibling tool 'UpdateFundingRate', leaving ambiguity about which funding rate operation 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 Guidelines3/5

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

The description provides crucial guidance about access control restrictions (e.g., onlyOwner) and advises checking contract source for modifiers, which is essential for blockchain write functions. However, it lacks explicit guidance on when to use this versus the similar 'UpdateFundingRate' sibling or other funding-related tools.

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

UpdateFundingRateCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesaddress (Ethereum address, 0x-prefixed).
fundingRateYesuint256 (uint256, pass as decimal string).
Behavior3/5

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

With no annotations provided, the description carries the full burden. It adds minimal behavioral context by mentioning 'Subscribe via log filters,' indicating this is for event subscription rather than state mutation. However, it fails to disclose what the subscription returns (streaming data, IDs, etc.), authentication requirements, or side effects of invoking the tool.

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

Conciseness4/5

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

The description is extremely concise with only two sentences and no wasted words. It is front-loaded with the critical distinction that this handles a contract event. However, the brevity contributes to under-specification of the tool's actual behavior.

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 simple schema (2 primitive parameters) and lack of output schema, the description provides the minimum necessary context by identifying the tool's domain (event subscription). However, for a blockchain event tool, it should clarify whether this establishes a persistent subscription or performs a one-time query.

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

Parameters3/5

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

The input schema has 100% description coverage for both parameters (token address and fundingRate uint256). The description adds no additional semantic context about the parameters, warranting the baseline score of 3 for high schema coverage.

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 identifies the resource (funding rate update event) and distinguishes it from sibling function calls (e.g., setFundingRate, updateCumulativeFundingRate) by noting it is an 'Event emitted by the contract.' However, it lacks a clear action verb describing what the tool itself does (does it subscribe, query, or filter?), leaving the actual operation ambiguous.

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 getNextFundingRate or setFundingRate. There are no prerequisites, exclusions, or conditions mentioned for proper usage.

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

UpdatePnlCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesbytes32 (32-byte hex string, 0x-prefixed).
deltaYesuint256 (uint256, pass as decimal string).
hasProfitYesbool.
Behavior3/5

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

Without annotations, the description carries the full burden but only provides minimal behavioral context. It indicates this is a subscription operation (not a transaction), but does not disclose what data is returned, whether this is a streaming or one-time subscription, or what the 'delta' and 'hasProfit' values represent semantically.

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 brief at two sentences with no redundant words. However, given the complexity of blockchain event subscriptions and the lack of output schema, this brevity approaches under-specification rather than optimal 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?

No output schema exists, yet the description fails to explain what event data is returned upon subscription. It also omits critical domain context: what Pnl stands for, the relationship between hasProfit/delta, and the business logic triggering this event (e.g., position value changes).

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

Parameters3/5

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

Input schema has 100% description coverage (bytes32, bool, uint256 types documented), establishing baseline 3. The description adds no additional semantic context about what the 'key' identifies, what 'delta' measures, or how these parameters filter event logs.

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 identifies the tool as an event subscription ('Event emitted by the contract. Subscribe via log filters'), but fails to explain what 'UpdatePnl' represents (Profit/Loss update), when this event fires, or how it differs from similar Update* event siblings like UpdatePosition or UpdateFundingRate.

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 other event subscription tools in the extensive sibling list, or what prerequisites (like active positions) are needed to make this subscription relevant.

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

UpdatePositionCInspect

Event emitted by the contract. Subscribe via log filters.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesbytes32 (32-byte hex string, 0x-prefixed).
sizeYesuint256 (uint256, pass as decimal string).
collateralYesuint256 (uint256, pass as decimal string).
realisedPnlYesint256 (int256, pass as decimal string).
averagePriceYesuint256 (uint256, pass as decimal string).
reserveAmountYesuint256 (uint256, pass as decimal string).
entryFundingRateYesuint256 (uint256, pass as decimal string).
Behavior2/5

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

No annotations are provided, and the description adds minimal behavioral context beyond identifying it as an event. It does not disclose when the event is emitted (e.g., on every position modification vs specific updates), whether it indicates partial fills, or how to interpret the realisedPnl/sign of changes.

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 at only two sentences. The first sentence ('Event emitted by the contract') is slightly redundant with the tool's implied nature, but the second provides actionable usage guidance. No structural issues.

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

Completeness2/5

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

With 7 required parameters, no annotations, and no output schema, the description is inadequate. For an event tool, it should explain the event lifecycle (when emitted, what state changes it represents) and how the parameters relate to position state updates.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales 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 documenting its Solidity type (bytes32, uint256, int256). The description adds no supplemental semantic meaning for these fields (e.g., explaining that 'key' is the position identifier or that 'size' represents the new total position size).

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 clarifies this is an event subscription tool ('Event emitted by the contract. Subscribe via log filters'), distinguishing it from function-call siblings like 'decreasePosition' or 'increasePosition'. However, it fails to specify what specific business logic triggers an 'UpdatePosition' event versus sibling events like 'IncreasePosition', 'DecreasePosition', or 'ClosePosition'.

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?

Provides only the basic mechanism ('Subscribe via log filters') but offers no guidance on when to subscribe to this specific event versus the many sibling position events (ClosePosition, LiquidatePosition, etc.) or what conditions trigger this emission.

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

upgradeVaultBInspect

Calls upgradeVault(_newVault: string, _token: string, _amount: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. No return value.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_amountYesuint256 (uint256, pass as decimal string).
_newVaultYesaddress (Ethereum address, 0x-prefixed).
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 successfully identifies the operation as a write/mutation, warns about potential access control modifiers, and explicitly states 'No return value.' This covers safety profile, authorization needs, and output behavior adequately.

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 efficiently structured across four sentences: function signature, operation type with safety warning, prerequisite check, and return value. The first sentence is slightly redundant with the schema, but overall there is no significant waste and critical information (write behavior, access control) 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?

For a three-parameter contract write function with no output schema, the description covers operational safety and return behavior but omits the business logic of what 'upgrading' accomplishes (e.g., transferring token balances to a new vault implementation). Given the complexity implied by sibling tools, this omission leaves a meaningful gap in contextual 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?

The input schema has 100% description coverage, documenting that parameters are Ethereum addresses and uint256. The description lists the parameters but adds no semantic meaning beyond the schema (e.g., it does not clarify that _newVault is the target migration address or that _amount represents funds to transfer). Baseline score appropriate for high schema coverage.

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 identifies this as a 'Write function' which clarifies the operation type, but starts with the tautological 'Calls upgradeVault' without explaining what upgrading a vault actually entails (e.g., migrating funds to a new contract). It does not differentiate from sibling vault management tools like 'directPoolDeposit' or vault configuration functions.

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

Usage Guidelines3/5

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

The description provides implicit usage guidance by warning about 'access control restrictions (e.g. onlyOwner)' and advising to 'Check contract source for modifier requirements before calling.' However, it lacks explicit criteria for when to use this versus other vault-related operations or what prerequisites (beyond permissions) are needed.

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

usdgAInspect

Calls usdg(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns address.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

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

With no annotations provided, the description carries full burden and successfully discloses: read-only nature ('does not modify contract state'), permission model ('any address can call'), and return type ('Returns address'). No contradictions with implicit behavior expected of a public getter.

Agents need to know what a tool does to the world before 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 efficient clauses totaling one sentence each. Information is front-loaded with the function call, followed by behavioral constraints and return type. Zero redundancy despite covering multiple behavioral dimensions.

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

Completeness4/5

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

Adequate for a simple getter function with no output schema. The 'Returns address' statement compensates for missing output schema. Could be improved by specifying this returns the USDG token contract address specifically, but sufficient for agent selection.

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 zero parameters with 100% description coverage. Description correctly provides no parameter details since none exist, meeting the baseline expectation for zero-parameter tools.

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

Purpose4/5

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

States it 'Calls usdg()' and 'Returns address', which combined with the tool name clarifies this retrieves the USDG token contract address. Distinguishes from siblings like buyUSDG (trading) and usdgAmounts (balances) by specifying it returns a single address rather than performing actions or returning amounts.

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

Usage Guidelines3/5

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

Provides implicit guidance through 'Read-only' and 'Unrestricted' statements, indicating safe usage without authentication. However, lacks explicit when-to-use guidance versus similar getter functions like usdgAmounts or whitelistedTokens.

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

usdgAmountsBInspect

Calls usdgAmounts(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

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

With no annotations provided, the description effectively carries the safety burden by stating 'Read-only — does not modify contract state' and 'Returns uint256'. It could improve by explaining what the returned uint256 represents (units, decimals, or semantic meaning).

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

Conciseness4/5

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

Three efficient sentences with no major waste. The function signature in the first sentence is somewhat redundant with the tool name, but the safety information is well-structured and 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?

For a single-parameter read function, the description covers the essential safety profile (read-only, unrestricted) and return type. However, lacking an output schema, it should explain the semantic meaning of the returned uint256 value.

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

Parameters3/5

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

The schema has 100% description coverage (param0 is documented as an Ethereum address), establishing baseline 3. The description references 'param0: string' but adds no semantic context beyond the schema (e.g., whether it's a token address vs. user address).

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 identifies this as a read-only call returning uint256, but 'Calls usdgAmounts' is tautological. It fails to explain what 'usdgAmounts' represents (e.g., current USDG supply for a token) or distinguish from siblings like maxUsdgAmounts.

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 'Unrestricted' note provides useful context that any address can call this, distinguishing it from admin-only siblings like setGov. However, it lacks guidance on when to use this vs. similar read functions like maxUsdgAmounts or getRedemptionAmount.

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

USDG_DECIMALSAInspect

Calls USDG_DECIMALS(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 effectively communicates the safety profile ('Read-only — does not modify contract state') and permissionless nature ('Unrestricted'), while also noting the return type (uint256) since no output schema exists.

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

Conciseness5/5

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

Four sentences with zero redundancy: function call identification, safety declaration, permission declaration, and return type. Each sentence provides distinct value (behavioral, auth, output) and is front-loaded with critical safety information.

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

Completeness5/5

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

For a zero-parameter read-only getter with no output schema, the description is complete. It compensates for the missing output schema by specifying the return type (uint256) and adequately describes the contract behavior given the simplicity of the operation.

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

Parameters4/5

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

The input schema contains zero parameters, which per the evaluation rules establishes a baseline of 4. The description appropriately does not invent parameters, maintaining consistency with the empty schema.

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

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as a call to the USDG_DECIMALS() function and specifies it returns uint256, which clearly indicates it retrieves the decimal precision for USDG. However, it doesn't explicitly state 'decimal places' or distinguish from the sibling 'tokenDecimals' tool, leaving slight ambiguity about whether this is a constant or dynamic value.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides access control guidance ('Unrestricted — any address can call'), which helps determine when it's callable, but lacks explicit guidance on when to use this versus 'tokenDecimals' or other related getters. No prerequisites or error conditions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usdToTokenBInspect

Calls usdToToken(_token: string, _usdAmount: string, _price: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_priceYesuint256 (uint256, pass as decimal string).
_tokenYesaddress (Ethereum address, 0x-prefixed).
_usdAmountYesuint256 (uint256, pass as decimal string).
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 and succeeds in disclosing key behavioral traits: it explicitly states 'Read-only — does not modify contract state' and 'Unrestricted' access, while also noting the return type (uint256). This effectively compensates for missing structured safety 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 compact and efficiently structured as a signature declaration followed by three factual statements. While the opening 'Calls usdToToken...' is redundant, the remaining content earns its place by conveying safety and access properties without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple calculation function with no output schema, the description adequately compensates by specifying the return type (uint256) and read-only nature. Given the straightforward parameter structure (3 flat primitives) and absence of side effects, no additional explanation is strictly necessary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage (all three parameters documented), establishing a baseline score of 3. The description mirrors the parameter types but adds no additional semantic context (e.g., that _price represents the token's USD price, or that _usdAmount should be in 18-decimal format).

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 identifies this as a read-only function returning uint256, but fails to explain the business purpose (calculating token amount from USD value). The opening 'Calls usdToToken...' is tautological, merely restating the function signature without clarifying what calculation is performed or how it differs from siblings like usdToTokenMax/usdToTokenMin.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides access control guidance ('Unrestricted — any address can call'), which is useful for blockchain contexts. However, it lacks guidance on when to use this specific calculation method versus the Min/Max variants, or what price data should be passed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usdToTokenMaxBInspect

Calls usdToTokenMax(_token: string, _usdAmount: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_usdAmountYesuint256 (uint256, pass as decimal string).
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 and adequately covers key safety properties: explicitly stating it does not modify contract state (read-only) and requires no special permissions (unrestricted). It also specifies the return type. It lacks details on revert conditions or decimal precision of the returned value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no fluff. The first sentence merely repeats the function signature which is slightly redundant given the tool name, but the subsequent sentences efficiently convey critical safety and access properties. Appropriately front-loaded with the most important operational constraints.

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 blockchain read function, the description covers essential operational context (read-only nature, unrestricted access, return type). However, given the presence of similar conversion siblings (usdToToken, usdToTokenMin, tokenToUsdMin), the omission of how 'max' differs from standard conversion is a meaningful gap. No output schema exists, so noting uint256 is necessary but minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, documenting the Ethereum address format for _token and decimal string format for _usdAmount. The description merely echoes the parameter names and types ('_token: string, _usdAmount: string') without adding semantic context (e.g., that _token is the output token or that _usdAmount should be in 18-decimal USD units), warranting the baseline score.

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 identifies the specific smart contract function being invoked and notes the return type (uint256), but fails to explicitly state the conceptual purpose (e.g., 'calculates maximum token amount receivable for a given USD value'). It relies on the function name inference rather than stating the conversion logic clearly.

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?

While the description notes the function is 'read-only' and 'unrestricted,' it provides no guidance on when to use this tool versus the sibling tools usdToToken or usdToTokenMin. The significance of 'Max' in the function name is not explained, leaving agents uncertain about which conversion tool to select.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

usdToTokenMinCInspect

Calls usdToTokenMin(_token: string, _usdAmount: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_usdAmountYesuint256 (uint256, pass as decimal string).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full disclosure burden and successfully states it is read-only (does not modify state), unrestricted (any address can call), and returns uint256. However, it omits what 'Min' represents in the calculation logic or potential precision/rounding behaviors.

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?

Three sentences are reasonably efficient, but the first sentence wastes space on function signature tautology rather than front-loading the value proposition. The structure prioritizes implementation detail over user intent.

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 exists, mentioning 'Returns uint256' is necessary and present. However, the description lacks differentiation from 100+ sibling tools (particularly the usdToToken/usdToTokenMax variants) and omits the business logic explanation (minimum conversion calculation), leaving gaps in contextual completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, establishing a baseline of 3. The description lists parameter types ('_token: string, _usdAmount: string') but this merely duplicates information already present in the schema properties without adding semantic context (e.g., that _token is the target token address for conversion).

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 opens with tautology ('Calls usdToTokenMin'), merely restating the tool name. While it implies a calculation via the function name pattern, it fails to explain what 'minimum' signifies or how this differs from siblings like usdToToken or usdToTokenMax (e.g., minimum token amount for a given USD value).

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 'Min' variant versus the standard usdToToken or 'Max' variant. The description states it is unrestricted and read-only, but does not contextualize selection criteria or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

useSwapPricingCInspect

Calls useSwapPricing(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description effectively carries the full burden by explicitly stating 'Read-only — does not modify contract state' and 'Unrestricted — any address can call this read function'. This clearly communicates safety and authorization properties that would typically appear in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief at four sentences, but the first sentence ('Calls useSwapPricing()') wastes space by restating the function name without adding meaning. The remaining sentences efficiently convey behavioral constraints and return type.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read function with no parameters, the description adequately covers the return type (bool) and access restrictions. However, it fails to explain what the boolean value signifies (true/false semantics), leaving a gap in understanding the tool's output 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?

The tool has zero input parameters, which establishes a baseline score of 4 per the rubric. The empty object schema requires no additional semantic clarification from the description.

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 opens with 'Calls useSwapPricing()', which is tautological and restates the tool name. While it mentions the function 'Returns bool', it fails to explain what swap pricing actually means or what semantic value the boolean represents (e.g., whether swap pricing is enabled).

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 siblings. Given the extensive list of related vault/position functions (swap, getMaxPrice, etc.), the description offers no context for when checking swap pricing is necessary or how it affects other operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validateLiquidationCInspect

Calls validateLiquidation(_account: string, _collateralToken: string, _indexToken: string, _isLong: boolean, _raise: boolean). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns { _0: string, _1: string }.

ParametersJSON Schema
NameRequiredDescriptionDefault
_raiseYesbool.
_isLongYesbool.
_accountYesaddress (Ethereum address, 0x-prefixed).
_indexTokenYesaddress (Ethereum address, 0x-prefixed).
_collateralTokenYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description effectively discloses key behavioral traits: explicitly stating 'Read-only — does not modify contract state' and 'Unrestricted — any address can call'. It also documents the return structure '{ _0: string, _1: string }', though it omits the semantic meaning of these return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficiently structured in a single compound sentence with four distinct clauses (function signature, read-only nature, access control, return values). Every clause conveys essential information without redundancy, though it could benefit from one additional clause explaining return semantics.

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 5-parameter validation tool with no output schema, the description adequately covers the input signature and basic behavioral constraints. However, it lacks critical context: what business logic the validation applies, what the return values represent (e.g., liquidation size vs. fee), and how to interpret the validation result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description mirrors the function signature with types but adds no semantic meaning beyond the schema's type annotations (e.g., doesn't explain what '_raise' controls or the relationship between tokens).

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 tautologically states 'Calls validateLiquidation' without explaining what validation entails (e.g., checking if a position is eligible for liquidation). While it lists parameters, it fails to distinguish this read-only validation from the sibling 'liquidatePosition' tool which actually executes liquidations.

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 'liquidatePosition' or 'isLiquidator'. There are no stated prerequisites, conditions, or workflow context for when validation should be performed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whitelistedTokenCountAInspect

Calls whitelistedTokenCount(). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 successfully states the read-only nature ('does not modify contract state'), access controls ('Unrestricted'), and return type ('Returns uint256'). It lacks only edge case information like revert conditions or gas considerations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of three highly efficient sentences with no redundancy. Critical information (read-only nature, access restrictions, return type) is front-loaded and immediately actionable. Every word serves a distinct 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 the absence of an output schema, the description adequately compensates by specifying the return type (uint256). For a simple state-reading getter function with no parameters, the description provides sufficient context for correct invocation and result handling.

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 contains zero parameters, which per guidelines establishes a baseline score of 4. The description 'Calls whitelistedTokenCount()' implicitly confirms no arguments are required, consistent with the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies this as a read operation that returns a uint256 value representing the count of whitelisted tokens. While 'Calls whitelistedTokenCount()' is somewhat tautological, the explicit mention of 'Returns uint256' and 'Read-only' clarifies the function's purpose. It implicitly distinguishes from sibling list-returning functions like 'allWhitelistedTokens' and 'whitelistedTokens' through the 'Count' suffix.

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 states 'Unrestricted — any address can call this read function,' providing basic permission guidance. However, it fails to address when to use this versus the similar sibling function 'allWhitelistedTokensLength,' which appears to serve an identical purpose based on naming conventions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

whitelistedTokensAInspect

[DISCOVERY] Calls whitelistedTokens(param0: string). Read-only — does not modify contract state. Unrestricted — any address can call this read function. Returns bool.

ParametersJSON Schema
NameRequiredDescriptionDefault
param0Yesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description effectively discloses critical behavioral traits: it explicitly states the function does not modify contract state and that any address can call it. It also declares the boolean return type, though it omits what true/false values specifically represent (whitelisted vs not). The disclosure of access restrictions adds valuable context 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 efficiently packs essential information into three concise sentences totaling fewer than 30 words. The front-loaded [DISCOVERY] tag immediately signals the function type, followed by mutability, access control, and return value declarations without filler text. Every sentence serves a distinct purpose in characterizing the tool's behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity (single address parameter, boolean return) and absence of an output schema, the description adequately covers the essential behavioral contract. It successfully communicates the read-only nature, access permissions, and return type that would otherwise be missing. However, it could improve by explicitly stating that the boolean indicates whitelist membership status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides 100% coverage with a clear description of param0 as an Ethereum address. The description merely echoes that the function accepts 'param0: string' without adding semantic depth, format constraints, or examples beyond the schema. Since the schema fully documents the parameter, this baseline level of redundancy is acceptable.

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 clarifies that this function accepts an address parameter and returns a boolean, distinguishing it from sibling functions like allWhitelistedTokens that likely return arrays. While it leverages the function name to imply token whitelist verification, it does not explicitly define what 'whitelisted' means in the contract context. The [DISCOVERY] tag and explicit return type declaration help identify this as a state-checking function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes that the function is 'Read-only' and 'Unrestricted,' providing implicit guidance that it should be used for checking token status without requiring special permissions. However, it fails to explicitly differentiate when to use this singular lookup versus the plural allWhitelistedTokens or whitelistedTokenCount alternatives. No explicit prerequisites or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

withdrawFeesAInspect

Calls withdrawFees(_token: string, _receiver: string). Write function — may have access control restrictions (e.g. onlyOwner). Check contract source for modifier requirements before calling. Returns uint256.

ParametersJSON Schema
NameRequiredDescriptionDefault
_tokenYesaddress (Ethereum address, 0x-prefixed).
_receiverYesaddress (Ethereum address, 0x-prefixed).
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full behavioral disclosure burden. It explicitly states this is a 'Write function,' warns about potential access control restrictions, and documents the return type (uint256) which compensates for the missing output schema. It could improve by explaining what the uint256 represents (likely amount withdrawn) and specific state changes to fee reserves.

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 four-sentence structure is appropriately compact and front-loaded with critical information: function signature, write nature, access control warning, and return type. Each sentence earns its place, though the opening signature restatement is slightly redundant with 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?

Given the simple two-parameter schema and lack of annotations, the description adequately covers essential blockchain-specific context: the mutative nature of the operation, authorization requirements, and return value. For a smart contract interaction tool, the access control warning is particularly complete, though mentioning revert conditions or gas considerations would further enhance 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 input schema has 100% description coverage, documenting both parameters as Ethereum addresses. The description mentions the parameters in the function signature but adds no semantic clarification beyond the schema (e.g., explaining that _token represents the fee asset to withdraw and _receiver is the destination address), warranting the baseline score for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies this as a write function that withdraws fees, specifying the token and receiver parameters. While it opens with the function signature which is somewhat redundant, it clearly indicates this is an administrative withdrawal operation (reinforced by the onlyOwner warning) rather than a read query, distinguishing it from sibling view functions like feeReserves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides critical prerequisite guidance by warning about access control restrictions (e.g., onlyOwner) and explicitly advising to check contract source for modifier requirements. However, it fails to clarify when to use withdrawFees versus similar sibling operations like CollectMarginFees or CollectSwapFees, leaving ambiguity about the fee lifecycle.

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!

Try in Browser

Your Connectors

Sign in to create a connector for this server.