Skip to main content
Glama

Server Details

Solana-native MCP gateway for SAP, DeFi tools, SNS identity, and x402 payments.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
OOBE-PROTOCOL/sap-mcp
GitHub Stars
3
Server Listing
SAP MCP Server

Glama MCP Gateway

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

MCP client
Glama
MCP server

Full call logging

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

Tool access control

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

Managed credentials

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

Usage analytics

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

100% free. Your data is private.
Tool DescriptionsB

Average 3.7/5 across 324 of 360 tools scored. Lowest: 2.1/5.

Server CoherenceA
Disambiguation4/5

Tools are organized by protocol prefix (e.g., adrena_, jupiter_, sap_) which helps distinguish domains. Within each protocol, tool names clearly indicate actions (e.g., openPosition, getQuote). However, with 360 tools, some cross-protocol overlaps (e.g., multiple swap tools) and many similar fetch tools in the sap_* family require careful reading of descriptions to disambiguate.

Naming Consistency4/5

Each protocol group follows a consistent naming convention (e.g., snake_case for adrena_, camelCase for 3land, sap_ prefix for SAP SDK tools). The mix of conventions across protocols is acceptable, though a uniform style would improve predictability. Minor inconsistency: hyphenated names like metaplex-nft_ vs underscores.

Tool Count2/5

360 tools is far too many for a well-scoped MCP server. This aggregates dozens of protocols and SAP-specific features, making navigation difficult. The server would benefit from being split into focused micro-servers (e.g., SAP identity, Jupiter DEX, NFT tools). The current count overwhelms the coherence of the set.

Completeness4/5

The tool set covers a vast range of Solana ecosystem activities: token operations, swaps, staking, NFT management, bridging, oracle data, identity registration, chat, escrow, subscriptions, and premium streaming. Major lifecycle operations are present, though some niche subdomains may have missing functions (e.g., detailed governance or lending management). Overall, it's comprehensive for the intended scope.

Available Tools

374 tools
3land_buyNFT3land Buy N F TB
Destructive
Inspect

Purchase an NFT from a 3.Land listing. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
buyerYesSolana public key (base58)
listingIdYes3.Land listing ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so the tool is known to be a write with side effects. The description adds valuable context about pricing (paid read-premium), routing constraints (hosted accountless write blocked), and signer boundaries. No contradiction with annotations.

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

Conciseness2/5

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

The description is excessively verbose with SAP-specific context that is repeated in the input schema description. The first sentence is clear, but the rest adds noise and redundancy, reducing conciseness. It could be trimmed to essential guidance.

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 presence of an output schema (not shown but noted), the description covers the basic operation and some behavioral notes (pricing, routing). However, it lacks a succinct summary of what the tool returns or its prerequisites, relying on the SAP jargon that may not be universally understood. Completeness is adequate but not ideal.

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

Parameters3/5

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

Both parameters (buyer, listingId) are documented in the input schema with descriptions. Schema coverage is 100%, so baseline is 3. The description does not add further meaning to these parameters beyond what the schema provides.

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

Purpose4/5

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

The description clearly states 'Purchase an NFT from a 3.Land listing' as the core purpose. It also mentions its role within broader 3.Land flows, providing context. However, it does not explicitly differentiate from sibling tools like 3land_listForSale or 3land_mintAndList, though the action is distinct enough.

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

Usage Guidelines3/5

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

The description advises confirming marketplace price, seller/buyer wallet, collection, and listing state before writes, which serves as a precondition. It does not explicitly state when to use this tool over alternatives, but the purpose and sibling names make it reasonably clear. The guidance on pricing and routing is present but more SAP-specific than general usage.

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

3land_cancelListing3land Cancel ListingA
Destructive
Inspect

Cancel an active NFT listing on 3.Land. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
sellerYesSolana public key (base58)
listingIdYes3.Land listing ID to cancel

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already mark destructiveHint as true and readOnlyHint as false. Description adds 'operation class write' and SAP MCP execution guidance (pricing, routing, signer boundary). This provides behavioral details beyond annotations without contradiction.

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

Conciseness3/5

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

Description front-loads the purpose but is unnecessarily verbose with lengthy SAP MCP execution instructions. Some sentences, especially repetitive routing guidance, could be trimmed without losing utility.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 an output schema, description does not need to explain return values. It provides flow context and prerequisites, making it sufficiently complete for an agent. Lacks details on side effects like listing removal, but overall adequate.

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

Parameters3/5

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

Schema coverage is 100%, so both parameters (seller, listingId) are described in the schema. Tool description does not add new semantic details beyond what is already in the schema, warranting baseline 3.

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

Purpose5/5

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

Description starts with 'Cancel an active NFT listing on 3.Land.' This clearly states the verb (cancel) and resource (active NFT listing). It distinguishes from sibling tools like 3land_buyNFT and 3land_listForSale, which have different verbs.

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

Usage Guidelines4/5

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

Description provides usage context: 'Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows.' It also advises to 'Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes.' However, it lacks explicit exclusions or alternatives.

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

3land_createCollection3land Create CollectionCInspect

Create a new NFT collection on 3.Land marketplace. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCollection name
imageYesCollection cover image URL
ownerYesCollection owner wallet
symbolYesCollection symbol
creatorsNoCreators parameter for 3land Create Collection.
royaltyBpsNoRoyalty Bps parameter for 3land Create Collection.
descriptionNoCollection description

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations indicate a write operation (readOnlyHint=false), and the description states 'operation class write,' which adds little beyond annotations. It warns about confirming state before writes and pairing with SAP registry metadata, providing some behavioral context. However, it does not disclose side effects like transaction costs, required account balances, or post-creation steps.

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

Conciseness2/5

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

The description is verbose with a lengthy second paragraph of SAP MCP execution guidance (pricing, routing, signer boundary) that is generic and not tool-specific. The first paragraph mixes core purpose with flow guidance, reducing clarity. Key information is front-loaded, but the overall structure is not concise.

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

Completeness2/5

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

Given the complexity (7 parameters, write operation) and presence of an output schema, the description lacks completeness. It does not explain return values, prerequisites (e.g., wallet SOL balance), or error handling. The SAP boilerplate does not compensate for missing 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?

Schema description coverage is 100%, so the schema already documents all parameters adequately. The description adds no additional parameter-specific meaning, meeting the baseline score of 3.

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

Purpose4/5

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

The description begins with a clear verb+resource: 'Create a new NFT collection on 3.Land marketplace.' It distinguishes from sibling tools that handle buying, canceling, listing, and mint+list. However, the phrase 'Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows' is overly broad and may confuse the tool's exact scope.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives like 3land_mintAndList. It mentions 'Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes' as a general safety warning, but does not differentiate context or exclusion criteria from sibling tools.

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

3land_listForSale3land List For SaleC
Read-onlyIdempotent
Inspect

List an NFT for sale on 3.Land in any SPL token. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesNFT mint to list
priceYesListing price (in specified token)
expiryNoISO 8601 listing expiry timestamp
sellerYesSolana public key (base58)
priceMintNoNFT mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

There is a direct contradiction: annotations declare readOnlyHint=true, while the description labels the operation as 'write' and the tool purpose is to list for sale, which mutates state. The description does not disclose permissions, side effects, or reversal details. With no additional behavioral context beyond the contradiction, transparency is poor.

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

Conciseness2/5

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

The description is excessively long due to repetitive SAP MCP execution guidance that is not tool-specific. The key functional content is compressed into one sentence, while the majority of text is boilerplate. This is not concise and buries the essential purpose.

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

Completeness2/5

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

Although an output schema exists, the description fails to provide sufficient context for an agent to use this tool correctly. It lacks guidance on prerequisites (e.g., collection creation, ownership), interaction with sibling tools like 3land_mintAndList, and confirmation steps. The description is incomplete for a complex 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?

The input schema provides 100% coverage of parameters with descriptions. The description adds minimal value beyond the schema, only implying token types. It does not explain parameter relationships or constraints like valid ranges for price or expiry format. Baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states 'List an NFT for sale on 3.Land in any SPL token,' providing a specific verb and resource. However, the purpose is partially obscured by extensive SAP MCP boilerplate text. It distinguishes from siblings like 3land_buyNFT, but the clutter reduces clarity.

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

Usage Guidelines3/5

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

The description mentions 'Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows,' offering some context but no explicit when-not or alternatives. It advises confirming state before writes, but lacks clear direction on selecting this tool over others 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.

3land_mintAndList3land Mint And ListAInspect

Mint an NFT on 3.Land and automatically list it for sale. SAP MCP context: Protocol 3land; operation class write. Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows. Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes. Pair marketplace actions with SAP registry metadata only when the marketplace asset is part of the agent identity or service catalog.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName name or domain value used by 3land Mint And List.
imageYesNFT image URL
ownerYesSolana public key (base58)
priceYesListing price in token amount
supplyNoEdition supply
priceMintNoNFT mint address (base58)
attributesNoAttributes parameter for 3land Mint And List.
collectionYes3.Land collection ID
descriptionNoDescription parameter for 3land Mint And List.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false). The description adds substantial behavioral context beyond annotations, detailing the local-signer write workflow, pricing (paid read-premium), routing constraints, and signer boundary. No contradictions with annotations.

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

Conciseness2/5

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

The description is front-loaded with a clear sentence but is followed by a verbose block of SAP MCP execution guidance that repeats similar information (local-signer, pricing, routing). This could be condensed to improve conciseness without losing essential details.

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

Completeness3/5

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

The description covers the core operation, required pre-checks, and execution constraints. However, it does not reference the output schema or explain return values, and the parameter descriptions in the schema are poor. While adequate, there are gaps in completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The overall description does not add significant meaning beyond the schema; parameter descriptions within the schema are generic (e.g., 'Name name or domain value'). The description implicitly groups parameters but does not enhance understanding of their roles.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Mint an NFT on 3.Land and automatically list it for sale.' This specific verb+resource combination distinguishes it from siblings like 3land_buyNFT or 3land_cancelListing.

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 usage context (e.g., 'Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows' and 'Confirm marketplace price...before writes') but lacks explicit guidance on when not to use this tool or clear alternatives. The guidance is implicit rather than directive.

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

adrena_addCollateralAdrena Add CollateralBInspect

Add collateral to an existing Adrena position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRaw token amount (smallest unit)
walletYesSolana public key (base58)
positionKeyYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false). The description confirms 'Add collateral' as a mutation but does not add further behavioral details such as side effects, signing requirements, or whether the operation is atomic. The SAP context implies the need for user signing, but this is not explicit. No contradiction with annotations. With annotations present, the bar is lower, but the description could be more informative.

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

Conciseness3/5

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

The core purpose is stated concisely in the first sentence. However, the subsequent SAP MCP context block is lengthy and repeats content found in the input schema description. While front-loaded, the redundant boilerplate reduces conciseness. Could be trimmed without loss of necessary information.

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

Completeness2/5

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

Given the complexity of a financial tool that modifies on-chain state, the description lacks completeness. It does not specify what the output is (despite an output schema existing), nor does it explain the full transactional flow (e.g., whether a signature is required, how to handle fees). The SAP context hints at payment routing but is not integrated with the tool's behavior. The description is insufficient for an agent to fully understand the consequences of invoking this tool.

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

Parameters3/5

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

The input schema has 100% description coverage with clear descriptions for each parameter: amount ('Raw token amount (smallest unit)'), wallet and positionKey ('Solana public key (base58)'). The tool description adds no additional parameter context beyond what the schema provides. The baseline score of 3 is appropriate given full schema coverage.

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

Purpose5/5

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

The description begins with a clear and specific statement: 'Add collateral to an existing Adrena position.' This quickly conveys the verb (add), resource (collateral), and context (existing position). It effectively distinguishes from sibling tools like adrena_openPosition (creates new) and adrena_removeCollateral (removes).

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. Key usage aspects are missing: prerequisites (e.g., the position must already exist), when not to use (e.g., when you need to remove collateral), or any context of atIONs to consider before invoking. The lengthy SAP MCP context discusses infrastructure but not usage context.

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

adrena_closePositionAdrena Close PositionC
Destructive
Inspect

Close a perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
positionKeyYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

Annotations already declare destructiveHint=true, readOnlyHint=false, idempotentHint=false. The description adds no behavioral details beyond annotations, such as side effects, permission requirements, or return behavior. The SAP execution guidance is unrelated to the tool's core behavior.

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

Conciseness2/5

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

The description is verbose, with multiple paragraphs of SAP MCP context that are not specific to this tool. The first sentence is concise, but the rest is wasteful repetition, including the same text in the input schema description.

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

Completeness2/5

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

The tool has a simple purpose (close a position), but the description omits essential context like what wallet and positionKey represent, what happens on close (e.g., funds returned), and any important side effects. Output schema exists, but the description itself is incomplete for an agent to use confidently.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; both parameters are simply 'Solana public key (base58)'. The description text does not explain these parameters further.

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

Purpose5/5

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

The description opens with 'Close a perpetual position on Adrena Protocol,' which clearly states the verb (close), resource (perpetual position), and protocol. It distinguishes from siblings like adrena_openPosition or adrena_addCollateral.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not specify when to close a position vs. other actions, prerequisites, or alternatives. It only contains SAP MCP boilerplate that does not help with tool selection.

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

adrena_getPositionsAdrena Get PositionsB
Read-onlyIdempotent
Inspect

Get all open positions on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds valuable behavioral context: it is a 'paid read-premium', requires cost estimation first, and states that signer boundaries mean hosted reads don't receive keypair bytes. This goes beyond the annotations and helps the agent understand the invocation workflow.

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

Conciseness2/5

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

The description is verbose and repetitive, including the same SAP MCP execution guidance multiple times (in the description text and inside the input schema). The core purpose is front-loaded, but the repetitive boilerplate reduces conciseness significantly.

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

Completeness3/5

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

For a simple read tool with one parameter and an output schema, the description provides enough context about intent, pricing, and routing. However, it lacks differentiation from the sibling 'sap_adrena_get_positions', which is a notable gap given the extensive sibling list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (the parameter 'wallet' is described as 'Solana public key (base58)'). The description does not add additional parameter semantics beyond what the schema already provides, so a baseline score of 3 is appropriate.

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

Purpose4/5

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

The description states 'Get all open positions on Adrena Protocol' with a specific verb and resource. However, it does not differentiate from the sibling tool 'sap_adrena_get_positions', which likely serves a similar purpose. The title and first sentence clearly indicate 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 Guidelines2/5

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

The description lacks explicit guidance on when to use this tool versus alternatives like 'sap_adrena_get_positions'. It includes SAP MCP context about tool ecosystem and execution guidance (pricing, routing), but does not specify usage conditions or exclusions relative to siblings.

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

adrena_openPositionAdrena Open PositionBInspect

Open a leveraged perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesSide parameter for Adrena Open Position.
marketYesMarket symbol (e.g. "SOL", "BTC", "ETH")
walletYesSolana public key (base58)
leverageYesLeverage multiplier
stopLossNoStop loss price
takeProfitNoTake profit price
collateralMintYesCollateral token mint (e.g. USDC, SOL)
collateralAmountYesRaw token amount (smallest unit)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

Annotations already indicate readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds no further behavioral details, such as prerequisites (e.g., wallet funding, approvals), success/failure outcomes, or side effects beyond what annotations convey.

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

Conciseness2/5

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

The description is verbose with several paragraphs of SAP MCP boilerplate that is not tool-specific. The core purpose is only in the first sentence; the rest adds noise and reduces conciseness. More focused, tool-specific content would improve it.

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 (8 parameters, 6 required) and the presence of an output schema, the description does not explain prerequisites like needing a signing wallet or sufficient balance. The annotations and schema partially cover it, but completeness is only adequate.

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

Parameters3/5

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

Schema coverage is 100% with good descriptions for each parameter (e.g., 'Market symbol (e.g. SOL, BTC, ETH)'). The tool description adds no additional semantic value beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Open a leveraged perpetual position on Adrena Protocol,' specifying the verb (open) and resource (leveraged perpetual position). It distinguishes from siblings like closePosition and getPositions through naming, and the action is clearly different from build tools.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like sap_adrena_build_open_long or other Adrena tools. The extensive SAP MCP execution guidance is about pricing and routing within the framework, not about selecting this tool over others.

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

adrena_removeCollateralAdrena Remove CollateralC
Destructive
Inspect

Remove collateral from an Adrena position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRaw token amount (smallest unit)
walletYesSolana public key (base58)
positionKeyYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

Annotations already indicate destructiveHint: true and readOnlyHint: false, signaling this is a write operation with potential destructive effects. The description adds little beyond stating the action; it does not explain what happens to the position after removal, whether the operation is reversible, or any specific authorization requirements. The SAP MCP context covers execution details but not behavioral side effects.

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

Conciseness2/5

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

The description contains a concise first sentence, but the second sentence is a long, generic paragraph about SAP MCP workflow that is not specific to this tool. This padding detracts from readability and focus. The tool definition could be significantly shortened by moving the generic SAP context elsewhere.

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?

Even though an output schema exists (and annotations provide some hints), the description does not explain the outcome of removing collateral, such as whether the position remains open or if funds are returned. For a destructive mutation tool, more context about side effects and safety considerations is needed to help the agent use it correctly.

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

Parameters3/5

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

The input schema has 100% coverage with clear descriptions for all three parameters (amount, wallet, positionKey). The description does not add any additional meaning or constraints beyond the schema. The baseline is appropriate here since the schema already handles parameter documentation adequately.

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

Purpose4/5

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

The description clearly states 'Remove collateral from an Adrena position', which is a specific verb+resource combination. This distinguishes it from sibling tools like adrena_addCollateral and adrena_closePosition. However, the purpose is somewhat buried under extensive SAP MCP context that is not directly about the tool's core action.

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 does not provide any guidance on when to use this tool versus alternatives, nor does it mention prerequisites or scenarios where the tool should be avoided. The SAP MCP context discusses pricing and routing but is generic and does not help an agent decide when to invoke this specific tool.

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

alldomains_getOwnedDomainsAlldomains Get Owned DomainsA
Read-onlyIdempotent
Inspect

Get all domains owned by a wallet across all TLDs. SAP MCP context: Protocol alldomains; operation class read. Use to list domains owned by a wallet through AllDomains. Use as discovery context before choosing a name to associate with an agent.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tldNoFilter by TLD
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds execution guidance (paid builder, estimate first, local finalization) and signer boundary details, which are beyond annotations. No contradictions.

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

Conciseness3/5

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

The description is verbose (120+ words) and repeats SAP MCP context that also appears in the input schema. While front-loaded with the core purpose, it could be more tightly scoped without losing essential information.

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

Completeness4/5

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

Given the presence of an output schema and comprehensive annotations, the description covers the basic purpose, use case, and execution flow (pricing, routing, signer boundary). It is fairly complete for a read-only discovery tool.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. Description does not add additional meaning beyond what the schema provides (e.g., tld filter, wallet base58). No parameter-specific enhancements.

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

Purpose5/5

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

The description clearly states the verb 'Get' and resource 'domains owned by a wallet across all TLDs'. It distinguishes from siblings like alldomains_registerDomain and alldomains_resolveDomain by focusing on owned domains and discovery 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?

Description provides explicit context: 'Use as discovery context before choosing a name to associate with an agent.' It also includes SAP MCP execution guidance on pricing/routing. However, it does not compare to alternatives or state when not to use.

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

alldomains_registerDomainAlldomains Register DomainAInspect

Register a domain on AllDomains (supports multiple TLDs: .abc, .bonk, .poor, etc.). SAP MCP context: Protocol alldomains; operation class write. Use for AllDomains name registration and resolution workflows. Confirm domain, TLD, owner, and renewal or purchase terms before writes. Use only when the requested name service is not SNS-specific.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
tldNoTLD if not included in domain string
domainYesFull domain (e.g. "myname.abc", "trader.bonk")
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

The description discloses that this is a paid write operation requiring estimation and local signing, and that hosted accountless writes are blocked. Annotations (readOnlyHint=false) already indicate a write, but the description adds meaningful behavioral context beyond annotations.

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

Conciseness2/5

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

The description is verbose and repetitive, especially with SAP MCP execution guidance that appears both in the description and the input schema description. The first sentence is clear, but the rest is cluttered with platform-specific instructions, reducing conciseness.

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

Completeness3/5

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

Given the output schema exists, the description adequately covers essential behavioral aspects (paid, requires local signer, blocked as hosted write). However, it lacks clarity on what the tool returns and the SAP-specific jargon may be opaque to agents not familiar with that platform.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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, so baseline is 3. The description adds minimal value, repeating schema examples (e.g., 'full domain (e.g. "myname.abc")') without deeper parameter semantics.

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

Purpose5/5

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

The description clearly states 'Register a domain on AllDomains (supports multiple TLDs)' with specific TLD examples, distinguishing it from sibling tools like alldomains_getOwnedDomains and alldomains_resolveDomain.

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

Usage Guidelines3/5

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

The description includes a single guideline: 'Use only when the requested name service is not SNS-specific.' It lacks explicit when-to-use or alternative recommendations. The majority of the text focuses on internal SAP routing, not usage context.

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

alldomains_resolveDomainAlldomains Resolve DomainA
Read-onlyIdempotent
Inspect

Resolve a multi-TLD domain to its owner wallet. SAP MCP context: Protocol alldomains; operation class read. Use to resolve an AllDomains name without changing ownership or records. Use only when the requested name service is not SNS-specific.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFull domain to resolve

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint. The description adds that it resolves to owner wallet and does not change records, plus SAP MCP execution guidance about being a paid builder with signer boundary. This exceeds annotation but some guidance is generic.

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

Conciseness3/5

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

The description is front-loaded with purpose but includes lengthy generic SAP MCP guidance that could be streamlined or referenced externally. Every sentence adds value, but the overall length reduces conciseness.

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

Completeness4/5

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

Given the output schema exists and schema coverage is 100%, the description covers purpose, usage, behavior, and execution guidance. It is complete for a simple resolution tool, though generic guidance could be separated.

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

Parameters3/5

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

Schema coverage is 100% with a single 'domain' parameter described as 'Full domain to resolve'. The description does not add further meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool resolves a multi-TLD domain to its owner wallet, with specific verb 'resolve' and resource 'AllDomains name'. It explicitly distinguishes from SNS-specific resolution, differentiating it from siblings like sns_resolveDomain.

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

Usage Guidelines5/5

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

Explicitly states when to use (resolve AllDomains name, not SNS-specific) and indicates it does not change ownership or records. Provides clear context for usage.

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

bridging_bridgeDeBridgeBridging Bridge De BridgeB
Destructive
Inspect

Bridge tokens across chains via deBridge DLN. Fast cross-chain transfers with deterministic pricing. SAP MCP context: Protocol bridging; operation class write. Use for cross-chain asset movement through Wormhole or deBridge. Confirm source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations before invoking a bridge write. For bridge flows call the matching status tool after submission. If the bridge capability belongs to a registered SAP agent, plan the profile with sap_agent_identity_plan, register through sap_payments_register_agent, then advertise bridge capability IDs with sap_payments_update_agent or sap_publish_tool_by_name.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount to bridge (raw)
senderYesSender address
tokenInYesToken address on source chain
tokenOutYesToken address on destination chain (use "0x0" for native)
recipientYesRecipient address on destination chain
slippageBpsNoSlippage tolerance in bps
sourceChainYesSource chain ID (e.g. 7565164 for Solana)
destinationChainYesDestination chain ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds context about confirming parameters and finality expectations, but does not disclose side effects or what gets destroyed. The SAP MCP boilerplate does not add behavioral transparency.

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

Conciseness2/5

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

The description is verbose with multiple paragraphs of repetitive SAP MCP execution guidance that could be externalized. The core purpose is front-loaded, but the rest is cluttered and not concise.

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

Completeness3/5

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

Given the presence of an output schema and high parameter coverage, the description covers core purpose and post-submission status checking. However, it lacks details on return types, failure modes, and gas estimation, leaving gaps for a complex bridge tool.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add new meaning beyond the schema; it only reiterates the need to confirm parameters, which is more usage guidance than parameter semantics.

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

Purpose5/5

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

The description clearly states the tool bridges tokens across chains via deBridge DLN with deterministic pricing. It distinguishes from siblings like bridging_bridgeWormhole and bridging_bridgeDeBridgeStatus.

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

Usage Guidelines3/5

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

The description mentions using the tool for cross-chain asset movement and calling the status tool after submission, but does not explicitly compare to bridging_bridgeWormhole or provide when-not-to-use guidance. The extensive SAP MCP context is generic and not tool-specific.

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

bridging_bridgeDeBridgeStatusBridging Bridge De Bridge StatusB
Destructive
Inspect

Check the status of a deBridge DLN cross-chain transfer. SAP MCP context: Protocol bridging; operation class read. Use to check deBridge transfer status after a bridge submission. Call this after bridging_bridgeDeBridge and keep the resulting status with the user-facing bridge audit trail.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesdeBridge DLN order ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

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

Description claims 'Check the status' (read-only behavior), but annotations set readOnlyHint=false and destructiveHint=true, contradicting the described read nature. No additional behavioral context beyond this contradiction.

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?

Core purpose is concise (one sentence), but includes lengthy execution guidance boilerplate that may be redundant. Could be trimmed without losing 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?

Covers basic usage context and execution guidance, but lacks details on output format (though output schema exists) and fails to address the annotation contradiction. Adequate but with gaps.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter description 'deBridge DLN order ID'. Description does not add extra info beyond schema; baseline 3 applies.

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

Purpose5/5

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

Description explicitly states 'Check the status of a deBridge DLN cross-chain transfer' with clear verb and resource. It distinguishes from sibling tools like bridging_bridgeDeBridge (submit) and bridging_bridgeWormholeStatus (different protocol) by 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?

Directs to 'Call this after bridging_bridgeDeBridge and keep the resulting status with the user-facing bridge audit trail.' Clearly defines when to use, but does not explicitly mention when not to use or alternatives.

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

bridging_bridgeWormholeBridging Bridge WormholeA
Destructive
Inspect

Bridge tokens across chains via Wormhole. Supports Solana ↔ EVM chains. SAP MCP context: Protocol bridging; operation class write. Use for cross-chain asset movement through Wormhole or deBridge. Confirm source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations before invoking a bridge write. For bridge flows call the matching status tool after submission. If the bridge capability belongs to a registered SAP agent, plan the profile with sap_agent_identity_plan, register through sap_payments_register_agent, then advertise bridge capability IDs with sap_payments_update_agent or sap_publish_tool_by_name.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesToken address on source chain
amountYesAmount to bridge (raw, smallest unit)
senderYesSender wallet on source chain
recipientYesRecipient address on destination chain
relayerFeeNoRaw token amount (smallest unit, no decimals)
sourceChainYesSource chain identifier (e.g. "solana", "ethereum", "base", "polygon")
destinationChainYesDestination chain identifier

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations declare destructiveHint:true, and the description reinforces this by labeling it a 'write' operation. It adds behavioral detail beyond annotations, such as routing restrictions ('hosted accountless write is blocked'), signer boundary requirements, and the need to check fees and finality. This provides valuable context for safe invocation.

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

Conciseness3/5

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

The description is lengthy and contains repetitive SAP MCP context (e.g., 'SAP MCP context: Protocol bridging; operation class write' appears twice in different forms). While the first sentence effectively states the purpose, the overall verbosity could be trimmed for clarity without losing essential guidance.

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

Completeness4/5

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

The tool is a complex cross-chain bridge with an output schema (not shown). The description covers purpose, usage, behavioral constraints, and post-submission steps (calling status tool). For a write tool requiring user signing and careful parameter confirmation, it provides sufficient context for an agent to use it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all 7 parameters with descriptions. The description lists the parameters to confirm (source chain, destination chain, token, amount, etc.) but does not add new semantic detail beyond what the schema provides. Baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Bridge tokens across chains via Wormhole. Supports Solana ↔ EVM chains.' This clearly states the action, resource, and protocol, and distinguishes the tool from its sibling bridging_bridgeDeBridge (different protocol) and bridging_bridgeWormholeStatus (status check). The purpose is specific and unambiguous.

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

Usage Guidelines4/5

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

The description advises to 'confirm source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations before invoking a bridge write' and to 'call the matching status tool after submission.' This provides clear context for when and how to use the tool, though it does not explicitly exclude alternatives like deBridge when Wormhole is not appropriate.

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

bridging_bridgeWormholeStatusBridging Bridge Wormhole StatusA
Destructive
Inspect

Check the status of a Wormhole bridge transfer. SAP MCP context: Protocol bridging; operation class read. Use to check Wormhole bridge transfer status after a bridge submission. Call this after bridging_bridgeWormhole and keep the resulting status with the user-facing bridge audit trail.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sequenceYesWormhole sequence number from bridgeWormhole response
sourceChainYesSource Chain parameter for Bridging Bridge Wormhole Status.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

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

The description states this is a read-only status check, but annotations have destructiveHint: true and readOnlyHint: false, directly contradicting the described behavior. This is a critical inconsistency that misleads the agent about the tool's 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.

Conciseness3/5

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

The core description is concise, but it includes extensive boilerplate SAP MCP execution guidance (pricing, routing, signer boundary) that is not directly about the tool's function. This extra information dilutes clarity and could be moved to a separate field.

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 status check with two parameters and an output schema, the description covers the primary use case. However, the annotation contradiction undermines completeness regarding behavioral expectations, and the extraneous guidance adds noise.

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 description adds meaningful context beyond the schema: it explains that 'sequence' is the 'Wormhole sequence number from bridgeWormhole response' and 'sourceChain' is the 'Source Chain parameter for Bridging Bridge Wormhole Status.' This clarifies the origin and usage of the parameters.

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

Purpose5/5

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

The description clearly states 'Check the status of a Wormhole bridge transfer.' It specifies the tool's purpose with a specific verb and resource, and implicitly distinguishes it from sibling tools like bridging_bridgeWormhole (submission) and bridging_bridgeDeBridgeStatus (different bridge).

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

Usage Guidelines4/5

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

The description provides usage context: 'Use to check Wormhole bridge transfer status after a bridge submission. Call this after bridging_bridgeWormhole.' It offers a clear when-to-use but lacks explicit when-not-to-use or alternatives beyond the sibling distinction.

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

coingecko_getOHLCVCoingecko Get O H L C VA
Read-onlyIdempotent
Inspect

Get OHLCV (price chart) data from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoDays parameter for Coingecko Get O H L C V.
tokenIdYesToken ID mint, symbol, or token identifier used by Coingecko Get O H L C V.
vsCurrencyNoVs Currency parameter for Coingecko Get O H L C V.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint, destructiveHint, etc. The description adds context about pricing (paid read-premium), routing, and signer boundary, which go beyond annotations. No contradictions.

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

Conciseness3/5

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

The description is lengthy due to SAP-specific instructions, which may be unnecessary for general use. It is structured but could be more concise.

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

Completeness4/5

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

Given the output schema exists, return values are covered. The description covers purpose, usage context, and behavioral notes adequately for a tool with 3 parameters and full schema coverage.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for each parameter. The tool description does not add meaning beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description explicitly states 'Get OHLCV (price chart) data from CoinGecko', providing a specific verb and resource. It distinguishes the tool from siblings like coingecko_getTokenPrice and coingecko_getTokenInfo by specifying OHLCV data.

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

Usage Guidelines4/5

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

The description indicates use for off-chain market data and clarifies that on-chain data is authoritative, giving context. However, it does not explicitly state when not to use this tool or list alternatives among sibling tools.

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

coingecko_getPoolsByTokenCoingecko Get Pools By TokenC
Read-onlyIdempotent
Inspect

Get all liquidity pools for a token from CoinGecko on-chain DEX tracker. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage pagination control for Coingecko Get Pools By Token.
networkNoNetwork Solana network or cluster selector for Coingecko Get Pools By Token.
tokenAddressYesToken contract/mint address

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already indicate read-only and idempotent. The description adds that data is 'off-chain market data' and 'advisory context', which is useful behavioral context. It also mentions pricing as 'paid read-premium'. No contradiction with annotations.

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

Conciseness2/5

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

The description is significantly longer than necessary due to repetitive SAP MCP execution guidance that appears generic. The core purpose is front-loaded, but the boilerplate adds clutter.

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

Completeness3/5

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

Given that an output schema exists, the description adequately states the primary function. However, it lacks details about pagination or network handling beyond what the schema provides. The SAP-specific content does not enhance domain 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?

Input schema has 100% coverage with descriptions for all three parameters (page, network, tokenAddress). The tool description does not add additional meaning beyond the schema, so baseline score of 3 applies.

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

Purpose4/5

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

The first sentence clearly states 'Get all liquidity pools for a token' with a specific verb and resource. This distinguishes it from sibling coingecko tools like getTokenPrice and getTokenInfo. However, the purpose is somewhat obscured by extensive SAP MCP boilerplate.

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 groups this tool with other market data tools ('token prices, trending assets, token info, pools, and OHLCV') but does not explicitly state when to use this tool over alternatives. The SAP execution guidance is about how to call, not when to choose.

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

coingecko_getTokenInfoCoingecko Get Token InfoC
Read-onlyIdempotent
Inspect

Get detailed token information from CoinGecko (description, links, market data). SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenIdYesCoinGecko token ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the description adds limited new behavioral context. It notes the tool is paid and provides SAP execution guidance, but does not contradict annotations.

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

Conciseness2/5

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

The description includes a long block of SAP MCP execution guidance that is boilerplate and not specific to this tool. This makes it verbose and not concise. The core purpose is stated in one sentence, but the additional text reduces 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?

Given the simple input schema and existence of output schema, the description covers the basic purpose and adds pricing context. However, it lacks guidance on how to find token IDs and does not help the agent choose among sibling coingecko tools, leaving some gaps.

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

Parameters3/5

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

The input schema covers the single required parameter tokenId with 100% coverage. The description does not add any additional meaning beyond the schema's description 'CoinGecko token ID', so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the tool retrieves detailed token information from CoinGecko, including description, links, and market data. However, it does not explicitly distinguish this tool from other coingecko tools like getTokenPrice or getTrending, which are listed as 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?

The description mentions using the tool for off-chain market data but does not provide explicit guidance on when to use this tool versus alternatives. No alternatives or exclusions are given, making it hard for an agent to decide between this and specialized coingecko tools.

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

coingecko_getTokenPriceCoingecko Get Token PriceA
Read-onlyIdempotent
Inspect

Get token price and market data from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenIdYesCoinGecko token ID or contract address
vsCurrencyNoVs Currency parameter for Coingecko Get Token Price.
include24hChangeNoInclude24h Change parameter for Coingecko Get Token Price.
include24hVolumeNoInclude24h Volume parameter for Coingecko Get Token Price.
includeMarketCapNoInclude Market Cap parameter for Coingecko Get Token Price.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds execution guidance (free pricing, direct call, signer boundary) which is valuable but not contradictory. No additional behavioral traits beyond annotations are disclosed.

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

Conciseness4/5

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

Description is structured with clear sentences and bullet points. Repetition of execution guidance in the input schema description adds some redundancy, so not maximally concise.

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

Completeness4/5

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

Covers purpose, usage, execution context, and limitations (advisory vs. on-chain). With output schema present, return values are documented. Missing specifics on rate limits or fallback behavior, but generally complete given annotations.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description adds a warning to use exact field names but does not enhance semantic understanding beyond what the schema provides.

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

Purpose4/5

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

The description clearly states 'Get token price and market data from CoinGecko' and lists use cases (token prices, trending assets, etc.). However, it overlaps with sibling tools like coingecko_getTokenInfo and coingecko_getOHLCV without explicit differentiation, making it slightly less precise.

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

Usage Guidelines4/5

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

Provides clear when-to-use guidance for off-chain market data and notes that on-chain state is authoritative for payments. Includes pricing and routing advice. However, does not explicitly compare to sibling tools or say when not to use this tool in favor of a more specialized one.

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

coingecko_getTopGainersLosersCoingecko Get Top Gainers LosersC
Read-onlyIdempotent
Inspect

Get top gainers and losers from CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
durationNoDuration parameter for Coingecko Get Top Gainers Losers.
vsCurrencyNoVs Currency parameter for Coingecko Get Top Gainers Losers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds 'operation class read' and 'read/discovery workflow', which are consistent but do not substantially expand beyond annotations. No contradictions. No details on rate limits, data freshness, or the exact meaning of 'top gainers/losers' (e.g., percentage change calculation).

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

Conciseness2/5

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

The description suffers from excessive SAP MCP boilerplate that is repeated in multiple places, including the input schema. The first sentence is concise, but the rest is long and cluttered with operational details (pricing, routing, signer boundary) that are better suited for documentation or system-level configuration. Every sentence does not earn its place.

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

Completeness2/5

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

The tool is simple with 2 params and an output schema exists, but the description lacks critical details: what the output contains (e.g., list of tokens with price change), sorting order, count of items, and whether vsCurrency is required. Without these, an agent may not understand the tool's full behavior. The SAP context is irrelevant to the functional completeness.

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

Parameters2/5

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

Schema description coverage is 100%, but the descriptions are tautological (e.g., 'Duration parameter for Coingecko Get Top Gainers Losers'). The main description does not explain the parameters further. It does not clarify that vsCurrency is a base currency like 'usd' or what the duration values represent. The param semantics are not improved by 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 states 'Get top gainers and losers from CoinGecko' which identifies the specific resource and action. The title and first sentence are unambiguous. However, the following SAP MCP text dilutes the clarity by mixing operational details with the core purpose. Sibling tools include other coingecko_* functions, so the tool is distinguishable as focused on gainers/losers.

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

Usage Guidelines2/5

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

The description offers vague advisory like 'Use for off-chain market data' without specifying when to prefer this tool over alternatives like coingecko_getTrending or coingecko_getTokenPrice. It does not mention exclusion criteria or alternative tools. The SAP routing info is not about usage context but about payment/execution mechanics.

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

coingecko_getTrendingCoingecko Get TrendingA
Read-onlyIdempotent
Inspect

Get trending tokens and NFTs on CoinGecko. SAP MCP context: Protocol coingecko; operation class read. Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV. Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds 'operation class read' and 'paid read-premium' pricing, providing cost context beyond schema. No contradictions with annotations.

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

Conciseness2/5

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

The description includes lengthy SAP MCP boilerplate that is duplicated in the input schema, making it verbose. The functional purpose is front-loaded, but the repetitive execution guidance detracts from conciseness.

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

Completeness3/5

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

The tool has no parameters and an output schema exists, so output details are not required. The description includes integration guidance (e.g., estimating cost) but omits any detail about the return format or structure, leaving some gaps.

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

Parameters4/5

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

With zero parameters, the schema fully describes the interface. The description adds no param info, which is acceptable as baseline is 4 for no-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?

The description clearly states 'Get trending tokens and NFTs on CoinGecko', identifying the specific resource and action. However, it does not explicitly distinguish from sibling tools like coingecko_getTokenPrice or coingecko_getTokenInfo, relying on the tool name for differentiation.

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

Usage Guidelines3/5

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

The description advises using it for off-chain market data as advisory context and notes that on-chain state is authoritative. It implies usage context but lacks explicit when-to-use or when-not-to-use comparisons with other tools.

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

das_getAssetDas Get AssetA
Read-onlyIdempotent
Inspect

Get detailed information about a single NFT/asset via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesAsset mint address

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds valuable behavioral traits: pricing (paid read-premium), routing (hosted call, need to estimate first), and signer boundary (no keypair bytes). These go beyond annotations and are critical for agent execution.

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 starts clearly but then includes a confusing line about discovery by multiple criteria, which is not concise. The execution guidance is repeated in the schema description, adding redundancy. It could be trimmed and better structured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 tool (one parameter, read-only, has output schema), the description is fairly complete. It covers key behavioral aspects like pricing and routing that are not in annotations or schema. It lacks details on errors or rate limits but overall is sufficient.

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

Parameters3/5

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

Schema coverage is 100% with parameter 'id' described as 'Asset mint address'. The description does not add extra meaning beyond this, such as format or examples. Baseline is 3 due to high schema coverage.

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

Purpose5/5

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

The description clearly states 'Get detailed information about a single NFT/asset via DAS', specifying the verb and resource. It distinguishes from sibling tools like das_getAssetsByOwner etc. by focusing on a single asset. The mention of protocol and operation class adds 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 suggests using the tool for 'discovery by owner, creator, collection, or search query', which is inconsistent with its single-asset purpose. It does not explicitly state when to use this tool versus sibling das_* listing tools. The repetitive SAP execution guidance provides operational context but lacks clear when-to-use versus alternatives.

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

das_getAssetsByCollectionDas Get Assets By CollectionB
Read-onlyIdempotent
Inspect

Get all NFTs in a collection via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage pagination control for Das Get Assets By Collection.
limitNoLimit controlling the maximum number of results returned by Das Get Assets By Collection.
collectionAddressYesNFT mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by detailing the read/discovery workflow, pricing model, and signer boundary (e.g., 'hosted reads/builders never receive keypair bytes'), providing transparency beyond the annotations.

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

Conciseness2/5

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

The description is verbose and contains redundant SAP boilerplate that is also repeated in the input schema description. The core purpose is concise, but the overall text is long and unfocused, which detracts from 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?

With an output schema present, the burden on the description is reduced. However, the description does not explain what the tool returns (e.g., structure of assets) and instead fills space with SAP context. It is adequate but not fully complete.

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

Parameters2/5

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

Input schema coverage is 100%, but the descriptions are tautological (e.g., 'Page pagination control for Das Get Assets By Collection') and the collectionAddress description is misleading ('NFT mint address'). No additional meaning beyond the schema is provided; in fact, it introduces inaccuracy.

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 'Get all NFTs in a collection via DAS' which is clear, but then expands to 'by owner, creator, collection, or search query', conflating this tool with siblings that are specifically for those other query types. The parameter description for collectionAddress incorrectly labels it as an 'NFT mint address' rather than a collection address, reducing 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 advises to use for read-only discovery and to prefer DAS reads over Metaplex writes, which is helpful. However, it does not explicitly distinguish when to use this tool versus the similar siblings (das_getAssetsByOwner, etc.), and the SAP-specific pricing and routing guidance, while possibly useful, is not typical usage guidance.

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

das_getAssetsByCreatorDas Get Assets By CreatorA
Read-onlyIdempotent
Inspect

Get all NFTs/assets created by a specific creator via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage pagination control for Das Get Assets By Creator.
limitNoLimit controlling the maximum number of results returned by Das Get Assets By Creator.
onlyVerifiedNoOnly Verified parameter for Das Get Assets By Creator.
creatorAddressYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate read-only, idempotent, and non-destructive. The description adds valuable context: paid read-premium, cost estimation requirements, signer boundary (no keypair bytes), and hosted read nature, going beyond what annotations provide.

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

Conciseness3/5

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

The description is somewhat repetitive, especially the SAP MCP execution guidance which appears verbatim in both the description and schema. It could be more concise by removing duplication and focusing on unique content.

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

Completeness4/5

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

With an output schema present, the description adequately covers the tool's purpose, protocol, class, and execution guidance. It doesn't elaborate on output details or prerequisites, but given the output schema, completeness is sufficient.

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

Parameters3/5

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

Schema coverage is 100%, and each parameter has a description in the schema. The main description does not add extra meaning about parameters beyond what is already in the schema, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states it retrieves NFTs/assets by creator via DAS, with a specific verb and resource. However, it briefly mentions broader discovery use cases (owner, collection, search) that could blur boundaries with sibling tools like das_getAssetsByOwner or das_searchAssets.

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 some guidance (prefer DAS reads over Metaplex writes) and execution workflow details, but lacks explicit comparison with sibling DAS tools or conditions for when not to use this tool.

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

das_getAssetsByOwnerDas Get Assets By OwnerA
Read-onlyIdempotent
Inspect

Get all NFTs/assets owned by a wallet via DAS (supports pagination). SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage pagination control for Das Get Assets By Owner.
afterNoAfter parameter for Das Get Assets By Owner.
limitNoLimit controlling the maximum number of results returned by Das Get Assets By Owner.
beforeNoBefore parameter for Das Get Assets By Owner.
sortByNoSort By parameter for Das Get Assets By Owner.
ownerAddressYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint and destructiveHint false. The description adds valuable context such as DAS protocol, operation class read, pagination support, and payment routing guidance. It does not contradict annotations and provides useful behavioral details beyond the structured fields.

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

Conciseness3/5

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

The description contains redundancy, particularly the repeated SAP MCP execution guidance that also appears in the input schema. The initial sentence is effective, but the overall text is longer than necessary and could be more compactly structured.

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

Completeness4/5

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

Given the presence of an output schema and high schema coverage, the description adequately covers purpose, usage, and behavioral context. It includes payment routing and signer boundary information, but lacks specifics on error conditions or rate limits.

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

Parameters3/5

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

Schema coverage is 100% and the input schema describes each parameter clearly. The description adds minimal additional meaning beyond mentioning pagination (relates to page, after, before, limit). Baseline 3 is appropriate as the description does not significantly enhance parameter understanding.

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

Purpose5/5

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

The description clearly states the tool retrieves NFTs/assets owned by a wallet via DAS and supports pagination. It distinguishes from sibling tools like das_getAssetsByCollection and das_getAssetsByCreator by focusing on owner-based retrieval.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (read-only DAS discovery) and expresses preference for DAS reads before Metaplex writes. However, it does not explicitly exclude when not to use it or mention alternative tools for write operations.

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

das_searchAssetsDas Search AssetsA
Read-onlyIdempotent
Inspect

Search NFTs/assets with flexible filters via DAS. SAP MCP context: Protocol das; operation class read. Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query. Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage pagination control for Das Search Assets.
burntNoBurnt parameter for Das Search Assets.
limitNoLimit controlling the maximum number of results returned by Das Search Assets.
frozenNoFrozen parameter for Das Search Assets.
jsonUriNoJson URI parameter for Das Search Assets.
groupingNoGrouping key-value pair (e.g. ["collection", "mint_address"])
compressedNoCompressed parameter for Das Search Assets.
ownerAddressNoSolana public key (base58)
creatorAddressNoSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context: pricing is 'paid read-premium' with an estimate-first workflow, and signer boundary notes that hosted reads never receive keypair bytes. No contradictions with annotations.

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

Conciseness3/5

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

The description is somewhat verbose, repeating SAP MCP context and pricing details that also appear in the input schema description. It is structured but could be more concise by removing redundancy.

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

Completeness4/5

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

Given the complexity (9 optional parameters, output schema exists), the description covers purpose, usage, behavioral traits, pricing, and signer boundary. It is largely complete, though error handling and response structure are not mentioned (but output schema covers the latter).

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 each parameter has a description. The tool description mentions filter types (owner, creator, collection, search query) but does not add meaning beyond what the schema already provides. Baseline is appropriate at 3.

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

Purpose4/5

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

The description clearly states the tool searches NFTs/assets with flexible filters via DAS, and specifies use cases (owner, creator, collection, search query). It distinguishes DAS reads from Metaplex writes, but does not explicitly differentiate from similar sibling tools like das_getAssetsByOwner or das_getAsset, leaving some ambiguity about when to use this general search versus those specific tools.

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

Usage Guidelines3/5

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

The description gives clear context for when to use this tool ('use for read-only DAS NFT and asset discovery') and a preference for DAS reads before Metaplex writes. However, it does not explicitly state when not to use it or mention alternatives like das_getAsset for single asset retrieval, leaving room for improvement.

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

gibwork_createBountyGibwork Create BountyBInspect

Create a new bounty on Gib Work with on-chain escrow. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags parameter for Gibwork Create Bounty.
titleYesBounty title
creatorYesSolana public key (base58)
deadlineNoDeadline (Unix timestamp)
rewardMintNoToken mint address (base58)
descriptionYesDetailed bounty description
rewardAmountYesReward amount

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

The description adds context beyond annotations by mentioning on-chain escrow, write operation class, and the need to confirm scope/payout before execution. It aligns with annotations (readOnlyHint=false, destructiveHint=false) and provides useful warnings.

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 front-loads the purpose but then includes extensive SAP MCP execution guidance that is verbose and could be summarized or placed in a separate field. It is not optimally concise for agent consumption.

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 existence of an output schema and annotations, the description covers the core behavioral traits. However, it misses some aspects like the exact outcome of creation (e.g., transaction confirmation) and assumes familiarity with SAP infrastructure.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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, so parameters are already explained. The description does not enhance parameter understanding beyond the schema, meeting the baseline.

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

Purpose4/5

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

The first sentence clearly states the tool creates a bounty with on-chain escrow. However, the subsequent claim 'Use for bounty creation, listing, and work submission' is inaccurate and may confuse agents about the tool's primary function versus sibling tools.

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

Usage Guidelines2/5

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

The description lacks explicit guidance on when to use this tool vs. siblings like 'gibwork_listBounties' or 'gibwork_submitWork'. It incorrectly suggests it covers listing and work submission, which are separate tools, and does not provide conditions or alternatives.

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

gibwork_listBountiesGibwork List BountiesB
Read-onlyIdempotent
Inspect

List available bounties on Gib Work. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags parameter for Gibwork List Bounties.
limitNoLimit controlling the maximum number of results returned by Gibwork List Bounties.
statusNoStatus parameter for Gibwork List Bounties.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the agent knows this is a safe, non-destructive operation. The description adds some operational context (e.g., pricing, routing, signer boundaries) but does not describe behavior like pagination, filtering, or response format. With annotations covering safety, this is adequate but not thorough.

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

Conciseness2/5

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

The description is excessively long due to repeated SAP MCP boilerplate (routing, pricing, signer boundaries), which is also present in the input schema. This padding detracts from conciseness and buries the core purpose. A single sentence would suffice; the current text wastes space.

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 three optional parameters and existence of an output schema, the description provides minimal context beyond the basic listing function. It does not explain how the parameters affect results or how to interpret the output. However, with strong annotations and full schema coverage, the missing details are not critical.

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

Parameters3/5

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

Schema coverage is 100%, so all parameters (tags, limit, status) are fully described in the schema. The description does not add any extra meaning or usage guidance for parameters beyond what the schema provides. The baseline of 3 applies because the schema handles parameter documentation.

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

Purpose5/5

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

The first sentence clearly states the tool's purpose: 'List available bounties on Gib Work.' This distinguishes it from sibling tools like gibwork_createBounty and gibwork_submitWork, which handle creation and submission. The verb 'list' and resource 'bounties' are specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It includes vague statements like 'Use for bounty creation, listing, and work submission,' which conflates multiple tools and does not help the agent decide when to invoke listBounties specifically. No criteria for selecting this tool over others are given.

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

gibwork_submitWorkGibwork Submit WorkA
Destructive
Inspect

Submit completed work for a Gib Work bounty. SAP MCP context: Protocol gibwork; operation class write. Use for bounty creation, listing, and work submission. Confirm scope, payout, recipient, and deliverable evidence before writes. Use SAP attestation or feedback tools after work completion when reputation should be recorded on SAP.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNoNotes parameter for Gibwork Submit Work.
walletYesSolana public key (base58)
bountyIdYesBounty ID parameter for Gibwork Submit Work.
submissionUrlYesURL to the completed work (PR, doc, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already set destructiveHint=true, indicating a write operation. The description adds detailed behavioral context: pricing (paid read-premium), routing restrictions (hosted accountless write blocked), and signer requirements (user-controlled signing). This goes beyond annotations, though it is heavily focused on SAP MCP execution specifics.

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

Conciseness2/5

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

The description is lengthy and includes repetitive SAP MCP boilerplate that distracts from the core purpose. While the first sentence is front-loaded well, the subsequent paragraphs are verbose and could be condensed significantly without losing essential guidance.

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

Completeness4/5

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

For a write operation with destructive potential, the description adequately covers constraints (pricing, routing, signing) and required inputs. An output schema exists so return value explanation is unnecessary. The mention of using SAP attestation/feedback tools provides post-submission context.

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

Parameters3/5

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

Schema coverage is 100%; all four parameters have descriptions. The description does not add significant parameter-level meaning beyond the schema, offering only a general note to 'confirm scope, payout, recipient, and deliverable evidence before writes.' Baseline 3 applies because the schema carries the burden.

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

Purpose5/5

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

The description begins with 'Submit completed work for a Gib Work bounty,' which clearly states the action (submit) and the resource (work for a bounty). It distinguishes itself from sibling tools like gibwork_createBounty (creation) and gibwork_listBounties (listing).

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

Usage Guidelines3/5

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

The description mentions using the tool 'for bounty creation, listing, and work submission,' which conflates multiple operations—the tool is specifically for submission. It also suggests using SAP attestation or feedback tools after work completion, but does not explicitly exclude this tool from those contexts or provide clear when-not-to-use guidance.

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

jito_getBundleStatusJito Get Bundle StatusA
Read-onlyIdempotent
Inspect

Check the status of a submitted Jito bundle. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
bundleIdYesBundle ID parameter for Jito Get Bundle Status.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context: it is a paid read tool ('pricing: paid read-premium'), requires cost estimation, and explains the signer boundary. This goes beyond annotations without contradicting them.

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

Conciseness4/5

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

The description is front-loaded with the core purpose. It then follows a structured approach with SAP MCP context and execution guidance sections. However, there is some redundancy (the execution guidance appears also in the input schema description) and it is longer than necessary for a simple status check tool.

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

Completeness4/5

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

The description covers purpose, SAP context, pricing, routing, and signer boundary. Given that an output schema exists (not shown but indicated), it does not need to explain return values. It is sufficient for an agent to understand how to use it within the SAP environment, though it could be more specific about when to use it (e.g., after sending a bundle).

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does not add any further semantics to the bundleId parameter beyond what the schema already states ('Bundle ID parameter...'). The parameter meaning is clear but not enriched.

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

Purpose5/5

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

The first sentence 'Check the status of a submitted Jito bundle' uses a specific verb ('check') and resource ('status of a submitted Jito bundle'), clearly differentiating it from sibling tools like jito_sendBundle (submit) and jito_getTipEstimate (tip info). The purpose is immediately evident.

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 SAP MCP execution guidance about pricing and routing, which aids in usage context, but it does not explicitly state when to use this tool versus alternatives (e.g., after jito_sendBundle). The guidance is implicit and more about how to operate within the SAP ecosystem rather than when to choose this specific tool.

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

jito_getTipEstimateJito Get Tip EstimateA
Read-onlyIdempotent
Inspect

Get current Jito tip percentile estimates for bundle inclusion priority. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that it is a 'paid read-premium' and 'hosted reads/builders never receive keypair bytes', providing additional behavioral context beyond annotations.

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

Conciseness3/5

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

The description is front-loaded with the tool's purpose but includes lengthy SAP MCP boilerplate that repeats the same guidance in both the description and input schema. While informative, it could be more concise.

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

Completeness3/5

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

The description does not specify the format or fields of the returned tip estimates, though an output schema exists. It mentions 'bundle inclusion priority' but leaves gaps in what the agent can expect.

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

Parameters4/5

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

The tool has zero parameters and the schema description coverage is 100%, so no additional parameter information is needed. The baseline score of 4 applies.

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

Purpose5/5

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

The description states 'Get current Jito tip percentile estimates for bundle inclusion priority', which uses a specific verb and resource, clearly distinguishing it from sibling tools like jito_getBundleStatus and jito_sendBundle.

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

Usage Guidelines4/5

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

The description includes SAP MCP context and execution guidance, such as 'Intent: read/discovery workflow' and 'Pricing: paid read-premium', and advises when to use sap_payments_call_paid_tool as an alternative. This provides clear context for usage, though it is slightly verbose.

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

jito_sendBundleJito Send BundleBInspect

Send a Jito bundle for MEV-protected, atomic transaction execution. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
tipLamportsNoRaw token amount (smallest unit)
transactionsYesArray of base64-encoded signed transactions (max 5)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already indicate the tool is not read-only, not destructive, and not idempotent. The description adds 'atomic transaction execution' and 'MEV-protected' but does not detail side effects, limits, or failure modes. It provides some value beyond annotations but remains incomplete.

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

Conciseness2/5

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

The description is overly long with extensive SAP MCP context that is tangential to the core tool function. The first sentence is concise, but subsequent sentences add clutter, reducing overall clarity for an AI agent.

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

Completeness3/5

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

Given the complexity of sending bundles and the presence of an output schema (though not shown), the description covers the basic purpose but omits key details such as success criteria, error handling, and confirmation guarantees. It is adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters (tipLamports and transactions) described clearly in the schema. The description adds no additional meaning or constraints beyond what the schema already provides, meeting the baseline.

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

Purpose5/5

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

The description clearly states 'Send a Jito bundle for MEV-protected, atomic transaction execution.' It uses a specific verb and resource, and differentiates from sibling tools like jito_getBundleStatus and jito_getTipEstimate.

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 lacks explicit guidance on when to use this tool versus alternatives. While it includes SAP MCP context about payment routing and signing, it does not explain when to choose Jito bundles over individual transactions or other MEV protection methods.

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

jupiter_cancelDCAJupiter Cancel D C AA
Destructive
Inspect

Create an unsigned transaction to cancel a DCA recurring order. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesWallet that owns the DCA order
orderYesDCA order public key to cancel
recurringTypeYesRecurring order type — "time" for time-based DCA, "price" for price-triggered
computeUnitPriceNoCompute Unit Price parameter for Jupiter Cancel D C A.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations indicate destructiveHint=true (cancellation) and readOnlyHint=false. The description adds that it creates an unsigned transaction (not executed directly), describes pricing as 'paid value-action' requiring preview, and states hosting constraints. This goes beyond annotations by clarifying the need for user signing and the unsigned nature of the output.

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

Conciseness3/5

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

The description is verbose with repeated SAP MCP boilerplate in both the description and input schema description. While the first sentence is clear and front-loaded, the repetition makes it less concise. It could be trimmed by 30-40% without losing essential information.

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

Completeness4/5

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

Given that an output schema exists and parameters are straightforward, the description adequately covers purpose, workflow, constraints (blocked hosted writes), and post-tool actions (preview/sign). It provides sufficient context for an agent to understand when and how to use this tool within the SAP 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?

Input schema coverage is 100% with self-explanatory descriptions for all 4 parameters. The description adds a note about using exact field names and avoiding private key material, but does not enrich meaning beyond the schema. Baseline 3 is appropriate for high schema coverage.

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

Purpose5/5

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

The description clearly states 'Create an unsigned transaction to cancel a DCA recurring order.' It uses a specific verb (cancel) and resource (DCA recurring order), and distinguishes from sibling tools like jupiter_createDCA, jupiter_executeDCA, and jupiter_getDCAOrders by specifying cancellation and unsigned transaction generation.

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

Usage Guidelines4/5

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

The description provides extensive workflow context: Jupiter tools are for quote/route/swap, then use SAP transaction preview/sign/submit tools for signing. It explicitly warns against calling this as a paid hosted write and directs to local bridges or unsigned builders when signing is required. However, it does not contrast with other Jupiter cancel tools (e.g., jupiter_cancelLimitOrder) but the overall guidance is clear.

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

jupiter_cancelLimitOrderJupiter Cancel Limit OrderA
Destructive
Inspect

Create an unsigned transaction to cancel a specific limit order. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
makerYesSolana wallet public key (base58)
orderYesOrder public key to cancel
computeUnitPriceNoCompute Unit Price parameter for Jupiter Cancel Limit Order.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already flag destructiveHint=true and readOnlyHint=false, but the description adds critical context: the tool creates an unsigned transaction, not a submitted one, and includes routing and signer boundary guidance. This is beyond what annotations provide, though some boilerplate is generic.

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

Conciseness2/5

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

The description is verbose with generic SAP MCP boilerplate that repeats across Jupiter tools. The first sentence is concise, but the subsequent paragraph adds unnecessary length without tool-specific value.

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

Completeness4/5

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

Given the output schema exists, the description does not need to detail return values. It explains the unsigned transaction nature and SAP MCP workflow sufficiently. However, it lacks some specifics like error handling for non-existent orders.

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

Parameters3/5

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

Schema description coverage is 100%, with clear parameter descriptions for maker, order, and computeUnitPrice. The tool description adds no additional parameter meaning, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description opens with 'Create an unsigned transaction to cancel a specific limit order,' which is a specific verb+resource combination. It clearly distinguishes from sibling tools like jupiter_cancelLimitOrders (plural) and jupiter_cancelDCA by targeting a single limit order.

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

Usage Guidelines3/5

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

The description includes general SAP MCP workflow guidance but does not explicitly compare this tool to alternatives like jupiter_cancelLimitOrders or provide when-not-to-use conditions. Usage is implied from the name and first sentence, but no explicit guidance is given.

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

jupiter_cancelLimitOrdersJupiter Cancel Limit OrdersA
Destructive
Inspect

Create unsigned transactions to cancel multiple limit orders in batch. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
makerYesSolana wallet public key (base58)
ordersYesArray of order public keys to cancel
computeUnitPriceNoCompute Unit Price parameter for Jupiter Cancel Limit Orders.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

The description adds important behavioral context beyond annotations: it clarifies that the tool only 'creates unsigned transactions' (does not execute) and cancels in batch. Annotations already mark it as destructive (destructiveHint=true) and not read-only. The description supplements this with the unsigned transaction detail.

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

Conciseness2/5

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

The description is excessively long with generic SAP MCP boilerplate that appears repeated across tools. The core purpose is stated in the first sentence, but the remainder is verbose and detracts from conciseness. It could be significantly shortened.

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

Completeness3/5

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

The description covers the key behavioral aspect (unsigned transaction) and batch cancel, and output schema exists. However, it lacks details on error conditions, prerequisites, or return information. The boilerplate provides generic workflow context but does not tailor to this tool's specifics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 description does not need to add parameter semantics. It mentions 'batch' but that is already implied by the array type. The description does not provide additional meaning for parameters like computeUnitPrice beyond the schema.

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

Purpose5/5

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

The description clearly states that the tool's purpose is to create unsigned transactions to cancel multiple limit orders in batch. This specific verb-resource pairing ('create unsigned transactions', 'cancel multiple limit orders') distinguishes it from siblings like jupiter_cancelLimitOrder (singular) and jupiter_createLimitOrder.

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 high-level workflow context (quote/route/swap then use preview/sign/submit), but does not explicitly state when to use batch cancel vs singular cancel or other alternatives like jupiter_cancelDCA. The guidance is implicit from the name but not spelled out.

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

jupiter_createDCAJupiter Create D C AAInspect

Create a Dollar-Cost Averaging (DCA) recurring order. Returns an unsigned transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesWallet executing the DCA
payerYesWallet paying for the DCA setup
startAtNoISO 8601 start timestamp (default: now)
frequencyYesDCA interval
inputMintYesToken mint address (base58)
outputMintYesToken mint address (base58)
totalInAmountYesTotal amount of input token to DCA
numberOfOrdersYesTotal number of orders to split into
maxOutAmountPerOrderNoRaw token amount as string (no decimals)
minOutAmountPerOrderNoRaw token amount as string (no decimals)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false). The description adds significant behavioral context: it returns an unsigned transaction, is a paid value-action requiring user confirmation, and cannot be used as a hosted write. This goes beyond what annotations provide.

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

Conciseness3/5

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

The description is lengthy with SAP-specific context that could be more concise. It includes redundant sections (SAP MCP context vs execution guidance). While front-loaded with the main purpose, the overall structure is somewhat verbose.

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

Completeness4/5

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

Given that an output schema exists, the description adequately covers the tool's purpose, return type (unsigned transaction), and its role in the SAP workflow (pricing, routing, signer boundary). It is complete for the intended use case.

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

Parameters3/5

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

Input schema has 100% description coverage, so the schema already documents all parameters. The description adds a note to use exact field names and avoid private key material, but does not provide additional semantic meaning beyond the schema. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Create a Dollar-Cost Averaging (DCA) recurring order. Returns an unsigned transaction.' This is a specific verb+resource combination, and it distinguishes itself from sibling tools like jupiter_cancelDCA and jupiter_executeDCA.

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

Usage Guidelines4/5

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

The description provides context on when to use this tool within the SAP MCP workflow, mentioning it returns an unsigned transaction and should be paired with preview/sign/submit tools. However, it lacks explicit guidance on when to choose DCA over other order types like limit orders or swaps.

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

jupiter_createLimitOrderJupiter Create Limit OrderAInspect

Create a limit order. Returns an unsigned transaction — sign and submit via executeTrigger. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
makerYesWallet address of the order creator
payerYesWallet paying for transaction fees
feeBpsNoReferral fee in bps
expiredAtNoISO 8601 expiry timestamp
inputMintYesInput token mint
outputMintYesOutput token mint
makingAmountYesAmount of input token to sell
takingAmountYesAmount of output token to receive
computeUnitPriceNoPriority fee (µ-lamports/CU)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

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

Beyond annotations (which indicate a writable, non-idempotent operation), the description discloses that the tool returns an unsigned transaction, is paid ('pricing: paid value-action'), and has routing restrictions ('hosted accountless write is blocked'). This provides crucial behavioral context the agent needs.

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

Conciseness3/5

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

The first sentence is concise and front-loaded, but the description includes repetitive SAP context text (the same 'Intent: SAP MCP tool workflow...' block appears both here and in the input schema). While informative, this duplication makes the description unnecessarily long.

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

Completeness4/5

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

Given the tool's complexity (9 parameters, 6 required, output schema exists), the description covers the essential workflow (returns unsigned transaction, signing via executeTrigger, pricing, routing) and SAP integration context. It does not need to explain return values since an output schema is provided.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is documented in the schema. The description adds only a minor note about using exact field names and avoiding private key material. This aligns with the baseline expected for high schema coverage.

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

Purpose5/5

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

The description clearly states 'Create a limit order. Returns an unsigned transaction.' This specifies the action (create), resource (limit order), and output (unsigned transaction), distinguishing it from sibling Jupiter tools such as jupiter_cancelLimitOrder or jupiter_createDCA.

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

Usage Guidelines5/5

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

The description explicitly instructs to sign and submit via executeTrigger and provides comprehensive SAP MCP execution guidance, including when to use this tool (for quote/route/swap preparation) and when to switch to SAP transaction preview/sign/submit tools. It also covers routing restrictions and billing context.

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

jupiter_executeDCAJupiter Execute D C AA
Destructive
Inspect

Submit a signed DCA order creation/cancellation transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesRequest ID from createDCA response
signedTransactionYesBase64-encoded signed transaction

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate destructiveHint=true. Description adds context about pricing (paid value-action), requirement for user confirmation, and routing restrictions. Though some SAP MCP boilerplate is present, it provides meaningful behavioral insight beyond annotations.

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

Conciseness4/5

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

The description is front-loaded with the core action, but includes extensive SAP MCP context that, while relevant, makes it verbose. It is structured logically.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 output schema exists, the description adequately covers the workflow (after createDCA), pricing, and routing. It tells the agent what not to do and when to use alternative tools.

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

Parameters3/5

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

Schema covers 100% of parameters. The description repeats the parameter descriptions from the schema without adding new semantics or usage nuances beyond 'signedTransaction' and 'requestId'.

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

Purpose5/5

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

The description clearly states the tool submits a signed DCA order creation/cancellation transaction. It uses specific verbs and resources, distinguishing it from siblings like jupiter_cancelDCA and jupiter_createDCA.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use this tool (for signed DCA transactions) and when not to (do not call as a paid hosted write, no x402 payment). Recommends alternatives like local sap_payments bridge or hosted unsigned builder for unsigned transactions.

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

jupiter_executeOrderJupiter Execute OrderA
Destructive
Inspect

Execute a signed swap transaction obtained from getOrder and receive execution status. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesrequestId from getOrder response
signedTransactionYesBase64-encoded signed transaction

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

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

Annotations indicate destructiveHint=true, but the description adds context: hosted accountless write is blocked, no x402 payment should be charged, and signer boundary details. This goes beyond annotations to explain behavioral constraints and routing implications.

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 multiple sentences but each adds value: purpose, workflow guidance, routing restrictions. It is front-loaded with the core action, though could be slightly more concise.

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

Completeness4/5

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

Given the tool's complexity (swap execution, SAP MCP context, payment routing), the description covers source of transaction, output (execution status), routing restrictions, and signer boundary. Output schema exists, so return values need not be detailed.

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

Parameters4/5

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

The input schema has 100% coverage with descriptions for both parameters (requestId, signedTransaction). The description adds context that signedTransaction comes from getOrder, enhancing understanding beyond the schema.

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

Purpose5/5

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

The description clearly states the tool executes a signed swap transaction from getOrder and returns execution status. It distinguishes itself from related tools like getOrder and SAP transaction tools, establishing its specific role in the workflow.

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

Usage Guidelines5/5

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

The description provides explicit guidance: use after getOrder for swap execution, but switch to SAP transaction preview/sign/submit tools when unsigned transactions need signer policy. It also warns against calling as a paid hosted write and clarifies x402 payment restrictions.

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

jupiter_executeTriggerJupiter Execute TriggerB
Destructive
Inspect

Submit a signed limit-order transaction for on-chain execution. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
requestIdYesRequest ID from createLimitOrder response
signedTransactionYesBase64-encoded signed transaction

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false, so a mutation is expected. The description adds valuable behavioral context: it submits a transaction for on-chain execution, involves 'paid value-action', requires user confirmation, and is non-custodial. This goes beyond what annotations provide, though some redundancy exists with the input schema description.

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

Conciseness2/5

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

The description is overly verbose, with a large block of repetitive SAP MCP context that appears both in the description and the input schema. The core purpose is stated concisely in the first sentence, but the rest is bloated and contains redundant instructions. This diminishes clarity and wastes tokens.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (2 parameters) and the presence of an output schema, the description adequately covers the high-level workflow. It explains the execution chain and signer requirements. However, it omits details about the return value or how to verify success, though these may be covered by the output schema.

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

Parameters3/5

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

Input schema coverage is 100% with descriptions for both parameters. The description does not add meaningful new information beyond the schema; it repeats the same SAP MCP boilerplate text. The baseline score of 3 is appropriate because the schema already carries the parameter semantics.

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

Purpose4/5

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

The description clearly states the tool submits a signed limit-order transaction for on-chain execution. The verb 'submit' and resource 'signed limit-order transaction' are specific. However, it does not explicitly distinguish itself from sibling tool 'jupiter_executeOrder', which likely serves a similar but different purpose (e.g., market orders). This lack of differentiation prevents a score of 5.

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

Usage Guidelines2/5

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

The description provides extensive but misdirected guidance about SAP MCP execution workflow, but fails to address when to use this tool versus alternatives like jupiter_executeOrder or jupiter_cancelLimitOrder. It does not mention prerequisites such as requiring a previously created limit order or that the transaction must be signed by the user. The agent is left without clear decision logic.

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

jupiter_getDCAOrdersJupiter Get D C A OrdersA
Read-onlyIdempotent
Inspect

Get all DCA orders (active and optionally historical) for a wallet. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage pagination control for Jupiter Get D C A Orders.
userYesWallet address to query (sent as "user" query param to Jupiter)
limitNoLimit controlling the maximum number of results returned by Jupiter Get D C A Orders.
inputMintNoToken mint address (base58)
outputMintNoToken mint address (base58)
orderStatusYesFilter by order status: "active" for running orders, "history" for completed/cancelled
recurringTypeYesRecurring order type — "time" for time-based DCA, "price" for price-triggered, "all" for both
includeFailedTxNoInclude failed transactions in results (default: false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

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

Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds valuable context: 'Pricing: paid read-premium' and 'Signer boundary: hosted reads/builders never receive keypair bytes.' No contradiction with annotations.

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

Conciseness4/5

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

The description is front-loaded with the main purpose in the first sentence. It includes necessary SAP MCP context, which, while verbose, is relevant. It could be slightly more concise, but overall well-structured.

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

Completeness4/5

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

Given the tool has an output schema and rich annotations, the description covers intent, pricing, routing, and signer boundary. It misses no critical context for a read-only tool. Slight deduction for not mentioning pagination or result structure, but output schema exists.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it repeats context about parameters like 'user' but no new semantic value.

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

Purpose5/5

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

The description clearly states 'Get all DCA orders (active and optionally historical) for a wallet.' It uses a specific verb ('Get') and resource ('all DCA orders'), and distinguishes from siblings like jupiter_createDCA and jupiter_cancelDCA.

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

Usage Guidelines5/5

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

The description provides explicit guidance: 'Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools.' It also specifies the intent ('read/discovery workflow'), pricing ('paid read-premium; estimate first'), and routing. This clearly tells when to use this tool vs. alternatives.

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

jupiter_getHoldingsJupiter Get HoldingsA
Read-onlyIdempotent
Inspect

Fetch token balances and holdings for specific token accounts, including USD valuations. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenAccountAddressesYesArray of token account addresses to query balances for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate readOnly, idempotent, and non-destructive. The description adds that the tool provides USD valuations and explains the SAP MCP context regarding signer boundary and pricing. No contradictions.

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

Conciseness2/5

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

The description includes lengthy SAP execution guidance repeated in the input schema, which adds unnecessary verbosity. The core purpose is stated concisely, but the extra boilerplate detracts from conciseness.

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

Completeness3/5

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

Given the tool has only one parameter and an output schema exists, the description is adequate but includes redundant SAP context. It covers purpose and when to use, but could be cleaner without the repeated guidance.

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

Parameters3/5

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

Schema description coverage is 100% and the single parameter 'tokenAccountAddresses' is clearly described as an array of Solana wallet public keys. The main description does not add additional parameter meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool fetches token balances and holdings for specific token accounts including USD valuations. This is a specific verb+resource and distinguishes from sibling Jupiter tools that handle quotes, swaps, or orders.

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

Usage Guidelines4/5

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

The description provides context that this tool is for read/discovery workflows and should be used before quote/route/swap preparation. It mentions when to use SAP transaction tools for signing, giving implicit guidance. However, it does not explicitly compare with other Jupiter read tools like jupiter_getPrice or jupiter_getQuote.

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

jupiter_getLimitOrdersJupiter Get Limit OrdersB
Read-onlyIdempotent
Inspect

Get all limit orders (active and optionally historical) for a wallet. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage pagination control for Jupiter Get Limit Orders.
limitNoLimit controlling the maximum number of results returned by Jupiter Get Limit Orders.
walletYesWallet address to query
inputMintNoToken mint address (base58)
outputMintNoToken mint address (base58)
orderStatusYesFilter by order status: "active" for open orders, "history" for filled/cancelled

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds SAP-specific behavioral context (pricing, routing, signer boundary) but does not disclose tool-specific behaviors like pagination limits or data freshness. It adds modest value beyond annotations.

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

Conciseness2/5

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

The description is front-loaded with the core purpose but is overly long due to repeated SAP MCP boilerplate. The generic SAP context could be shortened or placed elsewhere, as it is not specific to this tool.

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

Completeness3/5

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

Given the tool's complexity (6 params, output schema exists), the description covers the main action and SAP integration context but lacks details on pagination, response format, or historical data retrieval. The output schema likely compensates, but the description could be more complete.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description does not add additional meaning beyond the schema; it merely restates field names in context. No parameter details or examples are provided.

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

Purpose5/5

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

The description clearly states 'Get all limit orders (active and optionally historical) for a wallet'. It specifies the resource (limit orders), action (get), and scope (for a wallet), and distinguishes from sibling tools like jupiter_getOrder (single order) and jupiter_cancelLimitOrder.

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

Usage Guidelines3/5

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

The description does not explicitly guide when to use this tool versus alternatives like jupiter_getOrder or jupiter_getDCAOrders. It implies usage for listing orders but lacks comparative guidance or when-not conditions. The SAP MCP context focuses on payment/signing, not tool selection.

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

jupiter_getOrderJupiter Get OrderA
Read-onlyIdempotent
Inspect

Get a quote + unsigned swap transaction in a single call (Ultra API). The recommended entry-point for swaps. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
takerYesTaker (sender) wallet address
amountYesRaw token amount as string (no decimals)
inputMintYesToken mint address (base58)
outputMintYesToken mint address (base58)
slippageBpsNoSlippage tolerance in bps (e.g. 50 = 0.5%)
referralFeeBpsNoReferral fee in bps
referralAccountNoSolana wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

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

Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already declare safety. The description adds key behavioral traits: it returns an unsigned transaction, never receives keypair bytes, and value-moving results must be finalized locally. This fully discloses behavior beyond annotations without contradiction.

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

Conciseness3/5

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

The description includes lengthy SAP MCP context and execution guidance that, while useful, makes it longer than necessary. The core purpose is stated upfront, but the second paragraph is dense and could be more concise. A shorter version would be more efficient.

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

Completeness4/5

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

Given the tool's complexity (7 params, no nested objects, output schema) and rich annotations, the description covers purpose, behavior, and usage guidelines adequately. The only minor gap is explicit differentiation from jupiter_getQuote, but the description implies it through 'Ultra API' and 'recommended entry-point'. Overall, it is sufficiently complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add extra parameter-specific details beyond the schema, but the schema's field descriptions are informative. No additional enrichment is provided.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get a quote + unsigned swap transaction in a single call (Ultra API). The recommended entry-point for swaps.' It uses a specific verb ('Get') and resource ('quote + unsigned swap transaction'), and distinguishes itself from sibling tools like jupiter_getQuote and jupiter_swap by being a combined call.

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

Usage Guidelines5/5

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

The description provides explicit guidance: it is 'the recommended entry-point for swaps' and advises using SAP transaction preview/sign/submit tools afterward for signing. It also mentions pricing and routing steps (e.g., call sap_estimate_tool_cost first), offering clear when-to-use and when-not-to-use instructions.

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

jupiter_getPriceJupiter Get PriceA
Read-onlyIdempotent
Inspect

Get real-time heuristic prices for tokens. Supports buy/sell price, confidence, and depth info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy. Parameter aliases accepted by SAP MCP: mint/id/token/address -> ids[0]. Prefer canonical ids: string[] in new calls.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesToken mints to price
vsTokenNoToken mint address (base58)
showExtraInfoNoInclude confidence, depth, timestamps

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true. Description adds 'heuristic prices', 'Supports buy/sell price, confidence, and depth info', and 'free hosted call; call directly and keep it small/exact'. Also explains signer boundary and that no keypair bytes are exposed, surpassing annotation coverage.

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

Conciseness4/5

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

Description is slightly long but well-organized with clear sections (purpose, SAP context, execution guidance). Each sentence adds necessary context, though some repetition occurs (e.g., pricing details appear twice). Structurally sound.

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 price query tool with 3 parameters (1 required), output schema exists (not shown), and annotations are rich. Description covers intent, pricing model, routing behavior, signer boundary, and parameter alias handling. Nothing essential is missing.

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

Parameters4/5

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

Schema covers all 3 parameters (ids, vsToken, showExtraInfo) with descriptions. Description adds value by noting 'Parameter aliases accepted by SAP MCP: mint/id/token/address -> ids[0]' and advising to use exact field names. This clarifies flexible input formats beyond schema.

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

Purpose5/5

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

The description clearly states 'Get real-time heuristic prices for tokens' and lists supported details (buy/sell price, confidence, depth). This distinguishes it from sibling tools like coingecko_getTokenPrice or pyth_getPrice by focusing on Jupiter's heuristic approach.

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

Usage Guidelines5/5

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

Provides explicit context: 'Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools...' Also specifies 'Intent: read/discovery workflow' and 'Pricing: free; call directly without x402'. This clearly guides when to use this tool vs. value-moving alternatives.

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

jupiter_getQuoteJupiter Get QuoteA
Read-onlyIdempotent
Inspect

Get an optimally-routed swap quote with full route plan details (Metis engine). SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRaw token amount as string (no decimals)
swapModeNoSwap Mode parameter for Jupiter Get Quote.
inputMintYesToken mint address (base58)
outputMintYesToken mint address (base58)
maxAccountsNoMax accounts in transaction (default 64)
slippageBpsNoSlippage tolerance in bps (e.g. 50 = 0.5%)
platformFeeBpsNoPlatform fee in bps
dynamicSlippageNoDynamic Slippage pagination control for Jupiter Get Quote.
onlyDirectRoutesNoRestrict to single-hop routes
asLegacyTransactionNoReturn a legacy transaction
restrictIntermediateTokensNoRestrict Intermediate Tokens mint, symbol, or token identifier used by Jupiter Get Quote.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

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

Annotations declare readOnlyHint, idempotentHint, and no destructiveness. The description adds significant context: it mentions the Metis engine, emphasizes the hosted read/builder nature, and clearly states signer boundary ('never receive keypair bytes'). No contradiction with annotations.

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

Conciseness4/5

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

The description is well-structured with clear sections (SAP MCP context, execution guidance). It is informative but includes operational boilerplate that could be condensed. Overall, effective and not overly verbose.

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

Completeness5/5

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

Given the complexity (11 parameters, many siblings, output schema exists), the description is complete. It covers purpose, usage context, behavioral constraints, and operational guidance. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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; all 11 parameters are described in the schema. The description does not add parameter-level details beyond what the schema provides. Baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get an optimally-routed swap quote with full route plan details (Metis engine).' This specifies the verb (get), resource (swap quote), and scope (optimally-routed, full route plan). It distinguishes from siblings like jupiter_getPrice or jupiter_swap.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool ('quote, route, and swap preparation') and when to use alternative tools ('SAP transaction preview/sign/submit tools'). It also provides guidance on pricing and routing (e.g., 'estimate first, then use sap_payments_call_paid_tool').

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

jupiter_getTokenInfoJupiter Get Token InfoA
Read-onlyIdempotent
Inspect

Search for token information by mint address, symbol, or name. Returns detailed metadata, price, organic score, and audit info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch by mint address, symbol, or name. Comma-separate for multiple (max 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds beyond this by detailing return values and SAP-specific pricing/routing behavior. No contradictions.

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

Conciseness3/5

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

The description front-loads the purpose but includes verbose SAP MCP context that is partially redundant with the schema description. It could be more concise by removing repetition.

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

Completeness4/5

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

Given one parameter and the presence of an output schema, the description covers the core functionality well. It explains query method and return type, but lacks error handling or limitations. Still adequate for the tool's simplicity.

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

Parameters3/5

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

Schema coverage is 100% and the description's parameter detail matches the schema's description. The description does not add extra semantics beyond what the input schema already provides, so baseline 3 applies.

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

Purpose5/5

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

The description clearly states the tool searches for token information by mint address, symbol, or name, and lists the return type (metadata, price, organic score, audit info). It distinguishes from siblings like jupiter_searchTokens by specifying detailed info for specific 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?

The description provides SAP MCP execution guidance but does not explicitly state when to use this tool versus alternatives like jupiter_getTokenList or jupiter_searchTokens. The context implies it's for detailed token lookup, but lacks direct comparison.

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

jupiter_getTokenListJupiter Get Token ListA
Read-onlyIdempotent
Inspect

Get Jupiter tokens by tag ("verified" or "lst"). Returns token metadata, organic score, price, and audit info. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoTag to filter by — "verified" or "lst"

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that it returns token metadata, organic score, price, and audit info, which provides some behavioral context but does not address rate limits, costs, or other traits beyond annotations.

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

Conciseness2/5

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

The description is verbose, containing a large block of generic SAP MCP execution guidance that is not specific to this tool. This reduces conciseness and could be trimmed or placed elsewhere.

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

Completeness4/5

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

The description lists the return fields (metadata, organic score, price, audit info) and gives SAP integration context. With an output schema present, this is sufficient for a simple tool with one parameter.

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

Parameters3/5

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

The input schema covers 100% of parameters with clear descriptions. The tool description reiterates the enum values but adds no semantic meaning beyond the schema, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'Jupiter tokens', and the filter 'by tag (verified or lst)', differentiating it from sibling tools like jupiter_searchTokens or jupiter_getTokenInfo.

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 generic SAP MCP context for Jupiter tools but does not explicitly specify when to use this tool versus other token-related tools like jupiter_searchTokens or jupiter_getTokenInfo. Usage is implied but not clearly bounded.

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

jupiter_programLabelsJupiter Program LabelsCInspect

Get a mapping from program ID to human-readable label for all DEX programs in the routing engine. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

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

The description describes a read operation ('Get a mapping'), but the annotation readOnlyHint is false, indicating a contradiction. The description does not disclose any behavioral traits beyond the basic operation, and the annotation inconsistency undermines transparency.

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

Conciseness2/5

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

The first sentence is concise and front-loaded. However, the second paragraph is verbose and repetitive, containing boilerplate execution guidance that appears verbatim in the input schema. The structure could be trimmed significantly without losing essential information.

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

Completeness3/5

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

Given the tool's simplicity (no parameters, output schema exists), the description provides the core purpose. However, the annotation contradiction regarding readOnlyHint creates uncertainty about the tool's behavior, and the excessive execution guidance adds noise without improving completeness for the tool's primary function.

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

Parameters4/5

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

The tool has zero parameters, and the schema description coverage is 100% trivially. The description adds no parameter info, but also does not need to. The baseline for zero parameters is 4, and the description adequately covers the absence of inputs by stating what is returned.

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

Purpose5/5

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

The description clearly states the tool's function: 'Get a mapping from program ID to human-readable label for all DEX programs in the routing engine'. It uses a specific verb and resource, and distinguishes itself from siblings by focusing on program labels rather than swaps, quotes, or token lists.

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 does not specify when to use this tool versus alternatives. It provides extensive SAP MCP execution guidance (pricing, routing, signer) but lacks direct guidance on appropriate usage contexts relative to other Jupiter or SAP tools.

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

jupiter_searchTokensJupiter Search TokensA
Read-onlyIdempotent
Inspect

Search for tokens by symbol, name, or mint address. Returns matching tokens with metadata. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch by token symbol, name, or mint address

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's safe. The description adds context about hosted reads not receiving keypair bytes and the need for local finalization, which goes beyond annotations.

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

Conciseness3/5

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

The description is front-loaded with the core purpose, but the SAP MCP context is verbose and repeated in the input schema, making it longer than necessary. Could be more concise.

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 search tool with one parameter, the description covers purpose, usage, and execution context. Output schema exists, so return values need not be explained. The tool is complete for agent use.

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

Parameters3/5

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

With 100% schema coverage, the schema already documents the single parameter 'query' with description. The description adds no additional parameter details beyond what the schema provides, so baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool searches for tokens by symbol, name, or mint address and returns metadata. It distinguishes from sibling tools like jupiter_getTokenInfo and jupiter_getTokenList by emphasizing search functionality.

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

Usage Guidelines5/5

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

Explicit guidance on when to use this tool (for quote, route, swap preparation) and when to use SAP transaction tools. Also includes pricing and routing instructions, helping the agent decide between this and alternative SAP tools.

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

jupiter_shieldJupiter ShieldBInspect

Check token mints for potential security risks (honeypot, freeze authority, low liquidity, etc.). SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintsYesToken mints to check

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

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

The description implies a read-only operation ('Check token mints'), but the annotation readOnlyHint=false contradicts this, suggesting mutations may occur. No behavioral details (e.g., side effects, permissions) are disclosed beyond the misleading implication. This contradiction severely undermines transparency.

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

Conciseness3/5

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

The core purpose is front-loaded in the first sentence, which is good. However, the description includes two lengthy paragraphs of SAP MCP execution guidance that are not directly about the tool's function, reducing conciseness. The structure could be tighter by separating or removing boilerplate.

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

Completeness3/5

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

The description explains what the tool does, and the output schema exists to define return values, so completeness is adequate. However, the annotation contradiction creates confusion about side effects, and the description omits details like error handling or limitations. It is minimally complete for a simple tool.

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

Parameters3/5

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

Schema coverage is 100% for the single parameter 'mints', with clear descriptions in the schema. The description adds no additional semantic meaning beyond summarizing the purpose. Baseline score of 3 is appropriate as the schema already conveys parameter details.

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

Purpose5/5

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

The description clearly states the tool's action ('Check token mints for potential security risks') and specifies examples (honeypot, freeze authority, low liquidity). This verb-resource pairing is distinct from sibling tools, such as jupiter_getTokenInfo which retrieves general token data, making the purpose unambiguous.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool over alternatives. While the purpose is clear, there is no guidance on when not to use it or comparisons with sibling tools. The extensive SAP MCP context (pricing, routing) is operational rather than usage guidance, so the usage guidelines are adequate but minimal.

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

jupiter_smartSwapJupiter Smart SwapA
Destructive
Inspect

Smart Swap — all-in-one compound tool that fetches a quote and builds swap instructions in a single call. Provide input/output mints, amount, and wallet address to get back a quote, individual swap instructions, and a human-readable summary. The returned instructions can be assembled into a transaction and signed. This is the recommended entry-point for AI agents preparing a swap. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRaw token amount to swap (in smallest unit, no decimals)
swapModeNoSwap mode (default: ExactIn)
inputMintYesSource token mint address
feeAccountNoSolana wallet public key (base58)
outputMintYesDestination token mint address
maxAccountsNoMax accounts in transaction (default: 64)
slippageBpsNoSlippage tolerance in bps (e.g. 50 = 0.5%)
userPublicKeyYesWallet public key that will sign the transaction
platformFeeBpsNoPlatform fee in bps for referral revenue
dynamicSlippageNoEnable dynamic slippage for better execution
onlyDirectRoutesNoRestrict to single-hop routes for lower latency
wrapAndUnwrapSolNoAuto wrap/unwrap SOL (default: true)
asLegacyTransactionNoReturn a legacy transaction instead of v0
destinationTokenAccountNoSolana wallet public key (base58)
dynamicComputeUnitLimitNoUse dynamic compute unit limit based on simulation
restrictIntermediateTokensNoRestrict intermediate tokens to reduce risk
computeUnitPriceMicroLamportsNoPriority fee in micro-lamports per compute unit

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations indicate destructiveHint=true, but the description does not address destructive behavior. It describes building instructions, implying no immediate destructive action, but fails to reconcile with the annotation. The description lacks additional behavioral context beyond what annotations provide.

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

Conciseness3/5

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

The description is overly long, mixing tool purpose with extensive SAP MCP policy guidance. The core purpose is front-loaded, but the subsequent paragraphs are verbose and could be condensed. Not every sentence earns its place; for example, the 'SAP MCP execution guidance' section is detailed but might be better suited elsewhere.

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

Completeness4/5

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

Given the tool's complexity (17 parameters, existing output schema, and numerous siblings), the description covers core purpose, recommended usage, and integration with SAP tools. However, it omits error handling, edge cases, and details about the output beyond a 'human-readable summary.' The presence of an output schema partially mitigates 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?

Schema coverage is 100%, so the schema already documents all parameters. The description merely lists the required parameters (input/output mints, amount, wallet address) without adding new semantics or clarifying parameter relationships. It does not improve upon the schema.

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

Purpose5/5

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

The description clearly states it is an 'all-in-one compound tool' that fetches a quote and builds swap instructions, explicitly calling it the 'recommended entry-point for AI agents.' Among siblings like jupiter_swap and jupiter_swapInstructions, this tool combines both steps, making its purpose distinct.

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

Usage Guidelines5/5

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

The description provides explicit guidance: use this tool for quote/route/swap preparation, then use SAP transaction tools for signing. It also advises against calling this as a paid hosted write and directs to use local sap_payments bridge or unsigned builder. This clearly differentiates usage context.

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

jupiter_swapJupiter SwapA
Destructive
Inspect

Build an unsigned swap transaction from a quote response. Sign and send the returned transaction. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
feeAccountNoSolana wallet public key (base58)
quoteResponseYesThe full quoteResponse object from getQuote
userPublicKeyYesSolana wallet public key (base58)
useTokenLedgerNoUse Token Ledger mint, symbol, or token identifier used by Jupiter Swap.
dynamicSlippageNoDynamic Slippage pagination control for Jupiter Swap.
wrapAndUnwrapSolNoAuto wrap/unwrap SOL (default true)
useSharedAccountsNoUse Shared Accounts parameter for Jupiter Swap.
asLegacyTransactionNoAs Legacy Transaction transaction payload used by Jupiter Swap.
destinationTokenAccountNoSolana wallet public key (base58)
dynamicComputeUnitLimitNoDynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap.
skipUserAccountsRpcCallsNoSkip User Accounts RPC Calls endpoint or RPC selector used by Jupiter Swap.
computeUnitPriceMicroLamportsNoPriority fee in µ-lamports/CU

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

The description does not contradict annotations (destructiveHint=true, readOnlyHint=false). It adds context about pricing (paid value-action), routing (hosted accountless write blocked), and signer boundary (non-custodial). This goes beyond the annotations to clarify behavioral traits.

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

Conciseness3/5

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

The description is front-loaded with the core action, but contains verbose SAP MCP context that adds length. While relevant, it could be more concise without losing essential guidance.

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

Completeness4/5

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

The description clearly states that the tool returns an unsigned transaction, references the getQuote tool for input, and includes workflow context. With 12 parameters and nested objects, it is sufficiently complete for an agent to understand 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?

Schema coverage is 100%, so the input schema already describes each parameter. The tool description does not add significant meaning beyond the schema descriptions, which are sometimes vague (e.g., 'Dynamic Slippage pagination control'). A baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's primary action: 'Build an unsigned swap transaction from a quote response.' It also distinguishes from siblings like jupiter_smartSwap and jupiter_swapInstructions by positioning this tool as a preparatory step before signing/submitting.

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

Usage Guidelines4/5

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

The description provides guidance on when to use this tool (for swap preparation) and explicitly states when not to use it (avoid as a paid hosted write or charging x402). It mentions using SAP transaction preview/sign/submit tools for signing, but could be clearer about alternatives like jupiter_smartSwap.

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

jupiter_swapInstructionsJupiter Swap InstructionsA
Destructive
Inspect

Get individual swap instructions instead of a full transaction. Useful for composing with other instructions. SAP MCP context: Jupiter protocol tools are served as AgentKit ecosystem tools. Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools when an unsigned transaction must pass MCP signer policy.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
feeAccountNoSolana wallet public key (base58)
quoteResponseYesThe full quoteResponse object from getQuote
userPublicKeyYesSolana wallet public key (base58)
useTokenLedgerNoUse Token Ledger mint, symbol, or token identifier used by Jupiter Swap Instructions.
wrapAndUnwrapSolNoWrap And Unwrap Sol parameter for Jupiter Swap Instructions.
useSharedAccountsNoUse Shared Accounts parameter for Jupiter Swap Instructions.
asLegacyTransactionNoAs Legacy Transaction transaction payload used by Jupiter Swap Instructions.
destinationTokenAccountNoSolana wallet public key (base58)
dynamicComputeUnitLimitNoDynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap Instructions.
computeUnitPriceMicroLamportsNoCompute Unit Price Micro Lamports value to use for Jupiter Swap Instructions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds valuable context beyond this: the tool returns individual swap instructions (not full transactions), is intended for composition, and involves paid builder flow with signer boundaries. It clarifies that value-moving results must be finalized locally, which is critical behavioral information not captured by 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 longer than necessary, with repetitive SAP MCP context and execution guidance that could be condensed. The first sentence effectively captures the core purpose, but subsequent paragraphs contain redundant information across the description and input schema. It could be trimmed without losing essential guidance.

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

Completeness3/5

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

Given the tool has an output schema and annotations, the description covers purpose, usage guidance, and some behavioral traits. However, for a complex tool with 10 parameters, it lacks a typical workflow example or explanation of how the returned instructions integrate with other steps. It is adequate for the SAP MCP context but not fully comprehensive for general use.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does not add parameter-level semantics beyond the schema. The schema descriptions for parameters like 'useTokenLedger' and 'dynamicComputeUnitLimit' are somewhat generic and could be improved, but the tool description itself does not compensate for this.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Get individual swap instructions instead of a full transaction. Useful for composing with other instructions.' This distinguishes it from sibling tools like jupiter_swap and jupiter_smartSwap, which perform full swaps. The verb 'get' and resource 'swap instructions' are specific and unambiguous.

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

Usage Guidelines4/5

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

The description provides guidance on when to use the tool in the SAP MCP context: for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools. It mentions it is a 'paid builder' and gives steps for cost estimation and payment. However, the guidance is very SAP-specific and could be more generally applicable. It does not explicitly exclude other contexts.

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

lulo_depositLulo DepositAInspect

Deposit into the best APR lending protocol via Lulo aggregator. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken to deposit (e.g. USDC)
amountYesRaw token amount (smallest unit)
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Adds significant behavioral context beyond annotations, such as blocking hosted accountless writes and requiring user signing. No contradiction with annotations.

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

Conciseness3/5

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

The description is lengthy with repetitive SAP MCP boilerplate. It is front-loaded with the key purpose but includes redundant execution guidance that could be more concise.

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

Completeness4/5

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

Given the tool's simplicity (3 required parameters) and the presence of an output schema, the description covers the core action and important execution constraints like routing and signing.

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

Parameters3/5

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

Schema description coverage is 100% with clear parameter descriptions. The tool description adds minimal extra parameter-specific meaning, meeting baseline expectations.

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

Purpose5/5

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

The description clearly states the tool deposits into the best APR lending protocol via Lulo aggregator. It uses a specific verb-resource combination and distinguishes from siblings like lulo_withdraw.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 execution guidance including pricing, routing, and signing requirements. However, it lacks explicit 'when not to use' language but implies it through context.

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

lulo_getBestRatesLulo Get Best RatesA
Read-onlyIdempotent
Inspect

Get the best lending/yield rates across all protocols via Lulo. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintNoToken mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds detail about paid read-premium, hosted routing, and signer boundary (no keypair bytes), which are not covered by annotations. No contradictions.

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

Conciseness3/5

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

The description is verbose, repeating the same SAP MCP context in both the description and schema. The core sentence is good, but the rest could be condensed without losing meaning.

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

Completeness4/5

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

Given the output schema exists and the single parameter, the description adequately covers payment, routing, and signer context. However, it omits details on what 'best rates' specifically includes (e.g., lending vs borrowing).

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

Parameters3/5

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

Only one parameter 'mint' with a clear schema description. The tool description does not add extra meaning beyond the schema, and schema coverage is 100%, so baseline 3 is appropriate.

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

Purpose5/5

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

Clearly states 'Get the best lending/yield rates across all protocols via Lulo', with a specific verb and resource. Distinguishes from siblings like lulo_getPositions and lulo_deposit/withdraw by emphasizing it's a read/discovery workflow.

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

Usage Guidelines4/5

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

Provides explicit guidance that this is a read/discovery workflow requiring payment estimation and specific routing via sap_estimate_tool_cost and sap_payments_call_paid_tool. However, it does not explicitly contrast with other rate-fetching tools or state when not to use it.

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

lulo_getPositionsLulo Get PositionsA
Read-onlyIdempotent
Inspect

Get all Lulo lending positions for a wallet. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description adds behavioral context: it is a 'paid read-premium' operation, requires cost estimation via sap_estimate_tool_cost, and states that the hosted execution does not receive private keys. This enhances the agent's understanding of the execution model.

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

Conciseness3/5

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

The description is verbose due to repeated SAP boilerplate text (pricing, routing, signer boundary) that appears both in the description and the input schema. The core functionality is stated concisely, but the redundancy and generic guidance reduce clarity and efficiency.

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

Completeness4/5

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

Given the tool's simplicity (one parameter, output schema exists), the description covers purpose, execution context, and workflow integration. It does not detail the output structure, but that is acceptable since an output schema is present. The description is complete enough for an agent to invoke the tool correctly.

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

Parameters3/5

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

The only parameter 'wallet' is described in the schema as 'Solana public key (base58)', and the description does not add further meaning. With 100% schema coverage, the baseline of 3 is appropriate; no additional parameter guidance is provided.

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

Purpose5/5

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

The description clearly states the tool retrieves all Lulo lending positions for a wallet, specifying the verb 'Get', the resource 'Lulo lending positions', and the scope 'for a wallet'. This distinguishes it from sibling tools like lulo_deposit and lulo_withdraw.

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

Usage Guidelines3/5

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

The description includes generic SAP MCP execution guidance (pricing, routing, signer boundary) but does not explicitly compare this tool to alternatives. It implies usage for read/discovery workflows via the 'Intent' note, but lacks direct when-to-use or when-not-to-use directives relative to other tools.

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

lulo_withdrawLulo WithdrawC
Destructive
Inspect

Withdraw from Lulo lending position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)
amountYesRaw token amount (smallest unit)
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

Annotations already include destructiveHint: true and readOnlyHint: false. The description only adds 'Withdraw from Lulo lending position', which does not disclose additional behavioral traits such as confirmation requirements, side effects, or error conditions. The SAP MCP context focuses on payment mechanics rather than tool behavior.

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

Conciseness2/5

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

The description contains a substantial amount of SAP MCP boilerplate that repeats across many tools. The first sentence is concise, but the subsequent paragraphs are verbose and could be significantly shortened. The structure is acceptable but lacks prioritization of core information.

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

Completeness2/5

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

Despite having an output schema, the description does not explain what is returned (e.g., transaction signature, confirmation). It lacks details on prerequisites (e.g., existing position), failure scenarios, and exact behavior. The SAP MCP context adds environmental context but not operational 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?

Input schema has 100% coverage with clear descriptions for wallet (Solana public key), mint (token mint address), amount (raw token amount). The description does not add further meaning beyond the schema. Baseline score of 3 applies.

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

Purpose4/5

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

First sentence clearly states 'Withdraw from Lulo lending position', identifying the verb and resource. The title aligns. Distinguishes from sibling Lulo tools. However, the extensive SAP MCP context in the description may distract from the core purpose.

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

Usage Guidelines3/5

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

The description provides SAP MCP execution guidance including pricing, routing, and signing instructions. It mentions alternatives like sap_payments_call_paid_tool, but does not explicitly state when not to use this tool or compare with non-SAP tools. The guidance is environment-specific.

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

magicblock_balancemagicblock balanceCInspect

Read the base-chain SPL token balance for an address (public, no auth required)..

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL mint pubkey
addressYesOwner wallet pubkey
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

The description claims 'Read' behavior, yet annotations have readOnlyHint=false, creating a contradiction (flagged). It adds that the call is public and requires no auth, which is useful, but the generic execution guidance adds noise. With the contradiction, the transparency is undermined.

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

Conciseness2/5

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

The tool-specific part is only 12 words, but it is followed by lengthy, generic execution guidance that repeats across tools. This boilerplate reduces conciseness and front-loads irrelevant details. A more focused description would be better.

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

Completeness2/5

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

Given the tool's simplicity (read balance) and that an output schema exists, the description could be more complete. It lacks details about error cases, rate limits, or cluster usage. The contradiction with annotations further reduces completeness.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are well-described in the schema. The description adds minimal context beyond 'base-chain SPL token balance', which is not parameter-specific but provides overall context. Baseline 3 is appropriate as the description does not significantly augment parameter meaning.

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

Purpose4/5

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

The description clearly states 'Read the base-chain SPL token balance for an address', specifying the verb 'Read' and the resource 'SPL token balance'. It also notes it is 'public, no auth required', which distinguishes it from potential private alternatives. However, it does not explicitly differentiate from the sibling 'magicblock_privateBalance', which could be clearer.

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

Usage Guidelines3/5

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

The description mentions 'public, no auth required' and includes execution guidelines about free calling and routing, but does not explicitly state when to use this tool versus alternatives like magicblock_privateBalance or when not to use it. The guidance is more about execution context than usage decisions.

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

magicblock_challengemagicblock challengeAInspect

Generate a challenge string for the wallet to sign (step 1 of the PER auth flow)..

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pubkeyYesWallet pubkey that will sign the challenge
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already indicate not read-only, not destructive, not idempotent. Description adds that it generates a challenge but does not disclose any behavioral details like side effects or auth requirements beyond the PER flow 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?

Description is short with one core sentence plus repeated SAP guidance. It could be more concise by not duplicating the SAP block, but overall it is reasonably structured.

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

Completeness4/5

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

For a simple two-parameter tool with an output schema, the description provides enough context for usage. It does not detail the output format, but that is likely covered by the output schema.

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

Parameters3/5

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

Input schema has 100% coverage with parameter descriptions. Description adds context about the auth flow but does not significantly enhance parameter meaning beyond what schema already provides.

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

Purpose5/5

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

Description clearly states the tool generates a challenge string for wallet signing and identifies it as step 1 of the PER auth flow. This specific verb-resource combination ('generate a challenge string') distinguishes it from sibling magicblock tools like magicblock_login.

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

Usage Guidelines4/5

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

Description provides SAP MCP workflow context including pricing, routing, and signer boundary. However, it does not explicitly state when to use this tool versus alternatives or when not to use it.

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

magicblock_depositmagicblock depositAInspect

Build an unsigned transaction to deposit SPL tokens from Solana into an Ephemeral Rollup. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Do not create local signing scripts. Builder fee applies.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintNoSPL mint. Defaults to USDC (mainnet) or devnet USDC
ownerYesWallet pubkey that owns the tokens and will sign
amountYesBase-unit amount to deposit (integer, minimum 1)
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL
validatorNoOptional ER validator pubkey. Defaults to the selected ephemeral RPC identity.
idempotentNoUse idempotent variants for preparatory init instructions (default true)
initIfMissingNoInitialize the transfer queue if missing (default true)
initAtasIfMissingNoInitialize associated token accounts if missing (default true)
initVaultIfMissingNoInitialize the vault if missing (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations indicate readOnlyHint=false, openWorldHint=true, etc. The description adds value by clarifying that it only builds an unsigned transaction (no state mutation) and explains the signer boundary: 'hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.' This goes beyond annotations.

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

Conciseness3/5

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

The description is front-loaded with the purpose but includes a repeated block of SAP execution guidance that also appears in the input schema description. It could be more concise without losing key 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 complexity (builder tool with payment workflow), the description covers the full flow: build, preview, sign, submit, along with pricing and routing guidance. It references necessary sibling tools and output schema exists, so no need to detail return values.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description adds minimal per-parameter detail beyond the schema (e.g., defaults for mint and cluster). It does not significantly enhance parameter understanding.

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

Purpose4/5

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

The description clearly states 'Build an unsigned transaction to deposit SPL tokens from Solana into an Ephemeral Rollup.' The verb 'deposit' and resource 'Ephemeral Rollup' are specific. However, it does not explicitly differentiate from sibling tools like magicblock_withdraw, though the purpose is distinct.

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

Usage Guidelines4/5

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

The description provides explicit workflow guidance: 'Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction' and warns 'Do not create local signing scripts.' It also includes SAP execution guidance on estimation, pricing, and routing. Missing explicit when-not-to-use or alternatives, but sufficient for typical use.

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

magicblock_getAccountInfomagicblock getAccountInfoA
Read-onlyIdempotent
Inspect

Fetch account information (data, lamports, owner, executable, space) via the Magic Router..

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesAccount pubkey to fetch info for
encodingNoEncoding for account data
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readonly, idempotent, nondestructive. Description adds context about Magic Router, pricing, routing, and signer boundary ('hosted reads/builders never receive keypair bytes'). This goes beyond annotations.

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

Conciseness5/5

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

The description is concise (one sentence plus execution guidance) with front-loaded purpose. No redundant or unnecessary 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?

The description covers purpose, usage, and behavioral context well. With output schema present, it does not need to detail return values. Complete for a read tool with good annotations.

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

Parameters3/5

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

Schema coverage is 100% with good descriptions for each parameter. The description does not add new meaning or constraints beyond what the schema provides, achieving baseline.

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

Purpose5/5

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

The description clearly states the verb 'Fetch' and resource 'account information' with specific fields (data, lamports, owner, executable, space). It distinguishes from sibling magicblock tools like balance, deposit, swap, etc.

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

Usage Guidelines4/5

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

The description provides explicit intent ('read/discovery workflow') and pricing/routing guidance. It does not explicitly name alternatives but implies usage for readonly operations, which is sufficient given the annotations.

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

magicblock_getBlockhashForAccountsmagicblock getBlockhashForAccountsA
Read-onlyIdempotent
Inspect

Get a blockhash and last valid block height for a batch of account addresses (max 100)..

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountsYesArray of account addresses (max 100)
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds useful behavioral context: it's a paid read, requires cost estimation, and details about signer boundaries. This goes beyond annotations to inform the agent about external cost and execution constraints.

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 partially concise with a clear first sentence, but the repetitive SAP MCP execution guidance block is lengthy and could be condensed. It's functional but not maximally efficient.

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

Completeness4/5

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

Given the tool has an output schema (not shown but present), the description reasonably covers what the tool does, batch limits, and execution context. It briefly mentions output (blockhash and last valid block height), which is sufficient for completeness.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description's mention of 'batch of account addresses (max 100)' mirrors the schema description. It adds no new parameter-specific meaning beyond what the schema already provides.

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

Purpose5/5

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

The description clearly states the tool retrieves a blockhash and last valid block height for a batch of account addresses, with a specific verb ('Get') and resource. It distinguishes from sibling tools like magicblock_getAccountInfo by focusing on blockhash-related 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?

The description lacks guidance on when to use this tool versus alternatives. The SAP MCP execution guidance focuses on pricing and routing, not on comparing this tool to other similar tools like magicblock_getBlockhashForAccounts vs. other blockhash or account tools.

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

magicblock_getDelegationStatusmagicblock getDelegationStatusA
Read-onlyIdempotent
Inspect

Check whether a Solana account is delegated to an Ephemeral Rollup. Returns authority, owner, delegation slot, and lamports..

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
accountYesAccount pubkey to check delegation status for
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint false. The description adds value by specifying the returned fields (authority, owner, delegation slot, lamports) and stating the intent as 'read/discovery workflow'. No contradictions.

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

Conciseness2/5

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

The description is burdened with a large block of SAP MCP execution guidance that appears generic and unrelated to the core function. This boilerplate text reduces conciseness and may confuse the agent.

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

Completeness4/5

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

For a simple read-only tool with strong annotations and an output schema, the description is sufficient. The SAP block, while noisy, does not omit essential details. The core behavior and return structure are clear.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The tool description does not add additional semantics beyond what the schema already provides, but also does not mislead. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool's action: 'Check whether a Solana account is delegated to an Ephemeral Rollup.' This is a specific verb+resource combination that distinguishes it from siblings like magicblock_getAccountInfo or magicblock_getRoutes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, context, or exclusions. The SAP guidance block is generic and not specific to this tool's selection.

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

magicblock_getIdentitymagicblock getIdentityA
Read-onlyIdempotent
Inspect

Get the identity and FQDN of the current ER Validator node..

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate read-only, idempotent, non-destructive. Description adds pricing and routing details, which is valuable. No contradiction.

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

Conciseness2/5

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

The description is overly verbose with repetitive SAP guidance template. Could be trimmed to one sentence for core purpose.

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

Completeness4/5

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

Given simple read operation, annotations and output schema cover basics. Description adds pricing and signer boundary context, making it complete for agent use.

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

Parameters3/5

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

Schema coverage is 100% with one enum parameter. Description does not add meaning beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

Clearly states it gets the identity and FQDN of the current ER Validator node. Distinguishes from sibling magicblock tools as a read-only identity query.

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

Usage Guidelines4/5

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

Provides explicit context for read/discovery workflow, pricing, estimation, and routing. Does not explicitly state when not to use, but gives clear usage guidance.

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

magicblock_getRandomnessResultmagicblock getRandomnessResultA
Read-onlyIdempotent
Inspect

Check whether a VRF request has been fulfilled by reading the RandomnessRequest account on-chain. Returns fulfilled status, random bytes (if available), and the request metadata..

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'
requestKeyYesVRF request PDA key from magicblock_requestRandomness

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds context about being a paid read and the signer boundary, which is valuable beyond annotations. No contradictions.

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

Conciseness4/5

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

The main description is concise and front-loaded. However, the SAP guidance section is somewhat repetitive, stating the same intent and routing multiple times, which slightly reduces conciseness.

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?

The description explains what the tool does (reads account), what it returns (status, bytes, metadata), and the required requestKey. Since an output schema exists, it does not need to detail return values further. Complete for its purpose.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for both parameters. The description does not add new meaning beyond what's in the schema, so baseline of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool checks VRF request fulfillment by reading an on-chain account, and returns status, random bytes, and metadata. It distinguishes itself from sibling magicblock_requestRandomness (which creates the request) and other tools.

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

Usage Guidelines5/5

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

The description includes explicit SAP MCP execution guidance on intent (read/discovery), pricing (paid read-premium), and routing (estimate cost first, use payment tool if needed). It tells when to use it and provides steps for proper usage.

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

magicblock_getRoutesmagicblock getRoutesA
Read-onlyIdempotent
Inspect

List available Ephemeral Rollup nodes from the Magic Router (identity, FQDN, fee, block time, country)..

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds context about the API source (Magic Router) and the fields returned. It also includes the SAP guidance about being a paid builder, which provides additional behavioral context beyond annotations.

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

Conciseness4/5

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

The core description is a single clear sentence. The additional SAP guidance block is lengthy but necessary for proper usage. The structure separates purpose from execution guidance, which is helpful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 output schema exists (stated but not shown) and annotations cover safety, the description is complete enough. It explains the output and provides workflow context. For a simple listing tool, this is sufficient.

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

Parameters4/5

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

Schema coverage is 100% with one parameter (endpoint) described via enum. The description adds value by listing the output fields, which helps the agent understand what data to expect. It does not repeat schema details but complements them.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'List available Ephemeral Rollup nodes from the Magic Router' and specifies the output fields (identity, FQDN, fee, block time, country). This distinguishes it from other magicblock tools and other listing tools.

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

Usage Guidelines4/5

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

The description includes SAP MCP execution guidance that explicitly states 'Intent: read/discovery workflow' and provides pricing and routing instructions. While it does not directly specify when not to use this tool, the context makes it clear it is a read-only listing tool.

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

magicblock_getSignatureStatusesmagicblock getSignatureStatusesA
Read-onlyIdempotent
Inspect

Check the confirmation status (processed/confirmed/finalized) of one or more transaction signatures..

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'
signaturesYesArray of transaction signatures

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds no new behavioral traits beyond re-stating the obvious. It does not contradict annotations. The SAP guidance adds execution context but not behavioral disclosure.

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

Conciseness4/5

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

The main description is a single clear sentence. The SAP guidance adds length but is structured and provides necessary execution context. However, it could be separated or trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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, the purpose is well-covered. The output schema exists to handle return values. The description could mention that it returns statuses for each signature, but annotations and schema cover the rest adequately.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The tool description does not add any additional meaning beyond what the schema already provides. The SAP guidance is not parameter-specific.

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

Purpose5/5

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

The description clearly states the tool checks the confirmation status (processed/confirmed/finalized) of transaction signatures. The verb 'Check' and resource 'confirmation status' are specific. This distinguishes it from sibling tools like magicblock_getAccountInfo or magicblock_balance.

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

Usage Guidelines4/5

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

The description includes 'Intent: read/discovery workflow' which implies when to use the tool. However, it does not explicitly mention alternatives or when not to use it. The SAP guidance provides pricing and routing context but does not compare with sibling tools.

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

magicblock_healthmagicblock healthBInspect

Check the health status of the MagicBlock Private Payments API..

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

Annotations indicate non-readOnly and non-destructive, but the description adds no additional behavioral context (e.g., rate limits, side effects). The generic text clutters without adding value.

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 core purpose is stated concisely in one sentence, but the description is bloated with generic SAP execution guidance that is not specific to this tool. This reduces 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?

While the tool is simple with no parameters and an output schema exists, the description's inclusion of irrelevant payment routing and pricing instructions for a health check tool is misleading and incomplete.

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

Parameters4/5

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

There are zero parameters, and the input schema covers 100%. The description does not need to add meaning beyond the schema. The irrelevant boilerplate does not harm parameter semantics.

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

Purpose5/5

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

The description clearly states the tool checks the health status of the MagicBlock Private Payments API, using a specific verb and resource. It is distinct from sibling magicblock tools that perform other actions like balance 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 provides no guidance on when to use this tool versus alternatives. The generic SAP execution guidance text is irrelevant and does not clarify usage context.

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

magicblock_initializeMintmagicblock initializeMintAInspect

Build an unsigned transaction that initializes a validator-scoped transfer queue for a mint. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL mint to initialize a transfer queue for
ownerYesWallet pubkey that will sign the transaction
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL
validatorNoOptional ER validator pubkey

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

The description adds value beyond annotations by specifying that the tool builds an unsigned transaction and that a builder fee applies. Annotations already indicate it is not read-only and not destructive, but the description clarifies the exact operation (initializing a transfer queue) and the need for finalization locally when signing is required. No contradiction with annotations.

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

Conciseness2/5

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

The description is overly verbose, containing a large block of generic 'SAP MCP execution guidance' that is not specific to this tool and could be considered boilerplate. The important tool-specific info is front-loaded, but the extra fat reduces conciseness. Every sentence does not earn its place; the guidance could be moved elsewhere.

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

Completeness3/5

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

Given that the tool is a builder with an output schema (so return values are documented separately) and annotations provide some behavioral context, the description covers the essential workflow (build, then use preview/sign/submit). However, it does not mention error scenarios, prerequisites (e.g., mint must not already have a queue), or edge cases, which would improve completeness.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for each parameter. The tool description does not add additional semantics beyond what the schema already provides. For example, 'mint' is described as 'SPL mint to initialize a transfer queue for' in both, so the description adds no extra value. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states that the tool 'builds an unsigned transaction that initializes a validator-scoped transfer queue for a mint.' This is a specific verb-resource pair that distinguishes it from sibling magicblock tools (e.g., magicblock_swap, magicblock_transfer). The title also reinforces its purpose.

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

Usage Guidelines4/5

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

The description explicitly instructs the agent on how to use the output: 'use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit.' It also mentions builder fee applies. While it does not explicitly list when not to use it, the context is clear enough for an agent to follow the workflow.

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

magicblock_isMintInitializedmagicblock isMintInitializedCInspect

Check whether a mint has a validator-scoped transfer queue on the ephemeral RPC..

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL mint to check
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL
validatorNoOptional ER validator pubkey

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

The description describes the tool as a check, implying read-only, yet annotations have readOnlyHint=false. This inconsistency is not resolved by additional context. There is no disclosure of side effects, authorization needs, or other behavioral details beyond what annotations provide.

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

Conciseness2/5

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

The tool-specific description is one line, but a large, repetitive SAP execution guidance block (duplicated from the input schema) inflates the description without adding tool-specific value. This harms conciseness and structure.

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

Completeness2/5

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

The description lacks explanation of key concepts like 'validator-scoped transfer queue' and 'ephemeral RPC'. The output schema exists but is not summarized. The tool's behavior and result format are not described, leaving significant gaps for an agent.

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

Parameters3/5

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

Schema coverage is 100% with each parameter having a description. The tool description adds no extra meaning beyond the schema. The 'validator' parameter description is cryptic ('ER validator pubkey') but present in schema. Baseline 3 is appropriate.

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

Purpose4/5

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

The description states a specific verb ('Check whether') and resource ('mint has a validator-scoped transfer queue'), making the tool's purpose clear. However, it does not explicitly differentiate from sibling tools like magicblock_getAccountInfo or magicblock_initializeMint, which is a minor gap.

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. The SAP execution guidance block is about payment routing, not usage context or prerequisites. Agents are left to infer use from the purpose alone.

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

magicblock_loginmagicblock loginAInspect

Exchange a signed challenge for a bearer token (step 2 of PER auth flow). The token is used for private-balance and private transfers..

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pubkeyYesWallet pubkey that signed the challenge
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL
challengeYesChallenge string from magicblock_challenge
signatureYesWallet signature over the challenge string

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

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

Annotations already indicate the tool is not read-only, not idempotent, and not destructive. The description adds that it produces a bearer token for private operations, which is consistent. It does not disclose potential side effects like token expiration or rate limits, but the annotations cover basic safety traits adequately.

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 first sentence is concise and front-loaded with the core purpose. However, the subsequent SAP MCP execution guidance is lengthy, generic, and not specific to this tool, adding noise. The description could be more focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (authentication step), the description explains the purpose, step in the flow, and usage of the token. An output schema exists but is not described, which is acceptable. The description is complete enough for an agent to use correctly.

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

Parameters4/5

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

Schema description coverage is 100%, but the description adds value beyond the schema by clarifying that the challenge parameter originates from magicblock_challenge. This connects the parameter to the tool's workflow context, which aids correct parameter selection.

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

Purpose5/5

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

The description clearly states the tool exchanges a signed challenge for a bearer token, explicitly labeling it as step 2 of the PER auth flow. This distinguishes it from the sibling tool magicblock_challenge (step 1) and other magicblock tools.

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

Usage Guidelines4/5

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

The description provides context by stating it is step 2 of the PER auth flow and that the token is used for private-balance and private transfers. It implicitly indicates that magicblock_challenge should be called first. However, it does not explicitly exclude alternative uses or list prerequisites.

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

magicblock_privateBalancemagicblock privateBalanceCInspect

Read the ephemeral-rollup SPL token balance for an address (requires bearer token from login)..

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL mint pubkey
addressYesOwner wallet pubkey
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL
authTokenYesBearer token from magicblock_login (required for private reads)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

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

There is a contradiction: the description states 'Read' but annotations set readOnlyHint=false, suggesting possible write side effects. Additionally, the description does not disclose behavioral details beyond the read intent and bearer token requirement, missing information on potential side effects or idempotency.

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

Conciseness3/5

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

The description is front-loaded with a clear one-sentence purpose, but it is padded with repetitive SAP MCP boilerplate that appears both in the description and input schema. This reduces conciseness and adds noise without new information.

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

Completeness3/5

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

Given the presence of an output schema, the description does not need to explain return values. However, it lacks explanations of 'ephemeral-rollup' and how this tool differs from magicblock_balance. The SAP guidance provides some operational context but does not fully compensate for missing tool-specific details.

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

Parameters3/5

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

Input schema has 100% coverage with descriptions for all parameters. The description adds the context that 'authToken' is a bearer token from login, which is already in the schema. No additional meaning beyond what the schema provides, so baseline score of 3 applies.

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

Purpose4/5

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

The description clearly states it reads an ephemeral-rollup SPL token balance, which is a specific verb and resource. It also mentions the requirement for a bearer token from login, differentiating it from other balance tools. However, it does not explicitly distinguish from the sibling 'magicblock_balance' tool, leaving some ambiguity.

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

Usage Guidelines2/5

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

The description includes SAP MCP pricing and routing guidance but lacks explicit instructions on when to use this tool versus alternatives. No context is provided for exclusion of other tools or prerequisites beyond bearer token requirement.

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

magicblock_requestRandomnessmagicblock requestRandomnessAInspect

Request provably fair on-chain randomness from the MagicBlock VRF oracle (Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz). Builds an unsigned transaction that invokes request_randomness on the VRF program. Use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction; do not create local signing scripts. The oracle queue defaults to the base-layer queue (Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh); set ephemeral=true to use the ER queue for delegated programs. Builder fee applies.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
payerYesWallet pubkey that will pay for the request and sign the transaction
endpointNoMagicBlock Router endpoint: 'mainnet' or 'devnet'
ephemeralNoUse the Ephemeral Rollup oracle queue instead of the base-layer queue (default false)
callerSeedYesSeed string for the VRF request — committed before randomness is produced. The seed is hashed to 32 bytes.
callbackAccountsYesAccounts to pass to the callback instruction
callbackProgramIdYesProgram ID of the callback program (the program that will consume the randomness)
callbackDiscriminatorYesBase58 or hex discriminator for the callback instruction in your program

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate this is a write operation (readOnlyHint=false) and not destructive. The description adds valuable behavioral context: it builds an unsigned transaction, requires estimation, involves a paid builder, and respects signer boundaries (no keypair bytes). No contradictions with annotations.

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

Conciseness3/5

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

The description is reasonably well-structured with a first paragraph explaining the tool and a second paragraph for SAP MCP execution guidance. However, the second paragraph contains repetitive boilerplate that could be condensed, making it less concise than ideal.

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

Completeness4/5

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

Given the tool's complexity (7 parameters, output schema exists), the description covers the essential context: the oracle addresses, queue options, payment and signing workflow, and output as an unsigned transaction. It is complete enough for an agent to use the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are already well-documented. The description adds minimal extra meaning beyond the schema, such as noting that the seed is hashed to 32 bytes. This meets the baseline but does not significantly augment parameter understanding.

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

Purpose5/5

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

The description clearly states the tool requests on-chain randomness from the MagicBlock VRF oracle and builds an unsigned transaction. It distinguishes itself from sibling tools like magicblock_getRandomnessResult by focusing on the request step.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use the tool, including the workflow of using sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction. It also instructs not to create local signing scripts and explains queue options and payment routing.

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

magicblock_swapmagicblock swapA
Destructive
Inspect

Build an unsigned swap transaction from a quote. 'public' mode passes through Jupiter. 'private' mode routes output through scheduled private transfer with delay and split, requires destination, and currently rejects wSOL output because live mainnet testing found stuck-fund risk in MagicBlock shuttle delivery. Agents must continue with sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction; never write temporary signing scripts or read keypair JSON. Value-action fee applies.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
splitNoPrivate only. Number of queue entries to split across (1-14)
validatorNoOptional validator pubkey for the transfer-queue PDA
maxDelayMsNoPrivate only. Latest (ms) the queued transfer may settle (<= 600000)
minDelayMsNoPrivate only. Earliest (ms) the queued transfer may settle
visibilityNo'public' = transparent Jupiter pass-through, 'private' = output routed through scheduled private transfer
clientRefIdNoPrivate only. Optional u64 client correlation ID
destinationNoFinal private-transfer recipient (required when visibility='private')
quoteResponseYesQuote response object from magicblock_swapQuote (pass as-is)
userPublicKeyYesWallet that will sign the swap transaction
wrapAndUnwrapSolNoAuto wrap/unwrap native SOL when needed (default true)
asLegacyTransactionNoBuild a legacy transaction (not allowed when visibility=private, default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

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

Annotations already indicate destructive and non-idempotent behavior. The description adds value by detailing private mode constraints (wSOL stuck-fund risk, destination requirement) and the workflow prohibition against scripting. No contradiction with annotations.

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

Conciseness3/5

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

The description front-loads the purpose but includes a long second paragraph of generic SAP MCP execution guidance that is likely repeated across tools, making it less concise than ideal.

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

Completeness4/5

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

The tool has 11 parameters and a nested object, but schema coverage is full and the description covers key behavioral nuances (private mode, wSOL risk, workflow). An output schema exists, so return format is handled externally. The description is sufficiently complete for agent use.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions. The description adds minimal extra meaning beyond the schema, such as noting private-only fields and the wSOL rejection. It does not significantly compensate for any gaps.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Build an unsigned swap transaction from a quote.' It differentiates public and private modes, but does not explicitly distinguish from sibling tools like jupiter_swap or magicblock_swapQuote, though context implies magicblock-specific swaps.

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

Usage Guidelines4/5

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

The description provides explicit workflow steps: 'Agents must continue with sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction; never write temporary signing scripts or read keypair JSON.' It also warns about wSOL restrictions and calls to sap_estimate_tool_cost first. However, it lacks explicit comparison to alternative swap tools.

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

magicblock_swapQuotemagicblock swapQuoteA
Destructive
Inspect

Get a swap quote between two SPL mints (proxies Triton Metis swap API). Pass the result into magicblock_swap. Lightweight read tier; use this before any value-moving swap.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRaw amount to swap (unsigned integer string, e.g. '1000000')
swapModeNoSwap mode: fixed input or fixed output amount
inputMintYesInput token mint address
outputMintYesOutput token mint address
maxAccountsNoApproximate maximum account budget for the route (default 64)
slippageBpsNoSlippage threshold in basis points (e.g. 50 = 0.5%)
platformFeeBpsNoOptional platform fee in basis points
onlyDirectRoutesNoLimit routing to a single hop (default false)
restrictIntermediateTokensNoRestrict intermediate tokens to a more stable set (default false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

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

The description states 'Get a swap quote' and 'Lightweight read tier', implying a read-only operation, but annotations set destructiveHint=true, indicating potential side effects. This is a direct contradiction. The description adds some context (proxy, execution guidance) but the contradiction fundamentally undermines transparency.

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

Conciseness3/5

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

The description is front-loaded with the core purpose, but the SAP MCP execution guidance is verbose and contains repetitive phrases (e.g., 'estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively' appears twice). It could be more succinct without losing 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?

While the description covers purpose, usage, and execution details, the contradiction with annotations (destructiveHint) creates confusion about the tool's true nature. An output schema exists, so return values are covered, but the behavioral inconsistency reduces trust. It is adequate but not fully complete.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add meaningful parameter explanations beyond what the schema already provides. The schema itself is detailed with descriptions for all 9 parameters. No extra semantics are contributed by the description.

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

Purpose5/5

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

The description clearly states the tool gets a swap quote between two SPL mints, acting as a proxy to Triton Metis API. It explicitly distinguishes from the sibling magicblock_swap by saying 'use this before any value-moving swap' and 'Pass the result into magicblock_swap', making the purpose specific and unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance ('Lightweight read tier; use this before any value-moving swap') and names the exact sibling tool (magicblock_swap) for execution. It also gives comprehensive execution steps including pricing, routing, and signer boundary handling, enabling correct usage.

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

magicblock_transfermagicblock transferAInspect

Build an unsigned SPL token transfer (public or private) through an Ephemeral Rollup. Supports base/ephemeral source and destination, delayed settlement, split transfers, and gasless mode. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient wallet pubkey
fromYesSender wallet pubkey
memoNoOptional memo appended to the transaction
mintYesSPL mint pubkey
splitNoPrivate only. Number of queue entries to split across (1-15, default 1)
amountYesBase-unit amount to transfer (integer, minimum 1)
legacyNoSkip lookup-table compilation, return a legacy transaction (default false)
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL
gaslessNoWhen true, uses configured sponsor as fee payer (default false)
authTokenNoBearer token from login (required for private transfers)
toBalanceYesWhere the recipient should receive funds
validatorNoOptional ER validator pubkey
maxDelayMsNoPrivate only. Latest (ms) the queued transfer may settle (<= 600000)
minDelayMsNoPrivate only. Earliest (ms) the queued transfer may settle. Default '0'
visibilityYes'public' = transparent SPL transfer, 'private' = routed through Private ER with delayed+split settlement
clientRefIdNoPrivate only. Encrypted client reference ID for payment confirmation
fromBalanceYesWhere the sender's balance is held
initIfMissingNoInitialize transfer queue if missing (default true)
initAtasIfMissingNoInitialize recipient ATA if missing (default true)
initVaultIfMissingNoInitialize vault if missing (default false). WARNING: when legacy=true, setting this to true can exceed the 1232-byte legacy transaction limit and produce TRANSACTION_TOO_LARGE errors. Prefer v0 (legacy=false) when vault init is needed.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Clearly states it builds an unsigned transaction (no on-chain execution), which complements annotations (readOnlyHint=false, not destructive). Adds context that a builder fee applies and that results must be finalized locally when signing is required. Could mention more about lack of side effects or state changes beyond building.

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?

Starts with main purpose, lists features, then workflow and guidance. Some duplication of the SAP MCP guidance in both description and schema description. Overall efficient but could be tightened slightly without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main concepts, workflow, and routing for a complex tool with 20 parameters and multiple modes. References follow-up tools. Does not explain error cases or limitations, but output schema reduces need for return-value explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description groups parameter concepts (base/ephemeral, delayed settlement, split, gasless) but does not explain individual parameters beyond what schema already provides. Provides conceptual grouping but no new detail for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it builds an unsigned SPL token transfer through an Ephemeral Rollup, with variants like public/private, delayed settlement, and gasless mode. Does not explicitly differentiate from sibling tools like sap_build_spl_transfer or spl-token_transfer, but the unique workflow and rollup context distinguish it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow: build unsigned transfer, then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction. Offers alternative hosted mode via sap_payments_finalize_transaction. Includes detailed 'SAP MCP execution guidance' covering intent, pricing, routing, and signer boundary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

magicblock_withdrawmagicblock withdrawA
Destructive
Inspect

Build an unsigned transaction to withdraw SPL tokens from an Ephemeral Rollup back to Solana. Then use sap_preview_transaction, sap_sign_transaction, and sap_submit_signed_transaction — or use sap_payments_finalize_transaction for 1-call preview+sign+submit (hosted mode). Builder fee applies.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesSPL mint on Solana
ownerYesWallet pubkey that owns the tokens and will sign
amountYesBase-unit amount to withdraw (integer, minimum 1)
clusterNoCluster: 'mainnet', 'devnet', or custom RPC URL
validatorNoOptional ER validator pubkey
idempotentNoUse idempotent variants for preparatory init instructions (default true)
escrowIndexNoOptional escrow index for the withdrawal
initIfMissingNoInitialize transfer queue if missing (default true)
initAtasIfMissingNoInitialize ATAs if missing (default true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds context that this builds an unsigned transaction (safe operation) and explains signer boundary, but could further detail the destructive effects when executed.

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 first sentence is clear and front-loaded, but the description is lengthy with repetitive SAP MCP execution guidance that could be condensed. Structure is adequate but not maximally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description covers the tool's purpose, workflow, and execution context well. It does not explain return values (handled by output schema) but is sufficient for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all 9 parameters fully described in the input schema. The description adds no new parameter information beyond a note to use exact field names, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'withdraw' and the resource 'SPL tokens from an Ephemeral Rollup back to Solana', distinguishing it from siblings like magicblock_deposit and magicblock_transfer.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow guidance: use with sap_preview_transaction, sap_sign_transaction, sap_submit_signed_transaction, or optionally sap_payments_finalize_transaction. Also includes detailed SAP MCP execution guidance on estimation, routing, and signer boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manifest_cancelOrderManifest Cancel OrderB
Destructive
Inspect

Cancel a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
orderIdYesOrder ID parameter for Manifest Cancel Order.
marketIdYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructiveHint=true. The description adds that 'hosted accountless write is blocked' and signer requirements, which are helpful. However, it doesn't describe the effect of cancellation or return behavior beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise, but the description becomes a verbose wall of repeated SAP boilerplate (pricing, routing, signing). Every sentence does not earn its place; the SAP context could be in a parent tool or beginning rather than repeated here.

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 cancellation tool, the description covers core behavior and constraints. However, it lacks details on success/error responses and prerequisites (e.g., existing order). The output schema likely covers returns, but the description could be more self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters described). The description repeats the parameter names but adds no extra semantics beyond the schema descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the tool cancels a limit order on a Manifest market, using a specific verb and resource. It distinguishes from siblings like openbook_cancelOrder by specifying 'Manifest market'.

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 includes extensive SAP MCP execution guidance but no explicit guidance on when to use this tool versus alternatives like openbook_cancelOrder or jupiter_cancelLimitOrder. The guidance is about pricing and signing, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manifest_createMarketManifest Create MarketAInspect

Create a new Manifest market for a token pair. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
creatorYesSolana public key (base58)
baseMintYesBase token mint
quoteMintYesQuote token mint

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false. The description adds concrete behavioral context: pricing (paid read-premium), routing (paid hosted call), and signer boundary (no keypair bytes). This informs the agent about cost estimation and local signing requirements, going beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, but includes a lengthy block of SAP MCP guidance that is repeated verbatim in the input schema description. This redundancy reduces conciseness. The structure is functional but could be more efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, no nested objects, and an output schema, the description covers purpose, execution workflow, and integration with SAP tools. It omits prerequisites like needing a funded wallet or understanding of Solana market creation, but overall provides sufficient context for 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?

Schema description coverage is 100%, so the schema already documents each parameter. The tool description does not add any additional semantic meaning for creator, baseMint, or quoteMint beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with "Create a new Manifest market for a token pair," which clearly specifies the action (create), the resource (Manifest market), and the object (token pair). This distinguishes it from sibling tools like manifest_cancelOrder, manifest_getOrderbook, and manifest_placeLimitOrder.

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 SAP MCP execution guidance on when to use complementary sap_* tools (e.g., sap_agent_identity_plan, sap_payments_call_paid_tool), but does not explicitly state when to use this tool versus alternatives like openbook_createMarket. The guidance is about ecosystem workflow, not comparative usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manifest_getOrderbookManifest Get OrderbookA
Read-onlyIdempotent
Inspect

Get the current orderbook for a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoDepth parameter for Manifest Get Orderbook.
marketIdYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint false. The description adds value by disclosing that the tool is 'paid read-premium', requires cost estimation, and that 'hosted reads/builders never receive keypair bytes', which are behavioral constraints beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is repetitive and includes lengthy boilerplate 'SAP MCP context' and 'execution guidance' that appears twice (once in description, once in input schema description). This reduces conciseness and front-loading of key 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 presence of an output schema (not shown), the description does not need to detail return values. It covers the core function and payment workflow. However, it lacks specific guidance on what the orderbook contains (e.g., bids/asks). Overall sufficient for the tool's 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?

Input schema coverage is 100% and the schema already describes parameters (marketId as Solana public key, depth as number). The description does not add additional meaning or examples beyond what the schema provides, so baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the current orderbook for a Manifest market', which is a specific verb+resource. It distinguishes from sibling tools like manifest_placeLimitOrder and manifest_cancelOrder which perform different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'read/discovery workflow' but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives. The generic SAP MCP context is not specific to this tool and lacks actionable selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

manifest_placeLimitOrderManifest Place Limit OrderAInspect

Place a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesSide parameter for Manifest Place Limit Order.
sizeYesOrder size in base tokens
priceYesLimit price
walletYesSolana public key (base58)
marketIdYesSolana public key (base58)
orderTypeNoOrder Type parameter for Manifest Place Limit Order.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it states that the tool is a paid write (read-premium), that hosted write is blocked, and outlines signer requirements. Annotations already indicate readOnlyHint=false and destructiveHint=false, and the description does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with SAP MCP boilerplate that may not be essential for all agents. The first sentence is clear, but subsequent paragraphs contain detailed execution guidance that could be condensed. Not optimally front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (not shown but noted), the description covers pricing, routing, and authentication context sufficiently. It does not detail return values or order lifecycle, but the output schema likely handles that. Overall, it is fairly complete for a limit order tool in this 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?

Input schema coverage is 100%, so the schema already describes all parameters. The description adds no extra meaning for parameters, relying on the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Place a limit order on a Manifest market,' which clearly states the verb and resource. However, it does not explicitly differentiate from sibling tools like manifest_cancelOrder or jupiter_createLimitOrder, leaving some ambiguity in a crowded toolset.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive, explicit guidance on when to use this tool versus others, including SAP MCP workflow context, pricing model, routing restrictions, signer boundary, and references to alternative tools for on-chain registration. This is highly informative for correct selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_configureRoyaltiesMetaplex-nft Configure RoyaltiesBInspect

Configure royalty fee and creator splits for an NFT. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesNFT mint address (base58)
creatorsYesCreator list with revenue shares (must sum to 100)
updateAuthorityYesSolana public key (base58)
sellerFeeBasisPointsYesRoyalty fee in bps

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive. The description adds that this tool requires user-controlled signing, that hosted writes are blocked, and that pricing is paid read-premium. It also warns to confirm metadata before writes. This is valuable behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long with multiple paragraphs of SAP MCP guidance that could be abbreviated or omitted. The core purpose is stated in one sentence, but the rest is repetitive and verbose for an AI agent to parse efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description does not need to cover return values. It covers prerequisites, signing, and pricing, but the inclusion of generic SAP workflow instructions clutters the essential information. For a mutation tool with 4 parameters, the description is adequate but not streamlined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters have schema descriptions, so the description does not add new meaning beyond restating 'must sum to 100' and 'bps'. The description does not provide further semantics like examples or validation rules.

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 starts with 'Configure royalty fee and creator splits for an NFT', which clearly states the verb and resource. Among siblings like metaplex-nft_mintNFT and metaplex-nft_updateMetadata, this tool is specifically for royalties, so it's distinct. However, the description contains extensive SAP MCP boilerplate that dilutes the core purpose, making it less immediately clear for an AI agent.

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 says 'Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows.' This indicates broad applicability but does not explicitly state when not to use or compare with alternatives. It gives preconditions but no exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_delegateAuthorityMetaplex-nft Delegate AuthorityAInspect

Delegate a specific authority (update, mint, freeze, collection) to another wallet. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesNFT mint address (base58)
newAuthorityYesSolana public key (base58)
authorityTypeYesType of authority to delegate
currentAuthorityYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=false. Description adds context about write operation and signing requirements: 'Signer boundary: user-controlled local profile or external signer.' No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is verbose and repetitive, including boilerplate SAP MCP context that is not specific to this tool. The core purpose is front-loaded, but extraneous text reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters and an output schema, the description provides adequate pre-conditions (e.g., 'Confirm metadata URI, collection mint...') and operational context. It covers the workflow sufficiently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. Description does not add significant new meaning beyond the schema, but it reiterates the authority types. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Delegate a specific authority (update, mint, freeze, collection) to another wallet.' This is a specific verb+resource, and it differentiates from sibling tools like revokeAuthority and mintNFT.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides usage context: 'Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows.' It implies when to use but does not explicitly state when not to use or compare to alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_deployCollectionMetaplex-nft Deploy CollectionAInspect

Deploy a new NFT collection via Metaplex. Returns the collection mint and metadata addresses. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYesURI to collection metadata JSON
nameYesCollection name
symbolYesCollection symbol
creatorsNoCreator list with revenue shares (must sum to 100)
authorityYesCollection authority wallet
isMutableNoIs Mutable parameter for Metaplex-nft Deploy Collection.
maxSupplyNoMax NFTs in collection (0 = unlimited)
sellerFeeBasisPointsNoRoyalty fee in bps (500 = 5%)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond annotations by detailing payment routing, signing requirements, and execution constraints (e.g., hosted accountless write blocked). Discloses side effects like collection creation and agent identity setup.

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?

Contains redundant SAP MCP guidance that also appears in the schema description. The core purpose is front-loaded but the text is longer than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, returns, prerequisites, and execution constraints. Lacks details on how output addresses are used in subsequent steps, but overall adequate for a write tool with output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description adds no extra parameter-level meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it deploys a new NFT collection and returns mint and metadata addresses. However, it does not explicitly differentiate from sibling tools like mintNFT, though the context of 'collection' vs 'mint' is implied.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides some usage context ('use for NFT collection workflows') and prerequisites ('confirm metadata URI, collection mint...'), but lacks explicit when-not-to-use or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_mintNFTMetaplex-nft Mint N F TAInspect

Mint a new NFT via Metaplex. Supports both standard and compressed (cNFT) minting. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriYesURI to NFT metadata JSON (image, attributes, etc.)
nameYesNFT name
symbolNoNFT symbol
creatorsNoCreators parameter for Metaplex-nft Mint N F T.
authorityYesMint authority wallet
isMutableNoIs Mutable parameter for Metaplex-nft Mint N F T.
recipientNoSolana public key (base58)
collectionNoNFT mint address (base58)
merkleTreeNoSolana public key (base58)
isCompressedNoMint as compressed NFT (cNFT) for lower cost
sellerFeeBasisPointsNoSeller Fee Basis Points parameter for Metaplex-nft Mint N F T.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by detailing the write workflow, local-signer requirement, pricing model (paid read-premium), and routing constraints. It also warns against calling as a paid hosted write and clarifies the signer boundary. This adds significant behavioral context, though the large amount of SAP-specific jargon may reduce clarity for a general agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is excessively long, including multiple paragraphs of SAP MCP context and execution guidance that could be more concise or structured. While the first sentence is clear, the overall verbosity detracts from quick comprehension and violates the principle that every sentence should earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (11 parameters, output schema exists), the description covers key aspects like support for standard and compressed NFTs, prerequisites, and execution context. However, it does not explain the return value or expected output, and the large amount of SAP-specific guidance may be unnecessary for an agent. An output schema is provided, reducing the need for return value description, but the lack of output description is still a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all parameters with descriptions (100% coverage), so the description does not need to add per-parameter semantics. The description mentions a few parameters contextually (metadata URI, collection mint, creators) but does not provide additional meaning beyond what is in the schema, meeting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Mint a new NFT via Metaplex' with a specific verb and resource. It also specifies support for both standard and compressed NFTs, and lists the use cases for collection, mint, metadata, royalty, creator verification, etc., which distinguishes it from sibling tools like deployCollection or updateMetadata.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use this tool ('when the agent also needs an NFT collection, badge, or verifiable media asset') and includes important prerequisites (confirm metadata URI, collection mint, creators, etc.). However, it does not explicitly exclude scenarios where other specific Metaplex tools should be used instead, though the purpose statement effectively differentiates it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_revokeAuthorityMetaplex-nft Revoke AuthorityC
Destructive
Inspect

Revoke (remove) a specific authority. Irreversible for some types. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesNFT mint address (base58)
authorityYesCurrent authority holder
authorityTypeYesAuthority Type parameter for Metaplex-nft Revoke Authority.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions 'Irreversible for some types,' which adds to the destructiveHint annotation. However, it does not elaborate on which types are irreversible or describe other side effects. The extensive execution guidance (pricing, routing) is relevant to invocation but not to operational behavior beyond what annotations already indicate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose with repeated SAP MCP execution guidance that is also present in the schema description. The core purpose is buried under lengthy context, making it less efficient for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values are covered. The description provides some contextual warnings ('confirm before writes') and lists supported authority types implicitly via the parameter enum. However, it lacks clear prerequisites or a statement of what changes are irreversible, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage, so the description need not add parameter info. It adds no extra meaning beyond what the schema provides (e.g., 'mint is base58 address'). Thus, baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Revoke (remove) a specific authority.' It also lists related workflows (collection, mint, metadata, etc.), making the purpose understandable. However, it does not explicitly differentiate from sibling tools like delegateAuthority, which would earn a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes generic phrases like 'Use these Metaplex tools when the agent also needs an NFT collection...' but lacks explicit guidance on when to choose revokeAuthority over alternatives. It does not state when not to use it or mention any prerequisites beyond confirming metadata.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_setAndVerifyCollectionMetaplex-nft Set And Verify CollectionBInspect

Set and verify a collection on an NFT in a single transaction. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesNFT mint address (base58)
collectionYesNFT mint address (base58)
updateAuthorityYesNFT update authority
collectionAuthorityYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a write operation (readOnlyHint=false) and non-destructive. The description confirms it's a write and adds that hosted accountless writes are blocked and user signing is required. However, it does not explain side effects on the NFT state (e.g., if the collection already exists) or error conditions beyond the input. The behavioral context is partially provided but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is excessively long and contains repetitive boilerplate about SAP MCP workflow, pricing, and routing that is largely irrelevant to the tool's specific purpose. The first sentence is concise, but the remainder dilutes the message and could be streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema, the description does not need to explain return values. However, it lacks critical details about post-invocation behavior, such as success confirmation, potential errors (e.g., invalid authority, existing collection), and state changes. The description focuses on system constraints rather than tool-specific outcomes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all 4 parameters with clear descriptions. The description adds minimal value, only cautioning to use exact field names and avoid private key material. With 100% schema coverage, the baseline is 3, and the description does not significantly enhance parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it sets and verifies a collection on an NFT in a single transaction. This is specific enough to convey the primary purpose. However, it does not explicitly distinguish from sibling tools like metaplex-nft_verifyCollection or metaplex-nft_deployCollection, relying on context rather than direct comparison.

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 some guidance, such as confirming metadata URI and ownership before writes, and mentions that these Metaplex tools should be used when an NFT collection or badge is needed. However, it lacks explicit when-to-use or when-not-to-use guidance relative to sibling tools, and the usage context is mixed with extensive SAP MCP system instructions that may confuse the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_updateMetadataMetaplex-nft Update MetadataBInspect

Update NFT metadata fields (name, symbol, URI, creators, royalties, authority). SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoNew metadata URI
mintYesNFT mint address
nameNoNew name
symbolNoNew symbol
creatorsNoCreators parameter for Metaplex-nft Update Metadata.
isMutableNoIs Mutable parameter for Metaplex-nft Update Metadata.
updateAuthorityYesCurrent update authority
newUpdateAuthorityNoSolana public key (base58)
primarySaleHappenedNoPrimary Sale Happened parameter for Metaplex-nft Update Metadata.
sellerFeeBasisPointsNoSeller Fee Basis Points parameter for Metaplex-nft Update Metadata.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations, detailing that this is a write operation requiring local signing, specifying pricing as 'paid read-premium', and noting routing restrictions. It aligns with annotations (readOnlyHint=false, destructiveHint=false) and does not contradict them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long and includes tangential details about SAP MCP context, agent identity, and execution guidance that could be condensed or placed elsewhere. The core purpose is front-loaded, but the verbosity detracts from 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?

Given the tool's complexity (10 parameters, write operation), the description covers execution context (pricing, routing, signing) but does not mention the output or return value, even though an output schema exists. It is adequate but has room for improvement.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 10 parameters, so the description does not need to add much. The description lists the fields but provides no additional semantic detail beyond what the schema already offers. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool updates NFT metadata fields such as name, symbol, URI, creators, royalties, and authority. It identifies the resource and action, but does not explicitly differentiate from sibling tools like metaplex-nft_mintNFT or metaplex-nft_deployCollection, which have distinct purposes.

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 some usage context, including workflows for collection, mint, metadata, royalty, and authority operations, and advises confirming certain fields before writes. However, it lacks explicit guidance on when not to use this tool or how it compares to alternatives among the sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_verifyCollectionMetaplex-nft Verify CollectionBInspect

Verify an NFT as part of a collection. SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesNFT mint to verify
collectionYesCollection mint
collectionAuthorityYesCollection authority wallet

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are minimal (readOnlyHint false, etc.), so the description carries the burden. It mentions 'operation class write' but does not explain that this tool modifies on-chain state, requires a signed transaction, or incurs cost. The extensive SAP MCP context overshadows basic behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long with repetitive SAP MCP boilerplate that is not specific to this tool. The first sentence is effective, but the remainder is verbose and includes irrelevant context, making it inefficient for agent consumption.

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 write nature and existence of an output schema, the description fails to explain what the tool returns or the on-chain effects. It omits critical details such as transaction flow, signer requirements, and state changes, relying instead on generic SAP MCP instructions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 basic descriptions for each parameter. The tool description adds no additional meaning beyond what the schema provides, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Verify an NFT as part of a collection,' which clearly identifies the action and resource. The tool name and title confirm this, and the context mentions 'collection verification,' differentiating it from sibling tools like setAndVerifyCollection and verifyCreator.

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 general guidance on prerequisites (confirm metadata URI, collection mint, etc.) and mentions using Metaplex tools for NFTs, but it lacks explicit differentiation from alternatives like setAndVerifyCollection. It does not clearly state when to use this tool versus other verification tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

metaplex-nft_verifyCreatorMetaplex-nft Verify CreatorAInspect

Verify a creator on an NFT's metadata (requires creator's signature). SAP MCP context: Protocol metaplex-nft; operation class write. Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows. Confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes. For agent identity, plan with sap_agent_identity_plan, register the SAP on-chain profile through sap_payments_register_agent, then use agentUri or metadataUri to point at off-chain or NFT-backed metadata. Use these Metaplex tools when the agent also needs an NFT collection, badge, or verifiable media asset.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesNFT mint address (base58)
creatorYesCreator wallet to verify

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it is not read-only, and the description adds that it requires the creator's signature. No contradiction, and additional SAP context on pricing and routing is provided.

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 lengthy with generic SAP MCP boilerplate that repeats across tools, reducing conciseness despite a clear opening sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description includes signing requirements, pricing, and routing guidance, which is adequate for a write tool with an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no new meaning beyond what the schema already provides for mint and creator fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Verify a creator on an NFT's metadata') and the resource, distinguishing it from sibling tools like verifyCollection.

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 lists appropriate workflows (collection, mint, creator verification) but lacks explicit when-not-to-use or alternative recommendations among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meteora_addDLMMLiquidityMeteora Add D L M M LiquidityCInspect

Add liquidity to a Meteora DLMM pool with a distribution strategy. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
amountXYesRaw token amount (smallest unit)
amountYYesRaw token amount (smallest unit)
maxBinIdNoMax Bin ID parameter for Meteora Add D L M M Liquidity.
minBinIdNoMin Bin ID parameter for Meteora Add D L M M Liquidity.
strategyNoLiquidity distribution strategy
poolAddressYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation and non-destructive behavior, but the description adds no further behavioral context (e.g., token requirements, slippage, outcome). The SAP context is irrelevant to the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated by repetitive SAP MCP boilerplate that is unrelated to the tool. Only the first sentence is directly useful; the rest is noise and hinders readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema (not shown), the description fails to explain the output or provide details about the distribution strategy. It is incomplete for an AI agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with adequate parameter descriptions. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly specifies the action ('Add liquidity to a Meteora DLMM pool with a distribution strategy'), but it does not differentiate from other liquidity tools in the Meteora ecosystem (e.g., meteora_removeDLMMLiquidity) or explain what DLMM is.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contains extensive SAP MCP routing boilerplate but offers no guidance on when to use this tool versus alternatives like meteora_createDLMMPool or raydium-pools_addLiquidity. No usage context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meteora_createAlphaVaultMeteora Create Alpha VaultBInspect

Create a Meteora Alpha Vault for fair token launches with vesting. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
creatorYesSolana public key (base58)
startTimeNoVault start time (Unix timestamp)
maxDepositYesMaximum deposit cap
depositMintYesToken mint accepted for deposits
poolAddressYesSolana public key (base58)
vestingDurationYesVesting duration in seconds

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false) with potential side effects (openWorldHint=true). The description adds valuable context: 'hosted accountless write is blocked,' 'do not call this as a paid hosted write,' and signer boundary details. This goes beyond what annotations alone provide, though it could be more succinct.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, with the first sentence being concise but then followed by multiple sentences on SAP MCP context that could be separated or shortened. The structure mixes purpose with execution guidance, reducing clarity. Every sentence does not earn 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?

An output schema exists, so return values are covered. The description includes execution constraints and pricing hints. However, it lacks an overview of what the vault creation entails (e.g., on-chain steps, token vesting mechanics) and could be more complete given the tool's 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?

Input schema has 100% coverage with descriptions for each parameter. The description adds no additional meaning or usage hints for parameters. Baseline 3 is appropriate since the schema already documents the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a clear statement: 'Create a Meteora Alpha Vault for fair token launches with vesting.' This provides a specific verb and resource, distinguishing it from sibling Meteora tools (e.g., meteora_addDLMMLiquidity). However, the subsequent lengthy SAP MCP context may distract from the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description focuses on SAP MCP execution instructions (pricing, routing, signing) but does not compare to other Meteora tools or mention prerequisites. The agent is left without clear criteria for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meteora_createDLMMPoolMeteora Create D L M M PoolBInspect

Create a Meteora DLMM (Discrete Liquidity Market Maker) pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintXYesToken X mint
mintYYesToken Y mint
feeBpsNoFee Bps parameter for Meteora Create D L M M Pool.
amountXNoRaw token amount (smallest unit)
amountYNoRaw token amount (smallest unit)
binStepYesBin step size (defines fee tier and price granularity)
creatorYesSolana public key (base58)
initialPriceYesInitial Price parameter for Meteora Create D L M M Pool.
activationTypeNoActivation Type parameter for Meteora Create D L M M Pool.
activationPointNoActivation Point parameter for Meteora Create D L M M Pool.
priceRoundingUpNoPrice Rounding Up parameter for Meteora Create D L M M Pool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context about costing (paid read-premium) and routing restrictions (hosted accountless write blocked), which supplements the annotations. However, it does not describe side effects like on-chain state changes or required permissions, given the tool writes to the blockchain.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is not concise; it repeats the same SAP MCP context verbatim in both the description and input schema, wasting space. The first sentence is concise, but the rest is redundant boilerplate.

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 11 parameters (5 required), the description is incomplete. It does not explain what a DLMM pool is, how parameters like binStep or initialPrice interact, or what the output schema contains. The SAP context does not aid in understanding the core functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with descriptions for all 11 parameters, so the baseline is 3. The tool description does not add additional meaning beyond the schema; it only repeats 'Use exact field names from this schema; do not guess aliases or include private key material,' which is procedural rather than semantic.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with 'Create a Meteora DLMM (Discrete Liquidity Market Maker) pool,' which clearly specifies the action (create) and resource (DLMM pool). Among sibling tools like meteora_addDLMMLiquidity and meteora_createDynamicPool, this tool is distinct and its purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks guidance on when to use this tool versus alternatives like meteora_createDynamicPool or other pool creation tools. The SAP MCP context provided is about infrastructure and pricing, not about tool selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meteora_createDynamicPoolMeteora Create Dynamic PoolCInspect

Create a Meteora Dynamic AMM pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintAYesToken mint address (base58)
mintBYesToken mint address (base58)
amountAYesRaw token amount (smallest unit)
amountBYesRaw token amount (smallest unit)
creatorYesSolana public key (base58)
activationTypeNoActivation Type parameter for Meteora Create Dynamic Pool.
activationPointNoActivation slot/timestamp
tradeFeeNumeratorNoTrade fee numerator (default pool fee)
tradeFeeDenominatorNoTrade Fee Denominator parameter for Meteora Create Dynamic Pool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds context about costing ('paid read-premium') and signer requirements, but does not delve into other behavioral traits like token lockup, reversibility, or output details. The added value is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with extensive SAP MCP boilerplate (about 250 words). It is not concise; the core purpose is front-loaded, but the rest is unfocused and repeated in the schema description. Many sentences could be omitted or moved elsewhere.

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 100% schema coverage and an output schema, the description lacks explanations of the pool type (Dynamic AMM vs DLMM), usage scenarios, and differentiation from siblings. It does not cover edge cases or provide examples, leaving the tool under-specified for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description does not add parameter-specific meaning beyond what the schema provides, offering no additional semantics or examples. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Create a Meteora Dynamic AMM pool' with a specific verb and resource. However, it does not differentiate from sibling tool meteora_createDLMMPool, which also creates a pool. So purpose is clear but lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like meteora_createDLMMPool or other pool creation tools. The SAP MCP context is about payment and routing, not tool selection. No explicit when-to-use or when-not-to-use advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

meteora_removeDLMMLiquidityMeteora Remove D L M M LiquidityB
Destructive
Inspect

Remove liquidity from a Meteora DLMM position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
percentageNoPercentage parameter for Meteora Remove D L M M Liquidity.
positionAddressYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds meaningful context: it states that the tool is a write operation requiring user signing, that hosted accountless write is blocked, and that the tool should not be called as a paid hosted write. This goes beyond what annotations provide. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise, but the description then expands into a dense block of SAP-specific jargon that is not about the tool's core functionality. The title has irregular spacing ('D L M M'). The description would benefit from separating the domain purpose from the execution guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers SAP execution workflow well (pricing, routing, signer boundary) but lacks domain-specific completeness: it does not explain what the percentage parameter does, what the output contains (though an output schema exists), or prerequisites (e.g., position must exist). Adequate for the SAP context but missing key details for general use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The input schema descriptions are minimal ('Solana public key (base58)' for wallet and positionAddress, 'Percentage parameter...' for percentage). The description does not add additional meaning, such as what percentage represents or constraints (e.g., 0-100).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Remove liquidity from a Meteora DLMM position,' which clearly states the verb and resource. However, the title has odd spacing ('D L M M') and the description is overloaded with SAP MCP context that may distract from the core purpose. It does not explicitly differentiate from the sibling meteora_addDLMMLiquidity.

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 extensive SAP workflow guidance (when to use sap_agent_identity_plan, sap_payments_call_paid_tool, etc.) but does not compare this tool to sibling tools like meteora_addDLMMLiquidity or raydium-pools_removeLiquidity. The usage context is implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openbook_cancelOrderOpenbook Cancel OrderB
Destructive
Inspect

Cancel an open order on an Openbook market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
orderIdYesOrder ID parameter for Openbook Cancel Order.
marketIdYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds the signer boundary detail ('hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required'), which is useful beyond annotations. However, it does not disclose failure modes, fees, or effects on order state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise, but the description is dominated by verbose SAP MCP context that, while potentially relevant, obscures the core purpose. The SAP guidance could be moved to a separate metadata or annotation.

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 an output schema, the description omits key behavioral context such as error handling (invalid orderId), post-cancellation state, fees, and reversibility. Given the complexity of a destructive blockchain operation, this is insufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described (wallet and marketId as Solana public key, orderId as Order ID). The tool description does not add semantic meaning beyond the schema, earning the baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Cancel an open order on an Openbook market,' which clearly specifies the verb (cancel), resource (open order), and context (Openbook market). This distinguishes it from sibling tools like manifest_cancelOrder and openbook_placeOrder.

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 extensive SAP MCP workflow guidance but lacks concrete advice on when to use this tool versus alternatives (e.g., manifest_cancelOrder), prerequisites (e.g., order existence), or when not to use it (e.g., if already filled). The SAP guidance is tangential to core usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openbook_createMarketOpenbook Create MarketAInspect

Create a new Openbook DEX market for a token pair. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
creatorYesSolana public key (base58)
lotSizeYesMinimum order size
baseMintYesToken mint address (base58)
tickSizeYesMinimum price increment
quoteMintYesToken mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds important behavioral context beyond annotations: it clarifies the signer boundary ('hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally'), indicating the tool builds a transaction requiring local signing. This is not contradicted by annotations (readOnlyHint=false, destructiveHint=false).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is not concise; the SAP MCP context block is long, repetitive, and also appears verbatim in the input schema description. The essential one-line purpose is buried under redundant 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?

The description explains the SAP workflow but does not mention the return value or what the output schema contains. For a tool that creates a market, the agent needs to know whether it returns a transaction or an address. This is a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents parameters. The tool description adds no additional meaning beyond the schema's property descriptions (e.g., 'Solana public key (base58)'). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new Openbook DEX market for a token pair', using a specific verb and resource. It distinguishes from sibling tools like openbook_cancelOrder and manifest_createMarket by focusing on market creation for Openbook.

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 SAP MCP context and execution guidance (pricing, routing, signer boundary) but does not explicitly state when to use this tool versus alternatives like manifest_createMarket. The guidance is more about the SAP workflow than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

openbook_placeOrderOpenbook Place OrderCInspect

Place an order on an Openbook market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesSide parameter for Openbook Place Order.
sizeYesRaw token amount (smallest unit)
priceYesPrice parameter for Openbook Place Order.
walletYesSolana public key (base58)
marketIdYesSolana public key (base58)
orderTypeNoOrder Type parameter for Openbook Place Order.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a non-read-only, non-destructive write operation. The description adds some behavioral context via the 'Signer boundary' note: hosted builders never receive keypair bytes and value-moving results must be finalized locally. This is useful transparency for execution. However, it lacks details on failure modes, partial fills, or cancellation behavior. The generic SAP MCP boilerplate partially addresses the execution model but is not focused on this tool's specifics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Only the first sentence is tool-specific; the remainder is a generic SAP MCP workflow block that is likely repeated across many tools. This verbosity and repetition harms conciseness. The structure buries the core purpose inside irrelevant 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?

The tool has 6 parameters (5 required) and an output schema, but the description does not explain the return value, error behavior, or how to interpret the result. The SAP MCP notes about signing imply the output may be a transaction to be signed, but this is not explicit. Missing context like slippage, expiry, or market validation leaves the agent underinformed for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 6 parameters. The description adds no additional semantic meaning beyond the schema (e.g., how price and size interact, or the meaning of 'orderType'). With high schema coverage, the baseline score is 3; the description does not improve 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 initial sentence 'Place an order on an Openbook market' clearly states the verb and resource. The name and title match. However, the description is cluttered with generic SAP MCP context that does not enhance purpose clarity. It distinguishes from siblings like openbook_cancelOrder only implicitly via the name, missing an explicit distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., limit vs. IOC vs. postOnly order types). The description lacks instructions on prerequisites, order lifecycle, or success criteria. The SAP MCP guidance about pricing and routing is generic and does not help with trading-specific usage decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orca_closePositionOrca Close PositionC
Destructive
Inspect

Close a Whirlpool position and collect all fees/rewards. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
positionMintYesToken mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds 'collect all fees/rewards' but lacks specifics about state changes, reversibility, or return behavior. SAP MCP context is generic and not tool-specific.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with repetitive SAP MCP boilerplate that obscures the core purpose. The first sentence is concise, but the rest is verbose and poorly structured, reducing overall clarity.

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 an output schema, the description fails to explain prerequisites, what 'fees/rewards' entails, or the result of closing. The SAP MCP context is present but not tailored to this tool's specific completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for wallet and positionMint. The description adds no extra meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the action: close a Whirlpool position and collect fees/rewards. It distinguishes from siblings like orca_collectFees (collect fees only) and orca_openPosition (open position).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like orca_collectFees or orca_openPosition. The SAP MCP context discusses payment and routing but not usage conditions relative to other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orca_collectFeesOrca Collect FeesCInspect

Collect accumulated fees from a Whirlpool position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
positionMintYesToken mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this is a write operation (readOnlyHint=false), and the description does not add meaningful behavioral context beyond stating the action. It does not disclose potential outcomes (e.g., transfer of tokens, what happens if no fees), side effects, or error cases. Boilerplate SAP instructions dominate the description rather than tool-specific behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose due to repeated boilerplate about SAP MCP context, which could be abstracted or placed elsewhere. The first sentence is concise, but the remainder is generic and detracts from readability. The structure is not front-loaded effectively.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain what the tool returns (output schema exists but not referenced), nor does it cover edge cases or operational context (e.g., requiring an existing position, transaction costs). While the SAP MCP context may be needed for the platform, it does not complete the picture for an agent deciding whether to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines the parameters (wallet and positionMint). The tool description does not add any additional explanation or context about these parameters beyond what is in the schema, so it remains at baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear, specific verb and resource: 'Collect accumulated fees from a Whirlpool position.' This effectively states what the tool does and distinguishes it from sibling Orca tools (closePosition, openPosition, swap, getWhirlpool).

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 extensive but generic SAP MCP context (pricing, routing, signer boundary) that does not offer specific guidance on when to use this tool versus alternatives, nor does it mention prerequisites such as requiring an existing position with uncollected fees. No explicit when-to-use or when-not-to-use advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orca_getWhirlpoolOrca Get WhirlpoolA
Read-onlyIdempotent
Inspect

Get Orca Whirlpool pool information. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolAddressYesWhirlpool pool address

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations, including intents (read/discovery), pricing model (paid read-premium), routing (estimate then call paid tool), and signer boundary (no keypair bytes). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes a large block of repetitive SAP MCP context (pricing and routing instructions appear in both description and input schema), making it less concise than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter and an output schema, the description covers intent, execution guidance, and security constraints. It does not describe output content, but the output schema handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds no extra parameter information beyond 'Get Orca Whirlpool pool information', leaving the schema to fully describe the poolAddress parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get Orca Whirlpool pool information' with a specific verb ('Get') and resource ('Orca Whirlpool pool information'), distinguishing it from sibling write tools like orca_openPosition or orca_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?

No explicit guidance on when to use this tool versus alternatives. The SAP MCP context explains infrastructure but does not help the agent decide between this and other read tools or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orca_openPositionOrca Open PositionBInspect

Open a concentrated liquidity position on an Orca Whirlpool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
amountANoRaw token amount (smallest unit)
amountBNoRaw token amount (smallest unit)
priceLowerYesPrice Lower parameter for Orca Open Position.
priceUpperYesPrice Upper parameter for Orca Open Position.
poolAddressYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (mutation) and destructiveHint=false, so the description should add context beyond that. The description mentions signer boundary and payment but does not explicitly state that the tool creates a transaction or modifies on-chain state. It adds some value but not enough to fully disclose behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long (over 100 words) with many repetitive SAP MCP details that are also present in the input schema's description. The core functional description is only one sentence. The rest is boilerplate that could be omitted or condensed, making it less concise than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values need not be explained. Parameters are documented, but the description lacks guidance on optional parameters (amountA, amountB) and their relationship to the price range. The signer boundary is mentioned but not clearly tied to parameter requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema; priceLower and priceUpper descriptions are tautological ('Price Lower parameter for Orca Open Position'). No additional context about parameter relationships or defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the tool's purpose: 'Open a concentrated liquidity position on an Orca Whirlpool.' It uses a specific verb ('Open') and resource ('concentrated liquidity position on an Orca Whirlpool'), and it distinguishes from sibling tools like orca_closePosition and orca_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 provides extensive SAP MCP context but no guidance on when to use this tool versus its Orca siblings (e.g., orca_swap, orca_collectFees). It mentions SAP tools but not alternatives for the same domain. No prerequisites or typical use cases are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

orca_swapOrca SwapA
Destructive
Inspect

Swap tokens on an Orca Whirlpool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesRaw token amount (smallest unit)
walletYesSolana public key (base58)
inputMintYesToken mint address (base58)
poolAddressYesSolana public key (base58)
slippageBpsNoSlippage Bps pagination control for Orca Swap.
isExactInputNoIs Exact Input parameter for Orca Swap.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false, which align with the swap action. The description adds valuable behavioral context: 'Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally' and 'Signer boundary: user-controlled local profile or external signer'. This goes beyond what annotations provide. It could be more explicit about potential loss of tokens, but overall good.

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 lengthy due to SAP context, but the core purpose is clear upfront. It could be restructured to front-load the swap purpose and then provide guidance. The length is justified but not optimally concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema exists, so return values need not be explained. However, the description lacks basic details about the swap mechanics (e.g., token standards, AMM vs order book). Given the complexity of siblings, more context would be beneficial. Score is adequate but not high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 describes parameters. The description does not add new meaning to parameters beyond what is in the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Swap tokens on an Orca Whirlpool', which is a specific verb and resource. However, it does not distinguish this swap tool from other swap tools among siblings like jupiter_swap or magicblock_swap, so it loses a point.

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 extensive SAP MCP context on when to use this tool vs sap_* tools, including pricing and routing guidance. However, it does not given guidance on when to prefer this over other swap tools (e.g., Jupiter). The usage guidance is focused on the SAP framework, not on differentiating from sibling swap tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pump_launchTokenPump Launch TokenBInspect

Launch a new token on Pump.fun via PumpPortal. Optionally include an initial dev buy. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesToken name
imageNoToken logo URL
symbolYesToken ticker
twitterNoTwitter/X handle
websiteNoWebsite URL
deployerYesDeployer wallet
telegramNoTelegram group link
descriptionNoDescription parameter for Pump Launch Token.
initialBuyAmountNoRaw token amount (smallest unit)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations show readOnlyHint=false and destructiveHint=false, so the description adds context about pricing and routing but does not disclose the irreversibility or cost of the on-chain write beyond the SAP guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose due to repetitive SAP boilerplate. The core purpose is front-loaded, but the additional guidance could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the SAP integration well but lacks common details like confirmation behavior or cost outside the SAP-specific workflow. Adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds no further clarification on parameters beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Launch a new token on Pump.fun via PumpPortal' with specific verb and resource. It is distinct from sibling tools like spl-token_deployToken and pump_trade.

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 extensive SAP MCP execution guidance (pricing, routing, signing) but lacks explicit when-to-use vs alternatives. The guidance implies usage within the SAP framework but does not compare with similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pump_tradePump TradeCInspect

Buy or sell tokens on Pump.fun bonding curve. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesPump.fun token mint
actionYesTrade direction
amountYesAmount in SOL (buy) or tokens (sell)
walletYesSolana public key (base58)
slippageBpsNoSlippage Bps pagination control for Pump Trade.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false). Description adds little beyond basic action; no disclosure of bonding curve mechanics, fees, slippage handling, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

First sentence is concise and clear. However, the SAP MCP context adds lengthy, repetitive guidance that could be trimmed without losing critical 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?

Covers signing and routing context, but lacks details on bonding curve behavior, expected output, and slippage interpretation. Output schema exists, yet missing info on trading-specific 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?

Schema has 100% coverage and human-readable descriptions. The tool description repeats some but adds no significant new insight. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Buy or sell tokens on Pump.fun bonding curve,' providing a specific verb and resource. It distinguishes from other trading tools by referencing Pump.fun, but the extensive SAP context dilutes focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like jupiter_swap or raydium-pools. The SAP context discusses framework routing but does not help differentiate among trading tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pyth_getPricePyth Get PriceA
Read-onlyIdempotent
Inspect

Get the current price from a Pyth on-chain oracle feed. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceIdYesPyth price feed ID (hex) or symbol (e.g. "SOL/USD")

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds valuable context about pricing (free), routing (free hosted call), signer boundary (no keypair bytes), and execution guidance, which go beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose with SAP MCP context and execution guidance that could be condensed. It is front-loaded with the core purpose, but several sentences could be merged or removed without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of output schema and annotations, the description covers the tool's purpose, parameter format, usage context, and restrictions. It does not explain return values (output schema covers that). It is complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (priceId with description). The description repeats that priceId is hex or symbol but adds no new meaning beyond what the schema already provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the current price from a Pyth on-chain oracle feed.' The verb 'get' and resource 'current price' are specific. It distinguishes from siblings pyth_getPriceHistory and pyth_listPriceFeeds by focusing on current price.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use for Pyth oracle price reads and feed discovery' and advises using oracle reads as context for pricing, risk checks, not as settlement proof. It provides clear context for when to use, though it does not explicitly list when not to use or alternatives, but sibling tools are implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pyth_getPriceHistoryPyth Get Price HistoryA
Read-onlyIdempotent
Inspect

Get historical price data from Pyth oracle. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
periodNoPeriod parameter for Pyth Get Price History.
priceIdYesPrice ID parameter for Pyth Get Price History.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, etc. The description adds valuable behavioral context: it is a paid read operation (paid read-premium), with signer boundary (no keypair bytes), and routing guidance. These go beyond the basic hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long, repeating same SAP execution guidance in both the description and input schema description. Much of the content is boilerplate routing instructions rather than concise tool semantics. It could be trimmed significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 2 parameters, good annotations, and an output schema. The description explains pricing and routing but does not describe the output format or typical usage patterns. It is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters, but those descriptions are generic ('Period parameter for Pyth Get Price History'). The tool description adds no additional meaning about the parameters (e.g., priceId format or period units). Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly starts with 'Get historical price data from Pyth oracle,' specifying the verb (get), resource (historical price data), and source (Pyth oracle). This distinguishes it from sibling tools like pyth_getPrice (current price) and pyth_listPriceFeeds (listing feeds).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states 'Use for Pyth oracle price reads and feed discovery' and includes caution 'do not treat them as settlement proof.' However, it does not explicitly contrast with sibling tools or provide when-not-to-use scenarios, though the context implies when historical data is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pyth_listPriceFeedsPyth List Price FeedsA
Read-onlyIdempotent
Inspect

List available Pyth price feeds, optionally filtered by query or asset type. SAP MCP context: Protocol pyth; operation class read. Use for Pyth oracle price reads and feed discovery. Use oracle reads as context for pricing, risk checks, and market-aware agent decisions; do not treat them as settlement proof.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch filter (e.g. "SOL", "BTC")
assetTypeNoAsset Type parameter for Pyth List Price Feeds.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnly and idempotent. Description adds useful context: paid read-premium, do not treat as settlement proof, signer boundary for hosted reads. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

First sentence is clear and front-loaded. The SAP execution guidance adds length but may be necessary. Overall well-structured with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description covers purpose, parameters, behavioral caveats, and operational context. No gaps identified for a list/discovery tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description mentions optional filtering by query or asset type but adds no new semantic information beyond the schema's descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List available Pyth price feeds' with optional filtering, distinguishing it from related tools like pyth_getPrice that fetch specific prices. The verb 'list' and resource 'price feeds' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for feed discovery and oracle reads but does not explicitly contrast with siblings like pyth_getPrice or pyth_getPriceHistory. The guidance is more about execution routing than selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raydium-pools_addLiquidityRaydium-pools Add LiquidityCInspect

Add liquidity to a Raydium pool (CPMM, CLMM, or AMM v4). SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolIdYesRaydium pool ID
walletYesSolana public key (base58)
amountANoRaw token amount (smallest unit)
amountBNoRaw token amount (smallest unit)
fixedSideNoFixed side for single-sided liquidity
priceLowerNoLower price for CLMM range
priceUpperNoUpper price for CLMM range

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, confirming a write operation. The description says 'Add liquidity' but does not disclose behavioral details such as token transfers, slippage, fees, or authorization needs. With no annotation contradiction, the description adds minimal value 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description front-loads the core purpose but then includes lengthy SAP MCP integration context that may not be relevant for generic MCP use. This reduces conciseness; it could be trimmed to focus on essential behavioral and parameter guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (multiple pool types, 7 parameters, output schema), the description is incomplete. It fails to explain how to choose pool type, parameter relationships, or expected outcomes. Annotations provide minimal context, making the description insufficient for full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptive parameter names and types. The description does not add extra meaning about parameter dependencies or usage context (e.g., which parameters apply to CPMM vs CLMM). Baseline 3 is appropriate as the schema already handles parameter documentation.

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 'Add liquidity to a Raydium pool (CPMM, CLMM, or AMM v4).' It clearly identifies the verb (add) and resource (liquidity to Raydium pool). However, it does not explicitly distinguish this tool from sibling raydium-pools tools like removeLiquidity or create, though the action is different.

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 lacks guidance on when to use this tool versus alternatives. It includes SAP MCP integration context but does not explain prerequisites, pool selection criteria, or when not to use it. No explicit comparison to removeLiquidity or other liquidity tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raydium-pools_createAMMv4Raydium-pools Create A M Mv4AInspect

Create a Raydium AMM v4 pool (requires an existing Openbook market). SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
creatorYesSolana public key (base58)
marketIdYesOpenbook market ID
startTimeNoStart Time parameter for Raydium-pools Create A M Mv4.
baseAmountYesRaw token amount (smallest unit)
quoteAmountYesRaw token amount (smallest unit)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only nor destructive. The description adds behavioral context beyond annotations: it explains that this is a write operation requiring an existing market, and the SAP MCP guidance details payment and signing boundaries. It does not describe all potential side effects (e.g., error on duplicate pool) but provides significant supplementary info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence. The subsequent SAP MCP context and execution guidance are structured under clear headings. While lengthy, every section serves a purpose for the intended environment. A minor deduction for the repeated SAP boilerplate that could potentially be condensed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (creating a pool, prerequisite, paid execution), the description covers the prerequisite (Openbook market), the payment flow and signing requirements, and references the output schema (exists). It does not elaborate on the startTime parameter or error handling, but overall it provides the essential context for safe and correct usage in the SAP MCP environment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds little per-parameter meaning: it mentions 'requires an existing Openbook market' (relating to marketId) and the first sentence implies the nature of baseAmount/quoteAmount as raw tokens. However, startTime's description is tautological ('Start Time parameter for...'), and no additional formatting or constraints are explained. The tool description adds marginal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Create a Raydium AMM v4 pool (requires an existing Openbook market)', which clearly states the action (create) and the specific resource (Raydium AMM v4 pool) with a prerequisite. This distinguishes it from sibling tools like raydium-pools_createCLMM or raydium-pools_createCPMM by the pool type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the prerequisite of an existing Openbook market, which is useful for knowing when to use this tool. The extensive SAP MCP guidance provides context on pricing, routing, and signing requirements, but does not directly compare with other raydium-pools creation tools (e.g., CLMM vs CPMM). The guidance is clear for the intended platform, missing only direct alternatives guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raydium-pools_createCLMMRaydium-pools Create C L M MCInspect

Create a Raydium CLMM (Concentrated Liquidity) pool with a price range. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintAYesToken mint address (base58)
mintBYesToken mint address (base58)
amountAYesInitial liquidity for token A
amountBYesInitial liquidity for token B
creatorYesSolana public key (base58)
startTimeNoStart Time parameter for Raydium-pools Create C L M M.
priceLowerYesLower price bound for liquidity range
priceUpperYesUpper price bound for liquidity range
tickSpacingYesTick spacing (defines fee tier: 1=0.01%, 10=0.05%, 60=0.3%, 200=1%)
initialPriceYesInitial price of token A in terms of token B

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-readonly, open-world, non-idempotent, non-destructive. The description adds SAP routing context but does not disclose behavioral traits like side effects, costs, or preconditions beyond what annotations imply. The creation action is clear but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is unnecessarily verbose with boilerplate SAP MCP text repeated from the schema. The first sentence is concise, but the rest could be omitted or condensed. The structure front-loads the purpose but then adds redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of sibling tools for creating other pool types, the description fails to explain when to choose CLMM. It lacks domain-specific context like prerequisites (token ownership, price range constraints) and use cases. The output schema covers return values, but operational 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?

Schema description coverage is 100%, so all 10 parameters have descriptions in the input schema. The tool description does not add any additional meaning or context beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the tool creates a Raydium CLMM pool with a price range. However, it does not differentiate from sibling tools like raydium-pools_createAMMv4 and raydium-pools_createCPMM, which have similar purposes.

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 extensive generic SAP MCP execution guidance (pricing, routing, signing) but no guidance on when to use this specific tool versus its siblings. No context on prerequisites or use cases for creating a CLMM pool over other pool types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raydium-pools_createCPMMRaydium-pools Create C P M MCInspect

Create a Raydium CPMM (Constant Product Market Maker) pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintAYesToken A mint
mintBYesToken B mint
amountAYesInitial liquidity for token A
amountBYesInitial liquidity for token B
creatorYesSolana public key (base58)
startTimeNoPool start time (Unix timestamp)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds minimal behavioral context beyond annotations. Annotations indicate a write operation (readOnlyHint=false) and not destructive, but the description does not explain success criteria, on-chain effects, signature requirements, or fees. The SAP routing and pricing info is about infrastructure, not the tool's own behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive, with large blocks of SAP MCP boilerplate that are also present in the input schema description. The core purpose is front-loaded, but the excess text undermines conciseness. Every sentence does not earn its place.

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 creating a CPMM pool, the description is incomplete. It lacks information on prerequisites (e.g., token balances, approvals), what the output contains (though an output schema exists), and any success/failure indicators. The SAP routing context does not compensate for missing functional details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed descriptions for all 6 parameters. The description itself does not add any parameter meaning beyond schema; it only states the tool's purpose. Baseline 3 is appropriate since the schema already carries the full burden.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a Raydium CPMM pool, using the specific verb 'Create' and naming the resource type. It distinguishes from sibling tools like createAMMv4 and createCLMM by specifying CPMM. However, the description is cluttered with extensive SAP MCP context that may distract from the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage 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., other pool creation tools). The description focuses on SAP MCP execution details (pricing, routing) rather than use cases or conditions. No 'when to use' or 'when not to use' information is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

raydium-pools_removeLiquidityRaydium-pools Remove LiquidityC
Destructive
Inspect

Remove liquidity from a Raydium pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_agent_identity_plan, sap_payments_register_agent, sap_payments_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP agent profile or tool registry entry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolIdYesSolana public key (base58)
walletYesSolana public key (base58)
lpAmountNoRaw token amount (smallest unit)
percentageNoPercentage of liquidity to remove
positionNftNoToken mint address (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true (write operation). The description adds no further behavioral details (e.g., pool impact, slippage, return tokens). The SAP context is irrelevant to the tool's actual behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with unrelated SAP MCP boilerplate that repeats in the schema description. The first sentence is concise, but the rest is unnecessary, making the overall description inefficient.

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 output schema exists and annotations are provided, the description should explain the tool's practical use (e.g., prerequisites, pool type, LP token handling). It fails to do so, wasting space on generic SAP workflow instructions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameters are already documented. The description adds no additional semantic meaning 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 first sentence clearly states the tool removes liquidity from a Raydium pool, and sibling tools include addLiquidity, so purpose and differentiation are clear. However, the lengthy SAP MCP context distracts from the primary 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?

The description provides no explicit guidance on when to use removeLiquidity versus alternatives (e.g., addLiquidity, createCLMM). The SAP routing and pricing notes are generic and do not help with tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_add_limit_orderSAP Adrena Build Add Limit OrderAInspect

Build an unsigned transaction to place a limit order on Adrena. The order fills when the oracle price reaches the trigger price. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesOrder side.
ownerYesOrder owner wallet public key (base58).
leverageYesLeverage multiplier.
limitPriceUsdNoOptional limit price cap. Omit for market price at fill.
principalTokenYesAsset to trade.
collateralTokenYesCollateral token.
triggerPriceUsdYesTrigger price in USD. Order fills when oracle reaches this price.
collateralAmountYesCollateral amount in human-readable units.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description discloses key behaviors beyond annotations: returns unsigned transactionBase64, requires local signing, never receives keypair bytes, and details pricing model and payment routing. These supplement the annotation set (readOnlyHint false, openWorldHint true) with actionable 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 front-loaded with the core purpose and then provides necessary execution guidance. It's clear but slightly repetitive: the same execution guidance appears in the schema description. Could be slightly more concise, but it's efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers purpose, behavior, and how to use (estimation, payment). Given the presence of an output schema (context signal) and good annotations, this is reasonably complete. However, it could mention potential errors or edge cases (e.g., insufficient 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?

Schema coverage is 100%, so baseline is 3. The description reinforces the trigger price semantics but adds no new meaning beyond what the schema already provides. It mentions 'trigger price' in the main description, which is already documented in triggerPriceUsd.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds an unsigned transaction for a limit order on Adrena, specifying the condition 'fills when the oracle price reaches the trigger price.' This distinguishes it from other sap_adrena_build_* tools (e.g., open/close position).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes SAP execution guidance on estimating cost and routing, but does not explicitly instruct when to use this tool over sibling tools like sap_adrena_build_open_long or sap_adrena_build_cancel_limit_order. The guidance is about how to invoke, not when to choose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_add_liquiditySAP Adrena Build Add LiquidityAInspect

Build an unsigned transaction to add liquidity to an Adrena pool. Deposits collateral and receives LP tokens. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesLiquidity provider wallet public key (base58).
amountYesAmount in human-readable units.
poolNameNoPool to add liquidity to.
minLpAmountOutNoMinimum LP tokens to receive (raw). 0 for no slippage protection.
collateralTokenYesCollateral token to deposit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool returns transactionBase64 for local signing, never receives keypair bytes, and involves payment steps. Annotations indicate readOnlyHint=false and destructiveHint=false, consistent with a mutation that is not destructive. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two paragraphs: a concise first sentence followed by a longer execution guidance section. The guidance is informative but somewhat lengthy and repetitive. It is structured and front-loaded, but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and the description explains return value (transactionBase64), the payment flow, and slippage protection via parameters. For a transaction builder, this provides sufficient context for 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?

Input schema has 100% coverage with descriptions. The tool description adds minimal extra meaning beyond the schema, such as context that amount is in human-readable units and that minLpAmountOut provides slippage protection. Baseline 3 is appropriate because schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds an unsigned transaction to add liquidity to an Adrena pool, depositing collateral and receiving LP tokens. The verb 'build' and resource 'unsigned transaction' are specific. While it does not explicitly distinguish from sibling tools like other sap_adrena_build_* tools, the focus on 'add liquidity' and the return of transactionBase64 for local signing provides sufficient clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit SAP MCP execution guidance: call sap_estimate_tool_cost first, pay/build, handle routing, and finalize locally. It clarifies that this is a hosted unsigned transaction builder and that keypair bytes are never received. However, it does not compare with non-build alternatives like adrena_addCollateral, which might be a direct execution alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_add_liquid_stakeSAP Adrena Build Add Liquid StakeAInspect

Build an unsigned transaction to add a liquid stake on Adrena (stake LP tokens). Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesStaker wallet public key (base58).
amountYesAmount of LP tokens to stake (raw, 6 decimals).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses hosted unsigned transaction builder, no keypair bytes received, value-moving results must be finalized locally. Matches annotations (readOnlyHint false, destructiveHint false). Adds beyond annotations by describing pricing and signer boundary.

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?

First paragraph succinctly states purpose and output. Second paragraph contains guidance which is partially redundant with schema description but is well-structured. Could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core functionality, return type, and SAP workflow (estimation, payment). Does not explain exact LP token or prerequisites, but output schema exists and domain knowledge is assumed. Adequate for a build tool in a complex 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 coverage is 100% with clear descriptions for both parameters (owner public key, amount with decimals). Description does not add extra semantics beyond schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action: 'Build an unsigned transaction to add a liquid stake on Adrena (stake LP tokens).' Returns transactionBase64 for local signing. Differentiates from sibling build tools (e.g., add_locked_stake) by specifying 'liquid stake' and 'stake LP tokens'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 procedural guidance: estimate first, then pay/build, finalize locally. Mentions use of sap_estimate_tool_cost and sap_payments_call_paid_tool. Does not explicitly compare to other adrena build tools but hints at the paid workflow common across SAP builders.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_add_locked_stakeSAP Adrena Build Add Locked StakeAInspect

Build an unsigned transaction to add a locked stake on Adrena. LP tokens are locked for a specified duration. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesStaker wallet public key (base58).
amountYesAmount of LP tokens to lock (raw, 6 decimals).
lockedDaysYesLock duration in days.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds crucial behavioral context: it builds an unsigned transaction (not executing it), requires local signing, and emphasizes that the hosted builder never receives keypair bytes. This goes beyond the annotations and informs the agent of the security and operational model.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded: the core purpose is stated in the first sentence, followed by necessary execution guidance. Every sentence adds value, and the structure is logical without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (paid builder, unsigned transaction), the description is complete. It explains the return format, the prerequisite of estimating cost, the routing logic, and the signer boundary. The presence of an output schema (not shown) further supports completeness, but the description already covers key aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 (owner, amount, lockedDays) having clear descriptions (e.g., 'Staker wallet public key (base58)', 'Amount of LP tokens to lock (raw, 6 decimals)'). The main description does not add parameter-specific info, but the schema already covers it adequately. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Build an unsigned transaction to add a locked stake on Adrena.' It specifies the resource (locked stake), the return format (transactionBase64), and the action (build unsigned transaction). While it does not explicitly distinguish from siblings like zap_adrena_build_add_liquid_stake, the uniqueness is evident from the verb+resource combination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive execution guidance, including the workflow: estimate cost (call zap_estimate_tool_cost), pay (use zap_payments_call_paid_tool if needed), build, and sign locally. It does not explicitly state when not to use the tool or offer alternatives, but the context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_cancel_limit_orderSAP Adrena Build Cancel Limit OrderA
Destructive
Inspect

Build an unsigned transaction to cancel a limit order on Adrena. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesOrder owner wallet public key (base58).
orderIdYesLimit order ID to cancel.
collateralTokenYesCollateral token used for the order.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (destructiveHint=true, readOnlyHint=false) indicate mutation. The description adds that the transaction is unsigned and must be signed locally, and that keypairs are never received by the hosted service. This goes beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose is stated in two sentences upfront. The SAP guidance block is verbose but well-structured and informative. Could be slightly shorter, but still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage guidelines, payment model, and signer boundary. Output schema exists, so return details are covered. With 3 parameters and high schema coverage, it is nearly complete, though could mention needing an existing order.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameter descriptions (owner, orderId, collateralToken). The description does not add additional parameter details beyond the schema, which is acceptable given the high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds an unsigned transaction to cancel a limit order on Adrena and returns transactionBase64. This distinguishes it from sibling tools like 'sap_adrena_build_cancel_stop_loss' and 'sap_adrena_build_cancel_take_profit'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The SAP MCP execution guidance explains the paid builder intent, need to estimate cost first, and routing via sap_payments_call_paid_tool. It lacks explicit when-not-to-use statements but provides clear prerequisites and order of operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_cancel_stop_lossSAP Adrena Build Cancel Stop LossA
Destructive
Inspect

Build an unsigned transaction to cancel stop loss on an Adrena position. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesPosition owner wallet public key (base58).
principalTokenYesAsset of the position.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool returns a transactionBase64 for local signing and includes security notes about hosted builders not receiving keypair bytes. This adds value beyond the destructiveHint annotation and clarifies the offline signing requirement.

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 comprehensive but includes redundant content (execution guidance repeated in both description and schema). It could be more concise by removing the duplicate block, but the structure is otherwise logical.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (3 params, output schema, annotations), the description adequately explains the transaction building process and local signing. It covers the necessary context for an AI agent to understand the tool's 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 input schema already provides full descriptions for all 3 parameters (100% coverage). The description does not add additional parameter-specific semantics or format details, so it meets the baseline without exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds an unsigned transaction to cancel stop loss on an Adrena position, with a specific verb and resource. It distinguishes from siblings like adrena_closePosition or other sap_adrena_build_* tools by focusing on stop loss cancellation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes execution guidance on payment flow (estimate first, then pay/build) but does not explicitly state when to use this tool versus alternatives like closing a position or removing collateral. Usage context is implied but not clearly contrasted with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_cancel_take_profitSAP Adrena Build Cancel Take ProfitA
Destructive
Inspect

Build an unsigned transaction to cancel take profit on an Adrena position. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesPosition owner wallet public key (base58).
principalTokenYesAsset of the position.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds that it builds an unsigned transaction, returns transactionBase64 for local signing, and includes signer boundary info. No contradictions with annotations. Valuable additional context 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?

The description is reasonably concise but includes repeated SAP guidance text that bulks it. The primary purpose is front-loaded. Could be slightly tighter, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description adequately covers purpose, return value, and payment flow. It does not explicitly mention prerequisites (e.g., active take profit order), but schema covers input constraints. Complete enough for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters. The description repeats the schema's SAP guidance but adds no new parameter-specific meaning. Baseline 3 is appropriate as schema carries the parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states: 'Build an unsigned transaction to cancel take profit on an Adrena position.' This specifies the verb (build), resource (cancel take profit on Adrena position), and distinguishes from related tools like sap_adrena_build_set_take_profit. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes detailed SAP execution guidance: 'Intent: hosted unsigned transaction builder... call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool... finalize locally.' This provides a clear usage flow. However, it does not explicitly state when not to use this tool compared to alternatives like cancel_stop_loss, though the intent is implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_claim_stakesSAP Adrena Build Claim StakesAInspect

Build an unsigned transaction to claim staking rewards on Adrena. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesStaker wallet public key (base58).
lockedStakeIndexesNoOptional comma-separated list of locked stake indexes to claim. Omit to claim all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds context beyond annotations by explaining the paid builder workflow and local signing requirement. It does not contradict annotations and provides value about behavioral traits like needing estimation before building.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear front-loaded purpose statement. The guidance section is well-structured and contains necessary procedural information without waste. Every sentence adds value for the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a paid unsigned transaction builder, the description covers the essential aspects: what it does, the estimation-before-build workflow, routing instructions, and signer boundary. An output schema exists, so return value details are not needed. The description is complete for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters (owner and lockedStakeIndexes) with descriptions. The tool description does not add additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Build an unsigned transaction'), the resource ('to claim staking rewards on Adrena'), and the output format ('Returns transactionBase64 for local signing'). It distinguishes this tool from other sap_adrena_build_* siblings by specifying the action of claiming stakes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes explicit guidance on when to use this tool: it is a paid builder; users should estimate cost first via sap_estimate_tool_cost, then pay/build, and finalize unsigned transactions locally. It also clarifies signer boundaries, stating that hosted builders never receive keypair bytes. This provides clear usage instructions and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_close_commodity_longSAP Adrena Build Close Commodity LongA
Destructive
Inspect

Build an unsigned transaction to close a long commodity position on Adrena. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58).
priceUsdNoOptional close price in USD.
percentageNoPercentage to close (0-1000000). Default 1000000.
principalTokenYesCommodity of the position.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint: true), the description adds critical behavior: it builds an unsigned transaction, returns transactionBase64 for local signing, highlights the signer boundary (never receives keypair bytes), and specifies pricing model. This fully informs the agent of the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is repetitive, with the SAP guidance appearing both in the main description and in the input schema description field. The first sentence is concise, but the rest could be streamlined for better efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and requires 4 parameters (2 required), the description covers the operation, signing boundary, and pricing context. It is complete for the complexity, though redundant sections reduce clarity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description repeats the schema descriptions without adding new semantic context. Default values for percentage are already in the schema, and no additional clarifications are provided.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action: 'Build an unsigned transaction to close a long commodity position on Adrena.' It includes the output (transactionBase64) and distinguishes from siblings by targeting long commodity positions, as seen in the sibling list with close_commodity_short and close_long.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: estimate cost first, use sap_payments_call_paid_tool for payment, and finalize locally. It covers when to use and the routing process, but does not explicitly exclude alternatives or compare to other close tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_close_commodity_shortSAP Adrena Build Close Commodity ShortA
Destructive
Inspect

Build an unsigned transaction to close a short commodity position on Adrena. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58).
priceUsdNoOptional close price in USD.
percentageNoPercentage to close (0-1000000). Default 1000000.
principalTokenYesCommodity of the position.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true, but the description adds context: it is a builder that never receives keypair bytes and requires local signing. This clarifies the behavioral pattern beyond what annotations provide. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose, followed by structured execution guidance. It is reasonably concise but could be slightly tightened by separating execution guidance from the primary description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a paid builder with 4 parameters, the description covers the builder pattern, payment flow, and signing boundary. Output schema exists, so return values are not needed. Minor gap: the percentage parameter unit (basis points?) is not clarified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for each parameter. The description adds no additional parameter-specific details beyond what the schema already provides, so it meets the baseline without exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'build', the resource 'unsigned transaction', and the action 'close a short commodity position'. It distinguishes from sibling tools like 'adrena_closePosition' and 'sap_adrena_build_close_short' by specifying commodity via the principalToken enum.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: as a paid builder that returns an unsigned transaction for local signing. It instructs to estimate cost first and use alternate routing for payments. However, it does not explicitly state when not to use it, such as if immediate execution is desired.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_close_longSAP Adrena Build Close LongA
Destructive
Inspect

Build an unsigned transaction to close a long perp position on Adrena. Default closes 100% at market price. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58).
priceUsdNoOptional close price in USD. Omit for market close.
percentageNoPercentage to close (0-1000000, where 1000000 = 100%). Default 1000000.
principalTokenYesAsset of the position. Supported: JITOSOL, WBTC, BONK.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that the tool is a hosted unsigned transaction builder, returns transactionBase64 for local signing, and explicitly states that signer boundary means no keypair bytes are received. Annotations (destructiveHint=true, readOnlyHint=false) already indicate mutation; the description adds valuable context on how the mutation is realized.

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 has two paragraphs; the first is concise and informative, but the second duplicates the SAP MCP execution guidance that already appears in the input schema's description field. This repetition adds unnecessary length without new insight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a transaction builder with an output schema and 4 parameters, the description covers key aspects: default behavior, return format, and execution workflow. It does not mention slippage or price impact, but these are implicit in the market close default.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds practical insight: omitting priceUsd triggers market close, and percentage defaults to 100%. This augments the schema definitions effectively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the action ('build an unsigned transaction'), the resource ('close a long perp position on Adrena'), and default behavior ('Default closes 100% at market price'). The verb 'build' clearly distinguishes it from direct execution tools like adrena_closePosition.

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 context on when to close a long position, including default percentage and price, and includes SAP MCP execution guidance on pricing and routing. However, it does not explicitly differentiate from similar tools like sap_adrena_build_close_short or specify when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_close_shortSAP Adrena Build Close ShortA
Destructive
Inspect

Build an unsigned transaction to close a short perp position on Adrena. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58).
priceUsdNoOptional close price in USD.
percentageNoPercentage to close (0-1000000). Default 1000000.
principalTokenYesAsset of the position.
collateralTokenYesCollateral token. USDC for shorts.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond annotations: it states the tool is a 'hosted unsigned transaction builder', that it is 'paid', and that 'signer boundary' means keypair bytes are never received. This complements the destructiveHint: true annotation by explaining the payment and signing flow. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is efficient: one sentence for purpose, then a paragraph of necessary execution guidance. The guidance is valuable but somewhat dense; restructuring could improve readability. Still, it is not overly verbose and gets the point across.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 presence of an output schema and annotations, the description is largely complete. It explains the unsigned transaction nature, payment requirements, and signing boundaries. It could mention side effects or market specifics, but overall it provides sufficient context for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description does not add any additional meaning to individual parameters beyond what the schema already provides. It mentions 'principalToken' and 'collateralToken' but without new context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Build an unsigned transaction to close a short perp position on Adrena.' It specifies the verb 'build', the resource 'unsigned transaction to close a short perp position', and the platform 'Adrena'. This is distinct from sibling tools like build_open_short or build_close_long.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes SAP MCP execution guidance (e.g., 'estimate first, then pay/build and finalize unsigned transactions locally'), which helps with the workflow but does not explicitly compare this tool to alternatives or state when to use it over siblings. The guidance is useful for context but lacks direct usage differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_init_user_stakingSAP Adrena Build Init User StakingAInspect

Build an unsigned transaction to initialize a user staking account on Adrena. Must be called before add_liquid_stake or add_locked_stake. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesStaker wallet public key (base58).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, destructiveHint=false. Description adds crucial context: builds unsigned transaction, returns transactionBase64 for local signing, hosted builders never receive keypair bytes, value-moving results must be finalized locally. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with core purpose and usage order. The SAP MCP guidance is useful but adds length. Still efficient overall, with only essential 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 tool with complete schema, annotations, and output schema, the description covers purpose, prerequisites, return format, payment routing, and security boundary. It is fully adequate for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (owner) with schema coverage 100%. Schema already provides a good description. The description does not add extra semantics beyond what's in the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'builds an unsigned transaction to initialize a user staking account on Adrena.' It distinguishes it from siblings by specifying it must be called before add_liquid_stake or add_locked_stake.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Must be called before add_liquid_stake or add_locked_stake.' Provides detailed SAP MCP execution guidance on pricing, routing, and signer boundary, helping the agent decide when and how to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_modify_positionSAP Adrena Build Modify PositionAInspect

Build an unsigned transaction to modify an existing Adrena position by adding collateral. Uses openOrIncreasePosition which atomically adds collateral to an existing position. The leverage parameter can be changed to adjust the position risk. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesPosition owner wallet public key (base58).
leverageYesNew leverage multiplier. Pass the same value to keep current leverage, or a different value to change it.
principalTokenYesAsset of the position.
collateralTokenYesCollateral token.
collateralAmountYesAdditional collateral amount in human-readable units to add to the position.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description transparently states it builds an unsigned transaction (does not execute on-chain), returns transactionBase64 for local signing, and uses openOrIncreasePosition to atomically add collateral. Annotations are consistent: readOnlyHint=false (write operation but only builds), destructiveHint=false (no direct state mutation). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is two concise sentences that front-load the purpose and output. The boilerplate SAP MCP execution guidance, while necessary for workflow, is long and generic, but acceptable. Overall efficient with no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists (return type documented elsewhere) and annotations provide idempotent/destructive hints, the description covers the tool's intent, output format, and workflow. It does not detail error conditions or prerequisites (e.g., position must exist), but this is acceptable for a well-documented paid tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter already described clearly (e.g., leverage: 'Pass the same value to keep current leverage'). The description adds minimal new param info beyond the schema, only the context that openOrIncreasePosition is used. Baseline 3 is appropriate since schema already handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds an unsigned transaction to modify an existing Adrena position by adding collateral. The name and title match this purpose. Among many sap_adrena_build_* siblings, this tool is distinctly identified by focusing on modifying an existing position with added collateral, not opening or closing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides workflow guidance (estimate cost first, then pay/build, finalize locally) and states this is a paid hosted builder. However, it does not explicitly contrast with alternatives like adrena_addCollateral (a direct action) or specify when not to use this tool. The boilerplate SAP MCP execution guidance is generic but helpful for the paid tool pattern.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_open_commodity_longSAP Adrena Build Open Commodity LongAInspect

Build an unsigned transaction to open a long position on a synthetic commodity (XAU, XAG, WTI) on Adrena. Uses the commodities pool with USDC collateral. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58).
leverageYesLeverage multiplier.
priceUsdNoOptional limit price in USD.
principalTokenYesCommodity to trade.
collateralAmountYesUSDC collateral amount in human-readable units.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond annotations: returns an unsigned transaction for local signing, never receives keypair bytes, requires prior estimation and payment. It also confirms the paid nature and signer boundary. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a concise first paragraph and additional execution guidance. However, the second paragraph repeats guidance that also appears in the schema description, slightly reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (hosted unsigned builder, paid, multiple steps), the description covers intent, pricing, routing, and signer boundary. The output is described as transactionBase64. While error handling is not mentioned, the output schema likely covers that, so completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters have descriptions in the input schema (100% coverage), so the description adds limited additional meaning. It provides context about USDC collateral and commodity pool, but this does not significantly enhance parameter understanding beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: building an unsigned transaction to open a long position on synthetic commodities (XAU, XAG, WTI) using USDC collateral on Adrena. It distinguishes from sibling tools by specifying the asset class and direction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides detailed execution guidance including payment steps and routing, but does not explicitly exclude alternatives like non-commodity positions or short positions. The naming and commodity list imply the use case, but explicit alternatives are not mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_open_commodity_shortSAP Adrena Build Open Commodity ShortAInspect

Build an unsigned transaction to open a short position on a synthetic commodity (XAU, XAG, WTI) on Adrena. Uses the commodities pool with USDC collateral. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58).
leverageYesLeverage multiplier.
priceUsdNoOptional limit price in USD.
principalTokenYesCommodity to short.
collateralAmountYesUSDC collateral amount.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits beyond annotations: it is a paid builder requiring cost estimation, returns an unsigned transaction for local signing, and never receives keypair bytes. These details are not in annotations, adding significant context for safe usage.

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 core description is concise, but the repeated 'SAP MCP execution guidance' block (appearing in both description and schema) adds redundancy and length. While informative, the duplication hurts conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 parameters, output schema exists), the description provides essential context: the commodities, collateral type, and the execution guidance for pricing and routing. Minor gaps (e.g., no mention of market vs limit order for priceUsd) are addressed by the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds minimal new meaning beyond summarizing the schema (e.g., mentions commodities pool and USDC collateral). It does not provide additional syntax or format details for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds an unsigned transaction to open a short position on synthetic commodities (XAU, XAG, WTI) using USDC collateral. It specifies the exact resources and action, differentiating it from siblings like open_long or close_commodity_short.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

While the description implies the tool is for commodity shorts, it does not explicitly state when to use this tool versus alternatives (e.g., open_long, open_short). No direct guidance on prerequisites or context for choosing this tool over siblings is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_open_longSAP Adrena Build Open LongAInspect

Build an unsigned transaction to open or increase a long perp position on Adrena. Returns transactionBase64 for local signing via sap_payments_finalize_transaction. The agent must sign locally — SAP MCP never signs user-owned perp transactions.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58). This is the fee payer and signer.
leverageYesLeverage multiplier (e.g. 3 = 3x).
priceUsdNoOptional limit price in USD. Omit for market order.
principalTokenYesAsset to trade (long). Supported: JITOSOL, WBTC, BONK.
collateralTokenYesCollateral token. Must match principal for longs. Supported: JITOSOL, WBTC, BONK.
collateralAmountYesCollateral amount in human-readable units (e.g. 10 = 10 JITOSOL).
stopLossPriceUsdNoOptional stop-loss price in USD. When provided, the policy engine treats this trade as having a stop loss. Omit to skip the SL requirement (if policy requires SL, this field must be present).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that the tool never signs transactions and that local signing is required, going beyond annotations. It also discloses the pricing model (paid builder) and the signer boundary, ensuring the agent understands the tool's 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 core purpose is front-loaded clearly in the first sentence, but the subsequent execution guidance block is lengthy. While informative, it could be streamlined or separated into additional context without losing clarity.

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?

The description covers the tool's purpose, workflow (build, estimate, pay, finalize), and critical boundaries (signing). Given the complexity of DeFi transactions and the presence of an output schema, the description provides sufficient context for safe and 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 provides full descriptions for all parameters (100% coverage), so the tool description does not need to add further parameter details. The description does not elaborate on the meaning or usage of individual parameters beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence directly states the tool's function: 'Build an unsigned transaction to open or increase a long perp position on Adrena.' It clearly identifies the action (build), target (unsigned transaction for opening/increasing long perp), and platform (Adrena). This distinguishes it from sibling tools like adrena_openPosition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the usage flow including local signing and the need for prior cost estimation, but it does not explicitly contrast with sibling alternatives like adrena_openPosition. The execution guidance provides context on when to use paid tool routing, which helps an agent decide the correct sequence.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_open_shortSAP Adrena Build Open ShortAInspect

Build an unsigned transaction to open or increase a short perp position on Adrena. Collateral must be USDC for shorts. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesPosition owner wallet public key (base58).
leverageYesLeverage multiplier.
priceUsdNoOptional limit price in USD. Omit for market order.
principalTokenYesAsset to short. Supported: JITOSOL, WBTC, BONK.
collateralTokenYesCollateral token. Must be USDC for shorts.
collateralAmountYesCollateral (USDC) amount in human-readable units.
stopLossPriceUsdNoOptional stop-loss price in USD. When provided, the policy engine treats this trade as having a stop loss. Omit to skip the SL requirement (if policy requires SL, this field must be present).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations give readOnlyHint=false and destructiveHint=false; the description adds that this builds unsigned transactions and never receives keys, and explains the pricing and routing. This adds significant behavioral context beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the primary purpose and then provides structured execution guidance. While somewhat lengthy, each sentence adds necessary information. It is well-organized and not verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, workflow, constraints, and output (transactionBase64). With an output schema present, the return values are documented. It is sufficiently complete for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The main description reinforces the USDC collateral requirement and adds execution guidance. This adds moderate value over the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Build an unsigned transaction to open or increase a short perp position on Adrena.' This is a specific verb-resource pair that distinguishes it from siblings like sap_adrena_build_open_long and sap_adrena_build_close_short.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes an execution guidance block explaining when to use this tool (paid hosted builder), the required workflow (estimate cost first, use payment tool if needed), and the signer boundary. It does not explicitly state when not to use it, but sibling context and the guidance provide clear usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_position_packageSAP Adrena Build Position PackageAInspect

Build a single unsigned transaction that atomically opens a perp position AND sets stop loss AND take profit in one transaction. 1 payment, 1 signing, 1 submit — instead of 3 separate calls. If stopLossPriceUsd or takeProfitPriceUsd is omitted, that instruction is skipped. Returns transactionBase64 for local signing via sap_payments_finalize_transaction. Includes balanceCheck.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesPosition owner wallet public key (base58).
leverageYesLeverage multiplier (e.g. 3 = 3x).
priceUsdNoOptional limit price in USD for the open. Omit for market order.
principalTokenYesAsset to trade.
collateralTokenYesCollateral token. USDC for shorts, match principal for longs.
collateralAmountYesCollateral amount in human-readable units.
stopLossPriceUsdNoOptional stop loss trigger price in USD. Omit to skip.
takeProfitPriceUsdNoOptional take profit trigger price in USD. Omit to skip.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this tool is not read-only and not destructive. The description adds that it returns a transactionBase64 for local signing and includes a balanceCheck, providing useful execution context. It does not contradict 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 front-loaded with the core purpose, but includes a lengthy, redundant execution guidance block that appears both in the description and in the input schema description. This repetition reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately covers the tool's functional aspects. However, it does not mention prerequisites like collateral token matching rules for longs/shorts, which are only in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100% with parameter descriptions. The description adds that omitting stopLossPriceUsd or takeProfitPriceUsd skips those instructions, but this is also implied by 'Optional' in schema. The description does not significantly enhance parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds a single unsigned transaction that atomically opens a perp position and sets stop loss/take profit. It distinguishes from sibling tools like sap_adrena_build_open_long and sap_adrena_build_set_stop_loss by combining these actions into one call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that this tool replaces three separate calls, guiding when to use it for atomic operations. It mentions that omitting stopLossPriceUsd or takeProfitPriceUsd skips that instruction. While alternatives are implied by sibling names, explicit when-not-to-use guidance is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_remove_liquiditySAP Adrena Build Remove LiquidityA
Destructive
Inspect

Build an unsigned transaction to remove liquidity from an Adrena pool. Burns LP tokens and receives collateral. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesLiquidity provider wallet public key (base58).
poolNameNoPool to remove liquidity from.
lpAmountInYesLP tokens to burn (raw, 6 decimals).
minAmountOutNoMinimum collateral to receive (raw). 0 for no slippage protection.
collateralTokenYesCollateral token to receive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, but the description adds crucial context: the tool builds an unsigned transaction, returns transactionBase64, and never receives keypair bytes. It also explains pricing and signing boundaries, which are beyond what annotations provide. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise paragraphs: the first states the core purpose, the second provides execution guidance. Every sentence adds value. Front-loaded with the essential action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (paid builder, multi-step workflow), the description covers the full intent, pricing model, routing, and signer boundary. The tool has an output schema implied by 'Returns transactionBase64', so no need to detail return values. The description 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 5 parameters. The main description adds little parametric detail beyond the schema (e.g., 'Burns LP tokens and receives collateral' is already implied). Thus, it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Build an unsigned transaction' and the resource 'remove liquidity from an Adrena pool'. It also explains the action: 'Burns LP tokens and receives collateral'. This distinguishes it from sibling tools like sap_adrena_build_add_liquidity or sap_adrena_build_remove_liquid_stake.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit execution guidance within the SAP ecosystem: it is a paid builder, requires cost estimation first via sap_estimate_tool_cost, and mandates local signing. It does not, however, contrast directly with other remove-liquidity tools (e.g., remove_liquid_stake), but the name and first sentence suffice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_remove_liquid_stakeSAP Adrena Build Remove Liquid StakeA
Destructive
Inspect

Build an unsigned transaction to remove a liquid stake on Adrena (unstake LP tokens). Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesStaker wallet public key (base58).
amountYesAmount of staked LP tokens to withdraw (raw, 6 decimals).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool builds an unsigned transaction and that it is a hosted builder that never receives keypair bytes, requiring local signing. This adds context beyond annotations (destructiveHint=true, readOnlyHint=false). However, it does not detail side effects 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is burdened with a large block of generic SAP MCP execution guidance that is redundant with the input schema description. The essential first sentence is concise, but the repetition lowers conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the tool (build transaction for DeFi operation), the description adequately covers the output (transactionBase64) and the SAP execution model (estimate, pay, build, sign locally). An output schema exists for return values, so no need to detail return structure. Lacks specifics on prerequisites like existing liquid stakes, but sufficient overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds no additional meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds an unsigned transaction to remove a liquid stake on Adrena (unstake LP tokens). It specifies the resource (liquid stake) and action (remove), and differentiates from siblings like sap_adrena_build_add_liquid_stake by explicitly stating 'remove' and 'unstake LP 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?

No explicit guidance on when to use this tool versus alternatives. The description lacks prerequisites, context for choosing this over other build tools, or when-not-to-use scenarios. The boilerplate about estimating cost and paying is procedural for SAP, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_set_stop_lossSAP Adrena Build Set Stop LossAInspect

Build an unsigned transaction to set stop loss on an Adrena position. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesPosition owner wallet public key (base58).
principalTokenYesAsset of the position.
stopLossPriceUsdYesStop loss trigger price in USD.
closePositionPriceUsdNoOptional close position price in USD. If set, the position closes at this price when triggered.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by explaining it returns transactionBase64 for local signing, emphasizes hosted never receives keypair bytes, and details the estimation/payment workflow. Annotations already indicate non-read-only and non-destructive, consistent with builder behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action in the first sentence, and the guidance block is informative though slightly verbose. It is well-structured but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers result format, signer boundary, and payment flow. It is complete for a builder tool with a good schema and output schema. Minor gap: no mention of prerequisites (e.g., existing position).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and each parameter has a clear schema description. The tool description does not add additional semantic meaning beyond what the schema provides, fitting the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Build an unsigned transaction to set stop loss on an Adrena position' with a specific verb and resource, distinguishing it from sibling tools like sap_adrena_build_cancel_stop_loss.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes payment and routing guidance but lacks explicit comparison to alternatives (e.g., set_take_profit) or when to use this tool. Usage is implied by the name but not elaborated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_set_take_profitSAP Adrena Build Set Take ProfitAInspect

Build an unsigned transaction to set take profit on an Adrena position. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesPosition owner wallet public key (base58).
principalTokenYesAsset of the position.
takeProfitPriceUsdYesTake profit trigger price in USD.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description adds behavioral context: it returns transactionBase64 for local signing, clarifies that it's a hosted builder that never receives keypair bytes, and explains the payment workflow. The annotations already indicate it's not read-only, not idempotent, and not destructive, and the description aligns with these while adding practical workflow 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 begins with a concise purpose statement followed by a structured block of execution guidance. The guidance is relevant but somewhat lengthy. Each section is labeled (Intent, Pricing, Routing, Signer boundary), aiding readability. It is efficient but could be tightened slightly without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the schema coverage, the presence of an output schema, and the annotations, the description covers the essential aspects: purpose, return format, workflow prerequisites, and security considerations. It does not detail interaction with existing positions or edge cases, but for a transaction builder tool, it provides sufficient context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all four parameters with descriptions and enums, achieving 100% schema description coverage. The tool description itself does not add additional meaning beyond what the schema provides. The description mentions the output (transactionBase64) but does not elaborate on parameter usage or constraints beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds an unsigned transaction to set take profit on an Adrena position. It specifies the verb 'build', the resource 'unsigned transaction', and the specific action 'set take profit' with context 'Adrena position'. This clearly distinguishes it from sibling tools like sap_adrena_build_set_stop_loss or sap_adrena_build_cancel_take_profit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes detailed execution guidance: 'Intent: hosted unsigned transaction builder', 'Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally', and 'Routing: paid hosted call; call sap_estimate_tool_cost first'. It also advises on signer boundary. This provides clear context on when and how to use the tool, though it does not explicitly list alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_swapSAP Adrena Build SwapA
Destructive
Inspect

Build an unsigned transaction to swap tokens through an Adrena pool. Uses zero-slippage oracle pricing. Returns transactionBase64 for local signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesSwapper wallet public key (base58).
amountYesAmount to swap in human-readable units.
toTokenYesToken to swap to.
fromTokenYesToken to swap from.
minAmountOutNoMinimum amount to receive (raw). 0 for no slippage protection.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds behavioral traits beyond annotations: it mentions the use of oracle pricing for zero-slippage, and that the transaction is built unsigned for local signing. The SAP boilerplate also clarifies signer boundaries (keypair never received). However, it lacks disclosure of potential failure modes or authorization requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool-specific part is concise and front-loaded. The boilerplate SAP execution guidance adds length but provides important context for usage within the platform. It could be more concise by separating generic guidance, but it is well-organized and not excessively verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, swap logic) and the presence of annotations and output schema, the description is sufficiently complete. It explains the return value (transactionBase64) and the zero-slippage pricing. It lacks error or edge-case handling but is adequate for a builder tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions for all 5 parameters. The description does not add significant additional meaning beyond the schema; it mentions 'zero-slippage oracle pricing' but does not elaborate on how minAmountOut relates to slippage. Baseline score of 3 is appropriate as the schema carries the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Build an unsigned transaction to swap tokens through an Adrena pool.' This specifies a concrete verb (build) and resource (swap transaction), and distinguishes from sibling tools that build other transaction types (e.g., add liquidity, open position). It also adds key details: uses zero-slippage oracle pricing and returns transactionBase64 for local signing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives. While it implies usage for token swaps, it omits when-not-to-use scenarios or mentions of sibling tools like sap_adrena_build_add_liquidity or adrena_openPosition. The boilerplate SAP guidance covers pricing and routing but not tool selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_build_trailing_stopSAP Adrena Build Trailing StopAInspect

Build an unsigned transaction to set a trailing stop loss on an Adrena position. Reads the current oracle price and computes the stop loss at the specified percentage distance. For longs: SL below current price. For shorts: SL above current price. Returns transactionBase64 for local signing. Call this repeatedly to keep the stop trailing the price.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesPosition owner wallet public key (base58).
trailPctYesTrailing distance as percentage from current price (e.g. 3 = 3% away).
principalTokenYesAsset of the position.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool reads oracle prices, computes stop loss, returns an unsigned transaction, and should be called repeatedly. It also explains the pricing and routing model. Annotations (readOnlyHint=false, etc.) are consistent, and the description adds context beyond them, such as the oracle price reading and trailing behavior.

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 core description is concise, but the SAP MCP execution guidance is repeated in both the description and the input schema description, making it slightly verbose. The structure is clear, with the main purpose in the first sentence, but some redundancy reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool builds an unsigned transaction and has an output schema (not shown), the description covers purpose, mechanics, return value, and execution flow. It lacks error conditions or edge cases, but is fairly complete for a builder tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, giving a baseline of 3. The description adds directional semantics for the 'side' parameter (long/short relative to price), which is not in the schema's parameter descriptions. It also reiterates trailPct meaning, adding slight value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool builds an unsigned transaction for a trailing stop loss on an Adrena position. It specifies the direction relative to price for longs and shorts, and explicitly says to call repeatedly to trail the price. This differentiates it from siblings like sap_adrena_build_set_stop_loss, which sets a fixed stop loss.

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 does not provide explicit guidance on when to use this tool versus alternatives. While it implies repeated use for trailing, it does not compare with sibling tools or state prerequisites. The SAP MCP execution guidance is about the payment flow, not usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_custody_infoSAP Adrena Get Custody InfoA
Read-onlyIdempotent
Inspect

Fetch per-asset custody statistics from the Adrena Data API. Returns open interest, utilization, volume, and fees for each custody.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
symbolNoOptional symbol filter (e.g. JITOSOL, WBTC).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds value beyond annotations by detailing pricing, routing, and signer boundary considerations. Annotations already declare readOnlyHint, idempotentHint, and non-destructive; description reinforces this with execution context and cost implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a purpose sentence followed by execution guidance. It is concise but includes necessary operational details. Could be slightly more streamlined, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (unshown but indicated), the description appropriately explains what data is returned. It covers the single parameter, execution workflow, and behavioral context. The omission of default behavior (all custodies if no symbol) is minor and implied.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 a clear description for the optional 'symbol' parameter. The description does not add extra semantics beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches per-asset custody statistics from the Adrena Data API and lists specific return fields (open interest, utilization, volume, fees). This distinguishes it from sibling tools like 'adrena_getPositions' which focus on positions, not custody details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit execution guidance including intent (read/discovery), pricing model, routing instructions (call sap_estimate_tool_cost first, use sap_payments_call_paid_tool if needed), and signer boundary. It does not explicitly exclude alternatives but gives clear prerequisites and workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_marketsSAP Adrena Get MarketsA
Read-onlyIdempotent
Inspect

Read all Adrena custody accounts directly from Solana mainnet and return real market data for every supported asset: mint address, decimals, max initial leverage, max leverage, allowTrade/allowSwap flags, oracle feed IDs, open interest (long/short USD), locked amounts, borrow rates, and funding rates. This is the authoritative source for what markets Adrena supports and their current on-chain parameters. Use this before opening positions to verify leverage limits and trade availability.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolNameNoOptional pool filter. Supported: main-pool, commodities-pool. Omit for all pools.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, idempotentHint. Description adds that data comes from Solana mainnet, is real-time, and is authoritative. Also includes execution guidance on pricing and signer boundary.

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?

Front-loaded with main purpose and data. Execution guidance is repeated in schema and description, slightly verbose but well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and output schema, description explains what, when, and execution details. No mention of rate limits or errors, but sufficient for read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers parameter fully with enum and description. Description does not add new meaning beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it reads Adrena custody accounts and returns market data for all supported assets with specific fields listed. Distinguishes from sibling tools like adrena_getPositions and sap_adrena_get_pool_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use before opening positions to verify leverage and trade availability. Lacks explicit when-not-to-use or alternative tools, but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_mutagenSAP Adrena Get MutagenA
Read-onlyIdempotent
Inspect

Fetch Mutagen points for a wallet from the Adrena Data API. Returns total points, rank, and breakdown.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet public key (base58).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds value by detailing the return data, the paid nature of the call via x402, and the signer boundary for keypair safety. No contradictions with annotations exist (annotation_contradiction=false).

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 a front-loaded purpose sentence followed by necessary SAP-specific guidance. Every sentence serves a purpose, though the guidance paragraph is somewhat lengthy. It remains concise relative to the complexity of the SAP ecosystem.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, strong annotations, and an output schema present), the description covers all essential aspects: what it does, what it returns, how to use it within the SAP framework, and safety boundaries. No gaps are apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 and already describes the single parameter ('wallet': 'Wallet public key (base58).'). The description does not add any semantic nuance beyond what the schema provides, so it meets the baseline expectation without adding extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb ('Fetch'), specifies the exact resource ('Mutagen points for a wallet'), and indicates the return structure ('total points, rank, and breakdown'). It distinguishes itself from sibling tools like sap_adrena_get_mutagen_leaderboard and other read tools, making the tool's purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The SAP MCP execution guidance provides explicit instructions on when and how to use the tool within the SAP framework, including routing and payment steps. While it does not explicitly mention alternatives or when not to use it, the context of the sibling tools and the tool name make it clear. The guidance is detailed and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_mutagen_leaderboardSAP Adrena Get Mutagen LeaderboardA
Read-onlyIdempotent
Inspect

Fetch Mutagen points leaderboard from the Adrena Data API. Returns top wallets by points.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional limit. Default 50.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds behavioral context beyond annotations, including the return type (top wallets by points) and signer boundary information. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is divided into two concise paragraphs: a clear functional statement and a structured execution guidance block. It is efficient without unnecessary verbiage, though the execution guidance could be slightly shorter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 presence of an output schema, full schema parameter coverage, and annotations, the description is fairly complete. It explains the tool's purpose, return data, and includes execution context (pricing, routing, signer boundary). It lacks explicit prerequisites but is adequate for a read-only tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'limit', with description in schema matching the description in the tool. The tool description adds no additional meaning beyond the schema's field description, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch Mutagen points leaderboard from the Adrena Data API. Returns top wallets by points.' This is a specific verb+resource combination that distinguishes it from sibling tools like sap_adrena_get_mutagen (which likely returns individual mutagen info) and sap_adrena_get_trader_leaderboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes execution guidance about read/discovery intent, pricing, and routing, but does not explicitly state when to use this tool versus alternatives such as sap_adrena_get_trader_leaderboard. Usage context is implied but lacks direct comparative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_pool_infoSAP Adrena Get Pool InfoA
Read-onlyIdempotent
Inspect

Read Adrena pool statistics directly from the on-chain Pool account. Returns TVL (AUM), LP token price, pool name, custody list, trade/swap flags, and fees debt. Reads from Solana mainnet via RPC. Use this before opening positions to check pool health and available custodies.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
poolNameNoPool name. Supported: main-pool (default), commodities-pool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds 'Reads from Solana mainnet via RPC' and execution guidance (hosted read, no keypair bytes), providing meaningful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

First paragraph is concise (2 sentences). Second paragraph (SAP MCP guidance) is verbose but relevant for execution in the SAP ecosystem. Front-loaded with key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple input (one optional enum) and rich annotations, the description covers purpose, return fields, when to use, and execution guidance. No missing critical information for a read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with param description. The description adds default value info (main-pool) not in schema's enum list, which is slightly helpful but minimal.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it reads Adrena pool statistics on-chain, specifies exact return values (TVL, LP token price, pool name, custody list, trade/swap flags, fees debt), and distinguishes from sibling tools like sap_adrena_get_custody_info by focusing on pool-level stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises use before opening positions to check pool health and custodies. The SAP MCP guidance provides execution context but doesn't explicitly exclude alternative tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_positionsSAP Adrena Get PositionsA
Read-onlyIdempotent
Inspect

Fetch position history for a wallet from the Adrena Data API. Returns closed and open positions with P&L, entry/exit prices, and status.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet public key (base58).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint true, idempotentHint true, destructiveHint false) already indicate safe behavior. The description adds value by detailing the return data (closed/open positions, P&L, entry/exit prices, status) and reiterating the read-only nature. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and to the point. The second paragraph contains useful but dense SAP execution guidance. It could be slightly more streamlined, but overall it is well-organized and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, read-only), existing annotations, and presence of an output schema, the description covers all necessary details: purpose, usage guidance, behavioral context, and parameter semantics. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the baseline is 3. The single parameter 'wallet' is described in the schema as 'Wallet public key (base58).' The description does not add extra semantics beyond what the schema already provides, but it does not need to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and resource 'position history for a wallet', specifying the return includes closed/open positions with P&L, prices, and status. While it doesn't explicitly differentiate from sibling tools like adrena_getPositions, the SAP prefix and context make it distinct enough.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit SAP MCP execution guidance, including intent (read/discovery), pricing model, routing advice (call sap_estimate_tool_cost first), and signer boundary. This helps the agent decide when and how to use the tool, though it does not explicitly list when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_position_statusSAP Adrena Get Position StatusB
Read-onlyIdempotent
Inspect

Fetch live position status (P&L, size, liquidation price, entry price, oracle price) from the Adrena Data API for a specific wallet and token.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
walletYesWallet public key (base58).
principalTokenYesPrincipal token symbol (e.g. JITOSOL, WBTC, BONK, XAU).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false. The description adds that it fetches live data from the Adrena Data API and includes SAP execution guidance (pricing, routing). This provides some context beyond annotations but does not disclose additional behavioral traits like rate limits or error responses.

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 two parts: a concise functional sentence and a longer block of SAP execution guidance that is repetitive (identical text appears in the input schema description). The guidance is not front-loaded and could be more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with three parameters, full schema coverage, and an output schema, the description is mostly complete. It states what the tool returns (P&L, size, etc.) and includes SAP routing/pricing context. Minor gaps: no mention of behavior when position not found or rate limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters (side, wallet, principalToken). The description does not add any extra semantics or usage details for parameters beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch live position status (P&L, size, liquidation price, entry price, oracle price) from the Adrena Data API for a specific wallet and token.' This specifies the verb and resource, and the listed fields add detail. However, it does not explicitly distinguish from the sibling tool 'adrena_getPositions' which lists multiple positions, so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for fetching a single position status, but does not explicitly state when to use this tool versus alternatives like 'adrena_getPositions' or other 'sap_adrena_' tools. There is no when-not or alternative guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_pricesSAP Adrena Get PricesA
Read-onlyIdempotent
Inspect

Fetch current ADX and ALP token prices from the Adrena Data API.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds specific context: fetches ADX and ALP token prices, and details execution workflow including signer boundary. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences for purpose, followed by a structured block of execution guidance. Every sentence adds necessary value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 0 parameters, output schema present, and a simple fetch operation, the description fully covers purpose, usage, behavioral context, and execution steps. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; baseline is 4 per instructions. Description adds no parameter info because none exist, but schema coverage is 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'current ADX and ALP token prices from the Adrena Data API', distinguishing it from siblings like sap_adrena_get_positions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on intent (read/discovery), pricing (x402 challenge), routing (call sap_estimate_tool_cost first, use sap_payments_call_paid_tool if needed), and signer boundary (hosted reads never receive keypair bytes).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_trader_infoSAP Adrena Get Trader InfoA
Read-onlyIdempotent
Inspect

Fetch trader performance metrics from the Adrena Data API. Returns total volume, P&L, fees, win rate, and rank.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesTrader wallet public key (base58).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive. Description adds that it calls the Adrena Data API, returns specific fields, and includes security notes about signer boundary. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Core purpose is clearly stated in first sentence. The SAP execution guidance adds length but is relevant. Could be slightly more concise by removing redundant parts, but overall well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter, the description fully covers what the tool does, what it returns, and execution context (payment, security). No output schema provided, but description lists return fields. 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?

Only parameter 'wallet' has description in schema ('Trader wallet public key (base58).') which matches schema description. Schema coverage is 100%, so description adds no new meaning beyond 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?

Clearly states it fetches trader performance metrics listing specific fields (volume, P&L, fees, win rate, rank). Distinguishes from sibling tools like adrena_getPositions (positions vs performance), but does not explicitly differentiate from sap_adrena_get_trader_leaderboard which also involves rank.

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?

Describes what the tool does (fetch performance metrics) but lacks explicit guidance on when to use vs alternatives (e.g., getPositions vs getTraderInfo). The SAP execution guidance is about how to call, not when.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_trader_leaderboardSAP Adrena Get Trader LeaderboardA
Read-onlyIdempotent
Inspect

Fetch trader leaderboard from the Adrena Data API. Returns top traders by volume and P&L.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoOptional limit. Default 50.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it returns 'top traders by volume and P&L' and includes system-level execution guidance. It does not contradict annotations and adds some context, but does not cover details like pagination or data freshness.

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 purpose is stated in two sentences, front-loaded. The execution guidance is a separate block and is structured but somewhat lengthy. It is not overly verbose, though the repetition of guidance in the input schema description is slightly redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description adequately covers what the tool does and how to use it in the SAP ecosystem. It does not mention error handling or rate limits, but for a simple read-only query tool, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter 'limit', which includes min/max and default. The description only repeats 'Optional limit. Default 50.' from the schema. Baseline 3 is appropriate since the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch trader leaderboard from the Adrena Data API' and specifies the return 'top traders by volume and P&L'. It differentiates from sibling tools like adrena_getPositions and sap_adrena_get_trader_info by focusing on the leaderboard data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes detailed SAP MCP execution guidance covering intent, pricing, routing, and signer boundary. It tells the agent to call sap_estimate_tool_cost first and use sap_payments_call_paid_tool if needed. However, it does not explicitly state when not to use this tool or provide alternatives for similar trader data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_get_trading_pricesSAP Adrena Get Trading PricesA
Read-onlyIdempotent
Inspect

Fetch latest oracle trading prices for all Adrena assets. Returns price and custody address for each traded asset.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description aligns with these by stating it fetches prices (a read operation), but adds no additional behavioral details beyond what annotations already convey.

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 first sentence is concise and informative. However, the second sentence contains generic SAP MCP execution guidance that is redundant with the input schema description, making the overall description less focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there are no parameters, an output schema exists, and annotations provide safety details, the description sufficiently covers the tool's behavior. It states the return values, and the output schema can provide structure details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description cannot add parameter meaning. Baseline 4 is appropriate. The description does mention the return content (price and custody address), which is helpful though not strictly parameter-related.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches latest oracle trading prices for all Adrena assets and returns price and custody address. This is specific and distinguishes from sibling tools like sap_adrena_get_prices and sap_adrena_get_custody_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives, nor does it mention prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_simulate_positionSAP Adrena Simulate PositionAInspect

FREE dry-run tool (no x402 charge): simulates opening a perp position on Adrena by building the same instructions as the open position builder, then calling connection.simulateTransaction(). Returns Adrena program logs, compute units consumed, whether the position would succeed, and the pre-flight balance check — without serializing or returning transaction bytes. Use this to validate position parameters and diagnose on-chain failures before building a paid transaction.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side: long or short.
ownerYesPosition owner wallet public key (base58). This is the fee payer and signer.
leverageYesLeverage multiplier (e.g. 3 = 3x).
poolNameNoPool to use. Default: main-pool. Use commodities-pool for XAU/XAG/WTI.
principalTokenYesAsset to trade. Supported: JITOSOL, WBTC, BONK, plus XAU, XAG, WTI in the commodities pool.
collateralTokenYesCollateral token. For longs must match principal (main pool) or be USDC (commodities pool). For shorts must be USDC. Supported: USDC, JITOSOL, WBTC, BONK.
collateralAmountYesCollateral amount in human-readable units (e.g. 10 = 10 JITOSOL or 10 USDC).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims the tool is a dry-run simulation that does not modify state, implying read-only behavior. However, the annotation 'readOnlyHint': false contradicts this, indicating the tool might have side effects. This contradiction forces a score of 1 per evaluation rules.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the key purpose and key features in the first sentence. It is appropriately sized with two paragraphs, though the second paragraph (SAP MCP guidance) is somewhat verbose. Overall, it is efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description provides sufficient context: it explains what the tool does, its cost (free), its non-destructive nature, and its intended use case. The description is complete enough for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter well-documented in the schema. The description adds no additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's a simulation tool that 'simulates opening a perp position on Adrena by building the same instructions as the open position builder'. It distinguishes itself from sibling tools like adrena_openPosition and the sap_adrena_build_open_* series by being a free dry-run that does not execute on-chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises using this tool 'to validate position parameters and diagnose on-chain failures before building a paid transaction'. It also provides SAP MCP execution guidance on pricing and routing. While it does not explicitly state when not to use it, the context is clear and sufficient for appropriate selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_adrena_trade_intentSAP Adrena Trade IntentAInspect

Intent-level Adrena trading API. Pass market name, side, USD collateral, and leverage (or "max"). The tool resolves mint addresses, decimals, max leverage from on-chain custody accounts, converts USD collateral to token amounts via oracle price, validates parameters, and returns a ready-to-sign transaction. Supports optional stopLossPct and takeProfitPct for atomic position+SL+TP in one transaction. Reduces 5 tool calls to 1.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
ownerYesWallet public key (base58).
marketYesMarket symbol: BONK, JITOSOL, WBTC, USDC, XAU, XAG, WTI.
leverageYesLeverage multiplier (e.g. "3" for 3x) or "max" for maxInitialLeverage.
poolNameNoPool: main-pool (default) or commodities-pool.
stopLossPctNoOptional stop loss as % from entry (e.g. 5 = 5% away). Omit to skip.
collateralUsdYesCollateral amount in USD. Converted to token amount using oracle price.
takeProfitPctNoOptional take profit as % from entry (e.g. 15 = 15% away). Omit to skip.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only and not idempotent, consistent with the description that it creates a transaction. The description explains the resolution process (mint addresses, decimals, oracle prices) and that the result is an unsigned transaction. The generic SAP execution guidance adds important context about payment routing and signer boundaries.

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 core description is concise and front-loaded with the key purpose and inputs. The following block of generic SAP execution guidance is somewhat repetitive but does not hinder clarity. Overall, the description is well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (trading with optional SL/TP, oracle integration), the description covers the main workflow and expected output (a ready-to-sign transaction). The presence of an output schema supplements completeness. Edge cases like oracle failures are not addressed, but the description is adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, providing baseline clarity. The tool description adds meaning by explaining the conversion of collateralUsd via oracle price, the 'max' leverage option, and that stopLossPct/takeProfitPct are percentages from entry. This enrichment goes beyond the schema fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is an 'Intent-level Adrena trading API' that resolves on-chain data and returns a ready-to-sign transaction. It specifies the required inputs (market, side, USD collateral, leverage) and distinguishes itself from lower-level build tools by claiming it 'reduces 5 tool calls to 1.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool should be used for integrated trading intents, mentioning it replaces multiple build calls. However, it does not explicitly state when to use it versus alternatives like the sap_adrena_build_* tools, nor does it provide exclusions. The implicit guidance is clear but not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_agent_contextGet SAP Agent ContextAInspect

Free one-shot SAP orientation context for agents. Use this when the user asks whether SAP MCP is connected, wants to understand an agent/wallet, or needs the next safe paid/write route. It combines exact reads or a compact directory page with routing guidance without triggering x402. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum compact orientation rows to include when wallet is not supplied. Defaults to 10 and is capped at 20 to keep this tool in the micro-read tier.
queryNoOptional text query for a compact micro-read orientation search. Keep this narrow, for example "XONA" or "Solking".
walletNoOptional exact owner wallet public key (base58). When supplied, returns the matching agent identity, PDA, active state, and hydrated profile when available.
agentPdaNoOptional exact SAP agent PDA (base58) for compact context lookup when the owner wallet is not known.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the tool is free and doesn't trigger x402, which is useful. However, the annotation readOnlyHint=false contradicts the description's implication that the tool is read-only (exact reads, one-shot). This reduces transparency despite other disclosures about the SAP ecosystem.

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 contains two paragraphs, the second of which is general SAP MCP execution guidance not specific to this tool. This adds unnecessary length and dilutes focus. The first paragraph is well front-loaded but overall could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations are present, the description provides sufficient purpose, usage guidance, and behavioral traits. It explains the tool's role in the SAP ecosystem well, though the general guidance paragraph adds some noise.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 good parameter descriptions, so baseline is 3. The tool description does not add additional parameter-level semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as a free one-shot SAP orientation context for agents, listing specific use cases (checking connection, understanding agent/wallet, next safe paid/write route). It distinguishes itself from sibling sap_* tools by being a general context getter rather than a specific action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides guidance on when to use the tool (when user asks about SAP MCP connection, agent/wallet understanding, next safe route) and even includes routing instructions for paid calls (call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool). This makes it easy for an agent to decide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_agent_identity_planPlan SAP Agent IdentityBInspect

Free read-only planner for SAP agent registration, profile/image updates, Metaplex/MPL Core identity linking, SNS linking, x402 pricing metadata, and post-write verification. Use this before sap_payments_register_agent or sap_payments_update_agent so agents know the exact local-signer route, metadata contract, forbidden actions, and protocol fee verification checklist. It does not touch chain and never signs. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoRequired public display name for the SAP agent. Keep it stable enough for explorers and humans.
agentIdNoOptional stable lowercase agent id, for example solking. This is separate from the on-chain agent PDA.
pricingNoOptional pricing tiers advertised by the agent. Use tokenType usdc + settlementMode x402 for pay.sh/x402 agent commerce.
agentUriNoOptional public HTTPS/IPFS/Arweave/Kommodo URI for the agent profile metadata or profile page. Never use local desktop file paths.
imageUrlNoOptional public image URL. This must be HTTPS, IPFS, Arweave, or another public URI; desktop file paths are not valid.
protocolsNoRequired protocol tags the agent supports, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, payments.
snsDomainNoOptional .sol domain to link after ownership or registration is verified.
descriptionNoRequired public description of what the agent does, which protocols it can use, and its safety/trust boundaries.
metadataUriNoAlias for agentUri. Prefer a public JSON metadata document containing name, description, image, external_url, attributes, sap, metaplex, sns, and x402 fields.
ownerWalletNoOptional expected SAP owner wallet. Use this for verification planning only; signing still comes from the active local SAP profile.
capabilitiesNoRequired capability list. Prefer object form for production; strings are accepted as shorthand.
x402EndpointNoOptional public x402 discovery/payment endpoint, usually https://host/.well-known/x402 for external agent services.
metaplexAssetNoOptional Metaplex NFT or MPL Core asset/collection address to reference from public agent metadata.
intendedActionNoAgent identity lifecycle step to plan. Use register for a new SAP agent, update for profile/image/capability changes, link-metaplex for NFT/MPL Core identity, link-sns for .sol identity, or full-identity for the recommended end-to-end flow.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, implying the tool may write, but the description repeatedly states it is 'read-only,' 'does not touch chain,' and 'never signs.' This is a direct contradiction, rendering the description unreliable. Additionally, openWorldHint=true suggests possible side effects outside the system, which the description does not address.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive, containing multiple identical phrases like 'Intent: agent bootstrap, routing, skills, or repair guidance.' and 'SAP MCP context...' The first sentence is clear, but the rest could be significantly trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, usage order, and safety constraints. However, it omits what the output plan contains despite an output schema being present. The contradiction with annotations also reduces completeness. For a complex tool, it provides adequate but imperfect 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 covers all 14 parameters with full descriptions. The description adds some value by explaining parameter aliases (e.g., 'Alias for agentUri') and use cases, but much of the description is boilerplate repetition. Schema coverage is 100%, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Free read-only planner for SAP agent registration, profile/image updates, Metaplex/MPL Core identity linking, SNS linking, x402 pricing metadata, and post-write verification.' This clearly states the verb (planner) and the resources it covers, distinguishing it from write siblings like sap_register_agent or sap_update_agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this before sap_payments_register_agent or sap_payments_update_agent' and 'It does not touch chain and never signs,' providing clear when-to-use context and an exclusion (no direct writes). It also gives pricing and routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_agent_migrate_pricing_menuMigrate Agent Pricing MenuAInspect

Backfill or resync the AgentPricingMenu PDA for the connected wallet SAP agent. Run this once if sap_update_agent, sap_close_agent, or createEscrowV2 fails with AccountNotInitialized on the pricing_menu account. Agents registered before pricing menus were created at registration need this one-time migration. Local-signer-only; hosted accountless SAP MCP rejects this direct write before x402 payment. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnly=false, openWorld=true, idempotent=false, destructive=false. The description adds valuable context: this is a one-time migration, requires local signer, hosted MCP rejects it before payment, and write tools need signer policy, configured RPC, and active SAP profile. It also warns to run once, aligning with the non-idempotent annotation.

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 first part is focused and front-loaded, but the description then includes a generic 'SAP MCP execution guidance' block that is largely boilerplate and repeated in the input schema. This makes the description wordier than necessary, though the structure is logical.

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 that there are no parameters and an output schema exists, the description fully covers operation purpose, triggers, migration context, signer constraints, and execution requirements. It gives enough context for an agent to decide and invoke correctly, including payment and profile prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema is complete and the description need not add parameter-level semantics. Per the rubric, 0 parameters earns a baseline 4, and there is no missing parameter information to penalize.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Backfill or resync the AgentPricingMenu PDA for the connected wallet SAP agent.' It clearly identifies the action, target, and scope, and distinguishes this tool from siblings by naming the exact failure condition and related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use instructions: run once if sap_update_agent, sap_close_agent, or createEscrowV2 fails with AccountNotInitialized on pricing_menu, or for agents registered before pricing menus existed. It also states a clear when-not/exclusion: hosted accountless SAP MCP rejects this direct write, so local-signer-only is required.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_agent_next_actionResolve SAP MCP Next ActionA
Read-onlyIdempotent
Inspect

Free routing resolver for SAP MCP errors and partial results. Use this before retrying after payment_required, hosted_local_signer_required, BlockhashNotFound, missing sap_payments, timeout, or a submitted signature that has not confirmed.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentNoCurrent user intent or workflow area.
toolNameNoTool that produced the error or partial result, for example sap_register_agent, sap_update_agent, or sap_create_escrow_v2.
errorCodeNoMachine error code when available, for example hosted_local_signer_required, payment_required, BlockhashNotFound, or expired_or_not_landed.
errorMessageNoHuman or structured error message returned by the runtime, hosted server, local bridge, or wallet/RPC layer.
hasSignatureNoTrue when a transaction signature was already produced or submitted. This prevents unsafe duplicate retries.
paymentRequiredNoTrue when the previous response was an x402/pay.sh payment challenge.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the resolver produced guidance.
nextToolYesExact preferred next SAP MCP tool, or null when user/runtime action is needed.
retryableYesWhether the underlying issue can generally be retried.
nextActionYesConcrete next action for the agent.
userMessageYesShort user-facing explanation.
classificationYesNormalized error or routing classification.
paymentChargedYesBest-effort payment status: no, unknown, possible, or yes.
safeToRetryNowYesWhether the agent should retry immediately without risking duplicate writes or duplicate user charges.
forbiddenActionsYesActions the agent must not take for this case.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value beyond annotations by stating it is 'free' and providing signer boundary details ('hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally'). This context is not 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two paragraphs: the first states purpose and when to use; the second provides execution guidance. It is concise and well-structured, though the input schema repeats the guidance text. No unnecessary sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, no required params, output schema exists, annotations present), the description is complete. It explains purpose, exact use cases, pricing, routing, and security boundaries. An agent would understand exactly when and how to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 6 parameters with descriptions. The description does not add new semantics beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'Free routing resolver for SAP MCP errors and partial results' and lists specific error scenarios. The title 'Resolve SAP MCP Next Action' complements this. It distinguishes itself from sibling tools, as no other tool serves as a universal error resolver.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use this before retrying after' and enumerates exact error codes like payment_required, hosted_local_signer_required, etc. It also provides SAP MCP execution guidance on pricing, routing, and signer boundary, giving clear when-to-use and contextual rules.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_agent_runtime_statusCheck SAP MCP Runtime StatusA
Read-onlyIdempotent
Inspect

Free machine-readable readiness and routing summary for SAP MCP. Use this for "are you connected?", paid/write readiness, local profile visibility, and exact next actions without dumping the whole tool catalog.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentNoOptional user intent so the status can highlight the correct next tool path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hostedYesObservable hosted SAP MCP status for this server process.
intentYesStatus intent used for routing.
routingYesCanonical tool routes for reads, paid calls, writes, and unsigned transactions.
successYesWhether runtime status was generated.
localBridgeYesExpected local sap_payments bridge status and verification tools.
nextToolCallsYesExact next tool calls agents should make when available.
forbiddenActionsYesActions agents must not perform.
userFacingSummaryYesShort summary safe to show to the user.
sessionContextPacketYesMachine-readable SAP MCP routing, freshness, memory, proof-tape, and forbidden-action rules for this intent.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond annotations, such as 'free', 'hosted reads/builders never receive keypair bytes', and that value-moving results must be finalized locally. Annotations already indicate read-only, idempotent, non-destructive. There is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, repeating 'SAP MCP execution guidance' in both tool description and input schema. The first sentence is effective, but the guidance block could be more concise. The input schema also duplicates some of this 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 the simple tool (1 optional parameter, read-only, idempotent, output schema exists), the description adequately covers purpose, usage, and behavioral traits. It mentions machine-readable output but relies on the output schema for detailed format, which is acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (only one optional parameter 'intent' with enum). The tool description does not add significant meaning beyond what the schema description already provides ('Optional user intent so the status can highlight the correct next tool path'). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it provides a 'readiness and routing summary' for SAP MCP, listing specific use cases like 'are you connected?' and 'paid/write readiness'. It distinguishes from dumping the whole tool catalog, but does not explicitly differentiate from other sap status tools like 'sap_agent_context' or 'sap_agent_next_action' among the many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists when to use the tool: for connection checks, paid/write readiness, local profile visibility, and next actions. It also provides pricing and routing guidance ('free; call directly without x402'). However, it does not state when not to use it or directly compare with alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_agent_standard_contextGet SAP Agentic Standards ContextA
Read-onlyIdempotent
Inspect

Free agentic-standards orientation for SAP MCP. Use this after sap_agent_start when an agent needs to understand how SAP MCP maps MCP, x402/pay.sh, A2A-style Agent Cards, OASF-style agent facts, AP2-style mandate planning, local signing, and hosted unsigned builders without guessing or over-claiming unsupported standards.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentNoClosest user intent so the standards context can highlight the correct MCP/x402/local-signer route.
includeRoadmapNoWhether to include planned-but-not-claimed standards work such as MCP Apps, A2A signatures, AG-UI views, and full AP2 mandate signatures. Defaults to true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
claimsYesPublic claims agents can safely make and claims they must avoid.
intentYesNormalized intent used for routing.
roadmapYesPlanned standards improvements when includeRoadmap is true.
successYesWhether the standards context was generated.
standardsYesSAP MCP mapping across MCP, x402/pay.sh, A2A-style metadata, OASF-style export, AP2-style mandates, and UI/runtime standards.
nextToolCallsYesExact next tool calls for this standards-aware session.
serverVersionYesSAP MCP server version that generated this context.
trustBoundaryYesNon-custodial and local-signing boundaries agents must preserve.
bootstrapSequenceYesRecommended first calls for agent runtimes.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, idempotentHint), the description adds meaningful behavioral context: pricing is free, no x402 payment needed, routing is a free hosted call, and hosted reads/builders never receive keypair bytes while value-moving results must be finalized locally. These are important security and execution traits not disclosed by 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 front-loaded with the core purpose in the first sentence and organized with a clear 'SAP MCP execution guidance' section. However, the second paragraph repeats much of the content already present in the input schema's description, creating minor redundancy. Still, each section is compact and relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, annotations, and an output schema), the description is complete. It covers usage sequence, pricing, routing, and signer boundary, which are the key operational concerns. The output schema handles return-value details, so no further description is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are fully described in the schema. The description adds a high-level intent categorization ('agent bootstrap, routing, skills, or repair guidance') but this is already implied by the schema's enum values and field descriptions. No additional meaning is provided for includeRoadmap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: a free orientation for SAP MCP standards mapping, listing specific standards (MCP, x402/pay.sh, A2A-style Agent Cards, OASF, AP2). It also distinguishes from siblings by specifying 'Use this after sap_agent_start', which frames its role relative to other SAP tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'Use this after sap_agent_start when an agent needs to understand...' It also gives operational instructions like 'call directly without x402' and 'keep it small/exact when possible.' However, it does not name alternative tools or explicitly state when not to use it, so it lacks a clear exclusion clause.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_agent_startStart SAP MCP Agent ModeA
Read-onlyIdempotent
Inspect

Return the concise startup playbook for agents using SAP MCP. Call this when the user says "Start SAP MCP", "Initialize SAP MCP", "Load SAP", or asks what SAP MCP can do.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
goalNoOptional user goal to tailor the startup plan, such as "register an agent", "check wallet balance", or "swap tokens".

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYesWhether the bootstrap instructions were generated.
serverModeYesCurrent SAP MCP server mode.
paymentFlowYesHow to handle hosted x402/pay.sh paid calls safely.
repairCommandYesWizard command to repair local hosted/profile/payment bridge setup.
hostedEndpointYesCanonical hosted SAP MCP endpoint.
connectionCheckYesHow agents should answer simple connection/status questions.
activationPhrasesYesShort user phrases that should trigger this bootstrap behavior.
userFacingSummaryYesShort text the agent can show the user after startup.
immediateToolCallsYesTool calls the agent should run first when available.
sessionContextPacketYesMachine-readable SAP MCP routing, freshness, memory, proof-tape, and forbidden-action rules for this session.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool is safe. Description adds valuable context on costing (free, no x402), routing (keep small/exact), and signer boundary (no keypair bytes on hosted side), which are beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose in the first sentence. However, the second paragraph repeats text from the input schema description (pricing, routing, signer boundary), making it less concise than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description covers usage and behavioral traits well. It lacks detail on what the 'startup playbook' actually contains (e.g., format or structure), but the output schema likely fills this gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'goal' parameter, and its description is clear. The tool description does not add significant new information beyond what's in the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states it returns a startup playbook for agents using SAP MCP. It distinguishes itself by focusing on bootstrapping and guidance, contrasting with sibling tools that perform specific actions like trading or staking.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides clear invocation triggers: when user says 'Start SAP MCP', 'Initialize SAP MCP', 'Load SAP', or asks about capabilities. It also includes execution guidance on pricing, routing, and signer boundary, making it a complete usage guide.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_audit_queryQuery Audit TrailA
Read-onlyIdempotent
Inspect

Free local tool. Queries the immutable audit trail for x402 settlements and transaction signatures. Search by tool name, outcome, or time range. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results. Default 20.
queryNoFTS5 search query.
outcomeNoFilter by outcome.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive behavior. The description adds context about being a 'free local tool', no x402 charge, and signer boundary (hosted reads never receive keypair bytes). This provides useful behavioral traits beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise with two paragraphs: one for purpose and one for execution guidance. However, some execution guidance (pricing, routing) is repeated in the schema's description, making it slightly redundant. Overall, it 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?

Given that an output schema exists, the description need not explain return values. It mentions searchable fields but fails to map 'time range' to any schema parameter, creating a gap. The execution guidance is relevant but does not fully cover all contextual needs for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description mentions search by tool name, outcome, or time range, but the schema does not include a time range parameter, causing slight inconsistency. The description adds little meaning beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries the immutable audit trail for x402 settlements and transaction signatures, with specific verbs and resource. It distinguishes from siblings like sap_audit_record and sap_audit_stats by focusing on querying rather than recording or statistics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on when to use this tool by stating it's free, local, and does not require x402 payment. However, it lacks explicit differentiation from alternative tools like sap_audit_record or search tools, and does not specify when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_audit_recordRecord Audit EntryAInspect

Free local tool. Records a manual audit entry in the tool call history. Use this to log custom events (e.g. manual interventions, external transactions, policy decisions). No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputNoJSON details.
outputNoJSON result.
outcomeYesOutcome.
toolNameYesLabel for the audit entry.
txSignatureNoTransaction signature if applicable.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by noting the tool is free, free from x402 restrictions, and includes signer boundary guidance. Annotations indicate readOnlyHint=false, consistent with recording. No contradictions, but more detail on side effects (e.g., persistence) could improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the main purpose. The second paragraph contains repetitive boilerplate ('Intent: SAP MCP tool workflow') but still concise overall. Every sentence adds relevant information, though some redundancy could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 nature of the tool, the description covers purpose, usage examples, pricing, and routing. An output schema exists, so return values are not needed. It is adequate, though it could mention the required fields (toolName, outcome) explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameter descriptions already present. The description does not elaborate on parameter meanings beyond what the schema provides, but the schema itself is sufficient. No additional semantic guidance is given.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Records a manual audit entry in the tool call history.' It provides specific examples like 'manual interventions, external transactions, policy decisions,' and the name and title align. It effectively distinguishes from sibling tools like sap_audit_query and sap_audit_stats by focusing on recording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool ('Use this to log custom events') and mentions it is free, but does not explicitly exclude alternatives or compare to other audit tools. However, the context of recording vs querying is implied, and the 'No x402 charge' note guides cost-effective usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_audit_statsMemory & Audit StatsA
Read-onlyIdempotent
Inspect

Free local tool. Returns aggregate statistics about the memory database: tool call counts, memory counts, stream buffer counts, outcome breakdown, DB size. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds value by stating it is a free, local tool with no charge, and clarifies that it returns aggregate statistics. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and contains repeated information. The first paragraph is clear, but the second paragraph (SAP MCP execution guidance) is redundant with the input schema description, which itself is overly long. Not concise or well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and an output schema, the description adequately covers what it does (returns aggregate statistics) and important behavioral notes (free, local, no charge). It does not need to explain return values since an output schema exists. Minor missing details about potential limitations are acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so the schema coverage is 100%. The description provides additional context about the output (specific statistics returned), which helps the agent understand what to expect. The redundant guidance in the input schema does not detract.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it returns aggregate statistics about the memory database, listing specific items (tool call counts, memory counts, stream buffer counts, outcome breakdown, DB size). It clearly distinguishes itself as a free, local tool with no x402 charge, setting it apart from other tools like sap_network_stats or sap_audit_query.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes guidance on pricing and routing ('Free local tool', 'No x402 charge', 'call directly without x402', 'keep it small/exact when possible'), telling the agent when and how to use it. However, it does not explicitly state when not to use it or mention alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_build_sol_transferBuild Native SOL Transfer TransactionAInspect

Build an unsigned native SOL transfer transaction using SystemProgram.transfer. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transferSol (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
lamportsNoAmount in lamports (1 SOL = 1,000,000,000 lamports). Use sap_estimate_tool_cost to check the builder fee before calling.
toPubkeyNoRecipient public key in base58.
fromPubkeyNoSender public key in base58. This is the fee payer and must sign the transaction locally.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: it is a paid hosted call that builds an unsigned transaction, never receives keypair bytes, and requires local signing. This adds context beyond annotations (readOnlyHint: false, destructiveHint: false) about the signing boundary and pricing model.

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 informative but somewhat lengthy due to repeated guidance (e.g., the SAP MCP execution guidance appears in both the description and the input schema). However, it is well-structured with key info upfront.

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?

The description covers the tool's purpose, usage flow, pricing, signing boundary, and what to do with the output. Given the complexity of the tool (paid, hosted unsigned builder), it is complete and provides sufficient context for an AI agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described, meeting the baseline of 3. The description adds extra context like using lamports and referencing the estimate tool cost, which enhances understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds an unsigned native SOL transfer transaction using SystemProgram.transfer, returns a serialized base64 transaction for local signing, and distinguishes itself from spl-token_transferSol by noting it's the hosted-safe equivalent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool versus spl-token_transferSol, outlines the full workflow (estimate first, then pay/build, then finalize locally), and mentions calling sap_estimate_tool_cost and possibly sap_payments_call_paid_tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_build_spl_transferBuild SPL Token Transfer TransactionAInspect

Build an unsigned SPL token transfer transaction. Returns serialized base64 transaction for the agent to sign locally with sap_payments_finalize_transaction or sap_sign_transaction → sap_submit_signed_transaction. This is the hosted-safe equivalent of spl-token_transfer (which is local-signer-only and cannot run on the hosted accountless server). Builder fee applies.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintNoSPL token mint address in base58.
amountNoAmount of tokens to transfer in base units (respect the mint decimals).
decimalsNoToken decimals for the mint. Used for display purposes only — the on-chain amount is in base units.
sourceOwnerNoSource token account owner public key in base58. This is the fee payer and must sign the transaction locally.
destinationOwnerNoDestination wallet public key in base58. The destination ATA will be created if it does not exist.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint=false, idempotentHint=false), the description adds valuable behavioral context: the tool returns an unsigned transaction for local signing, builder fee applies, and it clarifies the signing boundary (no keypair bytes received). This compensates for the minimal 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 verbose and includes repetitive 'SAP MCP execution guidance' that also appears in the input schema. While front-loaded with key purpose, it could be more concise. Every sentence is not earning its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (5 parameters, output schema exists, many sibling tools), the description covers the complete workflow: estimate, pay, build, sign locally, submit. It also clarifies the signing boundary and hosted vs local differentiation. No major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter already has clear documentation. The tool description reiterates some points (e.g., destination ATA creation) but does not add significant new parameter-level information beyond what schema provides. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Build an unsigned SPL token transfer transaction' and distinguishes it from the local-only 'spl-token_transfer' sibling. It specifies the return format (serialized base64) and the workflow for signing locally.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong context: it is the hosted-safe alternative to spl-token_transfer (which cannot run on hosted accountless servers). It also outlines the required workflow: estimate cost, pay/build, then finalize locally. However, it does not explicitly list when not to use this tool or mention other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_cancel_subscriptionCancel SAP SubscriptionA
Destructive
Inspect

Cancel a recurring subscription. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
subIdNoSubscription ID (as a decimal string, default: 0)
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavioral traits beyond annotations: it is a write operation (consistent with destructiveHint=true), requires signer mode and policy approval, is a paid action with cost preview, and has routing restrictions. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise at a few sentences, with the key action stated first. However, some boilerplate like 'Intent: SAP MCP tool workflow' could be tighter, and the structure could be more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 high schema coverage and existing annotations, the description covers purpose, usage context, prerequisites, pricing, and routing. It could mention what happens post-cancellation, but the output schema likely covers return values. Overall sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both parameters. The tool description does not add additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description immediately states 'Cancel a recurring subscription,' which is a specific verb and resource. This clearly distinguishes it from sibling tools like sap_create_subscription or sap_fund_subscription.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context about when to use this tool (e.g., 'Estimate or fetch state before creating escrows or settling calls') and mentions prerequisites (signer mode, policy approval). It also advises against calling it as a paid hosted write and suggests alternatives like sap_payments bridge when user signing is required, but could be more explicit about when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chart_indicatorsSAP Chart IndicatorsBInspect

Compute technical indicators (RSI, EMA-20, EMA-50, MACD, Bollinger Bands, ATR) from DexScreener price data. Returns pre-calculated values with trend/momentum/volatility signals. Reduces analysis time by 5-10 tool calls.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58).
indicatorsNoIndicators to compute. Default: all.
resolutionNoChart resolution for indicator calculation.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description implies the tool is read-only (computes and returns values without side effects), but annotations specify readOnlyHint=false, creating a contradiction. The description does not disclose any other behavioral traits beyond pricing and routing, which are already indicated elsewhere. The contradiction overrides any positive disclosure, resulting in a score of 1.

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 split into two parts: a concise tool-specific sentence and a lengthy block of generic SAP MCP execution guidance. The guidance is necessary for paid tool usage but is not concise and repeats boilerplate found in other SAP tools. The tool-specific part is efficient, but the overall structure includes redundant 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 that an output schema exists (not shown), the description does not need to detail return values. It mentions data source (DexScreener) and efficiency gains. It lacks mention of data freshness or any prerequisites, but for a compute tool with good annotations and output schema, it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all three parameters (mint, indicators, resolution). The description adds the list of indicator names but does not provide additional meaning beyond the schema (e.g., default behavior for missing indicators or resolution). Given full schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool computes specific technical indicators (RSI, EMA-20, EMA-50, MACD, Bollinger Bands, ATR) from DexScreener price data, with a specific verb ('Compute') and resource ('technical indicators from DexScreener price data'). It also mentions returning pre-calculated values with signals, distinguishing it from sibling tools that likely return raw OHLC data (e.g., sap_chart_ohlc).

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 lacks explicit guidance on when to use this tool versus alternatives (e.g., sap_chart_ohlc or coingecko_getOHLCV). It does not mention use cases, prerequisites, or when not to use it. The only guidance provided is about SAP MCP execution routing, which is generic and not specific to tool selection. This leaves the agent without clear direction on tool choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chart_long_termSAP Chart Long TermCInspect

Fetch long-term price history for a Solana token from DexScreener and optional protocol TVL data from DeFiLlama. Returns price changes, volume, liquidity, FDV, and TVL history. Read-only — uses free REST APIs.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58) for price history.
protocolNoOptional DeFiLlama protocol slug for TVL history (e.g. "jupiter", "raydium").

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description claims 'Read-only' and 'uses free REST APIs', but annotation readOnlyHint is false, contradicting the description. Although the tool is indeed read-only, the annotation contradicts, forcing a score of 1 per guidelines.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is clear, but the large block of generic SAP execution guidance is repetitive (also in input schema) and not tool-specific, bloating the description. It fails to earn its place, making the description longer than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions what data is returned (price changes, volume, liquidity, FDV, TVL) and data sources. Given an output schema exists, it is adequate but missing details like time range granularity or data point count.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds info about return fields (price changes, volume, liquidity, FDV, TVL) but does not add further parameter meaning or constraints beyond 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 fetches long-term price history from DexScreener and optional TVL from DeFiLlama. It uses specific verbs (Fetch) and resources (Solana token, protocol slug), and the context of sibling chart tools implies differentiation, though not explicitly stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., sap_chart_ohlc, sap_chart_indicators). The generic SAP execution guidance (estimate cost, signing) is not tool-specific usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chart_multi_ohlcSAP Chart Multi OhlcBInspect

Fetch OHLC candlestick data for multiple resolutions in a single call. Returns open, high, low, close, and volume for each requested timeframe. Uses free DexScreener API — one fetch, multiple timeframes. Reduces multi-timeframe analysis cost by 5x.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58).
resolutionsYesResolutions to fetch (e.g. ["5m","1h","6h","24h"]).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description contains contradictory pricing information: 'Uses free DexScreener API' vs. 'Pricing: priced by hosted x402 challenge'. This undermines transparency. Annotations (readOnlyHint=false) are consistent but do not resolve the contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with a large block of generic SAP execution guidance that is not specific to this tool. It repeats similar instructions across multiple uses, making it less concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema is indicated to exist, so return values are covered. However, the description lacks details on the structure of the returned data (e.g., mapping from resolution to OHLCV). Complexity is moderate, but the free vs. paid contradiction leaves ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add meaningful detail beyond what the schema provides for the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches OHLC candlestick data for multiple resolutions in a single call, distinguishing it from single-resolution tools like sap_chart_ohlc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies that using this tool reduces multi-timeframe analysis cost by 5x, implying use when multiple resolutions are needed, but does not explicitly state when not to use or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chart_ohlcSAP Chart OhlcCInspect

Fetch OHLC candlestick data for any Solana token from DexScreener. Returns open, high, low, close, volume, liquidity, and FDV. Read-only — uses free DexScreener REST API.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58) to fetch OHLC data for.
resolutionNoChart resolution: "5m", "1h", "6h", "24h" (default "1h").

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'Read-only' but the annotation readOnlyHint is false, creating a contradiction. This severely undermines trust and transparency about the tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is concise (two sentences), but it is followed by a large generic boilerplate about SAP MCP execution that is not specific to this tool, adding unnecessary length and noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions the return fields (open, high, low, close, volume, liquidity, FDV) and that it is read-only, but lacks details on how many data points are returned, pagination, or time ranges. Given the output schema exists, it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters have clear descriptions in the input schema, and the description does not add additional semantics beyond what is already in the schema. Schema coverage is 100%, so baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch OHLC candlestick data for any Solana token from DexScreener', which is a specific verb and resource. It does not explicitly differentiate from sibling tools like sap_chart_multi_ohlc or coingecko_getOHLCV, but the purpose is clear.

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 given on when to use this tool versus alternatives. The description only states it is read-only and uses DexScreener, but no context on selecting this over other chart tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chart_volume_profileSAP Chart Volume ProfileBInspect

Compute volume profile (POC, VAH, VAL) for any Solana token using DexScreener price and volume data. Returns point of control, value area high/low, and bucket distribution. Read-only — uses free DexScreener REST API + local computation.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58) to compute volume profile for.
bucketsNoNumber of price buckets (default 20).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'Read-only' but annotations set readOnlyHint: false, creating a direct contradiction. This undermines trust and confuses the agent about whether the tool modifies state. No further behavioral traits are disclosed beyond the misleading read-only claim.

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 core purpose is stated concisely in the first sentence. The second block of SAP execution guidance is somewhat lengthy but essential for the ecosystem, and the overall description remains front-loaded with the key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, read-only nature), the description provides adequate context for usage, including output types and data source. However, the contradiction with annotations and lack of usage guidelines detract from completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters (mint and buckets) are already well-documented in the schema. The description adds marginal context about data sources (DexScreener) but does not elaborate on parameter constraints or usage beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Compute volume profile', the resource 'any Solana token', and the outputs 'POC, VAH, VAL, and bucket distribution'. It distinguishes itself from sibling chart tools (e.g., sap_chart_indicators) by focusing specifically on volume profile computation.

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 does not explicitly state when to use this tool versus alternatives like sap_chart_indicators or sap_chart_ohlc. It only mentions 'any Solana token' but provides no comparative guidance or context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_derive_roomSAP Chat Derive RoomBInspect

Derive a deterministic SAP chat room/session ID. Group and public room IDs are active; DM derivation is reserved for future native support.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoThematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not reveal behavioral traits beyond what annotations already provide. It does not mention whether the tool creates a room, modifies state, or requires authorization. The generic execution block is unrelated to tool-specific behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is concise, but a lengthy generic execution block (pricing, routing, signer boundary) is appended to both the description and the input schema's description field. This repetitive boilerplate adds significant noise and reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and an output schema, the description is insufficient. It does not explain how the deterministic derivation works, how inputs map to the room ID, or whether the tool has side effects. The generic block does not compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for all parameters, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides; the generic block is irrelevant to parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Derive a deterministic SAP chat room/session ID') and specifies the resource (SAP chat room). It also distinguishes from sibling chat tools by focusing on ID derivation rather than publishing, reading, or messaging.

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 group and public room IDs are active while DM derivation is reserved, providing a basic usage constraint. However, it does not explain when to use this tool versus other chat tools (e.g., sap_chat_start_room) or give explicit guidance on prerequisites or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_publish_manifestSAP Chat Publish ManifestAInspect

Publish a signed thematic room/group manifest for discovery indexers, policy-aware agents, and chat clients.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoSmall topic tags used by discovery, for example openbook, markets, sol-usdc.
linksNoOptional signed room links for docs, market references, IPFS manifests, or execution receipts.
topicNoThematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery.
policyNoCompact group policy or content-addressed policy reference.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
metadataNoOptional compact manifest metadata.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
descriptionNoShort public room/group description.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds context beyond annotations by mentioning signing, payment, and signer boundary (hosted reads never receive keypair bytes). Annotations already indicate it is not read-only, and description reinforces write 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?

Front-loaded purpose, then provides necessary workflow guidance. Slightly verbose but well-structured and earns its length with critical agent instructions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, workflow, payment, signing, and relies on output schema for return values. Would benefit from explicit differentiation from other chat tools, but overall complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with full descriptions; the tool description does not add additional parameter meaning beyond the schema, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'publish' and the resource 'signed thematic room/group manifest', distinguishing it from sibling chat tools like sap_chat_send_message or sap_chat_read_all.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit workflow guidance on pricing, estimation, and routing, but does not explicitly contrast with sibling tools or state when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_read_allSAP Chat Read AllBInspect

Read all SAP chat messages from sealed ledger pages plus the latest ring buffer.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoThematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a read operation ('Read all SAP chat messages'), but the annotation 'readOnlyHint' is false, which contradicts the description's implication of a non-destructive read. This contradiction severely undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose due to repeated SAP MCP execution guidance blocks in both the description and the input schema. This redundancy wastes space and reduces clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description provides necessary pricing and routing context for the SAP ecosystem, but lacks details on return format, ordering, or behavioral nuances (e.g., 'latest ring buffer' implications). With an existing output schema, the gap is partially mitigated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with each parameter having a description. The tool description adds no additional parameter-specific meaning beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads all SAP chat messages from sealed ledger pages and the latest ring buffer. It specifically distinguishes the scope and source, differentiating it from siblings like 'sap_chat_read_latest'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive SAP MCP execution guidance covering pricing, routing, and signer boundary, which helps agents understand when to use this tool (e.g., paid read-premium, estimate cost first). However, it lacks explicit differentiation from sibling chat read tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_read_latestSAP Chat Read LatestBInspect

Read latest SAP chat messages from the room ring buffer.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoThematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose behavioral details beyond the basic read operation. Annotations include readOnlyHint=false which contradicts the read nature, and the description does not clarify behavior like caching, pagination, or side effects. Description adds little value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The tool-specific description is concise (one sentence), but it is followed by a lengthy boilerplate SAP MCP execution guidance that is not specific to this tool, reducing conciseness. The boilerplate could be omitted or moved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and an output schema exists, the description adequately conveys the basic purpose but lacks context on how parameters relate, when to use, and expected output behavior. It is minimally complete but has gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter having a description in the schema. The tool description does not add additional meaning beyond the schema descriptions, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read latest SAP chat messages from the room ring buffer,' specifying the action (read) and resource (SAP chat messages, latest, room ring buffer). This distinguishes it from sibling tools like sap_chat_read_all which reads all messages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool versus alternatives like sap_chat_read_all or sap_chat_send_message. The SAP MCP execution guidance is generic about pricing and routing, not about usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_seal_roomSAP Chat Seal RoomBInspect

Seal the current chat ring buffer into an immutable SAP ledger page for permanent history.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoThematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description mentions immutability and permanence but fails to disclose that this is a paid, write operation with irreversible effects. No annotation contradiction (readOnlyHint=false matches write nature), but the description adds minimal behavioral context beyond the one-liner.

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 core description is a single concise sentence, but the appended 'SAP MCP execution guidance' is lengthy, generic, and not specific to this tool, reducing overall 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?

A paid, permanent sealing operation requires more context about prerequisites, consequences, and parameter effects. Output schema exists but the description is too brief to make the tool fully understandable without additional hints.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 covers all 5 parameters with descriptions (100% coverage). The description does not add parameter-specific details beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Seal') and clearly states the resource ('chat ring buffer') and outcome ('immutable SAP ledger page for permanent history'). It distinguishes from sibling chat tools like sap_chat_send_message or sap_chat_read_latest, which have different actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as sap_chat_publish_manifest or sap_chat_read_all. The generic pricing/routing boilerplate does not provide tool-specific usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_send_messageSAP Chat Send MessageCInspect

Send a chunked SAP chat message to a room. Public messages store UTF-8 text; private messages store caller-provided ciphertext bytes.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
linksNoOptional signed link references. Each link must include url and may include kind, label, sha256.
topicNoRequired thematic group topic when deriving or writing to topic-scoped groups.
policyNoOptional compact group policy reference or policy hash. Full policy bodies should live off-chain and be linked by hash.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
contentNoPlain UTF-8 message content for public messages.
replyToNoOptional parent message ID.
metadataNoOptional JSON metadata. Keep small; large metadata should be stored off-chain and hashed.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
visibilityNoMessage visibility. Defaults to public.
contentTypeNoMIME content type. Defaults to text/plain for public messages.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.
payloadBase64NoBase64 payload. Required for private/ciphertext messages.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=false, destructiveHint=false, idempotentHint=false, which are consistent. The description adds that messages are chunked and the distinction between public UTF-8 text and private ciphertext bytes. However, it does not explain chunking behavior, side effects, or authentication requirements. The boilerplate SAP guidance is not specific to this tool's behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose due to repeated SAP MCP execution guidance blocks that are not specific to this tool. The first sentence is concise, but the rest is boilerplate that could be omitted or summarized. This detracts from readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 13 parameters (0 required), nested objects, and an output schema, the description only covers basic message sending and public/private distinction. It lacks guidance on chunking, room derivation, or handling large payloads. The boilerplate does not compensate for missing tool-specific context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description does not add parameter-specific information beyond the schema. The schema itself already describes parameters adequately. No extra value 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 starts with a clear verb+resource: 'Send a chunked SAP chat message to a room.' It also distinguishes between public and private message types. However, it does not differentiate from sibling tools like sap_chat_start_room or sap_chat_read_all, and the term 'chunked' is not explained.

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 lacks explicit guidance on when to use this tool versus alternatives (e.g., sap_chat_start_room to create a room first, sap_chat_derive_room to compute a room ID). There is no mention of prerequisites, when to use public vs private, or constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_start_roomSAP Chat Start RoomBInspect

Start an on-chain SAP chat room by creating the backing vault, session, and ledger if needed.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoThematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, so the writing behavior is expected. The description adds that it creates vault, session, and ledger, which provides context beyond annotations. However, it does not disclose edge cases (e.g., idempotency, cost implications) or further behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The key behavioral sentence is front-loaded, but the description includes a large block of generic SAP guidance that is not tool-specific, adding unnecessary length. This makes it less concise than ideal.

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 tool (creating on-chain entities), the description is minimal. It omits prerequisites, error conditions, and expected outcomes. The output schema exists, so return values are not needed, but operational context is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% as all 5 parameters are described. The description does not add additional meaning or examples for parameters, so it does not exceed the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Start an on-chain SAP chat room by creating the backing vault, session, and ledger if needed.' This is a specific verb-resource pair and distinguishes it from other chat tools like sap_chat_send_message or sap_chat_seal_room.

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 lacks explicit when-to-use guidance relative to sibling tools. The boilerplate SAP MCP execution guidance does not clarify scenarios for this tool versus alternatives (e.g., sap_chat_derive_room). No mention of prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_chat_statusSAP Chat StatusCInspect

Get backing SAP memory session status for a chat room.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicNoThematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery.
roomIdNoOptional explicit room ID. If omitted, one is derived deterministically.
roomKindNoChat room kind: dm, group, or room.
roomNameNoHuman-readable room name for public thematic rooms.
participantsNoParticipant agent/wallet identifiers for DM or group rooms.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotation contradiction: readOnlyHint=false but description says 'Get' implying read-only. The description does not disclose side effects, auth requirements, or rate limits, and contradicts the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short but includes a large block of generic boilerplate (pricing/routing guidance) that is repetitive and not tool-specific, wasting space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain what 'backing SAP memory session status' means or when it is relevant. Given the tool's complexity (5 optional params) and contradictory annotations, completeness is low.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 good parameter descriptions. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets backing SAP memory session status for a chat room. It uses a specific verb-resource pair and is distinct from sibling tools like sap_chat_read_latest or sap_chat_send_message.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., sap_chat_read_latest). The description lacks any context for selection or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_close_agentClose SAP AgentB
Destructive
Inspect

Close the connected wallet SAP agent and reclaim rent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds consequence 'reclaim rent' and mentions it's a write tool requiring signer policy, which is useful. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are concise and tool-specific, but the long generic 'SAP MCP execution guidance' block is irrelevant for this tool and bloats the description. Not concise overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and a clear purpose, the description covers basic behavior and consequences. However, it lacks differentiation from sibling tools like deactivate, and the generic guidance adds noise. Adequate but not excellent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist and schema coverage is 100%. The description adds no parameter info, which is acceptable given zero parameters. Baseline score 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it closes the connected wallet SAP agent and reclaims rent, which is a specific action. However, it does not distinguish from similar tools like sap_deactivate_agent, leaving ambiguity for the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., deactivate vs close). The generic SAP context block does not provide tool-specific usage rules or prerequisites beyond 'connected wallet'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_close_escrow_v2Close SAP Escrow V2A
Destructive
Inspect

Local-signer-only direct close for an empty V2 escrow. Hosted users should call sap_escrow_build_close_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (as a decimal string, default: 0)
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true. The description adds context: the tool is for empty escrows, requires enabled signer mode and MCP policy approval, and mentions estimation and state fetching. However, much of the execution guidance is generic boilerplate not specific to this tool, slightly reducing transparency value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains excessive boilerplate about 'SAP MCP execution guidance' (pricing, routing, signer boundary) that is repeated across multiple SAP tools and is not specific to this function. The first sentence is effective, but the rest is verbose and could be shortened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values are already documented. With only two non-required parameters and a straightforward action (close empty escrow), the description covers the essential context: local signer, empty condition, and policy requirements. The boilerplate adds noise but doesn't omit critical details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, meaning all two parameters (nonce, agentWallet) are described in the schema. The description adds no further parameter-level detail beyond the generic SAP context. Thus, the description provides no extra semantic value beyond the schema, resulting in a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Local-signer-only direct close for an empty V2 escrow.' It distinguishes from the sibling tool sap_escrow_build_close_transaction, which is for hosted users. The verb 'close' and resource 'V2 escrow' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Local-signer-only' and 'Hosted users should call sap_escrow_build_close_transaction and finalize locally,' providing clear when-to-use and when-not-to-use guidance with an alternative tool named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_compact_inscribe_memoryCompact Inscribe SAP MemoryAInspect

Compact memory inscription with explicit vault/session PDAs. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEncryption nonce as a byte array, hex string, or base64 string
vaultPdaNoVault PDA (base58) for the memory inscription
sessionPdaNoSession PDA (base58) for the memory inscription
contentHashNo32-byte content hash as a byte array, hex string, or base64 string
encryptedDataNoEncrypted memory data as a byte array, hex string, or base64 string

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the tool likely mutates state but is not destructive. The description adds transparency: it explains what is stored (encrypted payloads or public hashes) and what is visible on-chain (vault and session PDAs). This adds value beyond annotations. No contradiction found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively concise, with the core purpose stated upfront. However, the execution guidance section is repeated verbatim from the input schema description, which is redundant. It could be trimmed to improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters and an output schema, the description adequately covers the main intent, security considerations, and execution flow. It does not explain differences from sibling tools, but overall it provides sufficient context for an AI agent to understand when and how to invoke it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all parameters documented. The description adds overall context (e.g., 'explicit vault/session PDAs') but does not significantly enhance understanding beyond the schema descriptions. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Compact memory inscription with explicit vault/session PDAs.' It specifies the verb (inscribe) and resource (memory) and distinguishes from siblings by focusing on compactness and explicit PDAs. The context 'Memory/session flow' further clarifies its role.

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 some context ('Memory/session flow') and security considerations ('Store only intentionally encrypted payloads or public hashes'), but does not explicitly compare to sibling memory tools (e.g., sap_inscribe_memory, sap_memory_record) or specify when to choose this over alternatives. The execution guidance about pricing and routing is more about invocation mechanics than usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_complete_unstakeComplete SAP UnstakeBInspect

Complete unstake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentWalletNoAgent wallet public key (base58) to complete unstaking for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds behavioral context: it performs writes ('before writes'), involves local signing ('signer boundary'), and is part of a paid workflow. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes verbose generic SAP execution guidance about pricing, routing, and signer boundaries that is repeated across many SAP tools. This bloats the description and detracts from the core purpose. A more concise version would be better.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's role in SAP staking and notes the need to confirm details before writes. However, it omits the broader flow (e.g., that it follows sap_request_unstake) and does not explain the output schema (though it exists). Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter clearly described as 'Agent wallet public key (base58) to complete unstaking for'. The description does not add extra meaning beyond the schema, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Complete unstake for an agent wallet' with a specific verb and resource. It distinguishes from external AgentKit staking tools and provides SAP MCP context, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is part of SAP protocol staking flow and distinct from external tools, but does not explicitly state when to use this tool (e.g., after sap_request_unstake) or when not to. There is no clear guidance on prerequisites or alternatives relative to siblings like sap_request_unstake.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_create_attestationCreate SAP AttestationAInspect

Create an on-chain attestation for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
expiresAtNoOptional expiry timestamp (as a decimal string, 0 = no expiry)
agentWalletNoAgent wallet public key (base58) to create attestation for
metadataHashNo32-byte metadata hash as a byte array, hex string, or base64 string
attestationTypeNoOptional attestation type string (default: "generic")

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false) with openWorldHint. Description adds that it is a 'paid value-action' requiring preview and user confirmation, and clarifies routing constraints and signing boundaries. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is overly verbose and repetitive, with the same execution guidance block appearing twice. The essential purpose statement is short, but the rest is cluttered with redundant 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 low complexity (4 simple parameters, output schema exists), description covers purpose, usage context, and key behavioral notes. Slightly assumes domain knowledge (SAP MCP), but still adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 4 parameters described). Description adds a caution about using exact field names, but no further semantic meaning beyond the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Create an on-chain attestation for an agent wallet' and adds context about reputation and trust flow. However, it does not differentiate from sibling tools like sap_fetch_attestation or sap_revoke_attestation beyond the verb.

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 guidance on when to use ('after verifying the target agent PDA or wallet') and mentions pricing and routing constraints. But lacks explicit exclusions or alternatives, and the advice is mixed with execution details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_create_escrow_v2Create SAP Escrow V2AInspect

Local-signer-only direct V2 escrow creation using SDK EscrowV2Module.create. Defaults to DisputeWindow settlementSecurity=2; SelfReport/0 is rejected. Hosted accountless SAP MCP rejects this before x402 payment; hosted users should call sap_escrow_build_create_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
arbiterNoOptional arbiter public key kept for IDL compatibility and dispute workflows.
coSignerNoRequired co-signer wallet public key when settlementSecurity=1 (CoSigned).
maxCallsNoMaximum number of calls covered by the escrow as a decimal string. Use 0 for unlimited when supported by policy.
expiresAtNoOptional expiry timestamp in unix seconds as a decimal string. Defaults to 0 (no expiry).
tokenMintNoOptional SPL payment token mint. Omit/null for native SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC x402 escrows.
agentWalletNoAgent owner wallet public key (base58). The V2 escrow PDA is derived from this wallet plus nonce.
pricePerCallNoPrice per served call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
tokenDecimalsNoPayment token decimals. Defaults to 6 when tokenMint is set, otherwise 9 for native SOL.
initialDepositNoInitial escrow deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
disputeWindowSlotsNoRequired positive dispute window in slots for settlementSecurity=2. Defaults to 2160 (~15 minutes).
settlementSecurityNoV2 settlement security mode. 1=CoSigned (requires coSigner). 2=DisputeWindow (recommended default; requires disputeWindowSlots > 0). SelfReport/0 is deprecated and rejected on-chain.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate it is a write operation (readOnlyHint=false) and not destructive. The description adds specific behavioral details: defaults to DisputeWindow settlementSecurity=2, SelfReport/0 is rejected, and notes signer boundaries and MCP policy approval. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and contains repetitive guidance about routing and signer boundaries. It could be more concise while retaining key 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 complexity (12 parameters) and the presence of an output schema, the description covers the main constraints, use cases, and alternatives adequately. It is complete enough for an agent to understand when and how to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds some high-level context (e.g., 'The V2 escrow PDA is derived from this wallet plus nonce') but does not significantly enhance understanding beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it is for 'Local-signer-only direct V2 escrow creation using SDK EscrowV2Module.create'. It distinguishes from siblings by noting that 'SelfReport/0 is rejected' and directs hosted users to alternative tools like sap_escrow_build_create_transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use (local signer) and when not to use (hosted accountless before x402 payment). It provides explicit alternatives: 'hosted users should call sap_escrow_build_create_transaction and finalize locally' and advises to 'Use the local sap_payments bridge or a hosted unsigned builder when user signing is required'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_create_subscriptionCreate SAP SubscriptionAInspect

Create a recurring subscription for an agent wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
subIdNoSubscription ID (as a decimal string, default: 0)
agentWalletNoAgent wallet public key (base58) to create subscription for
initialFundNoInitial fund amount in lamports (as a decimal string)
billingIntervalNoBilling interval in seconds between charges
pricePerIntervalNoPrice per billing interval in lamports (as a decimal string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false). The description confirms this, adds details about requiring user confirmation, previewing costs, and blocking hosted accountless writes. No contradiction with annotations, and provides important 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.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive, containing multiple instances of the same routing and pricing guidance. It could be much shorter while retaining key information. Not concise for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite verbosity, the description covers all necessary context: SAP MCP flow, pricing model, routing constraints, signer boundaries, and prerequisite actions. Output schema exists, so return value explanation is not required. Completeness is high for a non-trivial 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?

Input schema coverage is 100% and includes descriptions for all 5 parameters, but the tool description does not add extra meaning beyond what the schema already provides. Baseline of 3 is appropriate as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a recurring subscription for an agent wallet. It uses specific verbs and resources, and the title matches. Sibling tools like sap_cancel_subscription and sap_fetch_subscription are distinct, so purpose differentiation is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidelines: estimate or fetch state before creating escrows, requires enabled signer mode and MCP policy approval, warns against using as a paid hosted write, and suggests alternatives like local sap_payments bridge or hosted unsigned builder. This fully addresses when and how to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_deactivate_agentDeactivate SAP AgentB
Destructive
Inspect

Deactivate the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds generic context about write tools requiring signer policy and being a paid action, but does not provide tool-specific behavioral details beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with repetitive boilerplate text that appears in many SAP tools. The key purpose is in the first sentence, but the remaining generic context adds unnecessary length and reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and an output schema, the description should explain the effect of deactivating an agent (e.g., termination consequences). It only provides generic SAP MCP context, leaving important behavioral gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema description coverage is 100%. The description does not need to explain parameters, but it could have explicitly stated that no parameters are required. Baseline 4 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 first sentence clearly states the tool deactivates the connected wallet SAP agent. However, the description does not differentiate from siblings like sap_activate_agent or sap_reactivate_agent. The purpose is clear but lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks specific guidance on when to use this tool versus alternatives. It includes generic SAP MCP context about write tools but no explicit when-to-use or when-not-to-use advice for this particular tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_deactivate_toolDeactivate SAP ToolC
Destructive
Inspect

Deactivate a SAP tool descriptor by name. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameNoName of the tool descriptor to deactivate

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds context that write tools require signer policy, configured RPC, and active SAP profile, but does not detail the specific effects of deactivation (e.g., what happens to the tool, permissions needed). The generic guidance is somewhat helpful but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains redundant generic SAP MCP guidance that appears in many tools (pricing, routing, signing). The first sentence is concise, but the rest wastes space repeating information that is already in the input schema description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive write tool with one parameter, the description should explain the effects of deactivation and specific prerequisites. It includes generic write tool requirements but not tool-specific behavior. The presence of an output schema is noted but not described, so completeness is lacking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'toolName' described as 'Name of the tool descriptor to deactivate.' The description adds no further semantics beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Deactivate a SAP tool descriptor by name,' indicating a specific verb and resource. While it does not explicitly differentiate from sibling tools like sap_reactivate_tool, the name itself contrasts sufficiently.

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 lacks guidance on when to use this tool versus alternatives. It includes generic SAP MCP execution guidance but no specific context like 'Use this to deactivate a currently active tool; use sap_reactivate_tool to reactivate.' No exclusions or when-not-to-use are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_decode_transactionDecode TransactionAInspect

Decode a serialized Solana transaction and return stable transaction metadata. Use this before signing when a SAP MCP, Jupiter, MagicBlock, SNS, Metaplex, or DeFi tool returns transactionBase64 or an unsigned transaction.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
encodingNoInput encoding
transactionNoSerialized transaction

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate readOnlyHint=false, openWorldHint=true, etc. The description adds that the tool returns stable transaction metadata, which is consistent. No annotation contradiction is present. However, the description does not significantly expand on behavioral traits beyond what annotations imply – it's a straightforward decode with no side effects, and the description adequately aligns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and usage, followed by execution guidance. It is reasonably concise, though the execution guidance paragraph is somewhat repetitive (similar text appears in the input schema description). Overall, it is well-structured and each sentence adds value, but minor redundancy prevents a perfect score.

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 that the tool has an output schema (so return format is documented elsewhere) and is a simple decode operation, the description covers all essential aspects: what it does, when to use it, and adds execution context. The execution guidance, while platform-specific, still provides useful constraints (e.g., free, direct call, signer boundary). The description is complete for an agent to understand and use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with each parameter (encoding and transaction) already described. The main description adds no further parameter-specific semantics, so it meets the baseline. No extra value is provided beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool decodes a serialized Solana transaction and returns stable transaction metadata. It specifies the verb, resource, and output, and distinguishes itself from sibling tools by mentioning when to use it (before signing after specific tools return base64/unsigned transactions). This makes the purpose unambiguous and contextually grounded.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent to use this tool before signing when certain other tools return transactionBase64 or unsigned transactions. This provides clear context for invocation. However, it does not explicitly state when not to use the tool or name alternatives, which would strengthen the guidance. The additional execution guidance is more about platform workflow than tool usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_deposit_escrow_v2Deposit SAP Escrow V2AInspect

Local-signer-only direct deposit into a V2 escrow. Hosted users should call sap_escrow_build_deposit_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (as a decimal string, default: 0)
amountNoDeposit amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant context beyond annotations: explains local-signer requirement, that hosted accountless write is blocked, pricing model (paid, preview before confirmation), signer boundary (user-controlled local profile), and non-custodial nature. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in first sentence. The rest is organized into sections (SAP MCP context, execution guidance). Some redundancy (e.g., 'Intent: SAP MCP tool workflow' appears twice) and generic guidance that is not tool-specific, but overall efficient given the complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all critical aspects: purpose, alternatives, prerequisites, pricing, routing, signer requirements. Output schema exists so return values are covered. Could mention what deposit does to escrow state, but given sibling tools and overall context, it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% coverage with descriptions for each parameter. Description does not add extra detail about individual parameters (nonce, amount, agentWallet) beyond what schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states 'Local-signer-only direct deposit into a V2 escrow', clearly identifying the verb (deposit), resource (V2 escrow), and constraint (local-signer-only). It distinguishes from sibling sap_escrow_build_deposit_transaction by specifying that hosted users should use that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use ('Local-signer-only') and when not to (hosted users should use sap_escrow_build_deposit_transaction). Also provides prerequisites like 'estimate or fetch state before creating escrows' and 'write operations require enabled signer mode and MCP policy approval'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_deposit_stakeDeposit SAP StakeAInspect

Deposit additional stake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoAdditional stake deposit amount in lamports (as a decimal string)
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, so the tool is a non-destructive write. The description adds valuable context: pricing (paid value-action, preview cost), routing (blocked as hosted accountless write), signer boundary (user-controlled), and OOBE non-custodial nature. This goes beyond annotations, though it does not describe success/failure behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with boilerplate about SAP MCP context and execution guidance, which may be repeated across tools. It includes two paragraphs, some of which is generic rather than tool-specific, reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers purpose, usage precautions, and execution constraints. However, it lacks explicit guidance on how this tool relates to sibling SAP staking tools (e.g., sap_init_stake, sap_fetch_stake) and does not mention output schema details. Output schema exists, partially mitigating need for return value explanation.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 covers both parameters with clear descriptions (amount in lamports as decimal string, agent wallet public key). Schema coverage is 100%, so baseline is 3. The description adds only generic advice to confirm details, not additional parameter-specific meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Deposit additional stake for an agent wallet,' specifying the verb (deposit) and resource (stake for an agent wallet). It also distinguishes from external AgentKit staking tools, providing clear purpose and differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises confirming wallet, amount, and unstake timing before writes, and notes distinction from AgentKit tools. However, it lacks explicit guidance on when not to use this tool versus internal SAP staking tools like sap_init_stake or sap_complete_unstake, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_discover_agentsDiscover SAP AgentsBInspect

Paid hosted discovery for SAP agents. Search and filter the current on-chain AgentAccount directory by query, wallet, protocol, capability, x402 endpoint presence, and cursor pagination. Use this for targeted agent discovery before calling per-agent fetch tools. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResult shape. Use compact for broad discovery and full for detailed rows. Defaults to compact.
limitNoMaximum rows to return. Defaults to 50; hard-capped at 500.
queryNoOptional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: "XONA" or "creative".
cursorNoOpaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call.
offsetNoZero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned.
walletNoOptional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path.
hydrateNoDeprecated compatibility alias. Use view="full" for full rows or view="compact" for directory rows.
agentPdaNoOptional exact SAP agent PDA filter.
protocolNoOptional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: "jupiter", "creative", "payments".
capabilityNoOptional single capability ID filter matched case-insensitively. Example: "creative:imageGeneration" or "jupiter:swap".
capabilitiesNoOptional list of capability IDs. Use capabilityMode="all" when the agent must have every capability.
capabilityModeNoHow to match the capability/capabilities filters. Defaults to "any".
hasX402EndpointNoOptional filter for agents that advertise a paid HTTP/x402 endpoint.
includeInactiveNoInclude inactive agents. Defaults to false.
includeProtocolIndexesNoInclude compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'Read-only SAP SDK wrapper' and 'Use these reads to inspect current chain state', but the annotation readOnlyHint is false. This is a direct contradiction, severely undermining transparency. Additionally, the description adds details about pricing and routing that go beyond annotations, but the contradiction overrides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence. It includes two paragraphs: one for tool function, one for SAP MCP execution context. Though somewhat verbose with pricing and routing details, it remains well-structured and each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's 15 parameters and output schema existence, the description covers the read-only usage, pricing model, and intended workflow. It lacks a direct comparison to sibling listing tools, but overall provides sufficient context for an agent to use it appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 describes all parameters. The description lists filter types but adds no additional semantics beyond the schema. Baseline 3 is appropriate as the description does not deepen parameter understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Paid hosted discovery for SAP agents' with filtering by query, wallet, protocol, etc. It positions the tool for targeted discovery before per-agent fetch tools. However, it does not explicitly distinguish from similar sibling tools like sap_list_agents or sap_list_all_agents, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage guidance: 'Use this for targeted agent discovery before calling per-agent fetch tools' and discusses read-only context before mutations. However, it does not specify when not to use it (e.g., for a single known agent via sap_get_agent) or alternatives explicitly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_escrow_build_close_transactionBuild SAP Escrow V2 Close TransactionA
Destructive
Inspect

Hosted-safe unsigned builder for close_escrow_v2. The depositor signs locally; the builder refuses to close until balance and pendingAmount are both zero. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
agentWalletNoAgent owner wallet public key (base58).
depositorWalletNoDepositor wallet public key (base58). The depositor signs locally to close the empty escrow.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses key traits beyond annotations: 'the builder refuses to close until balance and pendingAmount are both zero', 'The output is not submitted and is not signed by hosted SAP MCP'. No contradictions with annotations (destructiveHint=true is appropriate for a builder of state-changing transactions).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two paragraphs, front-loaded with purpose and conditions. Every sentence adds value, though slightly verbose with repetition of 'SAP MCP execution guidance' block. Still highly concise for the amount of 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?

Complete for a builder tool: explains prerequisite (balance condition), safety (unsigned, not signed by MCP), and follow-up steps. Output schema present but not needed to describe return values. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions. Description adds context: 'depositorWallet' signs locally, 'agentWallet' is agent owner. This extra meaning justifies above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Hosted-safe unsigned builder for close_escrow_v2' with a specific verb and resource, distinguishing it from siblings like sap_close_escrow_v2 (which likely submits the transaction).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidelines: 'Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.' and 'estimate first, then pay/build and finalize'. Clearly states when to use and when not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_escrow_build_create_transactionBuild SAP Escrow V2 Create TransactionAInspect

Hosted-safe unsigned builder for create_escrow_v2. Use this from hosted SAP MCP, preview the result, then call local sap_payments_finalize_transaction with submit:true. The depositorWallet signs locally; keypair bytes never leave the user machine. Defaults to DisputeWindow settlementSecurity=2 and rejects SelfReport/0. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
arbiterNoOptional arbiter public key kept for IDL compatibility and dispute workflows.
coSignerNoRequired co-signer wallet public key when settlementSecurity=1 (CoSigned).
maxCallsNoMaximum number of calls covered by the escrow as a decimal string. Use 0 for unlimited when supported by policy.
expiresAtNoOptional expiry timestamp in unix seconds as a decimal string. Defaults to 0 (no expiry).
tokenMintNoOptional SPL payment token mint. Omit/null for native SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC x402 escrows.
agentWalletNoAgent owner wallet public key (base58). The V2 escrow PDA is derived from this wallet plus nonce.
pricePerCallNoPrice per served call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
tokenDecimalsNoPayment token decimals. Defaults to 6 when tokenMint is set, otherwise 9 for native SOL.
initialDepositNoInitial escrow deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
depositorWalletNoDepositor wallet public key (base58). This wallet signs locally and funds the escrow; hosted SAP MCP never receives its private key.
disputeWindowSlotsNoRequired positive dispute window in slots for settlementSecurity=2. Defaults to 2160 (~15 minutes).
settlementSecurityNoV2 settlement security mode. 1=CoSigned (requires coSigner). 2=DisputeWindow (recommended default; requires disputeWindowSlots > 0). SelfReport/0 is deprecated and rejected on-chain.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the depositor signs locally, keypair bytes never leave the user machine, defaults to DisputeWindow settlementSecurity=2, rejects SelfReport/0, and that the output is not submitted or signed by hosted SAP MCP. This aligns with annotations (readOnlyHint=false, openWorldHint=true) and adds critical behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an initial summary, then usage flow, defaults, and a dedicated 'SAP MCP execution guidance' section. While it is somewhat repetitive (e.g., mentioning local finalization multiple times), every sentence contributes to clarity. It could be slightly trimmed without loss.

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?

The tool is complex (13 parameters, all optional) and there is an output schema. The description covers the entire workflow: hosted build, local signing and finalization, parameter defaults and constraints, pricing, and security boundaries. It leaves no critical gaps for an AI agent to understand correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining units (lamports, micro-USDC), providing examples for tokenMint (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for USDC), and clarifying that V2 escrow PDA is derived from agentWallet plus nonce. However, some parameter descriptions are already detailed in the schema, so the added value is moderate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'hosted-safe unsigned builder for create_escrow_v2', specifying the verb (build), resource (create_escrow_v2), and scope (unsigned, hosted-safe). It distinguishes from sibling tools by emphasizing that the output is not submitted and requires local finalization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: 'Use this from hosted SAP MCP, preview the result, then call local sap_payments_finalize_transaction with submit:true.' It also warns against creating temporary signing scripts or reading keypair JSON, and notes pricing as a paid builder. This clearly tells when and how to use the tool, and what not to do.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_escrow_build_deposit_transactionBuild SAP Escrow V2 Deposit TransactionAInspect

Hosted-safe unsigned builder for deposit_escrow_v2. Use this when a hosted workflow needs to add funds to an existing V2 escrow, then finalize locally with sap_payments_finalize_transaction. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
amountNoDeposit amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
agentWalletNoAgent owner wallet public key (base58). The escrow PDA is derived from agentWallet, depositorWallet, and nonce.
depositorWalletNoDepositor wallet public key (base58). This wallet signs locally and provides the additional escrow funds.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds significant behavioral context beyond annotations: it is an unsigned builder (output not submitted), hosted-safe, pricing implications, and signer boundary. Annotations only provide basic hints, so the description carries the burden. It lacks explicit mention of the response format (unsigned transaction) but provides workflow guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose with repeated guidance about not creating temporary scripts and the signer boundary. While front-loaded with purpose, it could be more concise. The structure mixes purpose, workflow, and warnings, which is acceptable but not optimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 parameters, output schema, many sibling tools), the description covers the essential workflow, distinguishes from alternatives, and explains the signing boundary. It mentions pricing and estimation. However, it could be more explicit about the return object (unsigned transaction) and the exact local finalization steps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add any additional information about individual parameters; it only reiterates the overall intent. The schema descriptions already cover the parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is a 'Hosted-safe unsigned builder for deposit_escrow_v2.' It specifies the verb (build) and resource (deposit_escrow_v2), and the context distinguishes it from sibling tools like sap_escrow_build_create_transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use: 'when a hosted workflow needs to add funds to an existing V2 escrow.' It provides a clear workflow: build, preview, then finalize locally with sap_payments_finalize_transaction. It also warns against creating temporary scripts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_escrow_build_finalize_transactionBuild SAP Escrow V2 Finalize TransactionAInspect

Hosted-safe unsigned builder for finalize_settlement. Use after the dispute window has elapsed and a pending settlement exists; any payerWallet can locally sign to crank finalization. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
agentWalletNoAgent owner wallet public key (base58).
payerWalletNoWallet public key (base58) that signs and pays transaction fees to finalize the pending settlement.
depositorWalletNoDepositor wallet public key (base58).
settlementIndexNoPending settlement index as a decimal string.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations lacking behavioral detail, the description clearly explains the tool's behavior: it builds an unsigned transaction, the output is not submitted or signed, and it is hosted-safe. It adds context about pricing and the need for local signing, which annotations do not cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and contains redundant phrases like 'SAP MCP context' and 'SAP MCP execution guidance' repeating similar guidance. A more concise structure with clear sections would improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and schema coverage is 100%, the description covers the intended usage, prerequisites, and post-processing steps. It does not address error scenarios or edge cases, but is sufficiently complete for a builder tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all 5 parameters with good descriptions. The description reinforces the roles (e.g., 'payerWallet signs and pays transaction fees') and warns against guessing aliases. While schema coverage is 100%, the description adds marginal value above the schema's own param descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'hosted-safe unsigned builder for finalize_settlement', specifying both the action (build) and the resource (finalize_settlement). It distinguishes from sibling escrow builders by mentioning 'finalize_settlement' and providing context about when to use it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explicitly advises using this tool 'after the dispute window has elapsed and a pending settlement exists'. It provides step-by-step instructions: 'Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true'. It also warns against creating temporary scripts or reading keypair.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_escrow_build_settle_transactionBuild SAP Escrow V2 Settlement TransactionA
Destructive
Inspect

Hosted-safe unsigned builder for settle_calls_v2. The agent owner wallet signs locally. DisputeWindow escrows create a pending settlement PDA; CoSigned escrows require the coSigner account when configured. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
coSignerNoOptional co-signer public key for CoSigned escrows when the escrow account requires it.
agentWalletNoAgent owner wallet public key (base58). This wallet signs locally because settlement releases funds to the serving agent.
serviceHashNo32-byte service/audit hash. Use a stable hash of the fulfilled paid work.
callsToSettleNoNumber of served calls to settle as a decimal string.
depositorWalletNoDepositor wallet public key (base58) for the escrow being settled.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. Description adds that output is unsigned and not submitted by SAP MCP, clarifying the builder role. No contradiction. Additional context on local signing and signing boundary is provided.

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?

Front-loaded with key purpose, but contains repetitive 'SAP MCP context' blocks that restate similar information. Could be more concise by removing 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?

Covers workflow, parameter context, escrow types, and security warnings. Output schema exists so return values not needed. Adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, each parameter described. Description adds extra context: agentWallet signs locally, callsToSettle is count, serviceHash should be stable hash. This goes beyond schema baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it is a 'Hosted-safe unsigned builder for settle_calls_v2'. The name includes 'build_settle_transaction' which directly reflects the action. However, it does not explicitly differentiate from other escrow builders like create, deposit, withdraw, close, finalize, but the context of settling calls is specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance to preview then use sap_payments_finalize_transaction. Also advises against creating temporary scripts. Mentions estimating before building. Lacks explicit when-not-to-use instructions but the workflow is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_escrow_build_withdraw_transactionBuild SAP Escrow V2 Withdraw TransactionA
Destructive
Inspect

Hosted-safe unsigned builder for withdraw_escrow_v2. The depositor signs locally and can only withdraw unlocked balance after pending amounts are excluded. SAP MCP context: Hosted-safe unsigned Escrow V2 builder. The output is not submitted and is not signed by hosted SAP MCP. Preview it, then call local sap_payments_finalize_transaction with submit:true and confirm:true. Never create temporary signing scripts or read keypair JSON.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
amountNoWithdrawal amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
agentWalletNoAgent owner wallet public key (base58). The escrow PDA is derived from agentWallet, depositorWallet, and nonce.
depositorWalletNoDepositor wallet public key (base58). Only the depositor can locally sign a withdrawal from this escrow.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds that the output is unsigned and not submitted, and that only unlocked balance can be withdrawn after excluding pending amounts. However, it lacks details on failure scenarios or validation, relying on the schema and annotations for the rest.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose and repeats information across two paragraphs. For example, the second paragraph reiterates intent and routing. While all needed information is present, it could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (not shown) and the description explains the workflow (preview then finalize). However, it does not describe the output format or specifics of the returned transaction, leaving some ambiguity. Given the complexity (paid builder, multiple steps), it is adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Parameter descriptions in the input schema are comprehensive (100% coverage), so the description text itself adds little new semantic meaning. It repeats some context but does not clarify parameter constraints beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as a 'Hosted-safe unsigned builder for withdraw_escrow_v2', specifying the resource (withdraw transaction) and the action (build). It distinguishes this from sibling tools like create/deposit/settle escrow by detailing the depositor-only signer and unlocked balance constraint.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs the agent to preview the output and then call sap_payments_finalize_transaction with specific parameters. It warns against creating temporary signing scripts. While not fully contrasting with all sibling builders, it gives clear next steps and constraints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_estimate_tool_costEstimate Tool CostAInspect

Free pre-call cost estimator (dry-run — no charge, no x402 challenge). Given a tool name, returns the hosted pricing tier, estimated USD cost, and the recommended maxPriceUsd to pass to sap_payments_call_paid_tool. Always call this before any paid tool to avoid silent cap aborts. Set your maxPriceUsd to the estimate × 1.25 to avoid abort-and-retry. This tool is always free and never triggers x402 settlement.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameYesThe MCP tool name to estimate (e.g. "jupiter_getQuote", "magicblock_swap", "sap_discover_agents").
argumentsNoOptional tool arguments. For value-action tools, the amount/size may affect the price.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite annotations indicating non-read-only (readOnlyHint=false), the description explains it is a dry-run with no charge and no x402 challenge, effectively communicating that it is safe and idempotent in practice. It discloses the exact return values (pricing tier, estimated cost, maxPriceUsd) and that it is always free, adding value beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the most critical information ('Free pre-call cost estimator...') and structured in a clear paragraph. It includes some redundancy with the SAP MCP execution guidance that repeats metadata, but overall every sentence is informative. Slightly verbose but not wasteful.

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?

The tool has only 2 parameters (one required) and the description fully covers its purpose, usage, behavior, parameters, and return values. It also provides actionable advice on using the result (multiplying estimate by 1.25). With output schema present, the description is complete for an AI agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (2 parameters, both described). The description adds examples for toolName (e.g., 'jupiter_getQuote') and clarifies that optional arguments may affect price for value-action tools. This provides practical context beyond the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a free pre-call cost estimator (dry-run) that returns pricing tier, estimated USD cost, and recommended maxPriceUsd. It distinguishes itself from paid tools by emphasizing it is always free and should be called before any paid tool. The verb 'estimate' and resource 'tool cost' are specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to 'Always call this before any paid tool to avoid silent cap aborts' and recommends setting maxPriceUsd to estimate × 1.25. It also clarifies that the tool is free and never triggers x402 settlement. This provides clear when and how to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_export_agent_oasfExport SAP Agent OASF ProfileBInspect

Export a known SAP agent into an OASF-style, machine-readable profile view for agent directories and cross-runtime discovery. This is an exact owner-wallet read: it derives the SAP agent PDA, fetches the current on-chain agent/profile/stats when available, and normalizes identity, protocols, capabilities, pricing, x402 endpoint, metadata links, and trust facts without exposing local wallet paths or keypair bytes. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletNoRequired owner wallet public key in base58. Use sap_discover_agents or sap_agent_context first when the wallet is unknown.
includeSourceFragmentsNoWhether to include redacted source account/profile fragments for debugging directory ingestion. Defaults to false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotation Contradiction: The description repeatedly calls this an 'exact owner-wallet read' and says 'Read tools return on-chain state', but the annotations declare readOnlyHint=false and idempotentHint=false. This directly contradicts the claimed read-only, idempotent behavior. While the description adds useful security context (no local wallet paths or keypair bytes), the contradiction makes behavioral disclosure unreliable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long and contains boilerplate 'SAP MCP context' and 'SAP MCP execution guidance' paragraphs that are generic across the MCP and not tool-specific. While the opening sentence is effective, the repeated guidance about pricing, routing, and signer boundary adds unnecessary verbosity. It is not concise and does not make every sentence earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, the normalization output, and security guarantees, and an output schema exists. However, the annotation contradiction creates confusion about whether this is read-only, and the phrase 'when available' leaves unclear behavior for missing on-chain data. Given the complexity and the need to resolve conflicting signals, the description is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters ('wallet' and 'includeSourceFragments') with clear descriptions including defaults. The main description does not add parameter-specific semantics beyond outlining output fields, which is acceptable but not compensatory. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Export a known SAP agent') and the specific output format ('OASF-style, machine-readable profile view'), with a stated purpose ('for agent directories and cross-runtime discovery'). It lists the normalized fields (identity, protocols, capabilities, pricing, x402 endpoint, metadata links, trust facts), which distinguishes it from generic getter tools like sap_get_agent or sap_get_agent_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The schema parameter description explicitly says 'Use sap_discover_agents or sap_agent_context first when the wallet is unknown', providing an alternative and a precondition. Additionally, the MCP context states 'Read tools return on-chain state; write tools require signer policy', giving clear guidance that this is a read tool and doesn't require signing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fairscale_scoreGet FairScale ScoreBInspect

Score an agent with SDK FairScaleRegistry.score. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoOptional FairScale task type: one of "defi_execution", "trust_focused", "work_focused", "hiring"
agentNoAgent PDA or wallet (base58) to score

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide basic behavioral hints (readOnlyHint false, openWorldHint true). The description adds context about paid pricing and signer boundaries, which is helpful but does not clarify idempotency or potential side effects beyond what annotations indicate. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is unnecessarily verbose, repeating SAP MCP execution guidance that appears generic and not specific to this tool. The first sentence is concise, but the second paragraph adds clutter with redundant instructions, reducing overall efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives usage context (after verifying agent) and notes about metadata stability, but lacks explanation of what the score means, how to interpret results, or any prerequisites beyond verification. An output schema exists, so return value details are not required, but the context remains slightly 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?

Input schema has 100% coverage for both parameters (task and agent), with clear descriptions. The description does not add significant meaning beyond the schema; it repeats the purpose of the agent parameter but provides no additional details on task values or defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it scores an agent using the FairScale registry, and the SAP MCP context of reputation and trust flow reinforces purpose. However, it does not explicitly differentiate from the sibling tool sap_fairscale_trust_gate, which could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using the tool after verifying the target agent PDA or wallet, providing a precondition. It also includes pricing and routing guidance, but does not specify when not to use this tool or contrast with alternatives, limiting its decision-making support.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fairscale_trust_gateFairScale Trust GateCInspect

Evaluate an agent with SDK FairScaleRegistry.trustGate. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoAgent PDA or wallet (base58) to evaluate
minScoreNoOptional minimum trust score threshold
requireVerificationNoWhether verified status is required to pass the gate (default: false)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'paid read-premium' but the annotations mark readOnlyHint as false, implying side effects. This contradiction undermines transparency. The tool's behavioral traits (e.g., whether it mutates state, requires auth, or has rate limits) are not disclosed. The generic guidance about signer boundaries is copied but not tailored to this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with repetitive SAP MCP execution guidance that appears verbatim in both the description and schema description. The tool-specific part is only two sentences; the rest is generic and wasteful. This harms readability and 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 trust evaluation tool, the description fails to explain what a 'trust gate' is, how it works, or what the output signifies. While an output schema exists, the description should provide conceptual framing. The generic guidance does not compensate for this lack of domain-specific 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?

Input schema covers 100% of parameters with descriptions. The description adds no extra semantic meaning beyond the schema—only generic advice to use exact field names. Baseline score of 3 is appropriate given 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 tool's purpose is stated as 'Evaluate an agent with SDK FairScaleRegistry.trustGate', which gives a verb and resource. However, the description is vague about what 'evaluate' entails (e.g., checking a trust score) and does not differentiate from the sibling tool 'sap_fairscale_score'. The SAP MCP context adds little 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 advises to use after verifying the target and to keep metadata stable, which provides some usage context. However, it does not explicitly state when not to use this tool, nor does it mention alternatives like sap_fairscale_score. The generic MCP execution guidance is about payment flow, not usage choices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_attestationFetch SAP AttestationA
Read-onlyIdempotent
Inspect

Fetch an attestation PDA by agent PDA and optional attester wallet. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentPdaNoAgent PDA (base58) to fetch attestation for
attesterNoOptional attester wallet (base58) to filter attestation by

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and non-destructive. The description adds value by specifying 'hosted reads/builders never receive keypair bytes' and pricing details. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains a large block of repeated execution guidance text that also appears verbatim in the input schema. This redundancy bloats the description and reduces readability. The first sentence is concise, but the rest is not.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 fetch tool with good annotations and an output schema, the description covers the core purpose, usage context, and behavioral notes. It lacks a brief explanation of what an attestation represents, but overall completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully described in the input schema (100% coverage). The description reiterates their role ('by agent PDA and optional attester wallet') but adds no new constraints or formatting details. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch' and the resource 'attestation PDA' with two parameters. It distinguishes from sibling mutation tools like sap_create_attestation by implying read-only use. However, it does not explain what an attestation is, leaving some ambiguity for agents unfamiliar with the domain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells agents to use this tool for read-only inspection before mutating state, and provides pricing/routing guidance. It implies when not to use (avoid for writes). It does not explicitly list alternative tools for similar reads, but the context is clear enough for the typical workflow.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_capability_indexFetch Capability IndexA
Read-onlyIdempotent
Inspect

Fetch a SAP capability index by capability ID. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
capabilityIdNoCapability ID to fetch the index for (e.g. "jupiter:swap")

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that this is a 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program' and discloses payment/mutability details ('priced by hosted x402 challenge', 'hosted reads/builders never receive keypair bytes'). This goes beyond the annotations by explaining the broader execution context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive. It contains multiple blocks of generic SAP MCP guidance that are also present in the input schema's description field. The second paragraph repeats intent, pricing, routing, and signer boundary information unnecessarily, reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple fetch tool with an output schema, the description adequately covers usage intent, safety, and cost implications. It does not need to explain return values due to the output schema. The mention of using this before mutations adds completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter already well-described. The description adds a concrete example ('e.g. "jupiter:swap"') which clarifies the expected format. It does not add new meaning but provides helpful instantiation context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a SAP capability index by capability ID.' It includes a specific verb ('Fetch') and resource ('capability index') and distinguishes itself from many sibling tools by being a read-only fetch 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 context for when to use the tool: 'Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.' It also mentions a payment routing workflow but does not explicitly compare with other fetch tools (e.g., sap_fetch_tool) or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_disputeFetch SAP DisputeA
Read-onlyIdempotent
Inspect

Fetch a V2 dispute PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
disputePdaNoDispute PDA (base58) to fetch

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description reinforces this with 'Read-only SAP SDK wrapper' and adds critical context about signer boundaries ('hosted reads/builders never receive keypair bytes'). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action but includes lengthy, repetitive guidance that could be streamlined. While informative, the repeated execution guidance in both description and input schema reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the single parameter, high schema coverage, annotations, and presence of output schema, the description provides sufficient context. It covers usage intent, constraints, and workflow integration, making it complete for the tool's 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 sole parameter 'disputePda' is fully described in the schema (base58 type). The description adds context by naming it a 'V2 dispute PDA', which enhances semantic understanding without redundancy. Schema coverage is 100%, but the description still adds value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Fetch a V2 dispute PDA', using a specific verb and resource. It clearly distinguishes itself as a read-only operation within the SAP ecosystem, with no ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive guidance: it states the intent (read/discovery), when to use (before mutating), and explicit alternatives (sap_estimate_tool_cost, sap_payments_call_paid_tool). It also specifies pricing and routing steps, giving clear context for agent decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_epoch_pageFetch SAP Epoch PageA
Read-onlyIdempotent
Inspect

Fetch an epoch page by session PDA and epoch index. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
epochIndexNoZero-based epoch index to fetch
sessionPdaNoSession PDA (base58) to fetch epoch page for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context: it is a 'Read-only SAP SDK wrapper', and provides execution guidance on pricing, routing, and signer boundaries, exceeding annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose, with redundant pricing/routing guidance in the second paragraph. It is structured but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (fetch, with output schema and annotations), the description adds useful SAP MCP context and execution flow guidance, making it complete enough for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description mentions the parameters by name ('by session PDA and epoch index'), but adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch an epoch page by session PDA and epoch index', using a specific verb and resource. This distinguishes it from other sap_fetch_* tools and sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It advises using these reads 'to inspect current chain state before mutating' various accounts, providing clear context for when to use. However, it does not explicitly exclude cases or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_escrowFetch SAP Escrow V1A
Read-onlyIdempotent
Inspect

Fetch a V1 escrow by escrow PDA, or by agent PDA and optional depositor. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentPdaNoAgent PDA (base58) — used when escrowPda is omitted
depositorNoOptional depositor wallet (base58) to filter by
escrowPdaNoEscrow PDA (base58) to fetch directly

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds context: it is a read-only wrapper against Solana RPC and SAP program, used for inspecting chain state, and details that hosted reads never receive keypair bytes. This provides valuable behavioral insight beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long due to execution guidance, but it is front-loaded with the core purpose. Every sentence adds value, though the execution guidance could be slightly more concise. Overall, it is well-structured and readable.

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 that an output schema exists, the description does not need to explain return values. It covers purpose, usage, behavioral traits, and parameter semantics comprehensively. The tool is well-explained for its complexity and context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds meaning by explaining the two modes (by escrow PDA or by agent PDA + optional depositor), clarifying the parameter relationships. This adds value beyond the schema field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches a V1 escrow by escrow PDA or by agent PDA and optional depositor. It distinguishes from sibling tools (e.g., sap_fetch_escrow_v2) and uses a specific verb 'Fetch' with the resource 'escrow'. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Use these reads to inspect current chain state before mutating...' and includes execution guidance about pricing, routing, and signer boundaries. It mentions alternatives like sap_payments_call_paid_tool. However, it doesn't explicitly exclude use cases compared to other fetch tools, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_escrow_v2Fetch SAP Escrow V2A
Read-onlyIdempotent
Inspect

Fetch a V2 escrow by escrow PDA, or by agent PDA, depositor, and nonce. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (default: 0) — used with agentPda and depositor
agentPdaNoAgent PDA (base58) — used when escrowPda is omitted
depositorNoOptional depositor wallet (base58) to filter by
escrowPdaNoEscrow V2 PDA (base58) to fetch directly

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by stating it is a read-only SDK wrapper, paid read-premium, and hosted read with signer boundary info. Annotations already declare readOnlyHint=true, so no contradiction; the description enriches with pricing and routing context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but includes repetitive execution guidance (e.g., 'estimate first' mentioned twice). The context and guidance paragraphs are verbose and could be streamlined without losing 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?

The description covers the fetch functionality, read-only nature, and provides execution guidance for pricing/routing. With a present output schema and clear annotations, it is fairly complete. Missing comparison to V1 escrow or return format details, but these are not critical for a read-only fetch 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?

Input schema covers all 4 parameters with descriptions (100% coverage). The tool description does not add new semantic details for individual parameters but does clarify the two lookup modes (by escrowPda vs by agentPda+depositor+nonce). Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a V2 escrow by either escrow PDA or by agent PDA, depositor, and nonce. This specific verb-resource combination distinguishes it from sibling fetch tools like sap_fetch_escrow (V1) and other fetch operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using reads to inspect chain state before mutations, providing clear context. However, it does not explicitly contrast with alternatives (e.g., when to use sap_fetch_escrow_v2 vs sap_fetch_escrow), and the execution guidance is more about pricing/routing than comparative usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_feedbackFetch SAP FeedbackB
Read-onlyIdempotent
Inspect

Fetch a feedback PDA by agent PDA and optional reviewer wallet. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentPdaNoAgent PDA (base58) to fetch feedback for
reviewerNoOptional reviewer wallet (base58) to filter feedback by

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, etc. The description adds that it is a 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program,' which is consistent but not deeply informative beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose, repeating generic 'SAP MCP execution guidance' that is also present in the input schema. The core purpose is front-loaded, but the extensive boilerplate reduces conciseness and readability.

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 output schema exists and annotations are robust, the description covers the essential purpose and context. However, it lacks examples or mention of edge cases, making it minimally viable but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the tool description briefly mentions 'by agent PDA and optional reviewer wallet,' but adds little meaning beyond the schema's parameter descriptions. The baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a feedback PDA by agent PDA and optional reviewer wallet,' specifying the verb and resource. However, it does not explicitly differentiate from other sap_fetch_* tools like sap_fetch_attestation or sap_fetch_escrow, leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes 'Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts,' which provides context for when to use the tool (before mutations). However, it lacks explicit alternatives or when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_pending_settlementFetch Pending SettlementB
Read-onlyIdempotent
Inspect

Fetch a V2 pending settlement PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pendingPdaNoPending settlement PDA (base58) to fetch

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by explaining the tool is a 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program' and clarifies the signer boundary ('hosted reads/builders never receive keypair bytes'). This provides useful context beyond the annotations, though the description could be more concise.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose and repetitive. Key statements about pricing, routing, and signer boundary appear both in the description and within the input schema description, duplicating content. The first sentence is clear, but the rest could be shortened significantly. A more concise, front-loaded structure would improve readability.

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 rich annotations (readOnlyHint, idempotentHint), the presence of an output schema, and the single parameter fully covered by the schema, the description is adequate but not exceptional. It explains the tool's role in the workflow ('inspect current chain state before mutating'), which adds context. However, it does not elaborate on what a 'pending settlement' entails or what fields the output contains, leaving some gaps for agents unfamiliar with the SAP domain.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 a clear description for the single parameter (pendingPda: 'Pending settlement PDA (base58) to fetch'). The description repeats this but adds no new semantic meaning. Baseline score of 3 is appropriate since the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a V2 pending settlement PDA.' This specifies the verb (fetch), resource (pending settlement PDA), and version (V2). However, the description is cluttered with repetitive boilerplate about SAP MCP context and execution guidance, which distracts from the core purpose. The title also confirms the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context: 'Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.' This indicates when to use (before mutations). However, it does not explicitly differentiate this tool from other fetch tools (e.g., sap_fetch_attestation, sap_fetch_escrow), leaving the agent to infer which pending settlement is relevant.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_protocol_indexFetch Protocol IndexB
Read-onlyIdempotent
Inspect

Fetch a SAP protocol index by protocol ID. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
protocolIdNoProtocol ID to fetch the index for (e.g. "jupiter", "adrena")

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, and non-destructive. The description adds value by noting pricing via x402 challenge and security boundary (no keypair bytes), which are beyond annotation hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dominated by generic SAP MCP boilerplate that is repeated across tools. The actual tool-specific part is just one sentence, making it padded and not concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and well-documented parameter, the description is minimally adequate. It lacks specific context about what a protocol index is or how to discover protocol IDs, but the boilerplate provides some workflow context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description in the schema is clear ('Protocol ID to fetch the index for...'). The tool description does not add any additional parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Fetch a SAP protocol index by protocol ID,' which clearly identifies the verb and resource. However, the input schema indicates no required parameters, while the description implies protocolId is necessary, creating a slight inconsistency.

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 specific guidance on when to use this tool versus similar fetch tools (e.g., sap_fetch_capability_index). The boilerplate about general read intent does not differentiate this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_sessionFetch SAP SessionA
Read-onlyIdempotent
Inspect

Fetch a session ledger by session PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionPdaNoSession PDA (base58) to fetch the ledger for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations confirming read-only, idempotent, and non-destructive, the description adds valuable details: mentions it is a 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program', clarifies signer boundary (never receives keypair bytes), and explains payment routing. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose but includes repetitive execution guidance also present in the input schema (e.g., intent, pricing, routing). This redundancy reduces conciseness and structural clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 existence of an output schema and comprehensive annotations, the description covers purpose, usage, and behavioral context well. It explains where the tool fits in the SAP workflow (pre-mutation inspection) and payment handling, though it could briefly mention the output shape.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with a clear description for the single parameter 'sessionPda'. The description adds no extra meaning beyond that, so it meets the baseline but doesn't exceed it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a session ledger by session PDA', specifying the exact resource and action. It distinguishes from sibling fetch tools by focusing on 'session ledger' and 'session PDA', making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context like 'Read-only SAP SDK wrapper' and 'use these reads to inspect current chain state before mutating...'. It gives intent ('read/discovery workflow') and pricing guidance. However, it doesn't explicitly contrast with other fetch tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_stakeFetch SAP StakeA
Read-onlyIdempotent
Inspect

Fetch agent stake by stake PDA or agent PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentPdaNoAgent PDA (base58) — used when stakePda is omitted
stakePdaNoStake PDA (base58) to fetch directly

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and destructiveHint. The description adds valuable context: it is a read-only SDK wrapper, pricing model (paid read-premium), routing guidance, and signer boundary (no keypair bytes). This exceeds the annotation baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise, but the description includes a large block of generic SAP MCP and execution guidance boilerplate that is not tool-specific. This redundancy detracts from conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of annotations and output schema, the description is fairly complete: it explains the read-only nature, cost implications, and security aspects. It lacks error condition details but covers essential context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with clear descriptions for both parameters. The description only reiterates 'by stake PDA or agent PDA' without additional semantics, so it adds minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches an agent stake by either stake PDA or agent PDA (specific verb+resource). However, it does not explicitly differentiate from sibling fetch tools like sap_fetch_escrow or sap_fetch_tool, though the resource (stake) is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using this tool to inspect chain state before mutations, providing clear context. However, it lacks explicit when-not-to-use guidance or alternatives, such as when to use other fetch functions for different resources.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_subscriptionFetch SAP SubscriptionA
Read-onlyIdempotent
Inspect

Fetch a subscription by PDA or by agent PDA/subscriber/subId. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
subIdNoSubscription ID (default: 0) — used with agentPda and subscriber
agentPdaNoAgent PDA (base58) — used when subscriptionPda is omitted
subscriberNoOptional subscriber wallet (base58) to filter by
subscriptionPdaNoSubscription PDA (base58) to fetch directly

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint, destructiveHint false), the description adds details on read-only nature, pricing (paid read-premium), routing, and signer boundary, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose but includes repetitive boilerplate (pricing/routing mentioned twice). It is longer than necessary but still clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists and the tool is read-only with optional parameters, the description covers usage context and behavior well, though it could omit redundant boilerplate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description adds minimal extra meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches a subscription, specifying two identification methods (PDA or agent PDA/subscriber/subId), which distinguishes it from sibling fetch tools like sap_fetch_attestation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on when to use this read tool (to inspect chain state before mutations) and includes pricing/routing instructions. It lacks explicit when-not alternatives but gives clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_toolFetch SAP Tool DescriptorA
Read-onlyIdempotent
Inspect

Fetch a tool descriptor by agent PDA and tool name. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentPdaNoAgent PDA (base58) that owns the tool descriptor
toolNameNoName of the tool descriptor to fetch

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint, destructiveHint), the description adds behavioral traits: it is a read-only SDK wrapper against Solana RPC and SAP program, and details pricing (paid read-premium), routing (estimate then call paid tool), and signer boundary (no keypair bytes). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the key action 'Fetch a tool descriptor...', but the subsequent execution guidance is verbose and partially repeats content from the schema description. It is organized but could be more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 an output schema, high schema coverage, and annotations, the description covers purpose, usage context, and behavioral traits sufficiently. It does not address error cases or prerequisites, but these are not critical for a simple read-only fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters already well-described in the input schema. The description merely reiterates the parameters ('by agent PDA and tool name') without adding new semantic meaning or usage details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a tool descriptor by agent PDA and tool name', providing a specific verb and resource. It distinguishes itself from sibling fetch tools by specifying 'tool descriptor', and sets context as read-only for inspecting chain state before mutations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides contextual guidance on when to use reads (before mutations) and includes execution guidance on pricing, routing, and signer boundary. However, it does not explicitly contrast with alternative tools like other fetch tools, relying on the name and context to imply usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_tool_category_indexFetch Tool Category IndexA
Read-onlyIdempotent
Inspect

Fetch a SAP tool category index by numeric category. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoNumeric tool category ID to fetch the index for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is clearly a safe read operation. The description adds that it is a 'Read-only SAP SDK wrapper against configured Solana RPC and SAP program' and states that 'hosted reads/builders never receive keypair bytes.' No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with a clear first sentence, but the following paragraphs contain extensive generic SAP MCP context that could be shared across many tools. While informative, it is verbose and not tailored specifically to this tool's unique behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no required fields, read-only), the description covers purpose, usage context, integration with the SAP framework, and security considerations. An output schema exists, so return values need not be described. The description is complete for this type of 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 covers 100% of parameters, with the single parameter 'category' described as 'Numeric tool category ID to fetch the index for.' The description repeats 'by numeric category' but adds no additional meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Fetch a SAP tool category index by numeric category,' clearly specifying the verb ('Fetch'), the resource ('tool category index'), and the parameter ('numeric category'). This distinguishes it from sibling tools that perform different operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: 'Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.' It also mentions alternatives like sap_estimate_tool_cost and sap_payments_call_paid_tool. However, much of the execution guidance is generic SAP MCP boilerplate, reducing specificity for this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fetch_vaultFetch SAP VaultA
Read-onlyIdempotent
Inspect

Fetch a memory vault by agent PDA. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentPdaNoAgent PDA (base58) to fetch the memory vault for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description states 'Read-only SAP SDK wrapper', aligning with annotations (readOnlyHint, idempotentHint, destructiveHint false). It adds context about hosted reads not receiving keypair bytes, and pricing details, going beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, with repetitive guidance (pricing/routing text appears in both description and input schema). The main purpose is front-loaded, but the boilerplate reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with 1 parameter and an output schema, the description covers purpose, usage context, and behavioral aspects. However, it doesn't explain what a 'memory vault' is or expected output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'agentPda'. The description adds no extra meaning beyond the schema, just restates the parameter's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch a memory vault by agent PDA', specifying the verb, resource, and parameter. It distinguishes from other sap_fetch_* tools by focusing on vaults.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 SAP MCP execution guidance on intent, pricing, routing, and signer boundary, and suggests using reads before mutations. However, it does not explicitly differentiate from other fetch tools or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_file_dispute_v2File SAP Escrow V2 DisputeBInspect

File a dispute for a V2 pending settlement. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (as a decimal string, default: 0)
agentWalletNoAgent wallet public key (base58)
evidenceHashNo32-byte evidence hash as a byte array, hex string, or base64 string
settlementIndexNoSettlement index to dispute (as a decimal string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark it as a write tool. The description adds behavioral context about being a paid value-action with preview, and routing restrictions. However, it does not describe side effects, success/error states, or other behavioral traits beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive, with extensive boilerplate about SAP MCP context and execution guidance that is generic across many tools. The first sentence is concise, but the rest could be significantly shortened.

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 presence of an output schema, the description does not need to explain return values. However, it lacks details on prerequisites (e.g., pending settlement existence), effects of filing, or what happens after the dispute is filed. It is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so baseline is 3. The description adds no parameter-level semantics beyond a generic warning about field names and private key material. No additional context for each parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'File a dispute for a V2 pending settlement,' which is a specific verb and resource. However, it does not distinguish from sibling tools like sap_fetch_dispute or sap_settle_escrow_v2, and the boilerplate distracts from the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes generic execution guidance about signer and routing requirements, but lacks explicit guidance on when to use this tool vs alternatives. No exclusions or use cases are specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_finalize_settlement_v2Finalize SAP Escrow V2 SettlementA
Destructive
Inspect

Local-signer-only direct finalization of a V2 pending settlement. Hosted users should call sap_escrow_build_finalize_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (as a decimal string, default: 0)
agentWalletNoAgent wallet public key (base58)
depositorWalletNoDepositor wallet public key (base58)
settlementIndexNoSettlement index to finalize (as a decimal string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations mark the tool as destructive and not read-only. The description adds behavioral context: it is a paid value-action, requires enabled signer mode and policy approval, and should preview cost before confirmation. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with redundant guidance (e.g., write operations requirement repeated). The input schema also contains a long description repeating similar execution guidance. Could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (write, destructive, paid, 4 parameters, output schema), the description covers local vs hosted distinction, cost preview, signer mode, policy approval, and routing details. It references the sibling alternative and provides enough context for proper use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already describes each parameter. The description does not add further semantic information beyond what the schema provides. The input schema note about using exact field names is not parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool finalizes a V2 pending settlement, and specifies that it is for local-signer-only direct finalization. It distinguishes itself from the sibling tool sap_escrow_build_finalize_transaction, which is for hosted users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool (local-signer-only) and when not (hosted users should use sap_escrow_build_finalize_transaction). It also provides guidance on signer mode, MCP policy approval, and that it should not be called as a paid hosted write.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_find_tools_by_categoryFind SAP Tools By CategoryBInspect

Find on-chain tool descriptors by SDK tool category name or numeric category. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tools to return (default: 50)
hydrateNoWhether to include full hydrated tool descriptors in results (default: true)
categoryNoTool category name (e.g. "defi", "infrastructure") or numeric category ID

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Read-only SAP SDK wrapper', but annotations have readOnlyHint=false. This is a direct contradiction. Additionally, the description does not disclose behavioral traits beyond what annotations provide; the contradiction undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long with boilerplate text repeated in the input schema (e.g., pricing, routing, signer boundary). It could be much more concise by removing redundant execution guidance and focusing on the tool's core behavior.

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 an output schema, the description fails to clarify the contradiction with annotations and lacks details about the tool's return format or behavior when parameters are omitted. The pricing/routing context is useful but not enough to compensate for the inconsistency.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description merely restates 'SDK tool category name or numeric category' which is already in the schema. No new meaning is added beyond the parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Find on-chain tool descriptors by SDK tool category name or numeric category', specifying the verb 'find' and the resource 'tool descriptors' with a clear filtering criterion (category). This distinguishes it from sibling tools that have different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: 'Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.' However, it does not explicitly contrast with alternatives or specify when not to use this tool. The pricing and routing guidance is added but not directly about usage vs siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_fund_subscriptionFund SAP SubscriptionAInspect

Fund a recurring subscription. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
subIdNoSubscription ID (as a decimal string, default: 0)
amountNoFunding amount in lamports (as a decimal string)
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint false). The description adds behavioral context: it is a payment/settlement flow, requires signer mode and policy approval, and warns about routing restrictions. This goes beyond annotations, though more detail on success behavior (e.g., subscription funding vs escrow creation) could be added.

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 quite verbose with repeated phrases (e.g., 'SAP MCP context:' appears twice, and execution guidance is duplicated in the schema description). Slightly overwritten but still informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and full parameter coverage, the description covers purpose, prerequisites, and usage guidelines adequately. It provides enough context for an agent to invoke the tool correctly, though some behavioral details could be expanded.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already provides parameter descriptions. The tool description adds no additional parameter details, meeting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Fund a recurring subscription' with a specific verb and resource. However, it does not explicitly differentiate from sibling tools like sap_create_subscription or sap_cancel_subscription, though the workflow context hints at the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use: 'Estimate or fetch state before creating escrows or settling calls' and what is required: 'write operations require an enabled signer mode and MCP policy approval.' Also warns against incorrect routing (hosted accountless write). Lacks direct comparison with alternatives but offers sufficient context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_get_agentGet SAP AgentA
Read-onlyIdempotent
Inspect

Free exact SAP agent identity read by owner wallet. If omitted, fetches the connected wallet agent. Use this before paid discovery when the wallet is known. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletNoSolana public key of the agent owner wallet (base58). If omitted, uses the connected wallet.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint, idempotentHint, not destructive. Description reinforces read-only nature and adds context about not receiving keypair bytes. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy with repeated guidance in the input schema. It could be more concise, though front-loaded with core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of SAP and presence of output schema, the description covers intent, pricing, routing, and signer boundary. It adequately informs an agent how and when to use the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the parameter fully (100%). Description adds value by clarifying fallback behavior when wallet is omitted, which supplements the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it reads SAP agent identity by owner wallet (or connected wallet) and positions it before paid discovery. It is specific and distinguishes from siblings like sap_discover_agents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to use before paid discovery when the wallet is known, providing clear context. It also gives execution guidance (call sap_estimate_tool_cost first), but does not explicitly list alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_get_agent_profileGet SAP Agent ProfileA
Read-onlyIdempotent
Inspect

Micro-read exact SAP agent profile lookup by owner wallet. Use this for a known agent before read-premium discovery or enrichment. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletNoSolana public key of the agent owner wallet (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context about SAP MCP execution (pricing, routing, signer boundary), which clarifies the behavior beyond what annotations provide. No contradiction between description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains substantial boilerplate about SAP MCP context and execution guidance that is repeated verbatim from the input schema. The core purpose is conveyed in the first two sentences, but the rest is redundant and adds length without new information, making it less concise than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (one parameter) with output schema and rich annotations. The description covers the core purpose and usage context. While the boilerplate is excessive, it does not leave critical gaps. The output schema handles return values, so completeness is adequate but not exemplary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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% (one parameter 'wallet' with description 'Solana public key of the agent owner wallet (base58)'). The description adds 'by owner wallet', reinforcing the semantic link. However, since the schema already explains the parameter well, the description adds minimal extra value, warranting a baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Micro-read exact SAP agent profile lookup by owner wallet', which specifies the verb (lookup), resource (agent profile), and scope (by owner wallet). It distinguishes from sibling tools like sap_discover_agents by saying 'use this for a known agent before read-premium discovery or enrichment', indicating it is a targeted read for a specific agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this for a known agent before read-premium discovery or enrichment', providing clear guidance on when to use it. It implies it should not be used for discovery, but could be more specific about when not to use it or about alternative tools like sap_discover_agents. Nevertheless, the guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_get_agent_statsGet SAP Agent StatsA
Read-onlyIdempotent
Inspect

Free exact SAP agent stats read by agent PDA. Use after sap_get_agent or sap_get_agent_profile when stats are needed. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentPdaNoAgent PDA (base58) to fetch stats for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds context about being a read-only SDK wrapper, inspecting chain state before mutations, and signer boundary constraints. This adds value beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and usage, but includes lengthy boilerplate about SAP MCP execution guidance that repeats across tools. It could be trimmed to essential information without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 presence of an output schema and simple read operation, the description covers scope (reads stats), prerequisites (use after other tools), and safety (read-only). It does not need to detail return fields as the output schema handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, agentPda, is described in schema with 'Agent PDA (base58) to fetch stats for'. Description mentions 'by agent PDA' but adds no further semantics. With 100% schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches exact SAP agent stats by agent PDA, with the verb 'get' and resource 'agent stats'. It distinguishes itself from siblings by explicitly advising to use after sap_get_agent or sap_get_agent_profile, making purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit usage sequence: 'Use after sap_get_agent or sap_get_agent_profile when stats are needed.' It also recommends calling sap_estimate_tool_cost first, providing clear when-to-use and routing guidance, which separates it from alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_get_global_stateGet SAP Global StateA
Read-onlyIdempotent
Inspect

Free compact global SAP registry state read. Use for initial orientation before paid network analytics. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'free' but later contradicts with 'priced by hosted x402 challenge', creating internal inconsistency. Annotations already declare readOnlyHint and idempotentHint, so the description adds mixed signals.

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 starts with a strong concise first sentence but then includes repetitive execution guidance that clutters the message. It could be more streamlined while retaining essential context.

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 zero parameters and an output schema, the description covers purpose and usage context. However, the internal pricing contradiction (free vs. priced) leaves ambiguity about cost, reducing completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters and the input schema is empty with 100% description coverage. The description succinctly identifies the single resource returned (global state), so no parameter explanation is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'free compact global SAP registry state read' and specifies its use for 'initial orientation before paid network analytics', distinguishing it from other SAP read tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use ('initial orientation before paid network analytics', 'inspect current chain state before mutating...') and includes execution guidance on pricing and routing, but does not explicitly exclude alternatives among sibling read tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_get_network_overviewGet SAP Network OverviewA
Read-onlyIdempotent
Inspect

Fetch real network counters from SDK DiscoveryRegistry.getNetworkOverview. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds context about being a read-only wrapper, not receiving keypair bytes, and needing local finalization for value-moving results, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two paragraphs: first explains purpose, second provides execution guidance. Mostly concise, though some text is repeated in the schema description. Front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no parameters, rich annotations, and an output schema, the description covers what the tool does, its use case, and execution context. Lacks no essential information.

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?

Tool has no parameters, so description need not add parameter details. The description does not repeat schema info but provides adequate context for a zero-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it fetches real network counters from SDK DiscoveryRegistry.getNetworkOverview. Distinguishes itself from siblings by being a general read-only network overview tool, with no sibling doing exactly the same.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using it to inspect chain state before mutations, and provides execution guidance on pricing and routing. However, it does not explicitly mention when not to use it or list alternative tools for similar purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_get_tool_category_summaryGet SAP Tool Category SummaryA
Read-onlyIdempotent
Inspect

Fetch SDK discovery summary across SAP tool categories. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. The description adds valuable behavioral context: it is a 'Read-only SAP SDK wrapper', hosted reads never receive keypair bytes, and details on x402 pricing and routing. This enriches transparency beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is split into two paragraphs, the latter repeating execution guidance that also appears in the input schema description. While informative, it could be more concise by removing redundancy. The first sentence effectively conveys the purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has zero parameters, a rich annotation set, and an output schema (not shown), the description covers all necessary context: purpose, use case (pre-mutation inspection), security model (no keypair bytes), and invocation workflow (pricing and routing). It is complete for an agent to select and use this tool appropriately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the description does not need to explain them. With 100% schema coverage and no parameters, the description is not penalized. It implicitly confirms no input is required beyond the tool itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches an SDK discovery summary across SAP tool categories. The verb 'Fetch' and resource 'SDK discovery summary' are specific. While it distinguishes from many sibling tools by name, it does not explicitly contrast with similar tools like sap_fetch_tool_category_index.

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 advises using the tool before mutating accounts ('inspect current chain state before mutating'), which provides context. However, no alternatives or when-not-to-use guidance is given. The execution guidance about pricing and routing is more about how to invoke rather than when to use this tool over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_give_feedbackGive SAP FeedbackAInspect

Create on-chain feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional feedback tag/category (default: "general")
scoreNoFeedback score (numeric, e.g. 1–5)
agentWalletNoAgent wallet public key (base58) to give feedback for
commentHashNoOptional 32-byte comment hash as a byte array, hex string, or base64 string

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring readOnlyHint=false and destructiveHint=false, the description confirms a write operation and adds context about 'reputation and trust flow'. However, it does not detail side effects, required permissions, or transaction costs, which are beyond what annotations provide. The added value is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, including a large block of 'SAP MCP execution guidance' that repeats information also present in the input schema's description. The core message is front-loaded, but the redundancy and length reduce 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?

While the description covers purpose and preconditions, it fails to differentiate from closely related sibling tools like sap_update_feedback, sap_fetch_feedback, and sap_revoke_feedback. Given the existence of these siblings, explicit differentiation is needed for completeness. The execution guidance, though detailed, is more about routing than usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the input schema already describes each parameter (tag, score, agentWallet, commentHash) with sufficient detail. The description does not add new semantics beyond what is in the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: 'Create on-chain feedback for an agent wallet.' This is a specific verb ('Create') and resource ('on-chain feedback'), and it distinguishes from read-only tools like sap_fetch_feedback or sap_revoke_feedback.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Use after verifying the target agent PDA or wallet' as a precondition. Additionally, the 'SAP MCP execution guidance' block explicitly states when to use this tool versus alternatives (e.g., 'do not call this as a paid hosted write', 'Use the local sap_payments bridge ... when user signing is required').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_hermes_recentRecent Hermes SessionsA
Read-onlyIdempotent
Inspect

Free local tool. Returns recent Hermes Agent sessions for context injection. Use this at session start to recall what the agent worked on recently. If Hermes is not installed, returns empty results. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax sessions. Default 3.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable context: it is a free local tool with no x402 charge, and it returns empty results if Hermes is not installed. This complements the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is concise (two sentences), but the inclusion of a large, generic SAP MCP execution guidance block adds clutter and reduces conciseness. This boilerplate is not specific to the tool and could be omitted for a cleaner description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one optional parameter and an existing output schema, the description provides necessary context: purpose, usage scenario, and behavior when dependencies are missing. It could clarify what counts as 'recent' and which agent's sessions are returned, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already fully documents the sole parameter 'limit' (type number, description 'Max sessions. Default 3.'). The description does not add any additional semantic information beyond what the schema provides, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns recent Hermes Agent sessions for context injection, using the verb 'Returns' and specifying the resource. It is distinguishable from similar tools like sap_hermes_search by focusing on 'recent' sessions, but does not explicitly differentiate from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use this tool at session start to recall recent work, providing clear context. It also notes that if Hermes is not installed, results will be empty. However, it does not mention when not to use it or suggest alternatives like sap_hermes_search.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_init_stakeInitialize SAP StakeAInspect

Initialize stake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentWalletNoAgent wallet public key (base58) to initialize stake for
initialDepositNoInitial stake deposit amount in lamports (as a decimal string)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation with no destructive or idempotent properties. The description adds behavioral context by cautioning to confirm agent wallet, amount, and unstake timing before writes, and noting that hosted accountless writes are blocked. This goes beyond the annotations without contradicting them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description has a clear opening sentence but includes a lengthy execution guidance block that repeats similar information and could be condensed. It is not poorly structured but could be more concise without losing essential guidance.

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?

Considering the tool has 2 parameters and a structured output schema (not provided), the description covers the basic purpose and some execution details. However, it lacks information about the effect of initialization (e.g., whether the stake is immediately active) and could better situate the tool among sibling staking 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 already describes both parameters with clear descriptions (base58 public key and lamports as decimal string). The description does not add any additional meaning or context for the parameters beyond what the schema provides. With 100% schema coverage, baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Initialize stake for an agent wallet', which is a specific verb+resource. It distinguishes from external AgentKit staking tools but does not differentiate from other SAP staking tools like sap_deposit_stake. The execution guidance adds noise but does not obscure the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that this tool is distinct from external AgentKit staking tools, but it does not provide explicit guidance on when to use this tool versus other SAP staking tools (e.g., sap_deposit_stake). The execution guidance about pricing and routing is helpful but not directly about usage selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_init_vaultInitialize SAP VaultBInspect

Initialize a memory vault for the connected agent. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
vaultNonceNoVault nonce as a byte array, hex string, or base64 string

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds value by disclosing that session and vault PDAs are visible on-chain, and specifying storage constraints. It also mentions signer boundaries, which provides context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is unnecessarily long and includes repetitive generic execution guidance that likely applies to many SAP MCP tools. The first sentence is clear, but subsequent text dilutes conciseness and could be significantly shortened.

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 an output schema present, return values are handled. The description covers the basic purpose and some behavioral constraints, but lacks details on idempotency, failure modes, or what happens if the vault already exists. It is adequate but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter, but the parameter description in both schema and tool description is generic and repeats execution guidance rather than explaining the vaultNonce field's purpose. Baseline is 3 due to high coverage, and the description adds no meaningful semantics for the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Initialize a memory vault for the connected agent,' which is a specific verb+resource. However, it does not distinguish this tool from sibling tools like sap_open_vault_session or sap_memory_record, missing explicit differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some context on when to use the tool, such as storing only encrypted payloads or public hashes, and notes that PDAs are on-chain visible. However, there is no explicit when-not or alternative tool comparison, and the included execution guidance appears generic and not tool-specific.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_inscribe_memoryInscribe SAP MemoryBInspect

Inscribe encrypted memory using SDK VaultModule.inscribe. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that stored data (session and vault PDAs) are visible on-chain metadata, and advises to store only encrypted payloads or public hashes. It also mentions pricing and routing considerations. These details go beyond the annotations, which only indicate non-destructive and open-world hints. No contradiction with annotations found.

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 relatively concise but includes extraneous instructions about SAP MCP workflow, pricing, and routing that could be streamlined. The first sentence is effective, but the subsequent bullet points add redundancy and may overwhelm an agent with too much operational detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers on-chain visibility, pricing, and signing boundaries, which are useful. However, it does not describe the return value or success indicators, though an output schema exists. More critically, it leaves the parameter structure ambiguous due to the flawed schema. Combined with the sibling 'sap_compact_inscribe_memory', a more complete description would help the agent choose correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema defines no properties (properties: {}), yet the schema description text lists expected fields (sequence, encryptedData, etc.). This is confusing and the tool's description does not clarify the expected parameters beyond the generic 'Inscribe encrypted memory'. With effective parameter coverage being poor due to missing schema properties, the description adds insufficient value for an agent to correctly construct the input.

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 first sentence clearly states the tool's purpose: 'Inscribe encrypted memory using SDK VaultModule.inscribe.' It specifies the action (inscribe) and resource (encrypted memory). However, it does not differentiate from the sibling tool 'sap_compact_inscribe_memory', which likely has a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context, including pricing ('paid read-premium; estimate first') and execution constraints ('do not call this as a paid hosted write'). However, it lacks explicit guidance on when to use this tool versus alternatives like 'sap_compact_inscribe_memory' or other memory tools. The guidance is more about operational constraints than selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_is_agent_activeCheck SAP Agent ActiveBInspect

Micro-read exact activity check for an owner wallet. Use this before read-premium discovery when the wallet is known. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletNoSolana public key of the wallet to check for an active SAP agent (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description describes the tool as a 'micro-read' (a read operation), but annotations set readOnlyHint=false, contradicting the description. This inconsistency undermines transparency. Additionally, the tool is marked as openWorldHint=true but no explanation is given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes extensive boilerplate about SAP MCP context, pricing, routing, and signer boundary that is not specific to this tool. This adds unnecessary length and reduces conciseness, though the purpose is 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 simple nature of the tool (1 param, output schema present), the description covers purpose and usage but lacks details about output, error behavior, or edge cases. The contradiction with annotations further reduces 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?

There is one parameter ('wallet') with a schema description that is already clear. The description adds no additional semantic meaning beyond the schema, and schema coverage is 100%, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the tool does a 'micro-read exact activity check for an owner wallet' and specifies its use case. The name and title also align, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to use this tool 'before read-premium discovery when the wallet is known', providing clear context. It does not explicitly exclude alternatives, but the guidance is helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_list_agentsList SAP AgentsA
Read-onlyIdempotent
Inspect

Compact SAP agent orientation list. Micro-read when limit <= 20, view is compact, hydrate is false, and includeProtocolIndexes is false; larger or enriched pages are read-premium. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResult shape. Use compact for broad discovery and full for detailed rows. Defaults to compact.
limitNoMaximum rows to return. Defaults to 20; hard-capped at 500.
queryNoOptional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: "XONA" or "creative".
cursorNoOpaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call.
offsetNoZero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned.
walletNoOptional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path.
hydrateNoDeprecated compatibility alias. Use view="full" for full rows or view="compact" for directory rows.
agentPdaNoOptional exact SAP agent PDA filter.
protocolNoOptional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: "jupiter", "creative", "payments".
capabilityNoOptional single capability ID filter matched case-insensitively. Example: "creative:imageGeneration" or "jupiter:swap".
capabilitiesNoOptional list of capability IDs. Use capabilityMode="all" when the agent must have every capability.
capabilityModeNoHow to match the capability/capabilities filters. Defaults to "any".
hasX402EndpointNoOptional filter for agents that advertise a paid HTTP/x402 endpoint.
includeInactiveNoInclude inactive agents. Defaults to false.
includeProtocolIndexesNoInclude compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent, and the description reinforces this with 'Read-only SAP SDK wrapper.' It adds operational context about pricing and routing, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than necessary, with repetitive guidance about pricing and routing appearing both in the description and schema. It could be more concise without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 15 parameters, no required ones, and an output schema, the description provides sufficient context about usage scenarios (compact vs full) and execution flow. It is fairly complete, though slightly repetitive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 description adds limited value beyond what the schema provides. The description does set high-level context but does not enhance individual parameter meanings significantly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists SAP agents and distinguishes between compact and full views. However, it does not explicitly differentiate from similar sibling tools like sap_list_all_agents or sap_discover_agents, which reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context (e.g., inspect chain state before mutations) and conditions for micro-read vs read-premium. But it does not give explicit guidance on when to use this tool over alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_list_all_agentsList All SAP AgentsA
Read-onlyIdempotent
Inspect

Paid hosted global SAP agent directory read. Enumerates current on-chain AgentAccount PDAs and supports query, wallet, protocol, capability, x402 endpoint filtering, compact/full views, and cursor pagination. SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program. Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoResult shape. Use compact for broad discovery and full for detailed rows. Defaults to compact.
limitNoMaximum rows to return. Defaults to 100; hard-capped at 500.
queryNoOptional text search across name, description, agentId, wallet, PDA, x402 endpoint, protocols, capabilities, and active plugins. Example: "XONA" or "creative".
cursorNoOpaque pagination cursor returned as pagination.nextCursor by a previous sap_list_all_agents or sap_discover_agents call.
offsetNoZero-based pagination offset. Defaults to 0. Prefer cursor after the first page when nextCursor is returned.
walletNoOptional exact owner wallet public key filter. Use this when a wallet is known; it is the most reliable lookup path.
hydrateNoDeprecated compatibility alias. Use view="full" for full rows or view="compact" for directory rows.
agentPdaNoOptional exact SAP agent PDA filter.
protocolNoOptional protocol filter matched case-insensitively against agent protocols and protocol-index membership. Example: "jupiter", "creative", "payments".
capabilityNoOptional single capability ID filter matched case-insensitively. Example: "creative:imageGeneration" or "jupiter:swap".
capabilitiesNoOptional list of capability IDs. Use capabilityMode="all" when the agent must have every capability.
capabilityModeNoHow to match the capability/capabilities filters. Defaults to "any".
hasX402EndpointNoOptional filter for agents that advertise a paid HTTP/x402 endpoint.
includeInactiveNoInclude inactive agents. Defaults to false.
includeProtocolIndexesNoInclude compact protocol index summaries. Defaults to false for sap_discover_agents and true for sap_list_all_agents.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that it is a paid hosted read and gives details about filtering and pagination, which aligns with and extends the annotation information. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a main purpose statement followed by contextual guidance sections. While there is some redundancy (e.g., execution guidance repeated in schema description), each sentence earns its place and the total length is reasonable for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 15 parameters, 0 required, 100% schema coverage, an output schema, and clear annotations, the description covers the behavior, filtering, pagination, and execution context thoroughly. No gaps are apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 input schema already documents all 15 parameters with descriptions. The description mentions key filtering options (query, wallet, protocol, etc.) but does not add new semantic meaning beyond what is in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists SAP agent PDAs with filtering and pagination, specifying it's a read operation. It does not explicitly differentiate from sibling 'sap_discover_agents', but the verb 'list all' implies a broader scope, and the filtering details make the purpose specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on intent (read/discovery workflow), pricing (paid read-premium), and routing instructions (estimate first, use payment tool if needed). It does not state when to avoid this tool versus alternatives, but the context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_market_snapshotSAP Market SnapshotAInspect

Returns a complete market snapshot: all Adrena market data (leverage, OI, flags), live oracle prices, and pool health (AUM, LP supply) in one call. Includes a 30-second TTL cache — repeated calls within the cache window return cached data without re-fetching. Reduces market data costs by 20x for polling bots.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceRefreshNoWhen true, bypasses the cache and fetches fresh data. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the 30-second TTL cache, repeated calls return cached data, and cost reduction benefits. This adds significant behavioral context beyond what annotations provide (readOnlyHint=false, etc.), and 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with two paragraphs: purpose and cache in the first, execution guidance in the second. It is front-loaded with key information. Slightly verbose due to execution details, but still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to detail return values. It covers purpose, caching, cost savings, and routing instructions comprehensively. For a read-only tool with one optional parameter, this is fully adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single parameter 'forceRefresh' (description: 'When true, bypasses the cache and fetches fresh data.'). The main description repeats this but also provides broader cache context, adding marginal value. With 100% schema coverage, baseline is 3, and the description does not significantly exceed that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a complete market snapshot with specific data types (market data, oracle prices, pool health). It uses the verb 'returns' and specifies the resource, distinguishing it from individual data-fetching siblings like sap_adrena_get_markets by emphasizing comprehensiveness in one call.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on when to use the tool (for polling bots needing reduced costs) and includes cache TTL behavior. It also gives routing instructions (call sap_estimate_tool_cost first). However, it does not explicitly state when not to use it or compare to alternatives, which would improve clarity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_memory_prunePrune Old MemoriesA
DestructiveIdempotent
Inspect

Free local tool. Removes expired memories and memories with relevance below threshold after decay. Also archives tool call records older than retention period. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
archiveDaysNoArchive tool calls older than N days. Default 90.
minRelevanceNoMinimum decayed relevance to keep. Default 0.05.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint true and readOnlyHint false. The description adds that it is a free local tool with no x402 charge, and specifies it removes and archives data. It provides context beyond annotations, though it could be more precise about the archive vs deletion distinction.

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 core description is concise and front-loaded with 'Free local tool.' However, the appended SAP MCP guidance block adds unnecessary length and is not tool-specific, slightly reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple cleanup tool with two optional parameters, complete annotations, and an output schema, the description provides sufficient information about its purpose, cost, and locality. It could mention prerequisites or side effects, but is generally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with both parameters described in the input schema. The description does not add additional meaning beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it removes expired memories and memories with low relevance after decay, and archives old tool call records. The verb 'removes' and 'archives' with specific resources differentiate it from sibling tools like sap_memory_recall or sap_memory_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for memory and record cleanup, and notes it's free and local. However, it does not provide explicit when-to-use or when-not-to-use guidance compared to other memory tools, nor does it mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_memory_recallRecall Agent MemoriesA
Read-onlyIdempotent
Inspect

Free local tool. Returns the most relevant memories for a category, ordered by decayed relevance. Use this for prompt injection — the agent gets top N memories for the task at hand. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax memories. Default 5.
categoryYesTool category to recall memories for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, destructiveHint. The description adds valuable behavioral context: 'Free local tool', 'ordered by decayed relevance', and detailed SAP MCP execution guidance about pricing, routing, and signer boundary. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two paragraphs; the first is concise, but the second repeats 'no x402 charge' and includes execution guidance that could be more tightly integrated. It could be shortened without losing key 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 recall tool with good annotations and an output schema, the description covers purpose, ordering, cost hints, and execution guidance. It is slightly redundant but generally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The description adds minimal extra meaning beyond stating 'category' and 'top N memories', which aligns with the schema defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the most relevant memories for a category, ordered by decayed relevance. This verb+resource combination is specific and distinguishes it from sibling tools like sap_memory_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests using this for prompt injection to get top N memories, and mentions 'Free local tool' and 'No x402 charge' for cost guidance, but lacks explicit comparison to alternative memory tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_memory_recordRecord Tool CallAInspect

Free local tool. Records a tool call execution in the agent memory database (SQLite FTS5). Auto-call after any paid or significant tool call to build searchable history. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
inputNoJSON-serialized tool input.
outputNoJSON-serialized tool output (truncated to 8KB).
costUsdNox402 cost in USD if the tool was paid.
outcomeYesExecution outcome.
toolNameYesMCP tool name that was called.
latencyMsNoExecution latency in milliseconds.
sessionIdNoOptional session identifier.
txSignatureNoSolana transaction signature if applicable.
callerProfileNoOptional signer profile used.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds behavioral context: it is a 'free local tool', 'no x402 charge', and intended for building searchable history. These go beyond the annotations. However, it does not describe behavior on repeated calls or error scenarios, which would be helpful.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are concise and front-loaded. However, the SAP MCP execution guidance block is repetitive and not directly about the tool's function, adding unnecessary length. Could be more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (logging action), the description covers purpose, usage context, and cost. The output schema exists separately. It misses a bit on exact triggers (e.g., should it be called after every call?), but overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with well-described parameters (toolName, outcome, etc.). The description does not add further parameter meaning beyond what the schema provides. Baseline 3 is appropriate as the schema already does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it 'Records a tool call execution in the agent memory database (SQLite FTS5)' and specifies the context 'Auto-call after any paid or significant tool call to build searchable history.' This distinguishes it from other memory tools like sap_memory_recall or sap_memory_search, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises calling after 'any paid or significant tool call' and notes it is free ('No x402 charge'), giving clear when-to-use guidance. However, it does not explicitly mention when not to use it or compare with alternatives, but the intent is clear for recording.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_memory_summarizeCreate Agent MemoryBInspect

Free local tool. Creates an LLM-compressed summary memory from tool call patterns. The agent calls this after analyzing search results to persist lessons, patterns, failures, or successes. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
summaryYesLLM-compressed summary text. Max 4KB.
categoryYesTool category (e.g. "jupiter", "adrena", "premium").
expiresAtNoISO 8601 expiry. Null = never expires.
relevanceNoInitial relevance score 0-1. Default 0.8.
memoryTypeYesType of memory.
sourceToolCallsNoJSON array of tool_call IDs that were the source.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are present and not contradictory. The description adds context like 'free local tool' and 'No x402 charge', but lacks details on side effects, permissions, or whether new memory overwrites existing records, which would be useful for a creation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first few sentences are clear, but the inclusion of generic 'SAP MCP execution guidance' adds redundancy and noise, reducing conciseness. The description is not overly long but could be streamlined.

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?

Provides adequate context for a tool with a well-documented schema and output schema. However, it does not explain the relationship between sourceToolCalls and the summary, or memory lifecycle, which would strengthen completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The tool description does not enhance parameter semantics beyond the schema; it only provides general context about when the tool is used.

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 states it creates an LLM-compressed summary memory from tool call patterns, with specific use cases like persisting lessons after analyzing search results. Distinguishes from sibling memory tools by focusing on summarization from patterns, though it could explicitly differentiate further.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a specific scenario ('after analyzing search results') but does not discuss when not to use this tool or mention alternatives like sap_memory_record or sap_memory_search. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_network_statsGet SAP Network StatisticsCInspect

Fetch real SAP network statistics using synapse-sap-sdk DiscoveryRegistry and GlobalRegistry.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailedNoInclude both discovery overview and raw global registry state.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'Fetch' implying a read-only operation, but annotations set readOnlyHint=false, a direct contradiction. The generic guidance mentions pricing and signer boundaries but does not clarify the actual side effects or safety profile of this tool. Annotation contradiction: true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and on-point, but it is followed by a long block of generic execution guidance that appears to be boilerplate repeated across many SAP tools. This extraneous content reduces conciseness and does not earn its place for this specific tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 parameter, output schema exists), the description provides the basic purpose but fails to disclose behavioral traits due to the annotation contradiction and missing usage guidelines. The generic guidance adds noise rather than completeness, leaving an agent potentially misled about the tool's safety and cost implications.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema description for the 'detailed' parameter is clear: 'Include both discovery overview and raw global registry state.' The tool description adds no additional parameter information beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Fetch real SAP network statistics using synapse-sap-sdk DiscoveryRegistry and GlobalRegistry,' which clearly identifies the verb (fetch) and resource (network statistics). However, it does not differentiate from similar sibling tools like sap_get_network_overview, so it lacks sibling distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The generic execution guidance about pricing and routing is not specific to this tool and does not help with tool selection or exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_next_settlement_indexGet Next Settlement IndexB
Destructive
Inspect

Read the next V2 settlement index. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (as a decimal string, default: 0)
agentWalletNoAgent wallet public key (base58)
depositorWalletNoDepositor wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description says 'Read' but annotations have destructiveHint=true and readOnlyHint=false, creating a strong contradiction. The description also mixes guidance for other tools without clarifying this tool's side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, repeating execution guidance (pricing, routing, signer boundary) both in the description and the schema description. The core message is buried under redundant workflow instructions.

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?

An output schema exists, but the tool's behavior is unclear due to the contradiction. The description does not clarify whether calling this tool is destructive or idempotent, which is critical for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 3 parameters are documented in the input schema with full coverage (100%). The description repeats execution guidance but does not add new parameter-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence 'Read the next V2 settlement index' clearly states the verb (Read) and resource (next V2 settlement index). It is specific and distinct from sibling tools that involve creating or settling escrows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context: 'Estimate or fetch state before creating escrows or settling calls' and mentions write operation requirements. However, it does not explicitly exclude alternative tools or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_open_vault_sessionOpen SAP Vault SessionAInspect

Open a vault session by 32-byte session hash. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionHashNo32-byte session hash as a byte array, hex string, or base64 string

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (mutation) and no destructive flag. The description supplements with context about on-chain visibility of session and vault PDAs and security warnings. It does not contradict 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 well-structured with a clear first sentence stating purpose, followed by contextual and usage information. While it contains some repetition (e.g., pricing/routing duplicated in schema description), it remains focused and mostly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of the SAP MCP ecosystem and the presence of an output schema, the description covers purpose, usage boundaries, and security implications. It lacks explicit mention of return value details but is sufficient for the agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the tool description does not add extra meaning to the single parameter beyond what the schema already provides. The schema description adequately explains accepted formats (byte array, hex, base64).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Open a vault session') and the required input (32-byte session hash). It is specific and distinguishable from sibling tools, though it does not explicitly differentiate from similar session-related tools (e.g., sap_session_start).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides extensive guidance on when to use this tool, including pricing model, routing restrictions, and alternatives like sap_payments_call_paid_tool. It explicitly states when not to call it and what to use instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_payments_fund_prepaidFund Prepaid Payment SessionAInspect

Hosted paid tool that creates a prepaid session. The x402 charge for this tool IS the funding deposit. After settlement, creates a prepaid credit session with the specified amount and per-call cost. Returns sessionId, remainingUsd, and expiresAt. Pass the returned sessionId as prepaidSessionId to sap_payments_call_paid_tool for future calls to bypass per-call 402 challenges (x402 Lifecycle Hooks grantAccess pattern).

SAP MCP execution guidance: Intent: local non-custodial payment/signing bridge. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
ttlHoursNoSession TTL in hours. Defaults to 24.
amountUsdYesTotal USDC to deposit into the prepaid session. This amount is charged via x402 when calling this tool.
perCallCostUsdNoCost deducted from the prepaid balance per granted call. Defaults to 0.015 USD.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it is a hosted paid tool, charges via x402, creates a prepaid credit session, returns sessionId/remainingUsd/expiresAt, and includes security guidance (non-custodial, no keypair exposure). Annotations (readOnlyHint=false) align, and no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains two paragraphs; the second 'SAP MCP execution guidance' is verbose and somewhat redundant with schema description, reducing conciseness. Could be streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the input schema (3 params), output schema (return values mentioned), and annotations, the description provides sufficient context including workflow, pricing, security, and expected outputs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the description restates parameter purposes but adds minimal new meaning beyond the schema descriptions. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a prepaid payment session, with verb 'creates' and resource 'prepaid session'. It distinguishes itself from sibling tools like sap_payments_call_paid_tool by explaining the workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (to fund a prepaid session and bypass per-call x402 challenges) and mentions the follow-up tool (sap_payments_call_paid_tool). However, it lacks explicit when-not-to-use instructions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_payments_prepaid_balanceCheck Prepaid Session BalanceA
Read-onlyIdempotent
Inspect

FREE local tool that checks the remaining balance of a prepaid session. No x402 charge. Returns the session ID, remaining USD, total USD, per-call cost, expiry, and call count. Use this before calling sap_payments_call_paid_tool with prepaidSessionId to verify the session still has balance.

SAP MCP execution guidance: Intent: local non-custodial payment/signing bridge. Pricing: free; call directly without x402. Routing: local sap_payments bridge. It may sign x402 payment payloads or user-approved transactions locally, and must never expose keypair bytes. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoPrepaid session ID returned by sap_payments_start_prepaid.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalUsdYesOriginal USDC amount deposited when the session was created.
callCountYesNumber of calls made using this session.
expiresAtYesISO timestamp when the session expires.
sessionIdYesThe prepaid session ID checked.
remainingUsdYesRemaining USDC balance in the session.
perCallCostUsdYesCost deducted per granted call.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive. The description adds value by stating it is free, local, and does not charge x402. This context supplements the annotations nicely.

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 core purpose is stated concisely, but the 'SAP MCP execution guidance' block is verbose and appears to be boilerplate, reducing clarity for the primary use case.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what the tool returns (session ID, balances, costs, expiry, call count) and its role. With an output schema presumably covering return fields, this is complete enough for a simple read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema description for sessionId is clear. The description adds no additional meaning beyond the schema, meeting baseline expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks the remaining balance of a prepaid session, with a specific verb and resource. It distinguishes from related tools like sap_payments_fund_prepaid and sap_payments_call_paid_tool by positioning as a prerequisite check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells when to use: 'Use this before calling sap_payments_call_paid_tool with prepaidSessionId to verify the session still has balance.' Also notes it is free and requires no x402 charge.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_builder_statusSAP Perp Builder StatusAInspect

Free readiness check for perps execution. Returns whether SAP MCP has native Adrena perps builders (available since 0.9.38) or a configured hosted unsigned transaction builder. If builderAvailable is false, agents must stop before execution and must not route direct signer-only perps tools through x402 paid-call replay.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
venueNoOptional perp venue to check, for example "adrena" or "sap-perps-provider".

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds behavioral context beyond annotations: explains what the tool returns, implications of false result, and call cost (free, no x402). Annotations (readOnlyHint=false, openWorldHint=true, etc.) are consistent; no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with core purpose, then provides execution and routing guidance. Some redundancy with schema description text, but overall well-structured and concise relative to information density.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 simple tool (1 optional param, output schema exists), description is complete: explains purpose, return value implications, and usage constraints. Omits exact output fields but that's fine due to output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with the venue parameter well described. Description does not add extra parameter semantics beyond what's in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states a specific verb+resource: 'Free readiness check for perps execution.' It distinguishes from siblings by focusing on checking builder availability for perps, a unique function among many sap_* tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly guides when to use: 'If builderAvailable is false, agents must stop before execution...' and provides routing/signer boundary guidance. No alternative tools mentioned, but the guidance is clear for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_fear_greedFear & Greed IndexAInspect

Fetch the Crypto Fear & Greed Index from alternative.me (free, no API key). Returns current value (0-100), classification (Extreme Fear to Extreme Greed), historical values (yesterday, last week, last month), and a risk_on/risk_off recommendation. Use this as a market sentiment overlay before opening positions. Extreme Fear (<25) can indicate capitulation (contrarian bullish). Extreme Greed (>75) can indicate euphoria (contrarian bearish).

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses beyond annotations: free, no API key needed, returns specific data, and includes SAP MCP execution guidance (pricing, routing, signer boundary). No contradictions with annotations; readOnlyHint=false is not contradictory since the description does not claim read-only.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with main purpose, but includes somewhat verbose SAP MCP execution guidance that may not be essential for an AI agent. Could be more concise while retaining all key info.

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?

Complete for a simple fetch tool: covers purpose, usage, return values, and even technical routing details. Output schema exists so return format is already defined.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in schema; description correctly notes no input needed. Schema coverage is 100% (empty), so no additional parameter description required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it fetches the Crypto Fear & Greed Index, specifying the source (alternative.me), that it's free and requires no API key, and lists the return data (current value, classification, historical values, recommendation). Differentiates from sibling tools by being a market sentiment overlay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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: 'Use this as a market sentiment overlay before opening positions' and offers contrarian interpretations for extreme values. Lacks explicit when-not-to-use or comparison to alternatives, but the context is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_funding_historySAP Perp Funding HistoryAInspect

Compute the current funding rate for an Adrena perpetual market from on-chain Custody account data. Pass the custodyAddress from sap_perp_markets. Returns current funding rate, cumulative funding, and open interest. Read-only — reads Custody account directly from Solana RPC (on-chain). Note: on-chain data provides the current funding snapshot only, not historical time-series.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of funding records to return (default 100). On-chain mode returns the current funding snapshot only.
marketNoOptional market symbol (e.g. "SOL", "BTC") for display purposes.
custodyAddressYesCustody account public key (base58). Obtain from sap_perp_markets output — the custodyAddress field.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'Read-only — reads Custody account directly from Solana RPC (on-chain),' but the annotations set readOnlyHint to false, which suggests the tool may modify state. This is a clear contradiction between the description and annotations. The description does add behavioral context (reads on-chain, snapshot only), but the contradiction undermines trust.

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 moderately concise. The first paragraph is succinct and focused on functionality. The second paragraph contains execution guidance that is generic SAP MCP boilerplate, which may be necessary for the ecosystem but adds length. Overall, it is not overly verbose, but the second paragraph could be condensed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema (not shown but present) and the input schema is well-documented, the description provides sufficient context: it explains the return fields (funding rate, cumulative funding, OI), clarifies that it is a snapshot (not historical), and directs to the source of the required input. It is complete enough for an agent to understand the tool's role and output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all 3 parameters. The description adds meaningful value beyond the schema: it advises to 'Pass the custodyAddress from sap_perp_markets' for the required param, and explains that the limit parameter behaves differently ('On-chain mode returns the current funding snapshot only'). The market param is described as optional display only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Compute the current funding rate for an Adrena perpetual market from on-chain Custody account data.' It specifies the action (compute), the resource (funding rate), and the data source (on-chain Custody account). It also distinguishes from historical funding via a note, and references the sibling tool sap_perp_markets for obtaining the required custodyAddress.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear usage guideline: 'Pass the custodyAddress from sap_perp_markets.' It also indicates that the tool is read-only and that it returns only the current funding snapshot, not historical data. However, it does not explicitly contrast with sibling tools like sap_perp_position_info or sap_perp_trade_plan, nor does it specify when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_liquidation_zonesSAP Perp Liquidation ZonesBInspect

Compute liquidation zones for all open Adrena perp positions of a wallet. Reads on-chain positions via Solana RPC and calculates liquidation geometry from entry price, leverage, and liquidation price. currentPrice mirrors entryPrice until SAP MCP has a live oracle/feed price decoder. Read-only.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet public key (base58) to compute liquidation zones for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'Read-only', but annotations set readOnlyHint=false, creating a direct contradiction. This inconsistency undermines agent understanding of the tool's mutability. Additional behavioral context about pricing and routing is present but secondary.

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 purpose section is concise and front-loaded, but the description includes boilerplate execution guidance that is not tool-specific, adding unnecessary length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the computation approach and a key limitation (price mirroring), providing sufficient context for the tool's use. The output schema exists to detail return values, so completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides a clear description of the single parameter 'wallet'. The description adds no extra semantic detail beyond what the schema states, thus providing no additional value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the verb 'Compute' and the resource 'liquidation zones for all open Adrena perp positions of a wallet', clearly distinguishing it from sibling position retrieval tools like adrena_getPositions and sap_adrena_get_positions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives is provided. The description notes a limitation ('currentPrice mirrors entryPrice') but does not suggest alternative tools or conditions for use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_marketsSAP Perp MarketsCInspect

List available Adrena perpetual futures markets from Pool/Custody accounts with funding/accounting fields, open interest, leverage caps, and oracle identifiers. Read-only analysis tool. Custody accounts do not expose a ready mark price, so markPrice is null until an oracle/feed decoder or configured Adrena data runtime is available. If markets are empty, treat it as data unavailable, not proof that markets do not exist. SAP MCP exposes execution only when sap_perp_builder_status reports a verified hosted unsigned builder.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketNoOptional market symbol filter (e.g. "SOL", "BTC"). Empty = all markets.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explicitly states 'Read-only analysis tool,' but the annotation readOnlyHint is false, creating a direct contradiction. Additionally, the generic execution block about pricing and signing does not describe tool-specific behavior. This misleads the agent about the tool's nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with a generic SAP MCP execution block that appears copied and is not specific to this tool. The core information is brief, but the extra content makes it less concise and poorly structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description mentions key behavioral aspects (null markPrice, empty markets handling) and notes the fields returned. An output schema exists, so return value details are not needed. However, the generic execution block detracts from completeness. Overall adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is only one parameter ('market') and its schema description already covers the filter and default behavior thoroughly. The tool description adds no new information beyond the schema, so it meets the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List available Adrena perpetual futures markets' with specific fields like funding, open interest, leverage caps. However, it does not differentiate itself from the sibling tool 'sap_adrena_get_markets', which likely has similar functionality. The verb 'list' and resource 'markets' are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides useful guidance on handling empty results ('treat it as data unavailable, not proof that markets do not exist') and explains that markPrice is null until an oracle is available. However, it does not indicate when to use this tool versus other market-related tools, and the generic SAP MCP execution guidance is irrelevant and confusing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_portfolio_riskPortfolio Risk ScoreAInspect

Compute an aggregate portfolio risk score from the trade journal and open positions. Returns total exposure, weighted leverage, diversification score, and a risk recommendation (SAFE/MODERATE/HIGH/CRITICAL). Use this to assess overall portfolio health before opening new positions or when monitoring existing ones.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description lists return fields but does not elaborate on side effects or data sources. Annotations set readOnlyHint=false, which is consistent with a computational tool, but more detail on whether it mutates state would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The functional description is concise, but the appended 'SAP MCP execution guidance' block is generic and adds unnecessary length without tool-specific value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple (0 params, clear outputs) and the description covers its purpose and return values. The irrelevant boilerplate slightly detracts, but overall completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 required), and schema coverage is 100%. The description implicitly indicates no user input is needed beyond accessing internal data, which is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool computes an aggregate portfolio risk score from trade journals and open positions, with specific outputs listed. This distinguishes it from sibling tools like sap_perp_risk_check, which likely focus on individual positions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises using it 'before opening new positions or when monitoring existing ones,' providing clear context. However, it does not mention when not to use it or name specific alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_position_infoSAP Perp Position InfoCInspect

Read all open perpetual positions on Adrena for a given wallet address. Returns position key, market, side, size, collateral, entry price, leverage, unrealized PnL, and liquidation price from the on-chain Position account. markPrice mirrors entryPrice until SAP MCP has a live oracle/feed price decoder. Read-only — uses Solana RPC with PDA derivation (works on public RPC without getProgramAccounts).

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet public key (base58) to read positions for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description claims 'Read-only' but annotations set readOnlyHint=false, a direct contradiction. Also idempotentHint=false despite read operations typically being idempotent. No additional behavioral context beyond the contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Contains a large block of generic SAP execution guidance that is not specific to this tool, making it verbose. The tool-specific part is concise but buried in boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, the description adequately lists return fields and notes the markPrice limitation. It explains the method (PDA derivation, public RPC). Missing explicit mention of idempotence or error states, but overall sufficient for a read-only 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?

Schema coverage is 100%, and the description only reiterates that the wallet is used to read positions. No additional semantics beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it reads all open perpetual positions on Adrena for a wallet, with specific return fields. However, it does not differentiate from the sibling tool adrena_getPositions, which may have similar functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives like adrena_getPositions. Generic SAP payment routing instructions are present but irrelevant to tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_risk_checkPerp Risk CheckA
Read-onlyIdempotent
Inspect

Pre-trade dynamic risk gate. Reads the trade journal to compute daily P&L, drawdown, and cooldown status. Returns allowed/disallowed with a risk score (0-1) and recommendation (PROCEED/WAIT/BLOCK). Call this before sap_adrena_build_open_long or sap_adrena_build_open_short. Combines with the static policy engine for full risk management.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
marketYesMarket symbol (e.g. BONK, JITOSOL, WBTC, XAU).
leverageYesLeverage multiplier (e.g. 3 for 3x).
collateralUsdYesCollateral amount in USD.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds specifics about reading the trade journal, return values (risk score 0-1, PROCEED/WAIT/BLOCK) beyond annotations (readOnlyHint, idempotentHint, etc.). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and front-loaded with purpose. The SAP MCP execution guidance is somewhat boilerplate but not redundant. Efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 pre-trade risk check, the description covers core functionality, usage timing, and return values. Doesn't fully explain failure scenarios but is adequate given annotations and expected output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. Description does not add significant parameter detail beyond what schema provides (e.g., market symbol examples).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'Pre-trade dynamic risk gate' that computes P&L, drawdown, cooldown status, and returns a risk score and recommendation. It specifies calling before sap_adrena_build_open_long or sap_adrena_build_open_short, distinguishing it from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to call before certain build tools, and mentions combining with the static policy engine. Lacks explicit when-not-to-use or alternatives, but the context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_signal_scorePerp Signal ScoreAInspect

Aggregate technical signal score (0-1) from RSI, EMA, MACD, Bollinger Bands, price action, and on-chain funding rate. Returns a single score with LONG/SHORT/WAIT recommendation and confidence. Replaces 5-7 individual indicator calls with 1 aggregation call. Use this before opening a position to get a quantitative decision baseline.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58) for DexScreener price data.
marketYesMarket symbol for on-chain funding rate (e.g. BONK, JITOSOL, WBTC).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by listing specific indicators (RSI, EMA, MACD, etc.) and stating the output includes a recommendation and confidence. Annotations already indicate it's not read-only nor destructive, and the description does not contradict them.

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 core behavioral description is concise, but the additional 'SAP MCP execution guidance' paragraph is lengthy and detracts from tool clarity. This boilerplate could be omitted or shortened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (aggregating multiple indicators) and the existence of an output schema, the description covers inputs, outputs, and use case well. It could mention output schema details, but is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and field descriptions are already detailed (mint for DexScreener, market for funding rate). The description repeats this info without adding new meaning, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it aggregates technical signals into a score with recommendation, and mentions it replaces multiple individual indicator calls, distinguishing it from single-indicator tools. However, it does not explicitly differentiate from sibling sap_perp_* tools like sap_perp_fear_greed or sap_perp_risk_check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It advises using before opening a position to get a quantitative baseline, providing clear context. No when-not-to-use or alternatives are given, but the statement is directive and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_perp_trade_planSAP Perp Trade PlanAInspect

Create a trader-grade perpetual futures plan from a simple intent. Returns notional size, stop risk, reward/risk, liquidation estimate, preflight checklist, and the exact SAP MCP read tools to call next. This is analysis-only: SAP MCP does not expose Adrena execution builders until they are IDL-backed and locally finalizable. Required fields: market, side, collateralAmountUsd, leverage, entryPrice. Get entryPrice from sap_adrena_get_trading_prices or sap_adrena_get_prices before calling this tool.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesIntended direction for the trade.
notesNoOptional user notes, catalyst, invalidation thesis, or strategy context.
marketYesPerp market symbol or pair, for example SOL-PERP, BTC-PERP, or ETH-PERP.
leverageYesRequested leverage multiplier. Keep conservative unless user policy explicitly allows more.
timeframeNoTrading horizon such as scalp, intraday, swing, or hedge.
entryPriceYesReference entry price in USD used for risk math. Required. Get the current price from sap_adrena_get_trading_prices or sap_adrena_get_prices before calling this tool.
stopLossPriceNoOptional stop loss price in USD. Strongly recommended before execution.
maxSlippageBpsNoMaximum execution slippage in basis points. Default 50 bps.
takeProfitPriceNoOptional take profit price in USD used to compute reward/risk.
maxAccountRiskPctNoMaximum account risk percentage allowed by local policy. Default 1%.
collateralAmountUsdYesCollateral to allocate in USD. This is the margin budget, not notional size.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description details that the tool is 'analysis-only' and provides execution guidance on pricing, routing, and signer boundaries. This goes beyond annotations (readOnlyHint=false, destructiveHint=false) by explaining what the tool does not do (execution) and what limitations exist.

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 lengthy (multiple paragraphs) and includes execution guidance that could be more efficiently placed elsewhere or referenced. It is organized but not as concise as it could be for a tool that should be quickly understood.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, 5 required), the description covers prerequisites, outputs, and execution context. It explains when to call this tool (before execution) and what to do next (call read tools). The presence of an output schema (implied by context) reduces need to describe return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that entryPrice must be fetched from specific tools and that collateralAmountUsd is 'margin budget, not notional size.' This clarifies parameter meaning beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Create a trader-grade perpetual futures plan from a simple intent.' It lists specific outputs (notional size, stop risk, etc.) and explicitly notes it is 'analysis-only', distinguishing it from execution tools like sap_adrena_build_* siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies required fields and tells the agent to get entryPrice from sap_adrena_get_trading_prices or sap_adrena_get_prices before calling. It also explains that SAP MCP does not expose execution builders until IDL-backed, implying this tool is for planning only. However, it does not explicitly contrast with alternative tools like sap_adrena_trade_intent or other build tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_activate_sessionActivate Premium SessionAInspect

Activates a pending premium session with a verified x402/pay.sh payment receipt. This tool is FREE — it does not charge x402. The paymentReceipt must be the actual Solana transaction signature (tx hash) from the x402 facilitator settlement, NOT "pending" or any placeholder. Flow: 1) sap_premium_session_start creates a pending session (free). 2) The x402 challenge is settled via the local bridge (sap_payments_call_paid_tool or direct facilitator payment) — the facilitator returns a tx signature. 3) Pass that tx signature as paymentReceipt to this tool. Do NOT pass "pending" — it will always be rejected and waste a tool call.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesPremium session id returned by sap_premium_session_start.
payerAddressNoOptional Solana payer public key for audit binding.
paymentReceiptYesThe Solana transaction signature (tx hash) from the x402 facilitator settlement. NOT "pending" — must be the real tx hash like "3ozKaRujGGymu3s9q67qfwfG21s2BpjJQ5zEEFCWen1u...". Get this by settling the payment challenge first, then pass the returned signature here.

Output Schema

ParametersJSON Schema
NameRequiredDescription
activationYesActivation result with status, activatedAt, receiptBound, unitsQuota, and reason.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it states the tool is FREE, does not charge x402, and that passing 'pending' will always be rejected. Annotations indicate readOnlyHint=false (mutation), destructiveHint=false, and openWorldHint=true. The description complements these with concrete details about the activation process and cost, fulfilling the transparency requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear flow and bullet points, front-loading the main purpose. However, it includes a repetitive 'SAP MCP execution guidance' block that may be boilerplate. While not overly verbose, it could be slightly more concise. Still effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's role in a multi-step premium session workflow, the description is complete. It covers prerequisites (session start, payment settlement), input requirements, expected behavior, and error conditions. With an output schema present, it doesn't need to detail return values. The sibling tools list provides context, and the description integrates well with the workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the tool description adds value by providing examples and clarifying constraints (e.g., 'paymentReceipt' must be a real tx hash, not 'pending'). The description elaborates on the parameters' roles in the workflow, making their semantics clearer than the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Activates a pending premium session with a verified x402/pay.sh payment receipt.' It uses a specific verb ('activate') and resource ('premium session'), and distinguishes it from siblings like sap_premium_session_start (creates pending session) and sap_premium_session_status (checks status).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit step-by-step guidance on when to use this tool: after starting a session and receiving a payment receipt. It explicitly warns against passing 'pending' and explains the flow (1, 2, 3). It also includes SAP MCP execution guidance about pricing and routing, which helps the agent decide when to use this tool vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_close_sessionClose Premium SessionA
Destructive
Inspect

Closes an active premium session, stopping all stream and webhook delivery. Use this when the buyer wants to stop delivery before the unit quota is exhausted. No refund is issued — the session is simply closed.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYesHuman-readable reason for closing the session.
sessionIdYesThe active premium session id to close.

Output Schema

ParametersJSON Schema
NameRequiredDescription
closedYesClose result with sessionId, success boolean, and reason.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true, but the description adds that it stops delivery and issues no refund, providing behavioral context beyond the annotation flags. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

First paragraph is concise and front-loaded with purpose. The second paragraph contains SAP MCP execution guidance, which adds necessary context for tool invocation (paid tool, routing) but is somewhat verbose. Overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, output schema exists), the description covers the core purpose and usage. However, it omits explicit prerequisites (session must be active) and potential error states, leaving minor gaps. Adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear descriptions for both parameters (sessionId and reason). The description does not add extra meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool closes an active premium session, stopping stream and webhook delivery. It uses a specific verb ('closes') and resource, and distinguishes itself from siblings like sap_premium_activate_session by describing the stop action.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage context: 'Use this when the buyer wants to stop delivery before the unit quota is exhausted.' It also clarifies that no refund is issued, guiding the agent on when to invoke. However, it does not mention when not to use or compare to alternatives beyond the implicit distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_metricsPremium Subsystem MetricsAInspect

Returns a point-in-time metrics snapshot of the premium subsystem: active/pending/blocked sessions, total events delivered, estimated revenue, active streams, active webhooks, and provider health status. Use this for monitoring and operational insights.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
metricsYesPremium metrics snapshot with session, event, revenue, stream, webhook, and provider health counts.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the tool returns a point-in-time snapshot (read-only), but annotations incorrectly set readOnlyHint=false. This is a direct contradiction, severely undermining trust. Description adds minimal behavioral context beyond the contradiction.

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 core description is concise (two sentences), but it is followed by a long block of generic SAP MCP execution guidance that is not tool-specific and adds noise. This reduces overall conciseness and focus.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with no parameters and an output schema, the description provides a good list of metrics and usage context. However, the annotation contradiction indicates incomplete behavioral transparency, and the generic guidance block feels misplaced.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has 0 parameters, so the input schema is effectively empty. The description adds meaning by listing the output fields, but since parameter semantics are not applicable, a baseline of 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a point-in-time metrics snapshot of the premium subsystem, listing specific metrics (active/pending/blocked sessions, total events delivered, etc.). It distinguishes from sibling tools by being the only read-only metrics tool among many premium subsystem action tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this for monitoring and operational insights,' providing clear context. However, it does not mention when not to use it or suggest alternatives, though the sibling list implies other monitoring tools exist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_plugin_catalogPremium Plugin CatalogAInspect

Free premium capability discovery. Lists SAP MCP stream, webhook, and premium tool plugin manifests with strict schemas, x402/pay.sh pricing contracts, provider readiness, and private enterprise plugin loader guidance. This tool never returns fake live data.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
includeSchemasNoWhen true, include full input/output JSON Schemas for every capability so agent runtimes can validate calls before payment.

Output Schema

ParametersJSON Schema
NameRequiredDescription
pluginsYesInstalled premium plugin manifests and their stream/webhook/tool capabilities.
versionYesPremium plugin catalog contract version.
providerStatusYesProvider environment readiness map. False means SAP MCP will not claim the feed is live.
privatePluginSupportYesEnterprise plugin loader contract for private or submodule-backed premium capabilities.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals that the tool never returns fake live data, is free to call, and provides routing and signing boundary guidance. These details go beyond the annotations, which only indicate non-read-only and non-destructive behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise but contains repetitive execution guidance and jargon that may not be essential for understanding the tool's core function. The structure is clear but could be trimmed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter and the presence of an output schema, the description adequately covers what the tool does and its key behavioral traits (no fake data, free). It does not detail the output structure, but the output schema handles that responsibility.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers the single parameter with a description, achieving 100% schema coverage. The tool description does not add significant new meaning for the parameter beyond what the schema already provides, meeting the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: it lists SAP MCP stream, webhook, and premium tool plugin manifests. It distinguishes itself from sibling tools by focusing on discovery and cataloging, not activation or validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for discovering capabilities before using other premium tools, but it does not explicitly contrast with alternatives or provide when-to-use/when-not-to-use guidance. The execution guidance is more about routing than tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_plugin_templateBuild Premium Plugin TemplateAInspect

Free premium plugin manifest builder. Generates a strict, data-only stream/webhook/tool manifest template that teams can place in a private plugin subrepo, validate, plug, and unplug without executing untrusted code or exposing provider secrets.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoHuman-readable plugin and capability title shown to agent runtimes.
pluginIdYesLowercase premium plugin id, for example sap-premium-custom-alpha. This becomes the manifest id.
publisherNoPublisher name used for enterprise review and marketplace metadata.
visibilityNoDiscovery visibility. Use private or enterprise for non-public provider contracts.
descriptionNoFull agent-facing description explaining the use case, provider boundary, pricing model, and what the capability delivers.
providerEnvNoUppercase provider env var names required to make the capability live. Do not pass secret values.
capabilityIdYesLowercase capability id, for example custom.signal.stream or custom:tool:score.
unitPriceUsdNoSuggested x402/pay.sh unit price in USD. Agents should see pricing before activation.
capabilityTypeYesCapability type to template: stream, webhook, or tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription
manifestYesData-only premium plugin manifest template. Review, harden schemas, then store it in the private plugin subrepo.
nextStepsYesOperator steps for validating, plugging, unplugging, and safely exposing this plugin.
validationYesValidation report for the generated template.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint=false, etc.), the description explains that the tool generates manifests without executing untrusted code or exposing provider secrets, and clarifies that hosted builders never receive keypair bytes. This adds valuable security context not present 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 contains redundant execution guidance that also appears in the schema's description. While the first sentence is direct, the additional text could be streamlined for better conciseness without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists (not shown but indicated), the description adequately covers the tool's purpose, security boundary, and free pricing. It is complete enough for an agent to understand usage without missing key aspects.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 describes all parameters. The description does not add new details about individual parameters; the execution guidance is generic. Baseline is 3 since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds premium plugin manifests, specifying it generates strict, data-only stream/webhook/tool manifest templates. This is a specific verb+resource combination that distinguishes it from sibling tools like other premium operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes SAP MCP execution guidance indicating free pricing, direct calling without x402, and hosted build behavior. It provides clear context for when to use this tool, but does not explicitly state when not to use it or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_session_startPlan Premium SessionAInspect

Free premium session planner. Creates a bounded session plan for a stream, webhook, or premium tool capability before any x402 charge. Use it to validate plugin id, capability id, requested units, TTL, provider readiness, and estimated price; paid activation happens only on the delivery rail.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
consumerNoOptional runtime, agent id, wallet, or application identifier requesting the premium session plan.
pluginIdYesPremium plugin id from sap_premium_plugin_catalog, for example sap-premium-market-data.
ttlSecondsNoHow long the unpaid planning object should remain valid. Clamped between 60 and 3600 seconds.
maxPriceUsdNoOptional buyer budget cap in USD. Agents should compare this to estimatedPriceUsd before paid activation.
capabilityIdYesCapability id from sap_stream_catalog or sap_webhook_catalog, for example jupiter.quote.delta.
capabilityTypeYesCapability type being planned: stream, webhook, or tool.
requestedUnitsNoRequested paid units for the session. Streams use minutes, webhooks use events, tools use sessions.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionYesPremium session plan. This is a planning object and must be paid/activated by the delivery rail before live data is delivered.
monetizationYesx402/pay.sh payment guidance for the premium stream or webhook activation rail.
providerStatusYesProvider readiness at the moment the session was planned.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the tool is free, creates a plan without charging, and validates inputs. Includes SAP MCP routing/pricing guidelines. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two paragraphs with clear first sentence. Second paragraph has execution guidance that could be integrated elsewhere, but overall is reasonably concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, validation items, and execution context. With an output schema present, description is sufficient for understanding the tool's role in the workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description mentions key parameters (pluginId, capabilityId, etc.) but adds limited additional meaning beyond the schema's own descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a 'bounded session plan' for streams, webhooks, or premium tools before any charge, distinguishing it from activation tools like sap_premium_activate_session.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use it to validate plugin id, capability, etc., and notes that paid activation occurs later. Execution guidance is provided, but no explicit when-not-to-use or alternatives are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_session_statusPremium Session StatusAInspect

Free premium session status lookup. Returns the current planning status for a premium stream/webhook/tool session id, or lists recent in-memory session plans when no id is provided. It does not expose secrets or stream payload data.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoOptional premium session id returned by sap_premium_session_start.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionsYesMatching premium session plans. Empty when the requested session id is unknown or expired from memory.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description describes a read-only lookup, yet annotations declare readOnlyHint: false, creating a contradiction. The description does not clarify whether side effects exist (e.g., logging, state changes) nor does it address the discrepancy. Beyond annotations, it adds context about not exposing secrets but fails to resolve the contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and behavior. The execution guidance is somewhat generic and could be separated, but it does not waste words. Overall concise and well-organized for a single-parameter tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one optional parameter, output schema present), the description covers all necessary aspects: behavior with and without parameter, what it does not expose, and execution constraints. The sibling tools are numerous, but the description clearly differentiates this tool's role.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and description adds meaning to the optional sessionId parameter: when omitted, the tool lists recent session plans. This provides clear usage context beyond the schema description. The execution guidance also hints at keeping calls small, which is relevant.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a status lookup for premium sessions, returning planning status for a given session ID or listing recent plans when no ID is provided. It distinguishes itself from related tools like sap_premium_session_start and sap_premium_webhook_status by specifying the action and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use (free, no payment needed) and what not to expect (no secrets or stream payload). The execution guidance covers pricing and routing, but it does not explicitly exclude scenarios where alternatives should be used. However, the behavior is clear enough for basic usage decisions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_stream_flushFlush Premium Stream EventsAInspect

Flush all buffered premium stream events for a session with cursor-based pagination. Unlike sap_premium_stream_poll (which returns a small batch for periodic polling), flush returns all events up to the cursor limit in a single call. Use this when an agent reconnects after a disconnection and needs to catch up on missed events. The nextCursor can be used as sinceEventId in subsequent calls to fetch only newer events.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of events to return. Default: 50, max: 500.
eventTypeNoOptional event type filter.
sessionIdYesActive or recently active premium session id whose buffered events should be flushed.
sinceEventIdNoOptional event id cursor. Only events delivered after this event id are returned. Use nextCursor from the previous flush call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
eventsYesAll buffered premium events matching the flush query, ordered oldest-first.
nextCursorYesEvent id of the last event in this batch. Pass as sinceEventId in the next flush call to paginate. Null if no events were returned.
sessionStatusYesCurrent session status (active, closed, not_found).
totalReturnedNoTotal number of events returned in this batch.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description adds context about cursor-based pagination, the relationship between nextCursor and sinceEventId, and SAP-specific guidance on pricing, routing, and signer boundary. It could be more concise but provides transparent behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is concise and front-loaded with key information (flush behavior, differentiation, use case). However, the inclusion of the repetitive SAP execution guidance block adds unnecessary length. It is still well-structured overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, full parameter coverage, and clear sibling differentiation, the description provides complete context for an agent to deduce when and how to use the tool. It covers purpose, usage timing, and cursor details without significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the input schema already provides clear parameter descriptions. The tool description mentions cursor-based pagination and the use of nextCursor, but adds minimal new meaning beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Flush all buffered premium stream events'), the resource (buffered premium stream events), and the scope (for a session). It explicitly contrasts with the sibling tool sap_premium_stream_poll, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: 'Use this when an agent reconnects after a disconnection and needs to catch up on missed events.' It also contrasts with sap_premium_stream_poll for periodic polling, clearly indicating when to use each tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_stream_pollPoll Premium Stream EventsAInspect

Long-poll buffered premium stream events for an active session. Returns events that have been delivered to the server-side event buffer since the last poll. This is the MCP-compatible alternative to holding open an SSE connection — call this tool periodically to drain the event buffer. This tool is transport-agnostic: because it is a standard MCP tool call (request/response), it works over any MCP transport including stdio, streamable-http, and WebSocket-based MCP transports. There is no need for a separate WebSocket endpoint — this poll tool IS the WebSocket-compatible consumption path. Events are returned oldest-first. Use the sinceEventId cursor from the last poll to fetch only new events. If no events are available, the tool will wait up to waitMs (default 15s, max 30s) for events to arrive before returning an empty array — this gives near-real-time delivery without repeated polling. Set waitMs=0 for instant return.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
waitMsNoLong-poll wait timeout in milliseconds. If no events are available, the tool waits up to this duration for events to arrive before returning. Default: 15000 (15s). Max: 30000 (30s). Set to 0 for instant return.
eventTypeNoOptional event type filter. Only events matching this type are returned.
maxEventsNoMaximum number of events to return in a single poll. Default: 10, max: 100.
sessionIdYesActive premium session id whose stream events should be polled.
sinceEventIdNoOptional event id cursor. Only events delivered after this event id are returned. Use the last event id from the previous poll to paginate.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hintNoOptional hint message, e.g. when delivery loop was just auto-started and no events have arrived yet.
eventsYesBuffered premium events matching the poll query, ordered oldest-first.
hasMoreYesTrue if more events are available in the buffer beyond this batch. Call again to drain remaining events.
sessionStatusYesCurrent session status (active, closed, not_found).
unitsRemainingNoRemaining billable units in the session quota, if the session is active.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds valuable behavioral context beyond annotations: long-poll mechanics, event ordering, waitMs semantics, and transport-agnostic property. It does not contradict annotations (readOnlyHint=false, openWorldHint=true).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with purpose and well-structured. It contains some verbosity (SAP guidance repeats schema notes) but remains efficient. Could trim slightly without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description fully covers usage: polling mechanism, cursor, timeout, transport, and filter options. No gaps remain for an agent to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. The description enhances understanding with defaults, maximums, and usage patterns (e.g., 'Use the last event id from the previous poll').

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('long-poll', 'drain') and identifies the resource ('premium stream events for an active session'). It distinguishes itself from SSE and alternative transports, making the tool's role clear among siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises periodic calls and provides cursor-based pagination guidance. It contrasts with SSE and notes transport-agnostic usage. However, it lacks explicit when-not-to-use scenarios or direct alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_validate_plugin_manifestValidate Premium Plugin ManifestAInspect

Free manifest validator for SAP MCP premium plugins. Validates ids, semver, descriptions, strict input/output schemas, x402/pay.sh pricing policies, and delivery contracts. It never executes plugin code or loads provider secrets.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
manifestYesPremium plugin manifest candidate to validate before publishing or loading from a private plugin directory.

Output Schema

ParametersJSON Schema
NameRequiredDescription
validYesTrue only when the manifest can be safely reviewed for premium plugin loading.
errorsYesBlocking manifest issues. Do not load or publish the plugin until empty.
warningsYesNon-blocking quality issues that should be fixed before marketplace publication.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=false and idempotentHint=false. The description adds that it 'never executes plugin code or loads provider secrets,' which is valuable safety information. However, it doesn't explain why idempotentHint is false (it likely is idempotent) or describe other behaviors like rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient paragraphs: first states purpose and exclusions, second provides execution guidance. Every sentence adds 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?

Given one complex parameter and an output schema (not shown), the description covers purpose, specifics, safety, and usage context. It lacks explicit detail about the output, but the output schema handles that. Sufficient for a validation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single parameter. The description adds specific details about what aspects are validated (ids, semver, etc.), which goes beyond the schema's generic description of 'Premium plugin manifest candidate.' This provides richer semantics for the AI agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it's a 'Free manifest validator for SAP MCP premium plugins' and lists exactly what it validates (ids, semver, descriptions, schemas, pricing policies, delivery contracts). This distinguishes it from siblings, none of which perform this specific validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit execution guidance: 'Pricing: free; call directly without x402' and 'Routing: free hosted call; call directly and keep it small/exact.' It implies use before publishing or loading. While it doesn't explicitly state when not to use it, the unique purpose makes alternatives clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_webhook_registerRegister Premium WebhookBInspect

Registers an HTTPS webhook target for signed premium event delivery. The session must be active (activated via sap_premium_activate_session). The target URL must be HTTPS, reachable, and not a private/localhost endpoint in production. Events are filtered to the exact event ids listed in the request.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventsYesExact event ids to deliver, from the capability delivery contract.
sessionIdYesActive premium session id.
targetUrlYesHTTPS webhook endpoint owned by the buyer. Localhost and private network URLs are rejected in production.
signingPublicKeyNoOptional buyer public key for webhook signature verification.

Output Schema

ParametersJSON Schema
NameRequiredDescription
subscriptionYesWebhook subscription record with subscriptionId, targetUrl, events, and delivery stats.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate mutation (readOnlyHint=false) and non-destructiveness. The description adds context about session activation and URL constraints but does not disclose rate limits, side effects, or idempotency behavior beyond the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first paragraph is concise and front-loaded, but the second paragraph contains redundant boilerplate from the input schema, making the description longer than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, output schema exists), the description covers prerequisites, constraints, and behavior. The execution guidance adds operational context, though it is somewhat out of place. Overall, it is fairly complete for a registration tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds some nuance (e.g., URL must be HTTPS, events exact IDs) but does not significantly enrich parameter understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool registers an HTTPS webhook for signed premium event delivery, specifying key constraints (HTTPS, session active, exact event IDs). It distinguishes from sibling tools like unregister/status, though explicit differentiation is absent.

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 lists prerequisites (session active, URL constraints) and includes execution guidance about pricing and routing. However, it does not explicitly state when to avoid this tool or provide comparative alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_webhook_relayRegister Premium Webhook Relay (Buffer-Only)AInspect

Registers a buffer-only webhook subscription for an active premium session. Unlike sap_premium_webhook_register, this does not require a public HTTPS endpoint — events matching the subscription are buffered server-side in the event store and the agent consumes them via sap_premium_stream_poll or sap_premium_stream_flush. Use this when the agent runs locally or behind NAT and cannot expose a publicly reachable HTTPS callback URL. The session must be active (activated via sap_premium_activate_session). Events are filtered to the exact event ids listed in the request.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventsYesExact event ids to buffer and deliver via poll/flush. At least one event id is required.
filtersNoOptional narrow filters applied to the provider subscription, forwarded to the delivery loop.
sessionIdYesActive premium session id to buffer webhook events for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
consumptionYesConsumption guidance listing the poll and flush tool names the agent should use to drain the buffer.
subscriptionYesRelay webhook subscription record with subscriptionId, targetUrl (relay://buffer), events, and delivery stats. Null if registration failed.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (write operation) and destructiveHint=false. The description adds context about buffering server-side and event filtering, but lacks details on rate limits, authentication needs, or consequences of misuse. With annotations providing minimal safety info, the description does not fully compensate.

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 main description is concise and front-loaded, but the execution guidance block at the end is repetitive boilerplate also present in the schema. This adds unnecessary length. The core information is clear, but the extra content reduces conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and full parameter coverage, the description provides sufficient context for selection and invocation. It explains the buffering mechanism, when to use the tool, and prerequisites. However, it omits error handling and detailed return value expectations, though the output schema partially mitigates this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for 3 parameters. The description adds meaning beyond the schema by explaining the purpose of each parameter (e.g., 'exact event ids to buffer and deliver via poll/flush') and providing usage context (e.g., 'session must be active'). This enhances understanding without redundancy.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool registers a buffer-only webhook subscription for an active premium session. It explicitly distinguishes from the sibling tool sap_premium_webhook_register by noting no public HTTPS endpoint is needed, providing a specific verb-resource pair with clear scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use this tool (agent runs locally or behind NAT) and mentions the alternative (sap_premium_webhook_register). It also specifies prerequisites (session must be active, exact event ids). However, it could more explicitly state when NOT to use it (i.e., if a public endpoint is available).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_webhook_relay_statusPremium Webhook Relay StatusAInspect

Returns the status of buffer-only (relay) webhook subscriptions for a session, including the relay configuration, buffered event count, and per-subscription delivery stats. Use this to check how many events are waiting in the server-side buffer before calling sap_premium_stream_poll or sap_premium_stream_flush to consume them.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesPremium session id to inspect relay subscriptions and buffered event counts for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
sessionIdYesThe session id that was queried.
sessionStatusYesCurrent session status (active, closed, pending_payment, not_found).
bufferedEventCountYesTotal number of events currently buffered in the event store for this session (across all relay subscriptions).
relaySubscriptionsYesActive relay (buffer-only) webhook subscriptions for the session.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description indicates a read-only status check, but annotations have readOnlyHint=false, creating a contradiction. No mention of side effects or required permissions beyond boilerplate. The boilerplate about pricing and routing adds some context but not enough to compensate for the contradiction.

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 first two sentences are clear and front-loaded, but the boilerplate at the end (SAP MCP execution guidance) is generic and adds unnecessary length without tool-specific value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Explains what data is returned and provides usage guidance. Output schema exists, so return format is covered. Missing details on how to interpret the status values, but acceptable for a status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description in the schema is already clear. The main description adds overall context but not additional detail beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the status of buffer-only webhook subscriptions for a session, listing specific data returned (relay config, buffered event count, per-subscription stats). It distinguishes from siblings by referencing stream_poll and stream_flush.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'check how many events are waiting in the server-side buffer before calling sap_premium_stream_poll or sap_premium_stream_flush'. Provides clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_webhook_statusPremium Webhook StatusCInspect

Returns the current status of a webhook subscription, including delivery stats and recent delivery attempt records with HTTP status codes and signatures.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesWebhook subscription id returned by sap_premium_webhook_register.
includeDeliveriesNoWhen true, include recent delivery attempt records. Default: true.

Output Schema

ParametersJSON Schema
NameRequiredDescription
deliveriesNoRecent delivery attempt records.
subscriptionYesWebhook subscription record, or null if not found.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description implies a read-only operation ('Returns current status'), but annotation readOnlyHint=false contradicts this. The generic SAP execution guidance adds no tool-specific behavioral detail. This contradiction is a critical flaw.

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 core two sentences are concise, but the large block of generic SAP execution guidance (repeated from input schema) is unnecessary and clutters the description. Removing it would improve 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?

While output schema exists, the description does not explain return format or error states. The contradictory readOnlyHint leaves agents uncertain about side effects. Complete guidance is missing for a simple status-check tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers both parameters with descriptions (100% coverage). The description mentions 'delivery stats and recent delivery attempt records' which relates to includeDeliveries, but adds minimal new information beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'Returns the current status of a webhook subscription' with specifics about delivery stats and recent attempt records. This distinguishes it from sibling tools like sap_premium_webhook_register or sap_premium_webhook_relay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., after registration, to check delivery). The description lacks context for appropriate invocation timing or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_premium_webhook_unregisterUnregister Premium WebhookBInspect

Deactivates and removes a webhook subscription. No further events will be delivered to the target URL.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
subscriptionIdYesWebhook subscription id returned by sap_premium_webhook_register.

Output Schema

ParametersJSON Schema
NameRequiredDescription
unregisteredYesUnregister result with subscriptionId and success boolean.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states the tool 'removes' a subscription, which is a destructive action, but the destructiveHint annotation is false. This contradiction misleads the agent about the tool's 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is concise but followed by a large, generic SAP guidance block that repeats across tools. This adds noise and reduces overall conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity and presence of an output schema, the description sufficiently explains the action and required input. The generic guidance does not detract from completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter has a clear description linking it to the register tool. The tool description adds no further semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool deactivates and removes a webhook subscription, ceasing event delivery to the target URL. This differentiates it from related tools like sap_premium_webhook_register (create) and sap_premium_webhook_status (read).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives (e.g., sap_premium_webhook_register, sap_premium_webhook_relay). The generic SAP execution guidance block does not provide usage context specific to this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_prepare_actionPrepare SAP MCP ActionA
Read-onlyIdempotent
Inspect

Free intent-level preflight planner for SAP MCP. Call before paid calls, swaps, registry writes, escrow, identity updates, external x402 calls, premium streams, or transaction finalization. It returns the correct hosted/local route, fresh-data requirements, max-price guidance, confirmation policy, retry rules, proof-tape shape, and forbidden actions without charging x402.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentNoClosest user intent. Use registry-write for agent registration, update-agent for profile/image updates, swap for token swaps, escrow for SAP Escrow V2, external-x402 for third-party x402 agents, and premium-stream for premium plugin streams/webhooks.
toolNameNoExact hosted or local tool name being planned, such as jupiter_getOrder, sap_update_agent, sap_create_escrow_v2, or sap_payments_register_agent.
userGoalNoShort user-facing goal in natural language, used only to tailor the plan and proof-tape shape.
maxPriceUsdNoOptional user or policy x402 spend cap for this planned action. Agents should normally estimate first and use estimate × 1.25.
estimatedNotionalUsdNoOptional estimated trade, escrow, or value-moving notional in USD for confirmation-policy guidance.
hasSubmittedSignatureNoSet true when a transaction signature was already submitted. The planner will route to verification before any retry.
hasUnsignedTransactionNoSet true when a hosted builder already returned unsigned transaction bytes that should be finalized locally.

Output Schema

ParametersJSON Schema
NameRequiredDescription
intentYesNormalized intent used for routing.
successYesWhether the action preparation plan was generated.
toolNameYesTool name provided for the planned action, or null when omitted.
userGoalYesGoal provided by the user, or null when omitted.
retryRulesYesSafe retry rules for x402, RPC, hosted signer guards, and submitted signatures.
nextToolCallsYesExact recommended next tool calls.
maxPricePolicyYesHow to set maxPriceUsd and when to estimate paid call cost.
paidOrWriteRouteYesCanonical paid/write route, including local bridge or hosted builder path.
freshDataRequiredYesFresh data that must be fetched before user-facing claims, payment, signing, or execution.
proofTapeTemplateYesAudit object shape the agent should fill during execution.
confirmationPolicyYesWhether confirmation is required and why.
freePreflightToolsYesFree tools that should be called before paid/write execution for this intent.
sessionContextPacketYesShared SAP MCP session routing, freshness, memory, and forbidden-action rules.
userFacingPreviewShapeYesFields that should appear in a compact human preview before value-moving work.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true and idempotentHint=true, indicating a safe, read-only operation. The description adds value by detailing the tool returns planning data without charging x402, and explains the signer boundary and routing behavior. This enhances the agent's understanding beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two paragraphs: the first clearly states purpose and when to call, and the second provides execution guidance. Key information is front-loaded. The length is appropriate for the tool's complexity, with no superfluous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's role as a preflight planner with 7 parameters and no required ones, the description covers purpose, usage scenarios, pricing, routing, and signer boundary. An output schema exists, so the omission of return details is acceptable. The description is sufficiently complete for an agent to understand when and how to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema itself provides detailed descriptions for each parameter (e.g., enum values for intent with specific use cases, examples for toolName). The tool description does not add significant per-parameter detail beyond the schema, but provides overall context that helps interpret the parameters. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Free intent-level preflight planner for SAP MCP' and lists specific scenarios (paid calls, swaps, etc.) to call it before. This distinguishes it from sibling tools that perform the actual actions, making the purpose unambiguous and well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('Call before paid calls, swaps, registry writes, etc.') and provides guidance on pricing ('free; call directly without x402') and routing ('free hosted call; keep it small/exact'). While it implies when not to use (after executing an action), it does not list explicit alternatives or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_prepare_mandatePrepare SAP Agent MandateA
Read-onlyIdempotent
Inspect

Free AP2-style mandate planner for SAP MCP agent commerce. It converts a user intent into a bounded, unsigned planning artifact with spend limits, tool/protocol allow-lists, freshness rules, confirmation thresholds, proof-tape fields, and the correct hosted/local signing route. This tool does not sign, submit, authorize payment, or replace wallet confirmation.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentYesHuman intent to bind, for example "check solking.sol", "register Solking", "swap 0.05 SOL to USDC", or "open a $10 BONK short".
walletNoOptional expected owner/signer wallet public key in base58. Used only as a public constraint, never as a keypair path.
profileNoOptional local SAP profile name the user expects the runtime to use. Do not guess wallet/keypair paths from this value.
maxX402UsdNoMaximum x402/pay.sh fee the agent may auto-pay for one hosted tool call under the user policy.
maxTradeUsdNoMaximum value-moving notional in USD for swaps, perps, escrow, or transaction finalization under this mandate.
allowedToolsNoExact SAP MCP tool allow-list for this mandate. Use exact names from tools/list and do not rewrite hyphenated tools.
operationTypeNoClosest operation family. Use registry-write for SAP agent registration/update, escrow for SAP Escrow V2, and transaction-finalize when an unsigned hosted transaction is already available.
maxSlippageBpsNoMaximum slippage in basis points for swap or trading routes. 100 means 1%.
maxTotalX402UsdNoMaximum total x402/pay.sh spend for this mandate before asking the user again.
allowedProtocolsNoProtocol allow-list such as sap, mcp, x402, jupiter, adrena, pyth, metaplex, sns, magicblock, or custom protocol ids.
expiresInSecondsNoMandate TTL in seconds. Defaults to 900 and is capped to 86400.
requireConfirmationAboveUsdNoRequire a human preview and explicit confirmation above this USD notional or spend threshold.

Output Schema

ParametersJSON Schema
NameRequiredDescription
routeYesCanonical hosted/local route for this operation type.
mandateYesUnsigned mandate planning artifact. This is not a signature and not a payment authorization.
successYesWhether the mandate draft was generated.
freshnessYesData that must be fetched fresh before paid, signed, or value-moving actions.
nextToolCallsYesExact next SAP MCP tool calls recommended for this mandate.
forbiddenActionsYesActions agents must not perform under this mandate.
proofTapeTemplateYesAudit record shape to fill as execution proceeds.
confirmationPolicyYesWhen the agent must show a compact preview and ask the user to confirm.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=true, idempotentHint=true), the description adds important behavioral traits: 'hosted reads/builders never receive keypair bytes', 'value-moving results must be finalized locally', and explicit non-actions (sign, submit, authorize payment). These details help an agent avoid unauthorized or unsafe operations and are not present in the annotations alone.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long and includes a second paragraph of 'SAP MCP execution guidance' that is partly boilerplate. The line 'Intent: SAP MCP tool workflow' is vague and does not add value. While the first paragraph is clear and structured, the overall text could be tightened without losing 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?

The description effectively conveys the tool's role, output (unsigned planning artifact), and safety boundaries, which is sufficient given the rich input schema and presence of an output schema. It does not explain error conditions, but that is not required for a read-only planning tool with good annotations. The guidance about free routing and signer boundaries adds operational 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?

Input schema has 100% description coverage with individual parameter descriptions. The tool description mentions high-level categories (spend limits, allow-lists, confirmation thresholds) but does not add additional semantics beyond what the schema already provides. Baseline of 3 is appropriate since the schema handles parameter meaning comprehensively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'converts a user intent into a bounded, unsigned planning artifact' with specific components like spend limits, allow-lists, and thresholds. It distinguishes itself from signing/submitting tools by explicitly saying what it does not do ('does not sign, submit, authorize payment'), which sets it apart from sibling tools like sap_sign_transaction or sap_submit_signed_transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this is a planning/preparation tool, not an execution tool, and includes routing guidance ('Pricing: free; call directly without x402'). It does not explicitly name alternative tools but implicitly tells the agent to use it when constructing a mandate and to use signing/finalization tools separately. This is strong enough for an agent to decide when to invoke it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_preview_transactionPreview TransactionBInspect

Preview a Solana transaction before signing or submission. This is the required preflight step for agent workflows; do not create local signing scripts or read keypair files.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
encodingNoInput encoding
transactionNoSerialized transaction

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims to 'Preview' a transaction, implying a read-only, non-mutating operation. However, the annotation readOnlyHint is false, indicating the tool might modify state. This is a direct contradiction between the description and the structured annotation, severely undermining behavioral transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose statement but includes a lengthy block of SAP MCP execution guidance that is repeated in the parameter descriptions. This redundancy reduces conciseness. The structure is adequate but could be tighter.

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?

While the description covers purpose and usage guidelines, it omits information about the expected output (though an output schema exists) and does not address potential limitations. The significant annotation contradiction further detracts from completeness, as the agent may be misled about whether the tool is read-only.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers both parameters with 100% description coverage. The descriptions 'Input encoding' and 'Serialized transaction' are minimal but sufficient. The tool's main description does not add meaning beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Preview a Solana transaction before signing or submission' and identifies it as 'the required preflight step for agent workflows'. This distinguishes it from related tools like sap_sign_transaction and sap_submit_signed_transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool (required preflight step), what not to do (do not create local signing scripts or read keypair files), and provides boundary conditions ('Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required'). This gives clear guidance on usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_pricing_catalogGet SAP MCP Pricing CatalogA
Read-onlyIdempotent
Inspect

Free machine-readable x402/pay.sh pricing catalog generated from the hosted SAP MCP pricing registry. Use before paid calls to understand free, micro-read, read-premium, builder, value-action, and batch tiers.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
tiersYesTier pricing rules and examples.
sourceYesPricing catalog source identifier.
versionYesPricing catalog schema version.
currencyYesDisplay currency for USD-denominated prices.
toolSetsYesCurrent built-in tool sets for each tier.
strictToolsYesWhether strict hosted tool pricing is enabled.
runtimeRulesYesAgent routing rules for paid and write flows.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds value by specifying it is free, machine-readable, and provides routing/signer boundary details, which go beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description has two parts: a succinct catalog statement and a longer execution guidance paragraph. While the first part is efficient, the second part contains generic SAP MCP guidance that is verbose and not entirely specific to this tool, reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no parameters, rich annotations, and an output schema. The description covers the purpose and usage well. The execution guidance adds context, making it complete for a simple read-only catalog 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?

There are zero parameters, and schema coverage is 100% (empty). According to the scoring guidelines, 0 parameters gives a baseline of 4. The description does not need to add parameter information, so the score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a free machine-readable pricing catalog listing specific tiers. The verb 'get' and resource 'pricing catalog' make the purpose explicit, and it distinguishes itself from sibling tools by focusing on pricing information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use before paid calls to understand ... tiers', providing clear when-to-use guidance. It also includes execution directives (call directly, keep small/exact) that help the agent decide how to invoke the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_profile_currentShow Current SAP MCP ProfileBInspect

Return the currently loaded SAP MCP profile and redacted signer/config metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description contradicts the annotations: readOnlyHint is false, yet the tool is described as returning data (a read operation). This inconsistency undermines transparency. The generic signer boundary note adds some context, but the contradiction is severe.

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 first sentence is concise, but the lengthy generic execution guidance block is boilerplate that could be omitted or shortened. It dilutes the focus and is not specific to this tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no parameters, output schema exists), the description adequately conveys the tool's function. The execution guidance adds operational context, but could be more complete about what the profile contains.

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, the description does not need to add parameter details. The baseline for 0 params is 4, and the description meets it without issue.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the currently loaded SAP MCP profile and redacted metadata. It uses a specific verb and resource, distinguishing it from sibling tools like 'sap_profile_list' and 'sap_profile_switch'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes generic execution guidance about pricing and routing, but lacks explicit instructions on when to use this tool versus alternatives. No exclusions or comparisons to sibling tools are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_profile_listList SAP MCP ProfilesA
Read-onlyIdempotent
Inspect

List available SAP MCP profiles with redacted signer metadata and no wallet paths.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds beyond annotations: specifies redacted metadata, no wallet paths, free pricing, routing instructions, and signer boundary. Consistent with readOnlyHint and destructiveHint.

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?

Main purpose is stated clearly at start, but includes boilerplate execution guidance that adds length without critical new information. Could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequately describes the tool's function given zero parameters, good annotations, and output schema. No major gaps for a simple list 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?

No parameters defined in schema; description adds meaning about what the list contains (profiles with redacted metadata, no wallet paths), which is helpful for understanding the output.

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 states it lists SAP MCP profiles, with specific details (redacted signer metadata, no wallet paths). Distinguishes from most sibling tools but could contrast with other profile-related tools like sap_profile_current.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives. The description includes execution guidance (pricing, routing) but not when to choose it over other profile tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_profile_public_keyShow SAP MCP Profile Agent Public KeyAInspect

Return the configured public agent key for a profile without reading or exposing keypair bytes.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
profileNameNoProfile name. Defaults to the loaded profile.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no read-only or destructive hints, so the description bears the full burden. It discloses that the tool does not expose keypair bytes, adding safety context. This is helpful beyond annotations. However, it does not mention idempotency or whether it has any side effects, but for a pure read of a public key, this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is needlessly verbose for a simple tool. After the first sentence, it includes a large block of 'SAP MCP execution guidance' that is redundant with the input schema and not specific to this tool. This bloats the description without adding value, harming conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core function (return public key, no exposure of keypair bytes). However, it does not mention the output format or that an output schema exists. The execution guidance is generic and not tool-specific. For a simple read tool, completeness is adequate but could be improved.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 for the single parameter (profileName) is 100% with a clear description. The tool description adds no further explanation about the parameter's usage or behavior. Baseline 3 is appropriate as the schema already provides the necessary semantic information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Title and description clearly state the tool returns the public agent key for a profile. The description explicitly says it does not read or expose keypair bytes, distinguishing it from other tools that might handle private keys. Among many sap_ tools, this one has a unique and clear purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need a public key without exposing private key material, but does not explicitly state when to prefer this over alternatives. No guidance on prerequisites or context. The input schema's 'SAP MCP execution guidance' is not about usage scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_profile_switchSwitch Loaded SAP MCP ProfileAInspect

Switch the live SAP MCP runtime to another existing profile and reload client, signer, connection, and policy.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNoMust be true because switching profile can change signer, network, and policy.
signatureNoOptional Ed25519 signature proving ownership of the target profile keypair. When provided, the server verifies that the signature matches the profile agentPubkey. This prevents impersonation via manual .active-profile file edits. If omitted, the switch proceeds without cryptographic verification (backward compat).
profileNameNoExisting profile name to load.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that switching reloads client, signer, connection, and policy, and that it can change the signer, network, and policy. This adds behavioral context beyond annotations, which only indicate non-destructive and non-read-only. It does not mention reversibility or ongoing operation impact, but still provides good transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes a lengthy 'SAP MCP execution guidance' block that appears to be boilerplate for all SAP tools, adding noise and reducing conciseness. The first sentence is clear, but the rest lacks tool-specific focus.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the primary action and what is reloaded. It does not explain return values (though an output schema exists), error cases, or detailed consequences. It is adequate but not fully comprehensive for a state-changing 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 has 100% coverage with clear descriptions. The description adds minor value by emphasizing that confirm must be true and warning against private key material, but does not significantly enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The title and description clearly state that the tool switches the active SAP MCP profile to another existing one. It distinguishes from sibling tools like sap_profile_current and sap_profile_list by specifying the action of switching and reloading runtime components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for changing the active profile but does not explicitly state when to use this tool versus alternatives like viewing profiles. There is no guidance on prerequisites or when not to use it, only general SAP MCP execution guidance that is not tool-specific.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_protocol_invariantsGet SAP Protocol InvariantsAInspect

Free read-only protocol invariant card for agents. Returns the current SAP program id, protocol treasury, source-level expected 0.1 SOL registration fee invariant, hosted write routing rules, local sap_payments routes, identity pipeline, and forbidden actions. Use this before SAP registry writes and whenever fee/treasury behavior is unclear. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'read-only' but annotations have readOnlyHint=false, which is a direct contradiction. Also idempotentHint=false conflicts with expected read-only behavior. This inconsistency misleads agents about the tool's safety and effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, repeating pricing, routing, and signer boundary information both in the description and the input schema. Could be more concise. Front-loading is decent but the redundancy hurts conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the annotation contradiction, the description covers what the tool returns, when to use it, and provides SAP MCP execution context. With zero parameters and an output schema present, the description is mostly complete for an agent to understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, so schema coverage is 100%. The description adds extra guidance about input schema (e.g., not guessing aliases, no private keys), which is helpful beyond the schema. Baseline for 0 params is 4, and this meets it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns protocol invariants (SAP program id, treasury, fees, etc.) and uses 'Free read-only protocol invariant card' which is a specific verb+resource. It distinguishes from other SAP tools by its focus on invariants and read-only nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage guidance: 'Use this before SAP registry writes and whenever fee/treasury behavior is unclear.' Also distinguishes read vs write tools in the SAP MCP context. However, no direct alternatives are named for specific tasks, so a slight deduction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_publish_tool_by_namePublish SAP Tool By NameBInspect

Publish a tool descriptor using SDK ToolsModule.publishByName. SAP MCP context: Use tool registry writes to advertise concrete capabilities that this MCP can serve, including AgentKit bridge tools such as bridging_bridgeWormhole and Metaplex tools such as metaplex-nft_mintNFT. Publish only schemas and descriptions that match the actual MCP tool surface.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoNumeric tool category ID
toolNameNoName of the tool to publish
httpMethodNoHTTP method code (e.g. 0=GET, 1=POST)
isCompoundNoWhether the tool is a compound tool (default: false)
protocolIdNoProtocol ID the tool belongs to (e.g. "jupiter")
descriptionNoHuman-readable description of the tool
paramsCountNoTotal number of parameters the tool accepts
requiredParamsNoNumber of required parameters
inputSchemaJsonNoJSON string of the tool input schema
outputSchemaJsonNoJSON string of the tool output schema

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by detailing pricing ('paid value-action'), routing ('hosted accountless write is blocked'), and signer constraints. This adds valuable context about the tool's operational behavior. No contradiction with annotations (destructiveHint=false is consistent with publish).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and repetitive, containing redundant SAP MCP guidance that also appears in the input schema. It lacks conciseness and could be restructured to front-load the core purpose and key behavioral notes.

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 10-parameter publish tool with an output schema, the description provides adequate high-level context but misses specifics like whether it creates or updates tools, or the overall publishing lifecycle. It is minimally acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all 10 parameters with descriptions (100% coverage). The description does not add significant meaning beyond what the schema provides; it focuses on workflow context rather than param details. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Publish a tool descriptor using SDK ToolsModule.publishByName' and describes the tool registry write purpose. It is clear and distinguishes from sibling sap tools like sap_update_tool. However, the purpose is somewhat buried under extensive SAP MCP guidance.

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 context about when to publish (to advertise capabilities) and what to publish (schemas matching MCP surface), but lacks explicit when-not-to-use or direct comparisons to sibling tools. The guidance is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_quick_contextSAP MCP Quick ContextA
Read-onlyIdempotent
Inspect

Free single-call bootstrap aggregator. Returns a compact markdown-like summary with server version, total tools count, tools by category, pricing tiers summary, premium plugins/capabilities count, bundled skills list, and nextAction guidance. Pass agentKnownVersion with the version you currently know to get skillsUpdateRequired + skillsContents (full SKILL.md inline) when the server version differs — this lets you auto-update your local skills in 1 call without a separate sap_skills_bundle. Use this instead of calling sap_agent_start, sap_pricing_catalog, sap_premium_plugin_catalog, sap_skills_list, and sap_get_tool_category_summary separately to reduce bootstrap from 5+ tool calls to 1.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
intentNoOptional user intent for the embedded sessionContextPacket. Use this to route bootstrap toward paid calls, registry writes, swaps, escrow, external x402 agents, premium streams, balance reads, or discovery.
compactNoWhen true (default), the summary string is kept compact. When false, a more readable multi-line summary is returned.
includeNoOptional subset of section names to include (version, tools, pricing, premium, skills, nextAction). When omitted, all sections are returned.
maxCharsNoMaximum character length for the summary string. Defaults to 4000. The summary is truncated if it exceeds this length.
agentKnownVersionNoThe SAP MCP version the agent currently knows about. When this differs from the server version, skillsUpdateRequired is set to true and skillsContents is populated with full SKILL.md contents. Omit to always force a skills update (first bootstrap).

Output Schema

ParametersJSON Schema
NameRequiredDescription
skillsYesBundled skill names available via sap_skills_bundle.
successYesWhether the quick context summary was generated.
summaryYesCompact markdown-like summary string suitable for agent context loading.
versionYesSAP MCP server version.
truncatedYesWhether the summary was truncated to fit within maxChars.
nextActionYesConcrete next action for the agent after loading this context.
totalToolsYesTotal number of registered MCP tools.
environmentYesServer environment summary: network (mainnet/devnet), mode (hosted-api/local-dev-keypair/readonly), authType (none/bearer), rateLimitPerMinute.
pricingTiersYesPricing tier names available on the hosted server.
serverCommitYesGit commit hash of the running server build. Changes on every deploy even without version bump.
premiumPluginsYesNumber of discoverable premium plugins.
skillsContentsNoFull SKILL.md contents of all bundled skills, included only when skillsUpdateRequired is true. Each entry has {name, content}.
recommendedFlowYesRecommended agent workflow based on server mode. Hosted: build unsigned → sign locally. Local: preview → sign → submit.
toolsByCategoryYesTool counts by category (sap, sns, agentKit, premium, etc.).
premiumCapabilitiesYesNumber of premium capabilities across all plugins.
sessionContextPacketYesMachine-readable SAP MCP routing, freshness, memory, proof-tape, and forbidden-action rules for this session.
skillsUpdateRequiredYesTrue when the server version differs from agentKnownVersion (or agentKnownVersion was omitted). When true, skillsContents contains the full SKILL.md contents of all bundled skills.
premiumProvidersReadyYesNumber of premium providers with configured environment variables.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds valuable context: it is a hosted read that never receives keypair bytes, and it can auto-update skills if the version differs. This goes beyond the annotations by explaining the safety implications and behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat long due to execution guidance, but it is well-structured: first line gives the core purpose, then details, then usage guidance and alternative tools. It could be slightly more concise, but every sentence adds useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description does not need to explain return values. It covers the tool's purpose, input parameters (with usage context), behavioral traits, and alternatives. It is fully complete for an agent to decide when and how to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents parameters. The description adds meaningful context for agentKnownVersion (auto-update behavior) and explains the intent parameter routing. This provides value beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that this is a free single-call bootstrap aggregator that returns a compact summary of server version, tools count, pricing, etc. It explicitly distinguishes itself from sibling tools like sap_agent_start and sap_pricing_catalog by recommending this tool instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (as a bootstrap aggregator to reduce multiple calls) and mentions when to use it with agentKnownVersion for auto-updating skills. It does not explicitly state when not to use it, but the alternative tools are listed, giving clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_reactivate_agentReactivate SAP AgentCInspect

Reactivate the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description does not disclose behavioral traits beyond the annotations. It does not mention that this is a write operation requiring signing, nor does it describe state changes or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is padded with generic SAP MCP boilerplate that does not apply specifically to this tool. The relevant information is minimal and buried.

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 zero parameters and an output schema, the description fails to explain what reactivation does, what the output represents, or any prerequisites. It is incomplete for a tool that affects agent state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description could have stated that no input is needed, but it does not. However, the schema coverage is 100% (since schema has no properties), so baseline 3 is 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 'Reactivate the connected wallet SAP agent,' which provides a verb and resource, but it is vague and does not explain what reactivation entails or distinguish it from sibling tools like sap_deactivate_agent or sap_close_agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives. The boilerplate about pricing and routing is generic and does not help with selection among the many sap_* agent tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_reactivate_toolReactivate SAP ToolAInspect

Reactivate a SAP tool descriptor by name. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameNoName of the tool descriptor to reactivate

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds generic write tool requirements (signer policy, RPC, profile) beyond annotations, but lacks specific behavior details (e.g., effect on already active tool, error cases). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes repetitive generic SAP MCP boilerplate (routing, pricing, signer boundary) that is not specific to this tool, making it unnecessarily verbose. The core purpose is stated concisely but the rest is noise.

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 tool with one parameter and an output schema, the description covers purpose and parameter meaning. However, it lacks specifics about return values, error conditions, or what constitutes a successful reactivation.

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?

Parameter 'toolName' is described with 'Name of the tool descriptor to reactivate' in both schema and description. Schema coverage is 100%, and the description reinforces meaning without adding clutter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Reactivate a SAP tool descriptor by name' which clearly identifies the verb (reactivate) and resource (tool descriptor). It distinguishes from siblings like sap_deactivate_tool and sap_reactivate_agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The context of SAP MCP write tools is mentioned but not specific to this tool. Usage is implied (reactivate a deactivated tool) but not clarified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_register_agentRegister SAP Agent (Raw SDK Deprecated)AInspect

Deprecated raw SDK wrapper. Production registration must use sap_payments_register_agent so the local signer path confirms the account, verifies the 0.1 SOL protocol treasury fee invariant, and returns protocolComplete. Hosted accountless SAP MCP rejects this direct write before x402 payment. SAP MCP context: Do not use this raw SDK wrapper for production registration. The canonical registration path is sap_payments_register_agent, because it confirms the account, audits the protocol treasury fee, and fails closed when protocolComplete is false. Hosted accountless SAP MCP rejects direct registration before x402 payment because OOBE never custodies user wallet keys. Use sap_agent_identity_plan first, then sap_payments_register_agent with confirm:true.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_register_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoRequired public display name for the SAP agent. Keep it stable enough for explorers and humans.
agentIdNoOptional stable lowercase agent id, for example solking. This is separate from the on-chain agent PDA.
pricingNoOptional pricing tiers advertised by the agent. Use tokenType usdc + settlementMode x402 for pay.sh/x402 agent commerce.
agentUriNoOptional public HTTPS/IPFS/Arweave/Kommodo URI for the agent profile metadata or profile page. Never use local desktop file paths.
protocolsNoRequired protocol tags the agent supports, for example sap, mcp, jupiter, pyth, metaplex, sns, x402, payments.
descriptionNoRequired public description of what the agent does, which protocols it can use, and its safety/trust boundaries.
metadataUriNoAlias for agentUri. Prefer a public JSON metadata document containing name, description, image, external_url, attributes, sap, metaplex, sns, and x402 fields.
capabilitiesNoRequired capability list. Prefer object form for production; strings are accepted as shorthand.
x402EndpointNoOptional public x402 discovery/payment endpoint, usually https://host/.well-known/x402 for external agent services.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and openWorldHint=true, which are consistent with the description of a direct write tool. The description adds important behavioral context: deprecation, requirement for local signer, blocking of hosted writes, and the need for x402 payment. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the deprecation warning and key guidance, but it is somewhat verbose with repeated execution guidance. Could be condensed without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's 9 optional parameters and existing output schema, the description covers deprecation, alternatives, execution context, and safety. It does not describe return values, but the output schema handles that. The guidance is sufficient for an agent to decide whether and how to use this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds valuable parameter guidance, such as recommending tokenType usdc + settlementMode x402 for pricing, and warning against local file paths for agentUri. This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this is a deprecated raw SDK wrapper for registering an SAP agent, and explicitly directs agents to use sap_payments_register_agent instead. The title also includes 'Deprecated' which immediately signals the tool's status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance: do not use this for production, use sap_payments_register_agent, and even provides a workflow (sap_agent_identity_plan first). It also explains that hosted accountless write is blocked and that this is intended for local-signer workflows.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_report_callsReport Agent CallsAInspect

Report served call count for the connected wallet SAP agent. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
callsServedNoNumber of calls served to report for the agent

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (write tool). The description adds context on payment, routing, and signer constraints beyond annotations, such as requiring signer policy and that hosted accountless write is blocked.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, including generic SAP MCP context and repeated execution guidance. While the main purpose is front-loaded, some sentences could be trimmed without losing value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage guidelines, and behavioral aspects well. Given an output schema exists, the description doesn't need to detail return values. Slightly verbose but complete for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (parameter described in schema). The description does not add extra meaning beyond the schema's 'Number of calls served to report for the agent.' No additional parameter details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource: 'Report served call count for the connected wallet SAP agent.' This distinguishes it from sibling tools like sap_report_tool_invocations by specifying 'call count' for a specific agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance ('Pricing: paid read-premium; estimate first'), when-not-to-use ('do not call this as a paid hosted write'), and alternatives ('use sap_payments_call_paid_tool...'). Also covers signer and routing requirements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_report_tool_invocationsReport SAP Tool InvocationsCInspect

Report invocation count for a SAP tool descriptor. SAP MCP context: Direct synapse-sap-sdk wrapper served by this MCP. Read tools return on-chain state; write tools require signer policy, configured RPC, and the active SAP profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolNameNoName of the tool descriptor to report invocations for
invocationsNoNumber of invocations to report

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false, suggesting a non-destructive write operation. The description adds only generic boilerplate about SAP MCP execution and does not clarify side effects, permissions, or whether the tool modifies on-chain state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes substantial boilerplate repeated from the input schema, making it verbose. The first sentence is concise and clear, but the rest is redundant and not properly 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?

Despite having an output schema and two parameters, the description lacks details about tool behavior, such as whether invocation counts are cumulative or reset. The generic SAP boilerplate does not sufficiently address the tool's specific context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are documented in the input schema. The description adds no additional meaning beyond the schema, providing no context on how 'invocations' should be formatted or interpreted. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Report invocation count for a SAP tool descriptor.' This is a specific verb+resource. However, it fails to differentiate from the similar sibling 'sap_report_calls', leaving the unique value 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?

The description provides no explicit guidance on when to use this tool versus alternatives. It contains generic SAP MCP boilerplate but no context-specific usage directions, such as when to prefer this over 'sap_report_calls' or other reporting tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_request_unstakeRequest SAP UnstakeBInspect

Request unstake for an agent wallet. SAP MCP context: SAP protocol staking flow. Confirm agent wallet, amount, and unstake timing before writes; this is distinct from external AgentKit staking protocol tools.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountNoUnstake request amount in lamports (as a decimal string)
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false (write operation) and idempotentHint=false. The description adds 'Request unstake' and a warning to confirm before writes, but does not provide additional behavioral traits (e.g., rate limits, auth requirements, or return value details). The boilerplate execution guidance is generic and not tool-specific.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is two sentences, but it is followed by a large block of repetitive execution guidance that appears in the description and input schema. This boilerplate significantly reduces conciseness and makes the description less scannable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema (which could explain return values) but the description does not mention what the tool returns or what the agent should expect. It lacks guidance on the subsequent step (e.g., use sap_complete_unstake) to complete the unstake flow, leaving the workflow 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 clear descriptions for 'amount' (in lamports) and 'agentWallet' (base58). The description mentions these parameters but adds no new semantics beyond restating them and hinting at 'unstake timing,' which is vague. Baseline 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Request unstake for an agent wallet,' specifying the verb and resource. It provides context ('SAP protocol staking flow') and distinguishes from 'external AgentKit staking protocol tools,' which differentiates it from non-SAP siblings. Among SAP siblings like 'sap_complete_unstake,' the purpose as the request step is implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to 'Confirm agent wallet, amount, and unstake timing before writes' and distinguishes from external tools, giving some context. However, it does not explicitly state when to use this tool versus related SAP siblings (e.g., sap_complete_unstake), nor does it mention prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_revoke_attestationRevoke SAP AttestationB
Destructive
Inspect

Revoke attestation for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentWalletNoAgent wallet public key (base58) to revoke attestation for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructiveHint=true and readOnlyHint=false, so the description's mention of 'Revoke' adds little behavioral context beyond that. The description does not detail side effects or state changes, making it adequate but not enriching.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description includes a long block of generic SAP MCP execution guidance that is not specific to revoking attestation, making it verbose and less focused. The core purpose is clear in the first sentence, but the extra content harms conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no required params, output schema exists), the description covers the essential purpose and a usage condition. However, it omits information on error handling or reversibility, which would be helpful for a destructive action.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 and describes the 'agentWallet' parameter fully. The description does not add extra meaning beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Revoke attestation for an agent wallet', using a specific verb and resource. This distinguishes it from sibling tools like sap_create_attestation or sap_fetch_attestation.

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 advises 'Use after verifying the target agent PDA or wallet', providing context for when to call. However, it does not explicitly mention when not to use it or name alternative tools, lacking clear exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_revoke_feedbackRevoke SAP FeedbackA
Destructive
Inspect

Revoke feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentWalletNoAgent wallet public key (base58) to revoke feedback for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. Description adds context about reputation flow, paid/premium pricing, and signer boundary, which are beyond annotations. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

First sentence is clear, but the description includes a lengthy block of execution guidance repeated in both main description and input schema description, making it less concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter write tool with annotations and output schema, the description covers purpose, usage, and execution constraints. Could mention revocation effects, but output schema likely covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'agentWallet' with schema description. The tool description does not add additional semantic meaning beyond what the schema provides. Schema coverage is 100%, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Revoke feedback for an agent wallet.' Verb+resource is specific. Distinguishes from siblings like sap_give_feedback (create) and sap_update_feedback (modify).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit instruction: 'Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.' Provides context on when to use, though no exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_runtime_repair_planPlan SAP Runtime RepairA
Read-onlyIdempotent
Inspect

Free helper that returns the pinned latest-release repair command for hosted SAP MCP plus local sap_payments bridge setup. Use this before asking users to manually edit runtime config.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoOptional runtime to focus repair instructions on.

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYesPlan type.
packageYesPinned npm package spec.
successYesWhether the repair plan was generated.
commandsYesOS-specific repair command aliases.
serverModeYesCurrent server mode.
latestVersionYesPinned SAP MCP package version for repair.
repairCommandYesPrimary local command to repair hosted MCP and sap_payments bridge config.
targetRuntimeYesRuntime selected for repair guidance.
wizardCommandYesFull local wizard command for profile creation or full setup.
hostedEndpointYesHosted SAP MCP endpoint.
whatRepairDoesYesConcrete operations performed by repair.
agentInstructionsYesInstructions agents should follow without guessing.
expectedAfterRestartYesTool namespaces and bridge tools expected after restarting the runtime.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Aligns with annotations (readOnlyHint, idempotentHint, destructiveHint) and adds useful context about being free, the signer boundary, and routing. The boilerplate guidance on execution provides additional behavioral transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is concise, but the additional boilerplate 'SAP MCP execution guidance' block is lengthy and generic, reducing conciseness. The key information is front-loaded, but extra text could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (one optional parameter, output schema exists), the description covers the tool's purpose, usage, and behavioral nuances. The guidance on pricing and routing adds necessary context for an agent invoking it, making it fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter 'agent' is described as 'Optional runtime to focus repair instructions on' in the description, adding clarity to its purpose beyond the enum values. With 100% schema coverage (object-level description present), this is adequate but not exceptional.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a repair command for SAP MCP runtime and local payment bridge setup. It uses a specific verb ('returns') and resource ('repair command'), and the unique function distinguishes it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises to use before manual runtime config editing, providing clear context. However, it does not explicitly mention when not to use or offer alternatives, though the unique purpose inherently provides such guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_session_read_latestRead Latest SAP Session EntriesCInspect

Read latest entries from a high-level SDK session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoHigh-level session identifier string to read latest entries from

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description contradicts annotation: tool is read-only but readOnlyHint is false. Does not disclose behavioral traits beyond generic memory/storage advice.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is verbose with repetitive SAP MCP execution guidance that appears in both description and schema description. Core purpose is in first two sentences, rest is extraneous.

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?

Missing usage context relative to siblings, contradictory behavior flag, and no explanation of when to prefer this over other session read tools. Output schema exists but doesn't compensate for these gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, description adds no new meaning beyond 'high-level SDK session ID'. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Title and first sentence clearly state tool reads latest entries from a session ID. Distinguishes from sibling tools like sap_fetch_session which fetch session data generally, but noise from execution guidance reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like sap_session_status or sap_fetch_session. Execution guidance focuses on payment routing, not tool selection context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_session_startStart SAP Memory SessionCInspect

Start a high-level SDK session by session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoHigh-level session identifier string
vaultNonceNoOptional vault nonce as a byte array, hex string, or base64 string

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, non-destructive, non-idempotent behavior. The description adds that session and vault PDAs are visible on-chain and warns about storing sensitive data, but does not detail the side effects of starting a session (e.g., creation of PDAs or vault initialization).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with repeated boilerplate text (identical block in description and input schema). The actual useful content is only one sentence, making it inefficient for an agent to parse.

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 an output schema existing, the description does not explain what the tool returns or how the started session is used in subsequent operations. It lacks context on prerequisites or the flow (e.g., why one would start a session now).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the schema descriptions for sessionId and vaultNonce are already adequate. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the tool starts a high-level SDK session by session ID, and the title specifies 'Start SAP Memory Session'. This distinguishes it from fetch or vault sessions, though it could explicitly contrast with similar tools like sap_fetch_session or sap_premium_session_start.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The description contains generic boilerplate about pricing and routing but fails to indicate prerequisites (e.g., having a session ID) or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_session_statusGet SAP Session StatusCInspect

Fetch high-level SDK session status by session ID. SAP MCP context: Memory/session flow. Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdNoHigh-level session identifier string to get status for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide limited behavioral hints. The description adds context about data visibility ('session and vault PDAs are visible on-chain metadata') and mentions it is a 'paid read-premium' operation, but the term 'Fetch' contrasts with readOnlyHint being false, causing minor ambiguity. The description does not disclose side effects or error states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with execution guidance that appears generic and is repeated in the input schema. The first sentence is concise, but subsequent paragraphs add redundant information, reducing efficiency.

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?

Core task is adequately described, and an output schema exists. However, the description lacks details on prerequisites (e.g., session must exist), error handling, or edge cases. The execution guidance, while present, is not specific to this tool's scenario.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 one parameter, and the schema description is clear. The tool description merely echoes 'by session ID' without adding new semantics, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence clearly states the tool 'Fetch high-level SDK session status by session ID', specifying verb, resource, and parameter. However, the description includes extensive execution guidance that is not core to the tool's purpose, and it does not explicitly differentiate from sibling tools like sap_fetch_session or sap_session_read_latest.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. The execution guidance about pricing and routing is generic and does not help select this tool over similar ones. No mention of contexts where it should or should not be used.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_settle_escrow_v2Settle SAP Escrow V2A
Destructive
Inspect

Local-signer-only direct settlement against a V2 escrow. Hosted users should call sap_escrow_build_settle_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (as a decimal string, default: 0)
serviceHashNo32-byte service hash as a byte array, hex string, or base64 string
callsToSettleNoNumber of calls to settle (as a decimal string)
depositorWalletNoDepositor wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds valuable context: write operations require signer mode and policy approval, pricing is a paid value-action, and hosted accountless writes are blocked. This goes beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose, especially the repeated 'SAP MCP execution guidance' block which contains redundant or meta context. It front-loads the purpose but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (4 params, output schema present, annotations), the description covers key aspects: who should use it, prerequisites, pricing, routing, and signer boundary. With output schema, return values are not needed. It is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description does not provide additional information about individual parameter meanings or usage beyond what is in the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Local-signer-only direct settlement against a V2 escrow', specifying the verb 'settle', the resource 'V2 escrow', and the scope 'local-signer-only'. It also explicitly distinguishes from the sibling tool sap_escrow_build_settle_transaction, which is for hosted users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Hosted users should call sap_escrow_build_settle_transaction and finalize locally', providing a clear alternative. It also advises to estimate or fetch state before settling and notes requirements like enabled signer mode and policy approval.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sign_transactionSign TransactionAInspect

Sign a serialized Solana transaction with the configured SAP MCP signer after sap_preview_transaction. This is the supported non-custodial signing path for agents; never read keypair JSON or sign raw message bytes in temporary scripts.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
encodingNoInput encoding
transactionNoUnsigned or partially signed transaction

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant behavioral context beyond annotations: signer boundary (user-controlled local profile or external signer), non-custodial path, ordering requirement, and warnings about alternative signing methods. Annotations provide only hints; description fills in the details. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but well-structured and front-loaded with the main action. Some redundancy exists (e.g., repeating 'Intent: SAP MCP tool workflow' from schema), but overall the information 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 the presence of an output schema, the description adequately covers all necessary aspects: workflow order, pricing, routing, signer boundary, and prohibited actions. Sibling tools like sap_preview_transaction and sap_payments_finalize_transaction are available for context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are already well-documented. The description does not add extra semantics beyond what the schema provides, but this is acceptable given the coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Sign' and the resource 'serialized Solana transaction', and specifies the context 'after sap_preview_transaction'. It distinguishes from siblings by mentioning the non-custodial signing path and contrasting with sap_payments_finalize_transaction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('always after sap_preview_transaction'), when not to use ('hosted accountless write is blocked; do not call this as a paid hosted write'), and provides alternatives ('Use sap_payments_finalize_transaction when user signing is required'). Also includes prohibitions like 'never read keypair JSON...'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_skills_bundleBundle SAP MCP SkillsAInspect

Return bundled SAP MCP skills as JSON so an agent can load or write them itself. Pass skills: ["name1","name2"] to bundle only specific skills (filterNames pattern). Pass includeContents: false to get only file paths without content (metadata-only mode for cheap discovery). Combine both for efficient loading: skills:["sap-defi"], includeContents:true returns only the sap-defi skill files with full content, avoiding context bloat from unused skills.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
skillsNoOptional subset of bundled skill names to bundle. When omitted, all bundled skills are returned. Use this to load only the skills you need and avoid context bloat.
includeContentsNoWhen false, only file paths are returned without file content (metadata-only). When true (default), full file contents are included. Set to false for cheap discovery, then call again with skills:["name"] and includeContents:true for only the skills you need.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, providing no behavioral hints. Description compensates with execution guidance (free, direct call, signer boundary) and explains that it returns data without side effects. It adds value beyond the empty 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 first paragraph is concise and front-loaded. The second paragraph contains generic SAP MCP execution guidance that may not be specific to this tool, adding some redundancy. Overall efficient but could be trimmed.

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 simple parameters, high schema coverage, and an output schema (context confirms), the description is complete. It explains usage patterns, return value (JSON), and provides context for when and how to use each parameter optimally.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions already cover both parameters well (100% coverage). The description adds an example ('skills:["sap-defi"], includeContents:true') and the 'filterNames' pattern, enhancing clarity 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?

Clearly states 'Return bundled SAP MCP skills as JSON' with a specific verb and resource. Provides distinct use cases (filter names, metadata-only) but does not explicitly differentiate from sibling tools like sap_skills_list or sap_skills_install.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Offers clear usage patterns: 'filterNames' for specific skills, 'includeContents: false' for cheap discovery, and combining both for efficient loading. Does not explicitly state when not to use or compare to alternatives, but the guidance is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_skills_check_updatesCheck SAP MCP Skills UpdatesB
Read-onlyIdempotent
Inspect

Compare the bundled skill version with the latest published npm package and report which local agent skill directories are stale. Read-only. Works in every server mode.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoOptional runtime whose default skill directory should be checked.
targetDirNoOptional explicit local skill directory to check.

Output Schema

ParametersJSON Schema
NameRequiredDescription
successYes
checkedDirsYes
latestVersionYes
currentVersionYes
updateAvailableYes
registryReachableYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description saying 'Read-only' is redundant. It adds the context 'Works in every server mode' and generic SAP execution guidance about pricing and routing. No contradiction exists with annotations, but the tool-specific behavioral disclosure is minimal and largely restates what annotations already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and front-loaded, but the description includes a large block of generic 'SAP MCP execution guidance' that appears to be boilerplate and is not specific to this tool. This bloats the description and the guidance text does not earn its place in this tool's description, making it poorly structured overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with an output schema and annotations covering safety, so the description is adequate. It explains the purpose, read-only nature, and server mode compatibility. However, it lacks explicit differentiation from sibling tools and includes generic boilerplate rather than tool-specific contextual detail, leaving a gap in usage decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already explains both parameters (agent and targetDir). The description adds high-level context about 'local agent skill directories' but does not provide additional meaning or usage details beyond what the parameter descriptions already contain. With full schema coverage, a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states a specific action: 'Compare the bundled skill version with the latest published npm package and report which local agent skill directories are stale.' This is a precise verb+resource+scope and is distinct from sibling tools like sap_skills_upgrade_plan or sap_skills_self_update, which focus on performing updates rather than checking them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: it is a read-only check for stale skill directories, and it notes 'Works in every server mode.' However, it does not explicitly state when to use this tool versus alternatives (e.g., upgrade plan or self-update), nor does it provide exclusions or alternative tool references. Usage guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_skills_installInstall SAP MCP SkillsAInspect

Install bundled SAP MCP skills into a local agent skill directory. Requires confirm: true.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoAgent parameter for Install SAP MCP Skills.
skillsNoSkills parameter for Install SAP MCP Skills.
confirmNoConfirm flag required before local signing, payment, or write execution. Set true only after the user approves the preview/cost.
targetDirNoTarget Dir parameter for Install SAP MCP Skills.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes beyond annotations by stating that confirmation is required (confirm: true) and providing execution context (pricing, routing, signer boundary). The annotations (readOnlyHint=false) are consistent with a write operation. The additional guidance adds value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief but includes a large block of generic execution guidance that is not specific to this tool, reducing conciseness. The core installation purpose is stated in the first sentence, but the boilerplate could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description does not explain what happens after installation, what the output looks like, or how to use the installed skills. Given that an output schema exists, the description could still benefit from summarizing the outcome (e.g., list of installed skills).

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameter descriptions are provided, albeit minimal. The tool description does not add further meaning beyond what the schema provides, so it meets the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (install) and resource (bundled SAP MCP skills) and specifies the target location (local agent skill directory). It distinguishes from sibling tools like sap_skills_list or sap_skills_bundle by focusing on installation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Requires confirm: true' and provides high-level guidance on intent (agent bootstrap, routing, skills, or repair guidance) and pricing. However, it does not explicitly state when to use this tool over alternatives or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_skills_listList SAP MCP SkillsC
Read-onlyIdempotent
Inspect

List bundled SAP MCP skills and their files.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
skillsNoSkills parameter for List SAP MCP Skills.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds no behavioral details beyond the basic list functionality, but does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is stated in one sentence, but a large block of generic SAP MCP guidance follows, which is not specific to this tool and reduces 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 list tool with optional parameter and existing annotations, the description is adequate but the extra generic guidance may confuse rather than 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%, and the parameter description is minimal. The tool description does not add semantic value to the 'skills' parameter beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists bundled SAP MCP skills and their files. However, it does not differentiate from sibling SAP skills tools like sap_skills_bundle or sap_skills_install.

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 specific guidance on when to use this tool versus alternatives. The generic SAP MCP guidance about pricing and routing does not address usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_skills_self_updateSelf-Update SAP MCP SkillsA
Idempotent
Inspect

Refresh local agent skill files from the latest published @oobe-protocol-labs/sap-mcp-server package. Local-mode only (hosted MCP cannot write to the caller machine). Requires confirm: true. Uses npm pack + tar extraction; no shell interpolation of paths.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoAgent parameter for Self-Update SAP MCP Skills.
skillsNoSkills parameter for Self-Update SAP MCP Skills.
confirmNoConfirm flag required before local signing, payment, or write execution. Set true only after the user approves the preview/cost.
targetDirNoTarget Dir parameter for Self-Update SAP MCP Skills.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, the description discloses the need for confirmation ('Requires confirm: true') and technical safety behavior ('Uses npm pack + tar extraction; no shell interpolation of paths'). It also clarifies the local-mode restriction, which is important for hosted environments. This adds meaningful context to the annotation flags (readOnlyHint false, idempotentHint true).

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 first sentence is direct and informative, but the description then appends a long block of generic 'SAP MCP execution guidance' (pricing, routing, signer boundary) that is not tool-specific. This boilerplate reduces conciseness and adds noise, although the essential tool-specific details are compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core operation, local-only constraint, confirm requirement, and technical method. However, it leaves key parameters (skills, agent, targetDir) under-specified, and the generic SAP guidance contributes little to this tool's context. An output schema exists, so return values are documented, but the input semantics remain incomplete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is effectively 100% in number of parameter descriptions, but those descriptions are tautological ('Agent parameter for...'). The tool description only elaborates on 'confirm' (requires true). It does not explain what 'skills' are (names? file names?), or how 'agent' or 'targetDir' interact. Baseline 3 is appropriate because schema covers the fields, but no additional semantic value is added.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource construction: 'Refresh local agent skill files from the latest published @oobe-protocol-labs/sap-mcp-server package.' This clearly distinguishes it from sibling skills tools (install, check_updates, list, upgrade_plan) by emphasizing 'refresh' and 'local-mode only'. The 'Local-mode only (hosted MCP cannot write to the caller machine)' further clarifies scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states a key usage constraint: 'Local-mode only (hosted MCP cannot write to the caller machine).' It also states a prerequisite: 'Requires confirm: true.' This tells the agent when the tool is applicable. However, it does not name alternative tools like sap_skills_check_updates or sap_skills_install, so the guidance is good but not fully explicit about when-not-to-use in favor of alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_skills_upgrade_planPlan SAP MCP Skills UpgradeA
Read-onlyIdempotent
Inspect

Free helper that returns exact latest-release commands and target directories for upgrading SAP MCP skills. Hosted mode returns a local action plan; local mode can then use sap_skills_install to write files.

SAP MCP execution guidance: Intent: agent bootstrap, routing, skills, or repair guidance. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentNoOptional target runtime whose default skill directory should be used.
skillsNoOptional subset of bundled skill names to upgrade.
targetDirNoOptional explicit local skill directory.

Output Schema

ParametersJSON Schema
NameRequiredDescription
actionYesPlan type.
packageYesPinned npm package spec.
successYesWhether the upgrade plan was generated.
commandsYesPinned commands to run locally.
fileCountYesNumber of bundled skill files selected.
targetDirYesResolved target directory when known.
serverModeYesCurrent server mode.
targetDirsYesDefault local skill directories by runtime.
latestVersionYesPinned SAP MCP package version for the upgrade.
nextToolCallsYesSuggested next MCP tool calls.
hostedEndpointYesHosted SAP MCP endpoint.
selectedSkillsYesBundled skills included in the plan.
agentInstructionsYesInstructions agents should follow without guessing.
canWriteLocalFilesYesWhether this MCP process can write skill files locally.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds significant behavioral context: it returns commands/directories without modifying files, states pricing as free, clarifies the signer boundary (hosted never sees keypair bytes), and explains routing. This goes well beyond annotations, fully disclosing behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat verbose, containing repeated boilerplate (SAP MCP execution guidance appears both in description and input schema). It is front-loaded with the core purpose, but the redundant text could be trimmed for better conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has rich annotations, full schema coverage, and an output schema, the description provides adequate context: it covers both hosted and local modes, security boundaries, and pricing. It is complete for an agent to decide when and how to invoke, though a brief note on error handling or examples might enhance it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and includes descriptions. The description adds value by clarifying that 'agent' selects default skill directory, 'skills' is optional subset, and 'targetDir' is optional explicit directory. It also warns to use exact field names and avoid private keys, which aids agent understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns 'exact latest-release commands and target directories for upgrading SAP MCP skills' and distinguishes itself from sap_skills_install by noting that local mode can then use that tool. This specificity and differentiation make the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (for upgrading skills), mentions hosted vs local mode, and includes pricing and routing guidance ('call directly without x402'). It implicitly contrasts with installation by saying 'local mode can then use sap_skills_install'. However, it lacks explicit when-not-to-use guidance, leaving a small gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_batch_check_domainsBatch Check SNS DomainsA
Read-onlyIdempotent
Inspect

Check availability for multiple .sol domains (up to 25) by deriving each SNS PDA and checking account existence on-chain. This is read-only and safe for hosted mode.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainsNoArray of .sol domain names to batch-check for availability (1-25 domains)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true and destructiveHint=false; the description reinforces this with 'read-only and safe for hosted mode' and adds the PDA derivation mechanism. However, the boilerplate SAP MCP execution guidance about 'paid builder' and 'finalize unsigned transactions' is not directly applicable to a read-only tool and could confuse agents, slightly reducing clarity beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are concise and front-loaded. However, the second paragraph is a long, generic SAP MCP execution guidance block that is also duplicated in the input schema, adding redundancy and length without tool-specific value, so not every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only batch tool with a well-defined schema and output schema, the description covers the core function, batch limit, and safety. It lacks explicit handling of over-limit inputs or a direct mention of singular alternatives, but these are partially covered by the schema and the sibling list.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully describes the 'domains' parameter (array, 1-25, with or without suffix), and schema description coverage is 100%. The tool description repeats the limit but adds no new parameter-specific details beyond behavioral mechanisms.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Check availability for multiple .sol domains (up to 25) by deriving each SNS PDA and checking account existence on-chain,' which clearly specifies the action, resource, batch scope, and mechanism. It distinguishes itself from the singular sap_sns_check_domain sibling by emphasizing 'multiple' and 'batch'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for multi-domain availability checks and specifies a 25-domain limit, giving some context. However, it does not explicitly mention when to use this batch tool instead of the singular sap_sns_check_domain, and the SAP MCP guidance paragraph is generic infrastructure advice rather than alternative-selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_build_manage_record_transactionBuild SNS Manage Record TransactionAInspect

Temporarily unavailable. SAP MCP does not currently publish an SNS record write builder because the historical Bonfida SNS npm package is not installable from npmjs. The tool fails fast before payment or signing.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoThe Solana public key (base58) of the domain owner authorizing the record change
valueNoThe new record value as a string, or null to delete the record
domainNoThe .sol domain name whose record should be created, updated, or deleted
recordTypeNoThe SNS record type to manage (e.g. TXT, Url, IPFS, ETH, BTC, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond annotations by disclosing the root cause (Bonfida npm package not installable), the fail-fast behavior, pricing model, routing, and signer boundary, including the explicit safety instruction to never create temporary signing scripts. This rich context is especially valuable given that readOnlyHint=false and destructiveHint=false alone would not convey the unavailability or non-custodial nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the critical 'Temporarily unavailable' warning, which is good. However, it then includes a block of generic SAP MCP execution guidance (pricing, routing, signer boundary) that is not specific to this tool and is likely repeated across many builder tools. This boilerplate adds length and could be condensed, so it is adequate but not exemplary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's current unavailable state, the description is complete: it states the failure behavior, the reason, and the safety implications, and it includes downstream routing guidance. Since the tool will not return a transaction, explaining return values is unnecessary, and the output schema presumably covers that. The description effectively prepares an agent for the tool's real-world 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 input schema provides 100% description coverage for all four parameters (owner, value, domain, recordType), so the description does not need to repeat parameter semantics. The phrase 'SNS record write builder' adds general context but does not elaborate on parameter usage beyond what the schema already states, warranting the baseline score of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as an SNS record write builder and hosted unsigned transaction builder, so its purpose is to build a transaction for managing SNS records. It does not explicitly contrast with sibling sap_sns_build_set_primary_domain_transaction, but the 'record' scope is implied by the title and context. The prominent 'Temporarily unavailable' statement also clarifies the current functional state.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states the tool is temporarily unavailable and fails fast before payment or signing, telling an agent not to rely on it. It also provides routing guidance for the hypothetical case where a transaction is returned (use sap_payments_finalize_transaction) and advises against creating temporary signing scripts. However, it does not name an alternative tool for SNS record building, leaving a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_build_set_primary_domain_transactionBuild SNS Set Primary Domain TransactionAInspect

Temporarily unavailable. Setting primary SNS domains is disabled in SAP MCP until the SNS write path is migrated to a current installable SDK and covered by end-to-end tests.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_finalize_transaction when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoThe Solana public key (base58) of the domain owner setting their primary domain
domainNoThe .sol domain name to set as primary for the owner

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses several critical behavioral traits beyond annotations: temporary unavailability, paid builder model requiring estimation before building, blocked hosted accountless writes, and the non-custodial signer boundary. These details directly inform safe invocation and are not present in the annotations, which only provide hints on read-only, open-world, idempotency, and destructiveness.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the critical unavailability status, followed by structured execution guidance labeled by Intent, Pricing, Routing, and Signer boundary. It is somewhat dense and repeats 'disabled' and 'unavailable,' but each section earns its place and the structure aids parsing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 an output schema (reducing need to explain return values), the description covers essential context: what it does, its current unavailability, pricing, routing constraints, and signer boundary. It lacks a plain declarative 'This tool builds...' but the functionality is implied. Overall, it is quite complete for a disabled builder tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with both parameters (owner, domain) fully described in the input schema. The tool description adds no parameter-specific semantics beyond what the schema provides, and the generic instruction to use exact field names is already in the schema description. Therefore, the description does not add value in this dimension.

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 the tool's purpose: setting primary SNS domains, with 'Setting primary SNS domains is disabled' and the title 'Build SNS Set Primary Domain Transaction.' It specifies the resource (SNS primary domain) and the action (build transaction), though it does not explicitly differentiate from sibling SNS build tools beyond the domain-specific focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides strong usage guidance: it is 'Temporarily unavailable' and 'disabled,' telling agents not to use it. It also gives exclusions ('do not call this as a paid hosted write') and an alternative ('Use sap_payments_finalize_transaction when user signing is required'), along with routing and signer boundary context. However, it lacks a direct 'use this tool when...' statement, but the intent is clear from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_check_domainCheck SNS DomainA
Read-onlyIdempotent
Inspect

Check whether a .sol domain is available by deriving its Solana Name Service PDA and checking whether the account exists on-chain. This is a read-only helper and does not require the historical Bonfida npm package.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name to check for availability (with or without .sol suffix)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds that it is a read-only helper and specifically that it does not require the historical Bonfida npm package, providing extra operational context. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is a single focused sentence, followed by a boilerplate SAP execution guidance block. The guidance is lengthy but structured and may be necessary for the SAP workflow, so the description is appropriately sized overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is a simple read-only check with one parameter, an output schema, and clear annotations. The description explains the purpose and mechanism sufficiently, and the schema and annotations cover the rest, making the description complete for its complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'domain' is fully described in the input schema (including suffix handling), and the description adds no further parameter details. With 100% schema coverage, the schema carries the semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks .sol domain availability by deriving the SNS PDA and checking on-chain account existence, using a specific verb and resource. It distinguishes itself from resolve/register tools, though it does not explicitly reference the batch sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this versus alternatives like sap_sns_batch_check_domains or sap_sns_resolve_domain. The SAP MCP execution guidance block covers pricing and routing but not tool selection, so usage is only implied from the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_check_ownershipCheck SNS OwnershipA
Read-onlyIdempotent
Inspect

Check whether a wallet matches the resolved SNS wallet for a .sol domain. This uses the SOL record when present and the domain owner as fallback.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerNoCanonical field: Solana public key (base58) of the wallet to verify as the domain owner
domainNoThe .sol domain name to check ownership of
walletNoAlias for owner, accepted for agent ergonomics when the user says wallet.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds the fallback behavior (SOL record first, domain owner as fallback) and clarifies the signer boundary: 'hosted reads/builders never receive keypair bytes.' This provides useful context beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is a concise single sentence. The SAP MCP execution guidance block is somewhat generic and lengthy, but it is well-structured with labeled sections (Pricing, Routing, Signer boundary) and provides relevant operational context for the agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a rich output schema, clear annotations, and a detailed input schema, the description covers the essential purpose and logic. It does not explicitly describe edge cases (e.g., domain not found) but the output schema likely handles that. Overall sufficient for a read-only verification tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter is documented (owner, domain, wallet alias). The description does not add additional parameter-level semantics beyond what the schema already provides, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's specific action: 'Check whether a wallet matches the resolved SNS wallet for a .sol domain.' It includes the resolution logic (SOL record with fallback to domain owner), making it distinct from sibling tools like sap_sns_batch_check_domains or sap_sns_resolve_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?

No guidance provided on when to use this tool versus alternatives. The SAP MCP execution guidance discusses payment routing and signer boundaries, but does not mention batch alternatives or scenarios where this tool is preferred over others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_get_domain_pdaGet SNS Domain PDAA
Read-onlyIdempotent
Inspect

Derive the Solana Name Service domain PDA for a .sol domain. This helper is deterministic, read-only, and does not require any external SNS SDK.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name to derive the SNS domain PDA for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds useful behavioral context beyond these: determinism ('deterministic'), no external SDK dependency, and detailed SAP execution guidance covering pricing (paid read-premium), routing (call sap_estimate_tool_cost first), and signer boundary (hosted reads never receive keypair bytes). This is valuable extra context that helps the agent understand the operational requirements and constraints of invoking this tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and front-loaded with the core purpose. However, the second long paragraph contains SAP MCP execution guidance that is largely boilerplate and is duplicated verbatim in the input schema's description. The repetition of 'estimate first, then use sap_payments_call_paid_tool' within the same paragraph is redundant. While the structure is organized with clear labels (Intent, Pricing, Routing, Signer boundary), the duplication and generic guidance prevent a higher 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?

The tool has an output schema, so return values are presumably documented there, and the description does not need to repeat them. However, there is a notable gap: although the schema shows required parameters as 0, the description implies that a domain is needed ('for a .sol domain'), yet it does not explain what happens when no domain is provided or how the tool handles this case. The SAP execution guidance is generic and not tool-specific, and the description lacks any mention of edge cases or prerequisites. Thus, while the core purpose is clear, the context is not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the only parameter 'domain' is clearly described in the schema as 'The .sol domain name to derive the SNS domain PDA for.' The tool description does not add any additional meaning beyond the schema, such as whether the dot should be included, case sensitivity, or handling of invalid domain names. With full schema coverage, a baseline of 3 is appropriate, and the description adds minimal value here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description precisely states the tool's function: 'Derive the Solana Name Service domain PDA for a .sol domain.' This names a specific verb ('derive') and resource ('SNS domain PDA'), and the tool is clearly distinguished from siblings like sap_sns_resolve_domain (which resolves a domain to an address) and sap_sns_get_record_pda (which derives a record PDA, not a domain PDA). It also adds a differentiator: 'does not require any external SNS SDK.'

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 some usage context by labeling the intent as 'read/discovery workflow' and stating it is 'deterministic, read-only' and does not require an SDK. However, it does not explicitly compare this tool to alternatives such as sns_resolveDomain or sap_sns_resolve_domain, nor does it state when one should prefer this over those. The usage guidance is implied rather than explicit, so it meets the minimum viable level but lacks concrete exclusions or alternative references.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_get_domain_recordsGet SNS Domain RecordsA
Read-onlyIdempotent
Inspect

Fetch known SNS records for a .sol domain using direct Solana Name Service account reads. Returns a key-value map for records that exist and can be decoded.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name to fetch all configured SNS records for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds valuable behavioral context: direct Solana Name Service account reads, return shape limitations ('records that exist and can be decoded'), and signer boundary/privacy guarantees. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core description is concise and front-loaded, but the SAP MCP execution guidance adds boilerplate that, while informative, repeats across tools and lengthens the text. Overall well-organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and strong annotations, the description sufficiently covers purpose, mechanism, and return semantics. Minor gaps include potential behavior for missing/invalid domains and lack of alternative-tool context, but these don't significantly impair agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for the single 'domain' parameter, so the description doesn't need to add much. It echoes the schema's meaning but doesn't clarify whether domain is optional (required params is 0) or add format expectations beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Fetch known SNS records' with a clear resource (a .sol domain) and explicitly states the return format (key-value map). It distinguishes from sibling tools like sap_sns_get_record by indicating it fetches all records, not just one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description labels the intent as 'read/discovery workflow' and explains the mechanism, giving clear context for a read-only lookup. However, it does not mention alternative tools like sap_sns_get_record or sns_resolveDomain, nor does it state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_get_recordGet SNS RecordA
Read-onlyIdempotent
Inspect

Fetch a single SNS record value for a .sol domain using direct Solana Name Service account reads. Returns null if the record account is absent or empty.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name to fetch a record from
recordTypeNoThe SNS record type to fetch (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds behavior beyond annotations: returns null for absent/empty records, uses direct Solana Name Service account reads, and discloses signer boundary limitations. This goes beyond the readOnly/idempotent 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?

First sentence is concise and informative. The SAP guidance block is somewhat verbose but structured with labeled sections, though duplicated in the schema description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with output schema, description covers purpose, null behavior, and SAP routing. Complete enough, though SAP guidance is generic and could be more tool-specific.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with useful descriptions. The tool description adds minimal parameter detail (e.g., examples of recordType) but meets the baseline for 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description specifies 'Fetch a single SNS record value for a .sol domain' with a clear verb and resource. It distinguishes from siblings like sap_sns_get_domain_records by emphasizing 'single record' and direct account reads.

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 generic SAP execution guidance about pricing/routing but no explicit when-to-use vs alternatives. The phrase 'single record' implies use for single lookup, but doesn't exclude other tools or name alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_get_record_pdaGet SNS Record PDAA
Read-onlyIdempotent
Inspect

Derive the Solana Name Service record PDA for a root .sol domain and record type such as SOL, TXT, Pic, Url, or IPFS.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name to derive the record PDA for
recordTypeNoThe SNS record type for the PDA derivation (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds useful context about paid read-premium pricing, estimation requirements, and the signer boundary (hosted reads never receive keypair bytes), which goes beyond annotation-provided safety info. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and front-loaded, but the SAP MCP execution guidance paragraph is repetitive—pricing/routing instructions appear twice with only slight phrasing differences. It could be condensed without losing meaning, earning a middle score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (deriving a PDA), the description covers purpose, parameters, and execution workflow sufficiently. An output schema exists so return values need not be described. The generic SAP guidance adds context beyond the schema, making it complete for a read/discovery 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 already has 100% coverage with descriptions for both parameters. The description adds the nuance that the domain must be a 'root .sol domain' and gives additional record type examples like 'Pic' that are not in the schema, enriching the parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool derives the Solana Name Service record PDA for a root .sol domain and record type, listing example record types. This specific verb+resource distinguishes it from siblings like sap_sns_get_domain_pda (domain PDA) and sap_sns_get_record (record data).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context by stating the intent is a read/discovery workflow and gives routing/pricing guidance (estimate first, use sap_payments_call_paid_tool if needed). However, it does not explicitly mention alternatives or when not to use this tool, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_register_agent_domainRegister SAP Agent SNS DomainAInspect

Temporarily unavailable. SAP MCP does not currently publish an SNS registration write path because the historical Bonfida SNS npm package is not installable from npmjs. Use this tool only to receive the fail-fast status before any payment or signing attempt.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
picNoProfile picture URL for the SNS Pic record (required if not provided in records.Pic)
spaceNoStorage space in bytes for the domain name account (default: 600)
domainNoThe .sol domain name to register for the SAP agent (with or without .sol suffix)
recordsNoOptional map of SNS record key-value pairs to set during registration (e.g. { "Url": "https://...", "Twitter": "@handle" }). Note: SOL record is skipped during registration.
sapDataNoOptional structured SAP metadata to embed in the domain TXT record (capabilities, protocols, endpoints, etc.)
protocolsNoOptional list of protocol IDs the agent supports
agentWalletNoThe Solana public key (base58) of the SAP agent wallet that will own the domain
capabilitiesNoOptional list of SAP capability IDs to advertise in the domain TXT record
setAsPrimaryNoWhether to set this domain as the agent primary .sol domain
durationYearsNoRegistration duration in years (default: 1)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already set readOnlyHint=false, but the description adds important operational context: the tool is currently non-functional due to a missing npm package, will return a fail-fast status, and should not trigger payments. It also explains routing and signer boundaries. This exceeds what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is somewhat long but is structured into two focused paragraphs. It includes necessary operational warnings, though it repeats 'SAP MCP execution guidance' phrases. Overall it earns its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's current unavailable state, the description covers the relevant context: unavailability reason, fail-fast usage, payment/routing rules, and signer boundaries. The output schema exists, so return values need not be described. The main gap is not specifying what exactly the fail-fast response contains.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers all 10 parameters with descriptions (100% coverage), so the baseline is 3. The description does not add parameter-specific meaning, though it does note to use exact field names and avoid private key material in the schema-level description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool is 'Temporarily unavailable' and instructs to 'Use this tool only to receive the fail-fast status before any payment or signing attempt.' This gives a specific current purpose, though it does not describe the intended registration behavior beyond the title. It differentiates from sibling SNS tools by referencing the 'SNS registration write path.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage instructions: use only to receive fail-fast status, do not call as paid hosted write, no x402 payment, and suggests alternatives ('Use the local sap_payments bridge or a hosted unsigned builder when user signing is required'). This is clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_resolve_domainResolve SAP SNS DomainA
Read-onlyIdempotent
Inspect

Resolve a .sol domain to its wallet/owner and configured SNS records using direct Solana Name Service account reads. Agents should treat TXT/Pic/Url records as optional metadata and fall back to the wallet owner when no SOL record exists.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name to resolve to SAP agent identity and SNS records

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context: direct on-chain account reads, the fallback to wallet owner when no SOL record exists, and optional metadata semantics. It does not detail errors or return structure, but output schema covers that.

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 first sentence is front-loaded and concise. The second paragraph of SAP MCP execution guidance is generic boilerplate repeated from the schema and dilutes the tool-specific signal, making the description longer and less focused than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, one-parameter tool with an output schema and strong annotations, the description is largely complete: it explains the resolution target, source method, and important fallback behavior. It could be more complete with explicit alternative guidance and error cases, but these are not essential 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 already documents the domain parameter with 100% coverage. The description adds that the domain is a .sol name and that resolution targets wallet/owner and SNS records, but it does not provide syntax details, normalization rules, or edge-case format guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves a .sol domain to its wallet/owner and SNS records via direct Solana Name Service account reads. It names the resource and outputs precisely, but does not explicitly distinguish itself from sibling resolvers like sns_resolveDomain or alldomains_resolveDomain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a .sol domain needs resolution and gives useful output-handling guidance (treat TXT/Pic/Url as optional, fall back to wallet owner). However, it does not explicitly state when to choose this tool over alternative resolver tools, and the SAP MCP guidance is about paid routing, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_resolve_walletResolve SNS WalletA
Read-onlyIdempotent
Inspect

Resolve a .sol domain to a wallet public key. The tool prefers the SOL record when available and falls back to the domain owner field from the SNS account header.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name to resolve to its owner wallet public key

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds extra context by explaining the preference for SOL records and the fallback to the domain owner field, which is not captured in annotations. It also discloses pricing/routing and signer boundary, adding operational transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core purpose is front-loaded and concise, but the SAP MCP execution guidance is lengthy, generic boilerplate that is repeated verbatim in the input schema. This content does not earn its place in the description as it adds no tool-specific value and duplicates structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-parameter read tool with rich annotations and an output schema, the description provides sufficient context about the resolution process and fallback behavior. However, it does not address how this tool differs from siblings with similar names (e.g., sap_sns_resolve_domain), which is a minor completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and clearly defines the 'domain' parameter. The description does not add additional semantics beyond the schema, which is acceptable given the schema already handles it. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Resolve') and resource ('.sol domain to wallet public key'), and includes behavioral scope (prefers SOL record, falls back to domain owner field). This distinguishes it from other resolution tools by specifying the output format and resolution 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 does not explicitly state when to use this tool versus alternatives like sap_sns_resolve_domain or sns_resolveDomain. The SAP MCP guidance is generic workflow advice applicable to all SAP tools, not specific to this domain resolution. No exclusions or alternative recommendations are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_sns_validate_recordsValidate SAP SNS RecordsCInspect

Validate SNS records for SAP agent compatibility (checks SOL, Pic, TXT records on-chain).

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoThe .sol domain name whose SNS records should be validated for SAP agent compatibility

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false (not read-only), but the description suggests validation which is typically read-only. The boilerplate implies it builds a transaction, but this is not stated explicitly. There is a contradiction between description and annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is brief but includes a large block of generic SAP MCP execution guidance that is irrelevant to this specific tool, making it cluttered and inefficient.

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 an output schema, the description does not clarify the return value or the fact that it may build a transaction. The paid builder workflow is hinted via boilerplate but not integrated. Incomplete for a tool with mutation potential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter 'domain' with schema description coverage at 100%. The tool description adds no new information beyond the schema's description, meeting baseline but not exceeding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it validates SNS records for SAP agent compatibility, checking SOL, Pic, TXT records on-chain. It distinguishes from sibling tools like sap_sns_get_domain_records by focusing on validation for compatibility, but does not explicitly call out differences.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like sap_sns_check_domain or sap_sns_get_domain_records. The generic SAP MCP boilerplate does not provide context-specific usage instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_strategy_activateActivate/Deactivate StrategyA
Idempotent
Inspect

Free local tool. Activates or deactivates a strategy by category and name. Inactive strategies are skipped during agent execution. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStrategy name.
activeYesTrue to activate, false to deactivate.
categoryYesStrategy category.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds useful behavioral context beyond the annotations: it states that inactive strategies are skipped during agent execution and that there is no x402 charge (free local tool). This complements the idempotentHint and destructiveHint annotations. However, it does not detail side effects or error cases.

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 core description is concise (two sentences). The inclusion of the SAP MCP execution guidance block is somewhat generic and adds length, but does not hinder clarity. Overall, it is appropriately sized for a simple toggle tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity, the description covers the main purpose and effect (skipping inactive strategies). An output schema exists, so return values are not needed in the description. It lacks edge-case handling (e.g., strategy not found) but is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description does not provide additional parameter-level details beyond what is in the schema. The parameters (category, name, active) are mentioned but not elaborated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (activate/deactivate) and resource (strategy), and mentions the effect on agent execution (inactive strategies skipped). However, it does not explicitly differentiate from sibling tools like sap_strategy_list, sap_strategy_execute, etc., though the purpose is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you want to enable or disable a strategy, and mentions that inactive strategies are skipped during execution. It provides no explicit when-not to use or alternatives, leaving the agent to infer from context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_strategy_executeExecute StrategyAInspect

Free local tool. Loads a saved strategy by category and name, resolves trading parameters, validates against trading policy, and returns either a dry-run simulation or a ready-to-sign transaction. When dryRun is true, returns resolved params only. When dryRun is false, builds a transactionBase64. No x402 charge for this tool itself.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStrategy name (e.g. "bonk-short-v1").
dryRunNoWhen true, simulate only. When false, build tx. Default true.
categoryYesStrategy category (e.g. "trading").
adjustLeverageNoOverride leverage.
adjustCollateralUsdNoOverride collateral USD.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations, discloses behavior: loads strategy, resolves params, validates policy, returns dry-run or transaction, and notes no x402 charge. Does not contradict 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?

Description is moderately concise but contains repeated execution guidance (SAP MCP block appears twice). Could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 complete schema coverage and an output schema, the description adequately explains the tool's function and output types (dry-run vs transaction). No major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers all parameters with descriptions (100% coverage). The tool description adds no substantial extra semantics beyond the schema's parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states it loads a saved strategy, resolves parameters, validates against policy, and returns either a dry-run simulation or a ready-to-sign transaction. This clearly differentiates it from sibling tools like sap_strategy_load or sap_strategy_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 clear context for using dryRun parameter and includes execution guidance (free, no x402). However, it does not explicitly state when to use this tool over alternatives like sap_strategy_load or sap_strategy_activate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_strategy_listList StrategiesA
Read-onlyIdempotent
Inspect

Free local tool. Lists all strategies, optionally filtered by category and active status. No x402 charge.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoOptional category filter.
activeOnlyNoOnly return active strategies. Default false.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds that the tool is free and has execution routing guidance, but does not disclose additional behavioral details beyond what annotations already indicate. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise, but the SAP MCP execution guidance is lengthy and somewhat templated, adding redundancy. Could be more succinct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with two optional parameters and an output schema, the description covers purpose, pricing, and routing. It is reasonably complete 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?

Schema coverage is 100% with descriptions for both parameters. The tool description repeats that filters are optional but adds no new semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool lists all strategies with optional filters by category and active status. The verb 'list' and resource 'strategies' are explicit, and it distinguishes itself from sibling strategy tools like activate, execute, load, and save.

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 marks the tool as 'free' and 'no x402 charge' but does not explicitly state when to use this tool versus other strategy tools. Usage guidance is minimal and implied by the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_strategy_loadLoad StrategyB
Read-onlyIdempotent
Inspect

Free local tool. Loads a strategy JSON by category and name. Returns the full strategy config including version and active status. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStrategy name.
categoryYesStrategy category.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds 'No x402 charge' (cost behavior) and 'Returns the full strategy config' (output expectation), but the generic execution guidance block adds limited specific behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The essential purpose is front-loaded, but the description includes a large block of generic SAP MCP execution guidance that is repetitive and not specific to this tool, making it longer than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, parameters, return value, and cost. With an output schema present, return values are well-documented. However, it omits error scenarios (e.g., strategy not found) and could clarify the difference from sibling tools more explicitly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add any new information about the parameters beyond what is already in the schema descriptions (name and category).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Loads' and resource 'strategy JSON', clearly distinguishing it from siblings like list, activate, execute, and save. It explicitly mentions the parameters 'category and name' and the return value 'full strategy config including version and active status'.

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 does not provide any guidance on when to use this tool versus alternatives such as sap_strategy_list, sap_strategy_activate, or sap_strategy_execute. It only mentions cost ('free') but lacks usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_strategy_saveSave StrategyA
Idempotent
Inspect

Free local tool. Saves or updates a strategy JSON in ~/.config/mcp-sap/strategies/. Strategies persist agent learnings (e.g. buyback rules, slippage thresholds, risk limits) across sessions. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesStrategy name (e.g. "volatility-breakout").
configYesJSON strategy configuration.
activateNoWhether to activate the strategy immediately. Default true.
categoryYesStrategy category (defi, trading, meme, payments, premium).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds value by disclosing that the tool is free, local, persists across sessions, and has no x402 charge. It aligns with annotations and provides useful context beyond them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first sentence is concise and clear, but the large generic SAP MCP execution block is not tool-specific and adds unnecessary length. The description could be more compact without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a save tool with an output schema, the description covers purpose, location, persistence, and cost. It does not explain the return value (output schema exists) or the activate parameter's effect, but overall it is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters. The description provides an example of strategy content but does not add specific parameter semantics beyond what the schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'saves or updates a strategy JSON' and specifies the file path. It distinguishes itself from sibling strategy tools (activate, execute, list, load) by the verb 'save' and the description of persisting learnings.

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 explicit guidance on when to use this tool versus alternatives. The generic SAP MCP execution block does not address usage context for saving strategies. No 'when to use' or 'when not to' information is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_stream_bufferBuffer Stream EventA
Idempotent
Inspect

Free local tool. Buffers a premium stream event in the local SQLite database for offline consumption. Deduplicates by (streamType, eventId). No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventIdYesUnique event ID from the provider.
payloadYesJSON-serialized event payload.
eventTypeYesEvent type (e.g. "price.tick", "volatility.breakout").
streamTypeYesStream type (e.g. "pyth-price", "meme-alerts", "volatility").

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations: it specifies local SQLite storage, deduplication by (streamType, eventId), and the free pricing model. Annotations indicate idempotentHint=true and destructiveHint=false, which are consistent and reinforced.

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 core two sentences are very concise and front-loaded. However, the appended SAP MCP execution guidance is repetitive and could be trimmed, slightly reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple buffering tool, the description covers key aspects: purpose, dedup, pricing, and local storage. It does not discuss limits or lifecycle, but given the output schema exists, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds crucial meaning beyond the schema by identifying (streamType, eventId) as the dedup key, which is not documented in the schema. This helps the agent understand parameter relationships and constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool buffers premium stream events for offline consumption, with deduplication. The name and title align with this purpose, and it differentiates from siblings like sap_stream_consume and sap_stream_replay.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as sap_stream_consume or sap_stream_replay. The description mentions offline consumption and no x402 charge, but lacks a clear directive on context or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_stream_catalogPremium Stream CatalogCInspect

Free stream discovery for paid real-time SAP MCP capabilities. Returns only stream contracts, including event names, latency targets, x402 pricing, strict schemas, provider env requirements, and whether each stream is live or waiting for provider configuration.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pluginIdNoOptional premium plugin id used to narrow stream discovery, for example sap-premium-market-data.

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYesCapability type requested by the caller.
versionYesPremium capability catalog contract version.
capabilitiesYesPremium capabilities filtered by type with schemas, pricing, delivery contracts, and provider status.
providerStatusYesProvider environment readiness map for capabilities that need external providers.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states it 'returns only stream contracts' suggesting a read operation, but annotations set readOnlyHint=false without clarification. The generic execution guidance (pricing, routing, signer boundary) is repetitive and does not disclose tool-specific behaviors like potential side effects, rate limits, or required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with redundant SAP MCP execution guidance that appears verbatim in the schema description, repeating seven times across the description and schema. The first sentence is clear, but the extended generic block reduces conciseness and adds no tool-specific value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown), the description covers the key return fields (event names, latency, pricing, schemas, provider env, live status) adequately for a catalog tool. The generic guidance is unnecessary but does not omit critical information about the tool's functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'pluginId' is fully documented in the schema with a clear example. Schema coverage is 100%, so the description adds no additional value beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a stream discovery tool for premium SAP MCP capabilities, listing specific return fields like event names and latency targets. However, it does not explicitly differentiate from sibling catalog tools such as 'sap_premium_plugin_catalog' or 'sap_pricing_catalog', which limits clarity in a rich sibling ecosystem.

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 mentions the tool is 'free' and for 'discovery', implying a low-cost use case, but it does not provide explicit guidance on when to use this tool versus alternatives, nor does it state prerequisites or exclusions. The generic SAP execution guidance block does not address usage scenarios specific to this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_stream_consumeConsume Stream EventsAInspect

Free local tool. Returns unconsumed stream events for a stream type (FIFO order) and marks them consumed. Use this instead of sap_premium_stream_poll for local offline access. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax events to consume. Default 20.
streamTypeYesStream type to consume.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite minimal annotations, description adds rich behavioral context: FIFO order, local offline, free, execution guidance on pricing, routing, and signer boundary. Discloses state mutation (marks consumed).

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?

Front-loaded with core function, then usage, then execution guidance. Some redundancy with execution guidance appearing in both description and schema, but efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key aspects: what it does, when to use, execution details. Output schema may cover return format. Missing edge case handling (e.g., empty stream), but adequate for a simple consume tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description does not add parameter-specific guidance beyond what schema provides, so no extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool returns unconsumed stream events in FIFO order and marks them consumed, distinguishing it from sibling sap_premium_stream_poll by specifying 'use this instead for local offline access.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (local offline access) and mentions no x402 charge, providing clear context. Lacks explicit when-not-to-use but differentiates from alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_stream_replayReplay Stream EventsA
Read-onlyIdempotent
Inspect

Free local tool. Returns all events (consumed + unconsumed) for a stream type within a time range. Used for backtest and analysis. No x402 charge.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax events. Default 100.
sinceNoISO 8601 timestamp. Events created after this time.
streamTypeYesStream type to replay.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by stating it is a 'Free local tool' and 'No x402 charge', and includes execution guidance about direct calling. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first part is concise (3 sentences), but the second part contains a generic boilerplate 'SAP MCP execution guidance' that is lengthy and not specific to this tool. This reduces conciseness. The front-loaded content is good, but the boilerplate adds unnecessary length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple schema (3 params, all described), rich annotations, and the presence of an output schema, the description covers the purpose, pricing, and execution context. It is adequate for an agent to use the tool, though it could mention how to interpret 'events' or give an example. Sibling tool differentiation is missing but completeness is still high.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 parameters (limit, since, streamType) are already described in the input schema. The description implies the use of streamType and since (time range) but adds no additional semantics beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Returns all events (consumed + unconsumed) for a stream type within a time range. Used for backtest and analysis.' It uses a specific verb 'Returns' and resource 'events', and distinguishes itself from sibling stream tools (e.g., sap_stream_consume) by explicitly mentioning both consumed and unconsumed events and the use case of backtesting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a use case ('Used for backtest and analysis') and mentions pricing and routing, but does not explicitly compare to sibling tools like sap_stream_buffer or sap_stream_consume. There is no guidance on when to use this tool versus alternatives, nor any exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_submit_signed_transactionSubmit Signed TransactionA
Destructive
Inspect

Submit a signed Solana transaction produced by sap_sign_transaction through the configured RPC endpoint. Use this instead of custom sendRawTransaction scripts so policy, retries, and audit stay inside SAP MCP.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
encodingNoInput encoding
intentIdNoOptional caller-provided id binding submission, confirmation, and audit output.
commitmentNoDesired confirmation status before returning success. Defaults to confirmed.
maxRetriesNoMaximum RPC send retries
skipPreflightNoSkip RPC preflight checks
submitRelayUrlNoOptional submit relay URL. Must be HTTPS, localhost, or 127.0.0.1.
submitViaRelayNoWhen true, submit through the hosted OOBE relay. The relay only broadcasts already-signed bytes and never signs. Defaults to false for this local tool.
signedTransactionNoSigned serialized transaction
confirmationTimeoutMsNoBounded confirmation wait in milliseconds. Defaults to 90000; maximum 180000.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive and non-idempotent behavior. Description adds that it handles retries, audit, and stays within SAP MCP, providing extra context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

First sentence is concise, but the description includes a lengthy block of SAP MCP execution guidance that appears boilerplate and reduces conciseness. Structured but not optimally succinct.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key aspects: submission through configured RPC, retries, audit, and commitment. The output schema exists so return values need not be described. Lack of error handling detail is minor given the schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all 9 parameters. Description does not add new information about parameters but includes a caution about not including private key material, which is marginally helpful. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Explicitly states it submits a signed Solana transaction produced by sap_sign_transaction, distinguishing it from custom sendRawTransaction scripts. The verb 'submit' and resource 'signed transaction' are clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends using this instead of custom scripts for policy, retries, and audit. SAP MCP guidance provides context on when to use paid tool variants, though some guidance is generic.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_trade_journalAppend Trade Journal EntryAInspect

Free local tool. Appends a trade entry to the journal. Call after every trade open/close/SL/TP/liquidation for tracking and P&L analysis. No x402 charge.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
sideYesPosition side.
typeYesTrade event type.
notesNoOptional notes.
marketYesMarket symbol.
pnlUsdNoP&L in USD.
statusYesPosition status.
leverageYesLeverage multiplier.
priceUsdYesEntry or exit price.
feesPaidUsdYesFees paid in USD.
stopLossUsdNoStop loss price.
txSignatureNoTransaction signature.
collateralUsdYesCollateral in USD.
takeProfitUsdNoTake profit price.
positionAddressNoPosition PDA address.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds pricing and routing details (free, no x402, direct call) beyond annotations, which only indicate it is a write operation. However, it does not disclose failure behavior, data persistence, or side effects. The added value is moderate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with core purpose and usage, followed by necessary execution guidance. The guidance is slightly verbose but provides critical platform context. Minor verbosity does not detract significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 and the presence of an output schema, the description covers essential context: purpose, usage timing, cost, and routing. Minor gaps (error handling) are acceptable for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all parameters are documented. The main description does not add extra semantic value; it only repeats schema-level info. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool appends a trade entry to the journal, providing specific contexts for use (open/close/SL/TP/liquidation). It distinguishes itself from the sibling `sap_trade_journal_query` by being the write counterpart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs when to call ('after every trade event for tracking and P&L analysis') and notes that there is no x402 charge. While it does not mention exclusions or alternatives, the context is sufficient for a trading journal tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_trade_journal_queryQuery Trade JournalA
Read-onlyIdempotent
Inspect

Free local tool. Queries the trade journal with filters. Returns matching entries with count and total P&L. No x402 charge.

SAP MCP execution guidance: Intent: Solana value-action or trading workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd date ISO 8601.
fromNoStart date ISO 8601.
typeNoFilter by type.
limitNoMax results. Default 100.
marketNoFilter by market.
statusNoFilter by status.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by stating it's free, has no x402 charge, and includes SAP MCP execution guidance on routing and signer boundary, providing behavioral context 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.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise in its core purpose but includes a lengthy boilerplate execution guidance section that could be trimmed. It is front-loaded with the key information, making it functional but not maximally efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 6 parameters (all documented), enums, an output schema, and strong annotations, the description covers purpose, return type, pricing, and routing. It could mention date range or historical nature, but overall it is fairly complete for a query 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?

All 6 parameters have descriptions in the input schema (100% coverage). The tool description only generically mentions 'with filters' and does not add additional meaning beyond what the schema already provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool queries the trade journal with filters and returns matching entries with count and total P&L. It specifies it's a free local tool with no x402 charge, effectively distinguishing it from sibling query tools like sap_audit_query and chart tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context about free usage and no x402 charge, but lacks explicit guidance on when to use this tool versus alternatives (e.g., other query tools). It implies usage for trading workflows but does not exclude other scenarios.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_update_agentUpdate SAP AgentAInspect

Local-signer-only: update the connected wallet SAP agent using SDK AgentModule.update. Hosted accountless SAP MCP rejects this direct write before x402 payment; hosted users should call sap_payments_update_agent from the local sap_payments bridge. SAP MCP context: Use this after sap_register_agent to refresh name, description, capabilities, pricing, supported protocols, x402 endpoint, or metadataUri. For NFT-backed identity changes, update the Metaplex asset first when needed, then point the SAP agent metadataUri at the current metadata document.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use sap_payments_update_agent when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional replacement display name. Omit to keep the current name.
agentIdNoOptional replacement stable agent id. Omit to keep current agentId.
pricingNoOptional full replacement pricing tier list. Omit to keep current pricing.
agentUriNoOptional replacement public URI for agent metadata/profile. Use this to update pictures after uploading metadata to IPFS, Arweave, Kommodo, or HTTPS.
protocolsNoOptional full replacement protocol list. Omit to keep current protocols.
descriptionNoOptional replacement description. Omit to keep the current description.
metadataUriNoAlias for agentUri. Use a public metadata JSON URI; never use a desktop file path.
capabilitiesNoOptional full replacement capability list. Omit to keep current capabilities; do not send only the new item unless replacing the whole list is intended.
x402EndpointNoOptional replacement x402 discovery/payment endpoint. Omit to keep current endpoint.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

While annotations already indicate a non-read-only, non-destructive write, the description adds crucial behavioral context: local-signer-only, blocked for hosted, need for user confirmation, and no x402 payment. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose (over 200 words) with some repetition (execution guidance block mirrors input schema description). It is well-structured and front-loaded but could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no required parameters and an output schema existing, the description covers all usage context: prerequisites, alternatives, execution guidance, signer boundary, and warnings about hosted routing. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 9 parameters have descriptions). The description adds minimal extra meaning beyond the schema, only noting the metadataUri ordering requirement (update Metaplex asset first). Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it updates an SAP agent, lists specific fields (name, description, capabilities, etc.), and distinguishes from the sibling tool sap_payments_update_agent for hosted users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use (after sap_register_agent) and when not to use (hosted users should use sap_payments_update_agent). Also provides context about local-signer-only and alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_update_feedbackUpdate SAP FeedbackAInspect

Update existing on-chain feedback for an agent wallet. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOptional new feedback tag/category
scoreNoNew feedback score (numeric, e.g. 1–5)
agentWalletNoAgent wallet public key (base58) to update feedback for
commentHashNoOptional 32-byte comment hash as a byte array, hex string, or base64 string

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint=false, openWorldHint=true) are supplemented by description detailing it as a paid write workflow requiring cost preview, local-signer handling, and routing via sap_estimate_tool_cost or sap_payments_call_paid_tool. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, but description is verbose due to repeated execution guidance (also in input schema). Could be more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, execution workflow, and constraints, but lacks detail on what 'update' can change (score, tag, commentHash) and does not explain output schema. Gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds minimal parameter context ('keep hashes stable' relates to commentHash) but does not elaborate on each parameter's meaning beyond 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?

Clearly states 'Update existing on-chain feedback for an agent wallet' with specific verb and resource. Includes SAP MCP context. Does not explicitly differentiate from siblings like sap_give_feedback or sap_revoke_feedback, but naming helps.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 precondition 'Use after verifying the target agent PDA or wallet' and a constraint to keep metadata stable. Also includes execution guidance (preview cost, signer boundary). Lacks explicit 'when not to use' or alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_update_reputation_metricsUpdate Reputation MetricsAInspect

Update self-reported latency and uptime metrics for the connected wallet SAP agent. SAP MCP context: Reputation and trust flow. Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
avgLatencyMsNoAverage response latency in milliseconds to report
uptimePercentNoUptime percentage (0–100) to report for the agent

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses write workflow, paid action, user confirmation needed, routing restrictions, and signer boundary. Adds significant context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Contains redundant execution guidance repeated in both description and schema. Could be more concise without losing key 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?

Covers precondition, cost, routing, and signer requirements. Output schema exists so return values are handled. Adequate for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good descriptions. The description does not add additional parameter details beyond restating the purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Update self-reported latency and uptime metrics for the connected wallet SAP agent.' Distinct from sibling tools which are other sap_ actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps 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 precondition ('Use after verifying the target agent PDA or wallet') and execution guidance (routing, signer). Lacks explicit alternatives, but context makes usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_update_toolUpdate SAP ToolAInspect

Update tool descriptor hashes using SDK ToolsModule.update. SAP MCP context: Use tool registry writes to advertise concrete capabilities that this MCP can serve, including AgentKit bridge tools such as bridging_bridgeWormhole and Metaplex tools such as metaplex-nft_mintNFT. Publish only schemas and descriptions that match the actual MCP tool surface.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses behavioral traits beyond annotations, such as it being a write workflow, requiring user signing, having cost preview, and routing constraints. This significantly aids the agent in understanding side effects and prerequisites.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and includes repetitive guidance across the main description and the schema description. The core purpose is front-loaded, but the additional context could be omitted or condensed for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and annotations are present, the description covers the essential workflow aspects and constraints. It explains when to use and not use, but could be more specific about the output or post-update behavior. Overall, fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already has 100% coverage with parameter descriptions. The tool description does not add additional meaning to the parameters beyond what is in the schema. Thus, score at baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Update tool descriptor hashes using SDK ToolsModule.update' which clearly identifies the action and resource. However, it also includes extensive SAP MCP context that may distract from the primary purpose. No clear differentiation from similar tools, but there are no directly similar siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides detailed execution guidance including intent (local-signer write workflow), pricing (paid value-action), routing restrictions, and signer boundary. It explicitly states when not to call (hosted accountless write blocked) and suggests alternatives (use local sap_payments bridge or hosted unsigned builder). This is thorough but could be more structured for quick reference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_webhook_catalogPremium Webhook CatalogAInspect

Free webhook discovery for paid SAP MCP event delivery. Returns webhook event contracts, signed-delivery expectations, replay windows, x402/pay.sh pricing, provider readiness, and strict subscription schemas.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pluginIdNoOptional premium plugin id used to narrow webhook discovery, for example sap-premium-market-data.

Output Schema

ParametersJSON Schema
NameRequiredDescription
typeYesCapability type requested by the caller.
versionYesPremium capability catalog contract version.
capabilitiesYesPremium capabilities filtered by type with schemas, pricing, delivery contracts, and provider status.
providerStatusYesProvider environment readiness map for capabilities that need external providers.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations, such as execution guidance for SAP MCP (pricing, routing, signer boundary). It explains the tool is free and returns structured data. However, there is a potential contradiction: annotations set readOnlyHint=false, but the tool is described as a discovery/query operation, implying read-only behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise in stating the tool's output and includes a separate block for SAP MCP execution guidance. While the guidance is somewhat generic, it is relevant and does not add excessive verbosity. The structure is clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only one optional parameter and an output schema exists, the description sufficiently explains the return values and execution context. The list of returned data types is comprehensive, and the SAP MCP guidance provides necessary operational details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single optional parameter 'pluginId' is described in the schema as narrowing discovery. The description does not add further semantics beyond the schema, but schema coverage is 100%, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose as 'webhook discovery' and lists specific returned data types (event contracts, signed-delivery expectations, etc.). This distinguishes it from sibling tools like sap_premium_webhook_register and sap_premium_webhook_relay, which handle registration and relaying.

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 does not provide guidance on when to use this tool versus alternatives. There is no mention of when to use this catalog instead of other webhook-related tools (e.g., register, status). The execution guidance discusses pricing and routing but not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_withdraw_escrow_v2Withdraw SAP Escrow V2A
Destructive
Inspect

Local-signer-only direct withdrawal from a V2 escrow. Hosted users should call sap_escrow_build_withdraw_transaction and finalize locally. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce (as a decimal string, default: 0)
amountNoWithdrawal amount as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (destructiveHint=true), the description reveals that it is a direct mutation requiring signer mode, that hosted accountless writes are blocked, and that users should preview costs and effects before confirmation. It also details routing and signer boundaries, providing comprehensive 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 informative but slightly verbose, with multiple lines. The first sentence establishes purpose, followed by clear usage guidance and structured execution guidance. Could be tightened slightly, but no content is superfluous.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of a complete input schema and output schema (implied by context signals), the description covers usage context, alternatives, prerequisites, and behavioral traits. All necessary information for correct invocation is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the schema itself already documents the three parameters with descriptions. The tool description does not add additional parameter details beyond general guidance (e.g., estimating state). This meets the baseline for schema-rich tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'Local-signer-only direct withdrawal from a V2 escrow', providing a specific verb and resource. It distinguishes from the sibling sap_escrow_build_withdraw_transaction by explicitly advising hosted users to use that alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use (local-signer-only) and when not to (hosted users should use sap_escrow_build_withdraw_transaction). It also mentions prerequisites like enabled signer mode and MCP policy approval, and directs to other tools for hosted signing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_build_headers_from_escrowBuild SAP x402 Headers From EscrowAInspect

Build SAP x402 HTTP headers by fetching escrow data for an agent wallet with SDK X402Registry.buildPaymentHeadersFromEscrow. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
networkNoOptional network identifier for X-Payment-Network
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, and the description adds context: it is a 'hosted unsigned transaction builder', 'paid builder', and requires estimate first. It notes signer mode and policy approval for writes. This goes beyond annotations, though some details are repeated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, containing repeated execution guidance (e.g., 'SAP MCP execution guidance' appears in both description and schema description). The first sentence is good, but the rest is bloated and could be significantly trimmed for efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (3 params, output schema exists), the description covers intent, pricing, routing, signer boundary, and workflow (estimate→pay/build→finalize). It provides sufficient context for safe and correct invocation, though slightly repetitive.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 covers 3 parameters with clear descriptions (nonce, network, agentWallet) and 100% coverage. The tool description does not add extra parameter-level meaning beyond the schema. Baseline 3 applies as schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it builds SAP x402 HTTP headers by fetching escrow data using a specific SDK method. It distinguishes from sibling tools like sap_x402_build_payment_headers by specifying 'from escrow'. However, the core purpose is diluted by extensive execution guidance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides when-to-use hints: 'Estimate or fetch state before creating escrows or settling calls' and states prerequisites (enabled signer mode and MCP policy approval for write operations). It also directs the agent to use sap_payments_finalize_transaction for returned transactions. Missing explicit when-not-to-use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_build_payment_headersBuild SAP x402 Payment HeadersAInspect

Build SAP x402 HTTP headers from a public PaymentContext returned by sap_x402_prepare_payment. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: hosted unsigned transaction builder. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: hosted-safe builder. If a transaction is returned, preview/sign/submit with sap_payments_finalize_transaction; never create temporary signing scripts. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoEscrow nonce as a decimal string. Defaults to 0.
networkNoOptional override for X-Payment-Network
agentPdaNoAgent PDA (base58)
maxCallsNoMax calls as a decimal string
escrowPdaNoEscrow PDA (base58)
agentWalletNoAgent wallet public key (base58)
txSignatureNoEscrow creation transaction signature
pricePerCallNoPrice per call in token base units
depositorWalletNoDepositor wallet public key (base58)
networkIdentifierNox402 network identifier stored in the payment context

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses it is a paid builder, requires signer mode and MCP policy approval for writes, and returns unsigned transactions. Adds context beyond annotations (readOnlyHint=false) about workflow and safety. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Contains redundancy (e.g., repeated references to 'hosted unsigned transaction builder') and a lengthy execution guidance paragraph that could be streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Provides sufficient context: input source, required workflow, output handling, and boundary warnings. Output schema exists, so return values are covered. Could include more about PaymentContext, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are fully documented. The tool description does not add additional meaning about parameters beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds SAP x402 HTTP headers from a PaymentContext and returns unsigned transactions. However, it does not differentiate from the sibling tool sap_x402_build_headers_from_escrow, which likely has a similar purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: estimate first, then pay/build, finalize with sap_payments_finalize_transaction. Warns against creating temporary scripts. Misses explicit comparison to alternative builder tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_calculate_costCalculate SAP x402 CostAInspect

Pure local cost calculation using SDK X402Registry.calculateCost; does not read chain state. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
callsNoNumber of calls to calculate
basePriceNoBase price per call in token base units
volumeCurveNoArray of { afterCalls, pricePerCall } pricing breakpoints
totalCallsBeforeNoCumulative settled calls before this calculation (default: 0)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits: it is local, does not read chain state, uses SDK, and is part of the payment/settlement flow. Annotations are readOnlyHint=false and destructiveHint=false, which are consistent with a pure calculation that has no side effects. The description adds value beyond annotations by specifying the local nature and SDK usage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly concise and front-loads the core purpose. However, it includes some generic 'SAP MCP execution guidance' that may be redundant across tools. Could be slightly tighter but is still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and is a straightforward calculation, the description adequately covers purpose, behavior, and usage context. It doesn't cover error cases or limitations, but for this simple tool, completeness is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all four parameters described in the input schema. The description does not add additional semantics beyond the schema; it merely mentions the tool calculates cost. Given high schema coverage, baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a 'pure local cost calculation' using a specific SDK method, and explicitly says it 'does not read chain state'. This distinguishes it from siblings that may interact with chain state or perform other operations like building payments or settling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: 'SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls.' This tells the agent when to use the tool. However, it doesn't explicitly differentiate from the sibling tool 'sap_x402_estimate_cost' or provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_estimate_costEstimate SAP x402 CostAInspect

Estimate cost for a number of calls using SDK X402Registry.estimateCost. Reads escrow/pricing when available and supports optional volume curve overrides. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
callsNoNumber of calls to estimate
agentWalletNoAgent wallet public key (base58)
volumeCurveNoOptional array of { afterCalls, pricePerCall } pricing breakpoints
pricePerCallNoOptional base price per call override in token base units
totalCallsBeforeNoOptional cumulative settled calls before this estimate

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states it 'reads escrow/pricing when available,' implying read-like behavior, but annotations set readOnlyHint to false, creating slight ambiguity. No explicit mention of side effects or data modification. With annotations already indicating non-destructive and non-read-only, the description adds limited behavioral context beyond execution guidance.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph followed by a separate block of execution guidance that repeats information from the input schema. The first sentence is clear, but the rest could be more compact. Some boilerplate ('SAP MCP context', 'Routing') adds length without unique value per sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 5 parameters, all well-described in schema, and the presence of an output schema, the description covers the essential usage flow and execution constraints. It mentions pricing and routing, which is helpful but slightly redundant with the schema's own description. Nearly complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents each parameter. The description adds context like 'supports optional volume curve overrides,' but this is also reflected in the schema descriptions. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Estimate') and resource ('cost for a number of calls') with explicit reference to the SDK method (X402Registry.estimateCost). It distinguishes well from sibling sap_x402_* tools that handle building headers, fetching escrow, settling, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use: 'Estimate or fetch state before creating escrows or settling calls.' It also notes prerequisites for write operations (enabled signer mode and MCP policy approval), effectively excluding this tool from write contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_fetch_escrowFetch SAP x402 EscrowA
Read-onlyIdempotent
Inspect

Fetch raw x402 escrow account data using SDK X402Registry.fetchEscrow. Resolves V2 first, then V1 fallback. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
depositorNoOptional depositor wallet (base58); defaults to caller in SDK
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description reveals resolution strategy (V2 first, V1 fallback), security boundary (hosted reads never receive keypair bytes), and signer requirements. This adds significant value beyond annotations which already indicate read-only and idempotent.

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 informative front-loaded with core purpose but includes some redundancy with input schema text. It is still relatively concise given the amount of context provided.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description adequately covers purpose, usage, behavioral traits, pricing, and routing. It is complete for a read-only tool, though could mention error conditions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need 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 schema descriptions are detailed. The main description does not add new parameter-level details beyond what is in the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches raw x402 escrow account data using a specific SDK method, and distinguishes from siblings by mentioning V2-first then V1 fallback resolution. It is specific and distinct from other fetch tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description places the tool in the SAP MCP payment and settlement flow and advises using it before creating escrows or settling calls. It does not explicitly exclude alternatives or provide when-not-to-use, but gives clear situational context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_get_balanceGet SAP x402 BalanceA
Read-onlyIdempotent
Inspect

Fetch x402 escrow balance using SDK X402Registry.getBalance. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
depositorNoOptional depositor wallet (base58) to filter balance by
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=true? Actually destructiveHint=false. The description adds value by specifying the exact SDK method (X402Registry.getBalance) and providing execution context (pricing, routing, signer boundary). No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two paragraphs: first states purpose and usage context, second provides execution guidance. It is front-loaded and each sentence adds value. Slightly verbose but still efficient. Score 4.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 presence of an output schema (context signals indicate 'Has output schema: true'), the description does not need to detail return values. It covers purpose, usage context, execution details, and integration notes. The description is complete enough for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all three parameters (nonce, depositor, agentWallet) with descriptions. The description does not add additional semantic meaning beyond what the schema provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch x402 escrow balance using SDK X402Registry.getBalance.' It specifies the action (fetch) and resource (x402 escrow balance). Among sibling tools like sap_x402_build_headers_from_escrow and sap_x402_settle, this tool's purpose is distinct and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: 'Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.' It also includes execution guidance about pricing (free), routing (free hosted call), and signer boundary, giving clear when-to-use and how-to-use instructions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_has_escrowCheck SAP x402 EscrowAInspect

Check whether an x402 escrow exists for an agent/depositor pair. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
depositorNoOptional depositor wallet (base58); defaults to caller in SDK
agentWalletNoAgent wallet public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint false and destructiveHint false, but the description adds valuable behavioral context: the tool is priced (by hosted x402 challenge), requires prior cost estimation, and notes signer boundary policies. This goes beyond mere safety flags, helping the agent understand side effects (cost) and operational constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description starts with a clear purpose sentence but becomes verbose with boilerplate SAP MCP execution guidance that is also repeated in the input schema description. Some sentences feel like internal notes rather than lean user guidance. Could be tightened without losing meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given this is a simple existence check with three parameters and an output schema, the description covers purpose, usage context (precondition for escrow create/settle), pricing, routing, and signer boundary. It does not explicitly state the return type (boolean), but the output schema likely handles that. Overall comprehensive for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the input schema already fully documents each parameter with clear descriptions (nonce 'decimal string defaults to 0', depositor 'optional defaults to caller', agentWallet 'base58'). The tool description adds no additional parameter meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Check whether an x402 escrow exists for an agent/depositor pair,' which is a specific verb+resource+scope. The verb 'check' and the phrase 'exists' make the boolean intent clear, and it distinguishes itself from related tools like sap_x402_fetch_escrow by focusing on existence rather than detailed data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context: 'Estimate or fetch state before creating escrows or settling calls,' which tells when to use this tool. It also notes prerequisites for write operations ('enabled signer mode and MCP policy approval') and gives SAP MCP execution guidance on pricing and routing, offering a clear use-case framework. It does not explicitly mention alternatives but the context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_prepare_paymentPrepare SAP x402 PaymentBInspect

Prepare an x402 payment context using SDK X402Registry.preparePayment. New production escrow funding should use Escrow V2 fields and nonce-aware flows. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
depositNoInitial deposit as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
maxCallsNoOptional maximum number of calls covered
expiresAtNoOptional expiry timestamp in unix seconds
tokenMintNoOptional SPL token mint; omit/null for SOL. Use EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v for mainnet USDC.
agentWalletNoAgent wallet public key (base58)
volumeCurveNoOptional array of { afterCalls, pricePerCall } pricing breakpoints
pricePerCallNoPrice per call as a decimal string. Amount in the escrow token smallest unit: lamports for SOL, micro-USDC for USDC, or base units for the configured SPL token.
tokenDecimalsNoOptional token decimals. Defaults to 6 for USDC/SPL flows when supplied by the SDK and 9 for native SOL.
networkIdentifierNoOptional x402 network identifier written into headers

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false, and the description adds that write operations require an enabled signer mode and MCP policy approval. This provides behavioral context beyond annotations, but the description does not fully disclose the on-chain effects or state changes of preparing a payment context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and includes generic boilerplate ('SAP MCP execution guidance') that is not unique to this tool. The essential information is mixed with repetitive phrases, making it less concise than optimal.

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 10 parameters and existence of output schema, the description provides basic workflow context (estimate cost, routing) but does not explain the return value or how this tool fits into the broader x402 payment lifecycle. It is adequate but leaves gaps about subsequent steps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add parameter-specific details beyond what the schema already provides. It mentions Escrow V2 fields and nonce-aware flows, but this is not tied to individual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool's purpose: 'Prepare an x402 payment context using SDK X402Registry.preparePayment.' It identifies the specific verb (prepare) and resource (x402 payment context), distinguishing it from sibling x402 tools like fetching or settling escrows.

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 'New production escrow funding should use Escrow V2 fields and nonce-aware flows' and advises to estimate or fetch state before creating escrows. However, it does not explicitly compare with alternative tools (e.g., sap_x402_build_headers_from_escrow) or specify when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_settleSettle SAP x402 CallsA
Destructive
Inspect

Settle served x402 calls through SDK X402Registry.settle. Must be called by the agent owner wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
commitmentNoOptional processed|confirmed|finalized commitment
maxRetriesNoOptional RPC retry limit
serviceDataNoService data to hash into the settlement proof
computeUnitsNoOptional compute-unit limit
callsToSettleNoNumber of calls to settle
skipPreflightNoOptional skip preflight flag
depositorWalletNoDepositor wallet public key (base58)
priorityFeeMicroLamportsNoOptional priority fee in microlamports per compute unit

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations indicating a destructive write operation, the description adds context about authorization (owner wallet, signer mode, MCP policy approval) and the need to preview cost and effects. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose, but includes repetitive SAP MCP boilerplate that adds length. Nevertheless, it is structured and most sentences contribute meaningful guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of settlement and the presence of an output schema, the description covers caller requirements, sequencing (estimate first), and routing options. Lacks details on expected output, but output schema handles that.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 9 parameters have descriptions in the input schema (100% coverage). The description adds only a general note about using exact field names, but no additional per-parameter semantics. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Settle' and the resource 'served x402 calls', referencing the specific SDK method 'X402Registry.settle'. This distinguishes it from siblings like sap_x402_settle_batch.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies caller requirements ('Must be called by the agent owner wallet'), prerequisites ('Estimate or fetch state before...'), and provides guidance on cost estimation and routing alternatives. However, it does not explicitly differentiate from the sibling sap_x402_settle_batch.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sap_x402_settle_batchBatch Settle SAP x402 CallsA
Destructive
Inspect

Batch-settle served x402 calls through SDK X402Registry.settleBatch. Must be called by the agent owner wallet. SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid value-action; preview cost and transaction effects before user confirmation. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nonceNoOptional escrow nonce as a decimal string. Defaults to 0.
entriesNoArray of { calls, serviceData } settlement entries
commitmentNoOptional processed|confirmed|finalized commitment
maxRetriesNoOptional RPC retry limit
computeUnitsNoOptional compute-unit limit
skipPreflightNoOptional skip preflight flag
depositorWalletNoDepositor wallet public key (base58)
priorityFeeMicroLamportsNoOptional priority fee in microlamports per compute unit

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by stating the tool requires signer mode and MCP policy approval, and outlines the signer boundary. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long and repetitive, with boilerplate SAP MCP context appearing both in the main description and the schema description. It front-loads the key action but includes redundant guidance, reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the complexity (8 parameters, output schema exists), the description covers workflow, prerequisites, execution steps, and signer boundaries. It is largely complete for an SAP tool, though it does not reference the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the input schema already describes all 8 parameters. The main description does not add parameter-specific meaning beyond what is in the schema. Thus, the description adds minimal value for parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Batch-settle served x402 calls through SDK X402Registry.settleBatch.' It uses a specific verb ('Batch-settle') and resource ('x402 calls'), and the name 'sap_x402_settle_batch' distinguishes it from many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines: 'Must be called by the agent owner wallet.' It explains the workflow context ('Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls') and specifies prerequisites for write operations. It also includes routing guidance ('call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool') and pricing info.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send-arcade_listGamesSend-arcade List GamesC
Read-onlyIdempotent
Inspect

List available games on Send Arcade. SAP MCP context: Protocol send-arcade; operation class write. Use for Send Arcade game listing and play flows. Confirm account, wager or spend, and game rules before writes. Keep gaming activity separate from SAP identity unless it is intentionally part of an agent profile.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoStatus parameter for Send-arcade List Games.

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations clearly indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description contradicts this by stating 'operation class write' while also saying 'Intent: read/discovery workflow'. This inconsistency creates confusion about the tool's behavior. The description does not add value beyond annotations and introduces error.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and contains repetitive SAP MCP boilerplate (e.g., routing and pricing guidance) that is not relevant to the tool's core function. The essential purpose is stated in the first sentence, but the rest is bloated and confusing, reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (1 optional enum parameter, read-only, idempotent, with output schema), the description should be succinct. Instead, it includes irrelevant write operation guidance and SAP MCP routing details. The description does not adequately clarify what 'games' constitutes or the scope of listing, making it less complete 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 for the single parameter 'status' with an enum. The description does not add any additional parameter details beyond what the schema already provides. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'List available games on Send Arcade,' which is a clear verb+resource purpose. However, it then adds contradictory SAP MCP context claiming 'operation class write,' which undermines clarity by mixing read and write semantics.

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 says 'Use for Send Arcade game listing and play flows' but does not distinguish from the sibling 'send-arcade_playGame'. It also includes irrelevant guidance about confirming before writes, which is misleading for a read-only tool. No explicit when-not-to-use or alternative guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send-arcade_playGameSend-arcade Play GameAInspect

Enter and play a game on Send Arcade (pays entry fee via transaction). SAP MCP context: Protocol send-arcade; operation class write. Use for Send Arcade game listing and play flows. Confirm account, wager or spend, and game rules before writes. Keep gaming activity separate from SAP identity unless it is intentionally part of an agent profile.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
gameIdYesGame ID parameter for Send-arcade Play Game.
walletYesSolana public key (base58)
betAmountNoRaw token amount (smallest unit)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it 'pays entry fee via transaction' and advises to 'Confirm account, wager or spend, and game rules before writes.' This provides useful behavioral context beyond annotations. However, it does not disclose return value or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with multiple paragraphs, including repetitive SAP MCP execution guidance that also appears in the input schema description. While front-loaded with core purpose, it could be more concise. Every sentence is not essential.

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 parameter count (3), high schema coverage, and presence of annotations and output schema, the description is moderately complete. It explains the core action and fee payment, but does not describe the output (e.g., transaction signature, game result) or any post-conditions. The SAP MCP guidance addresses execution constraints but not tool outcome.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter (gameId, wallet, betAmount) already has a description in the input schema. The tool description does not add additional meaning beyond what the schema provides. Per guidelines, baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Enter and play a game on Send Arcade (pays entry fee via transaction).' This provides a specific verb (play) and resource (game), and distinguishes from sibling send-arcade_listGames which lists games.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes usage context: 'Use for Send Arcade game listing and play flows. Confirm account, wager or spend, and game rules before writes.' It provides explicit guidance to confirm before writing, and includes SAP MCP execution details about pricing and routing. However, it does not explicitly state when not to use this tool versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sns_resolveDomainSns Resolve DomainA
Read-onlyIdempotent
Inspect

Resolve a .sol domain to its owner wallet address. SAP MCP context: Protocol sns; operation class read. Use to resolve a .sol domain through AgentKit SNS helpers. For SAP-linked domains, prefer sap_sns_resolve_domain because it returns SAP MCP-shaped context.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesFull domain name (e.g. "myname.sol")

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds context by stating 'operation class read' and provides execution guidance about pricing (paid builder) and routing (estimate first, then pay). This adds behavioral detail beyond annotations, though some info is system-level.

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 starts with a clear purpose but then includes extensive SAP MCP execution guidance that is arguably boilerplate and not specific to this tool. While the first sentence is concise, the additional text makes it verbose. Could be more focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 resolve tool with one parameter, output schema present, and comprehensive annotations, the description covers purpose, usage guidelines, and execution context. It lacks discussion of edge cases or error handling, but the output schema likely covers return format. Overall fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the parameter. The description simply rephrases the domain parameter as 'Full domain name (e.g. "myname.sol")' without adding new constraints or format details. Hence, the description adds minimal semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool resolves a .sol domain to its owner wallet address, using a specific verb-resource pair. It distinguishes itself from the sibling sap_sns_resolve_domain by noting that for SAP-linked domains, the sibling should be preferred because it returns SAP MCP-shaped context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('Use to resolve a .sol domain through AgentKit SNS helpers') and when to prefer an alternative ('For SAP-linked domains, prefer sap_sns_resolve_domain'). This provides clear usage guidance, including exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sns_reverseLookupSns Reverse LookupBInspect

Reverse-lookup all .sol domains owned by a wallet. SAP MCP context: Protocol sns; operation class read. Use to find the SNS domain associated with a wallet. For SAP profile checks, pair this with sap_sns_resolve_wallet or sap_sns_check_ownership.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid builder; estimate first, then pay/build and finalize unsigned transactions locally when returned. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet address to reverse-lookup

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'operation class read', which implies a read-only operation, but the annotation readOnlyHint is false, indicating potential side effects. This is a direct contradiction. Additionally, the description includes pricing and workflow details, but the contradiction overrides any positive contribution.

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 core purpose is stated in the first sentence, but the description includes lengthy SAP MCP boilerplate and execution guidance that, while useful, reduces conciseness. The structure is adequate but could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (one parameter, output schema exists), the description covers the purpose, usage guidance, and workflow instructions. It is complete enough for an AI agent to understand how to use it, though the contradiction reduces trust.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with a description for 'wallet' ('Wallet address to reverse-lookup'). The description does not add significant meaning beyond what the schema already provides, hence baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Reverse-lookup all .sol domains owned by a wallet' and 'Use to find the SNS domain associated with a wallet.' It distinguishes from sibling tools like sns_resolveDomain (which does forward resolution) and sap_sns_resolve_wallet, making the purpose specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool ('Use to find the SNS domain associated with a wallet') and provides pairing guidance with sibling tools for SAP profile checks. It does not explicitly state when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sol_get_balanceGet SOL BalanceA
Read-onlyIdempotent
Inspect

Fetch the SOL balance for a wallet or account using the configured Solana RPC endpoint.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
pubkeyNoAlias for address
addressNoWallet or account public key in base58
commitmentNoOptional commitment override

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false, establishing the tool as safe and read-only. The description adds context about using the configured Solana RPC endpoint, routing instructions, and the signer boundary (no keypair bytes), which goes beyond annotations. However, it lacks details on potential rate limits or response size.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains two sentences of functional description followed by a lengthy block of 'SAP MCP execution guidance' that is repetitive (appears again in the schema description). This bloat reduces conciseness; the core purpose could be conveyed in one sentence without the boilerplate.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 (read-only, one resource), the annotations, and the presence of an output schema (indicated by context), the description adequately covers the tool's behavior and constraints. The execution guidance adds useful context for the agent's decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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, so each parameter (pubkey, address, commitment) is adequately documented in the schema. The description adds no extra semantic information about these parameters beyond the schema, so it meets the baseline but does not exceed expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it fetches the SOL balance for a wallet or account, using a specific verb ('Fetch') and resource ('SOL balance'). It distinguishes itself from sibling tools like spl-token_getBalance by focusing on native SOL rather than SPL tokens.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes SAP MCP execution guidance that frames the tool as a read/discovery workflow with free pricing, which helps the agent decide when to use it. However, it does not explicitly compare to sibling tools or state when not to use it, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_burnSpl-token BurnAInspect

Burn SPL tokens from the owner's token account. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)
ownerYesToken account owner
amountYesAmount to burn

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate the tool is not read-only (readOnlyHint=false). The description adds 'operation class write' but does not disclose behavioral details beyond that, such as irreversibility or token supply reduction. SAP-specific execution guidance is provided but does not enhance general behavioral transparency for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose but includes extensive SAP MCP execution guidance that is verbose and likely boilerplate. While structured, it could be more concise; some information (e.g., pricing and routing) may not be necessary for understanding the tool's 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?

The description provides the basic purpose and SAP-specific context but lacks details on prerequisites (e.g., token account existence, authority requirements) and the outcome of the burn operation. Since an output schema exists, return values are not required, but completeness for a straightforward burn operation is moderate.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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, so baseline is 3. The description adds 'Confirm mint, decimals, authority, recipient, and amount before writes,' but this is not entirely aligned with the actual parameters (mint, owner, amount). No additional semantic value beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Burn SPL tokens from the owner's token account,' specifying the verb (burn) and resource (SPL tokens from owner's account). It distinguishes from sibling tools like spl-token_transfer and spl-token_mintTo by explicitly mentioning burn as the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions using the tool for SPL token burn but does not provide explicit when-to-use or when-not-to-use guidance compared to alternatives. It includes a general caution to confirm parameters before writes and notes SAP MCP context, but lacks direct comparison to other spl-token tools like transfer or mint.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_closeAccountSpl-token Close AccountC
Destructive
Inspect

Close a token account and reclaim the rent SOL. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerYesToken account owner
accountYesToken account to close
destinationNoSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructiveHint=true. The description adds that closing reclaims rent SOL, but it omits critical behavioral details: the token account must have zero token balance before closing, and the owner must sign. Without this, the agent may attempt to close a non-empty account and fail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is excessively long with repetitive boilerplate about SAP MCP context, pricing, and routing that is not specific to this tool. Only the first sentence is directly relevant. The rest adds noise and should be moved to a shared 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 this is a destructive write operation with important preconditions (zero balance required), the description does not fully inform the agent. It lacks details about output schema, error conditions, and the critical requirement that the account must be empty. The boilerplate does not compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with basic descriptions for each parameter. The tool description does not add any additional meaning beyond what the schema provides (e.g., no explanation of 'destination' as where rent goes). Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Close a token account and reclaim the rent SOL.' This distinguishes it from sibling tools like spl-token_transfer or spl-token_burn. However, it adds generic SPL token advice that dilutes focus, but the core verb and resource are clear.

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 includes generic statements like 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management,' which incorrectly broadens the tool's scope. It does not provide specific guidance on when to use this tool versus alternatives (e.g., when to close vs burn). There is no mention of prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_deployTokenSpl-token Deploy TokenBInspect

Deploy a new SPL token with Metaplex metadata. Returns the mint address and an unsigned transaction. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
uriNoURI to off-chain metadata JSON (image, description, etc.)
nameYesToken name (stored in Metaplex metadata)
ownerYesToken owner / mint authority wallet
symbolYesToken symbol (e.g. "MYTKN")
decimalsNoToken decimals (default: 9)
isMutableNoWhether metadata is mutable (default: true)
initialSupplyNoRaw token amount (smallest unit, no decimals)
mintAuthorityNoSolana public key (base58)
freezeAuthorityNoSolana public key (base58)
sellerFeeBasisPointsNoRoyalty fee in bps (for fungible with metadata)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description discloses that the tool returns an unsigned transaction, requires payment estimation, has routing constraints, and requires user signing. These details go beyond the readOnlyHint and destructiveHint annotations, which already indicate a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose with repetitive SAP MCP boilerplate and a misleading list of operations. It could be trimmed to front-load the essential purpose and 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 tool's complexity (10 parameters, output schema), the description covers the core action, return value, and important execution constraints. It is sufficiently complete for an informed agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description does not need to add much. It offers only a generic caution to confirm values (mint, decimals, authority, etc.) without parameter-specific elaboration. Baseline score of 3 is 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 first sentence clearly states deploying a new SPL token with Metaplex metadata. However, the following line 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management' is ambiguous and could mislead the agent into thinking this tool handles multiple operations beyond deploy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like spl-token_mintTo or spl-token_transfer. The description focuses on SAP MCP execution context rather than use-case differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_freezeAccountSpl-token Freeze AccountAInspect

Freeze a token account (prevents all transfers). Requires freeze authority. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)
accountYesToken account to freeze
freezeAuthorityYesFreeze authority wallet

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-readonly and non-destructive. The description adds 'Requires freeze authority' and 'prevents all transfers', but does not mention reversibility or side effects. This adds some context beyond annotations but could be richer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence. However, it includes extensive SAP MCP context and execution guidance which may be extraneous for an agent, but does not harm conciseness significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the effect and authority requirement. With an output schema present, return values are defined. However, it omits error conditions (e.g., already frozen) and preconditions, making it adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers all three parameters with descriptions (100% coverage). The description does not add any new semantics beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Freeze a token account (prevents all transfers). Requires freeze authority.' It specifies the verb 'freeze' and the resource 'token account', and distinguishes from siblings like thawAccount.

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 vaguely states 'Use for SPL token ... freeze, thaw, and authority management' but does not provide explicit when-to-use or when-not-to-use guidance. It lacks exclusions or alternatives, relying on implied context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_getBalanceSpl-token Get BalanceC
Read-onlyIdempotent
Inspect

Get token or SOL balance for a wallet. If mint is omitted, returns native SOL balance. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle. Parameter aliases accepted by SAP MCP for agent ergonomics: owner -> wallet, address -> wallet, pubkey -> wallet. Prefer the canonical schema names in new calls.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description claims 'operation class write' while annotations mark it as readOnlyHint=true, creating a contradiction. Later it says 'Intent: read/discovery workflow', but the inconsistency undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long with boilerplate SAP MCP context and repetitive execution guidance. The essential information could be conveyed in one or two 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?

Despite zero parameters and an output schema, the description fails to clearly state what the tool returns (e.g., a balance number). It also includes contradictory operational context, leaving gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters in the schema, the description adds meaning by explaining that omitting mint returns native SOL balance. It also documents parameter aliases, which though not in schema, aids agent ergonomics.

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 first sentence clearly states the tool gets token or SOL balance for a wallet. However, the description includes extraneous context about write operations and SPL token management that dilutes the core purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests using this tool for deploy, mint, transfer, etc., which are write operations and not applicable to getBalance. It does not clearly state when to use this read-only tool versus other balance tools (e.g., sol_get_balance).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_getTokenAccountsSpl-token Get Token AccountsC
Read-onlyIdempotent
Inspect

List all SPL token accounts for a wallet with balances and metadata. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle. Parameter aliases accepted by SAP MCP for agent ergonomics: owner -> wallet, address -> wallet, pubkey -> wallet. Prefer the canonical schema names in new calls.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: free; call directly without x402. Routing: free hosted call; call directly and keep it small/exact when possible. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds information like 'Intent: read/discovery workflow' and 'Pricing: free' beyond annotations, but it also contains a direct contradiction by stating 'operation class write' while annotations set readOnlyHint=true. This inconsistency reduces transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, containing repetitive SAP MCP boilerplate and two separate sections. The critical information is diluted by extraneous context and contradictory statements, making it less concise than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters but an output schema, the description should clarify output structure and differentiate from spl-token_getBalance. It mentions 'balances and metadata' but not specifics, and the contradictory write-operation guidance leaves the agent incompletely informed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0 parameters, so there is nothing to explain. However, the description mentions parameter aliases like 'owner -> wallet' which do not exist in the schema, creating confusion rather than adding value.

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 'List all SPL token accounts for a wallet with balances and metadata,' which is a clear purpose. However, it is undermined by contradictory statements like 'operation class write' and 'Use for SPL token deploy, mint, transfer...' that suggest write capabilities, confusing the tool's actual read-only nature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides vague guidance such as 'Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.' It fails to explicitly differentiate from sibling tools like spl-token_getBalance and incorrectly suggests using this tool for write operations, misleading the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_mintToSpl-token Mint ToAInspect

Mint additional tokens to a destination wallet (requires mint authority). SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address
amountYesAmount to mint (raw, smallest unit)
destinationYesWallet to receive minted tokens
mintAuthorityYesMint authority wallet

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant value beyond annotations: states it's a write workflow, requires mint authority, pricing is paid read-premium, routing restrictions, and signer boundary. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and includes repetitive SAP MCP guidance (e.g., 'Intent: local-signer write workflow...'). The core purpose and guidelines could be conveyed in 2-3 sentences. The redundancy hurts conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers prerequisites, restrictions, pricing, routing, and signer boundaries. Output schema exists, so return values are covered. Slightly incomplete in not mentioning the transaction result format, but overall sufficiently complete for a 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?

Schema coverage is 100% and schema descriptions already define parameters clearly. Description only adds a generic reminder to confirm parameters, which does not enhance semantic understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Mint additional tokens to a destination wallet (requires mint authority).' This is a specific verb-resource pair that distinguishes it from sibling tools like spl-token_burn, spl-token_transfer, etc. No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use (requires mint authority, confirm before writes), when-not-to-use (hosted accountless write blocked, do not call as paid hosted write), and alternatives (use local sap_payments bridge or hosted unsigned builder). Also includes pricing and routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_rugCheckSpl-token Rug CheckBInspect

Check a token for potential rug pull risks: mint/freeze authority, holder concentration, liquidity. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint to analyze

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description states 'operation class write' while the tool's purpose is to check risks (a read operation). This contradicts the nature of the tool. Additionally, annotations have readOnlyHint=false, but the tool appears read-only. The description does not clarify what happens during the check, e.g., whether it modifies state or requires authentication. The SAP boilerplate adds generic cost and signer info but does not resolve the read/write confusion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description contains a clear first sentence but is then cluttered with repetitive SAP MCP boilerplate about pricing, routing, and signer boundary. This boilerplate is not specific to this tool and distracts from the core purpose. The structure is not concise; the extra content could be removed or placed elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description lists three risk areas (mint/freeze authority, holder concentration, liquidity) and mentions SAP MCP context. However, it does not explain how the check is performed (e.g., on-chain analysis, simulation) or what the output contains (though an output schema exists). The paid read-premium note is present but not elaborated. Overall, it provides a basic understanding but lacks depth.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter 'mint' has a clear schema description 'Token mint to analyze', covering 100% of the parameters. The tool description adds no additional semantics beyond this. The schema already adequately documents the parameter meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check a token for potential rug pull risks: mint/freeze authority, holder concentration, liquidity.' It uses a specific verb 'check' and resource 'token', and specifies the risk areas, distinguishing it from sibling tools like spl-token_transfer or spl-token_deployToken.

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 says 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management.' This suggests using the rug check for those operations, but it's unclear and may be confusing. It does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. The SAP boilerplate adds no usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_thawAccountSpl-token Thaw AccountCInspect

Thaw (unfreeze) a previously frozen token account. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
mintYesToken mint address (base58)
accountYesToken account to thaw
freezeAuthorityYesFreeze authority wallet

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-readOnly, non-destructive, non-idempotent. The description only adds the basic operation and then focuses on SAP execution procedures, not behavioral traits like permission requirements, state changes, or side effects. No additional value beyond the first sentence.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is excessively long with repetitive SAP boilerplate (e.g., pricing, routing, signer boundary) that does not belong in a tool description. The core purpose is one sentence, and the rest is verbose and poorly structured for an AI agent.

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 mutation tool with an output schema, the description is incomplete. It does not explain prerequisites (account must be frozen), the effect of thawing, or what the output contains (e.g., transaction ID). The SAP instructions are out of place and do not cover functional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The tool description does not add any meaning beyond the schema; it only gives a generic reminder to confirm data. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence clearly states the action 'Thaw (unfreeze) a previously frozen token account' with a specific verb and resource. This distinguishes it from sibling tools like spl-token_freezeAccount.

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 explicit when-to-use or when-not-to-use guidance relative to alternatives. The generic list 'SPL token deploy, mint, transfer, burn, freeze, thaw' does not help an agent decide when to use thawAccount instead of freezeAccount or other token operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

spl-token_transferSpl-token TransferCInspect

Transfer SPL tokens between wallets. Optionally creates the recipient ATA. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient wallet address
fromYesSender wallet address
memoNoOptional memo to attach to the transaction
mintYesToken mint address
amountYesAmount to transfer (raw, smallest unit)
createAtaNoCreate recipient ATA if needed (default: true)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already disclose readOnlyHint=false and destructiveHint=false. The description adds that the tool 'optionally creates the recipient ATA,' which is a useful side effect. However, it does not explain what happens on failure (e.g., insufficient balance) or clarify the non-destructive nature (transfer does not destroy tokens). No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly long due to repetitive SAP boilerplate text (e.g., 'SAP MCP context', 'Intent: local-signer write workflow') that clutters the core purpose. The key operational info is front-loaded (first sentence), but the rest is noise that could mislead or distract an agent.

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 an output schema, the description misses important context: what happens if createAta is false and no ATA exists? What are prerequisites (e.g., token account existence)? The SAP boilerplate provides no tool-specific completeness. The description is insufficient for an agent to handle edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 6 parameters are fully described in the input schema (100% coverage). The description does not add any additional semantic meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Transfer SPL tokens between wallets' and mentions optional ATA creation, distinguishing it from siblings like spl-token_burn or spl-token_mintTo. However, the later line 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management' is overly broad and could cause confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a generic line 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management' that applies to the whole suite, not this tool specifically. It does not clearly indicate when to use this tool versus siblings like spl-token_mintTo or spl-token_burn, and the SAP boilerplate does not provide actionable 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.

spl-token_transferSolSpl-token Transfer SolCInspect

Transfer native SOL between wallets via SystemProgram.transfer. SAP MCP context: Protocol spl-token; operation class write. Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management. Confirm mint, decimals, authority, recipient, and amount before writes. Use token tools alongside SAP payments and settlement tools only when token operations are part of the agent service lifecycle.

SAP MCP execution guidance: Intent: local-signer write workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient wallet address
fromYesSender wallet address
memoNoOptional memo to attach
amountYesAmount in lamports (1 SOL = 1_000_000_000 lamports)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already indicate readOnlyHint=false, meaning it's a write operation. The description adds no behavioral details beyond that (e.g., irreversible transfer, signature requirements). The long block on SAP MCP execution guidance is about platform routing, not tool behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, containing multiple paragraphs of generic SAP MCP context that is not specific to this tool. The core purpose is stated in one sentence, but the rest is cluttered with irrelevant or contradictory information, making it inefficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (native SOL transfer), the description should clearly state it, mention prerequisites (e.g., balance), and differentiate from SPL token transfer. It fails to do so, and includes a misleading statement about SPL tokens. An output schema exists but does not compensate for the lack of core 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 with clear parameter explanations (e.g., amount in lamports with conversion). The description adds no additional meaning beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Transfer native SOL between wallets via SystemProgram.transfer', which is a clear verb+resource. However, it then says 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management', which directly contradicts the tool's purpose. This confusion reduces clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit when-to-use or when-not-to-use guidance. It includes a misleading statement about using for SPL token operations, which is incorrect for this native SOL transfer tool. No alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

staking_getStakeAccountsStaking Get Stake AccountsB
Read-onlyIdempotent
Inspect

List all stake accounts for a wallet with delegation status. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.

SAP MCP execution guidance: Intent: read/discovery workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesWallet to query stake accounts for

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description directly contradicts annotations by stating 'operation class write' while annotations declare readOnlyHint=true. This is a serious inconsistency. Though it provides additional behavioral context (pricing, routing, signer boundary), the contradiction undermines trust and warrants a score of 1 per the rules.

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 structured with bolded sections but is lengthy and includes repetitive information (e.g., pricing and routing details duplicated from the input schema). Some content could be streamlined or moved to system-level guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has rich annotations and a complete input schema, and the description covers purpose and usage. However, the contradictory statement about operation class write reduces reliability, and the duplication of schema content adds noise. An output schema exists but is not detailed in the description.

Complex tools with many parameters or behaviors need more documentation. Simple tools 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 parameter 'wallet'. The description does not add additional meaning beyond what the schema already provides (e.g., format, examples), so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all stake accounts for a wallet with delegation status. It distinguishes from sibling staking write tools and other query tools by specifying its scope (SOL and liquid staking) and referencing SAP vs AgentKit staking tools for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on when to use (SOL and liquid staking flows) and explicitly directs users to SAP staking tools for SAP protocol accounts and AgentKit staking tools for external protocols, offering clear alternatives. However, it does not explicitly state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

staking_stakeJupSOLStaking Stake Jup S O LAInspect

Stake SOL for jupSOL (Jupiter liquid staking). Instant liquidity, auto-compounding. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in lamports to stake for jupSOL
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide basic hints (write, not destructive, not idempotent). The description adds behavioral traits: it mentions pricing model ('paid read-premium'), routing constraints ('hosted accountless write is blocked'), and signer boundary ('user-controlled local profile or external signer'). This significantly extends beyond annotation information, though some SAP-specific jargon may be dense.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose, blending core purpose with extensive SAP MCP execution guidance (pricing, routing, signer boundary). While front-loaded, the additional context is not concise and could be streamlined. Several sentences are redundant or overly detailed for an agent deciding tool selection.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence 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 write operation, the description covers purpose, usage, and behavioral constraints. An output schema exists, so return values are not required. The description is sufficient for an agent to understand when and how to use the tool, though it relies on SAP-specific knowledge.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing clear descriptions for both parameters. The tool description adds minimal parameter-level detail beyond what the schema already offers (only generic advice like 'confirm amount'). Thus baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Stake SOL for jupSOL (Jupiter liquid staking)', specifying the verb (stake), resource (SOL), and derivative (jupSOL). It distinguishes from siblings like staking_stakeSOL (native staking) and staking_stakeSolayer (Solayer) by explicitly naming 'Jupiter liquid staking'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Use for SOL and liquid staking flows' and cautions to confirm terms before writes. It also contrasts with SAP staking tools ('Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols'). This provides clear context, though it could be more explicit about sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

staking_stakeSOLStaking Stake S O LAInspect

Stake native SOL to a validator. Creates a stake account and delegates. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in lamports to stake
walletYesWallet to stake from
validatorNoSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations, explaining that the tool creates a stake account and delegates. Annotations already indicate it's a write operation (readOnlyHint=false), so the description provides useful specifics without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is bloated with SAP MCP execution guidance that is tangential to the staking operation. Only the first two sentences are directly relevant, making it less concise than ideal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the basic operation and some precautions (confirm validator, amount, lockup terms), but omits details like prerequisites (e.g., sufficient balance) and return value specifics. An output schema exists but the description does not reference it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for all three parameters, so the schema already documents them. The description adds limited extra meaning, only implying that 'validator' is the target and 'amount' is in lamports. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool stakes native SOL to a validator, creating a stake account and delegating. This distinguishes it from siblings like staking_stakeJupSOL and staking_stakeSolayer, which stake different tokens.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates use for SOL and liquid staking flows and contrasts with SAP and AgentKit staking tools. However, it does not explicitly list when not to use this tool vs. other staking tools, relying on sibling names for distinction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

staking_stakeSolayerStaking Stake SolayerAInspect

Stake SOL for sSOL via Solayer. Re-staking protocol with additional yield. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount in lamports to stake for sSOL
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this tool modifies state (readOnlyHint=false) and is not destructive. The description adds a pre-write checklist but does not disclose specific side effects, such as stake account creation or potential lockup periods. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is overly verbose, containing extensive SAP MCP execution guidance (pricing, routing, signing) that is not directly relevant to the tool's purpose. The core purpose is front-loaded but buried under boilerplate, reducing conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations, the description provides sufficient context for basic usage (protocol, checklist). However, it lacks details about the logical flow (e.g., what happens post-staking, sSOL rollup) that would help an AI handle edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and both parameters have clear descriptions in the schema. The description text does not add additional semantic value beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Stake SOL for sSOL via Solayer' with a verb and specific resource, distinguishing it from sibling tools like staking_stakeSOL (native staking) and staking_stakeJupSOL (Jupiter SOL). It explicitly mentions 'Re-staking protocol with additional yield' and 'Use for SOL and liquid staking flows', leaving no ambiguity about 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises 'Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes' and differentiates SAP staking tools from AgentKit tools. However, it does not explicitly state when to use this tool versus sibling staking tools beyond the protocol name, leaving some reliance on the sibling list for differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

staking_unstakeJupSOLStaking Unstake Jup S O LBInspect

Unstake jupSOL back to SOL. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount of jupSOL to unstake
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false), the description only generically says 'operation class write' and includes boilerplate about pricing and routing that does not disclose specific behavioral traits like what happens to the stake, fee implications, or error scenarios. There is no mention of if the operation is reversible or any side effects. Minimal value added over annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and includes a large block of generic SAP MCP execution guidance that is not specific to this tool, repeated also in the input schema. The actual tool-specific content is only the first two sentences. The boilerplate detracts from conciseness and should be omitted or placed elsewhere.

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 existence of an output schema (context signal) and full parameter documentation, the description provides adequate context: it identifies the tool's purpose, warns about prerequisites (confirm terms and ownership), and distinguishes from siblings. However, it lacks explanation of return values or failure modes, and the boilerplate adds noise. Adequate but not exemplary.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully covers both parameters (amount, wallet) with clear descriptions. The description does not add any additional semantic information about the parameters beyond listing them in a generic advisory ('Confirm... amount...'). Since schema coverage is 100%, baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb and resource: 'Unstake jupSOL back to SOL.' It distinguishes this tool from sibling staking tools by specifying it is for jupSOL (vs SOL or Solayer) and mentions SAP vs external protocols. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use guidance: 'Use for SOL and liquid staking flows.' It also advises to confirm validator, amount, lockup terms, and account ownership before writes. It differentiates from external staking tools by saying 'Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.' This helps an agent choose the correct tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

staking_unstakeSOLStaking Unstake S O LBInspect

Deactivate and withdraw SOL from a stake account. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
walletYesSolana public key (base58)
stakeAccountYesStake account to deactivate and withdraw

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds that the tool deactivates and withdraws SOL, but does not provide additional behavioral details such as cooldown periods, reversibility, or permission requirements. The description does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is excessively verbose, containing repeated SAP MCP system instructions that are not tool-specific. While the first sentence is concise, the rest could be significantly trimmed to improve readability.

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 parameter set and presence of an output schema, the description covers basic usage but lacks important context about the staking lifecycle (e.g., deactivation and withdrawal being separate steps in Solana), leaving room for agent confusion.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both 'wallet' and 'stakeAccount'. The description does not add extra semantics beyond what the schema provides, achieving the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description begins with a clear statement: 'Deactivate and withdraw SOL from a stake account.' This specifies the action (deactivate and withdraw), resource (SOL), and distinguishes from sibling unstake tools for jupSOL and Solayer. However, the subsequent lengthy SAP MCP guidance detracts from clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises to 'Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes' and distinguishes between SAP staking tools and AgentKit staking tools, helping the agent choose when to use this tool. It does not explicitly state when not to use it, but sibling names imply coverage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

staking_unstakeSolayerStaking Unstake SolayerAInspect

Unstake sSOL back to SOL via Solayer. SAP MCP context: Protocol staking; operation class write. Use for SOL and liquid staking flows. Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes. Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.

SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: paid read-premium; estimate first, then use sap_payments_call_paid_tool when the runtime cannot replay x402 natively. Routing: hosted accountless write is blocked; do not call this as a paid hosted write and no x402 payment should be charged. Use the local sap_payments bridge or a hosted unsigned builder when user signing is required. Signer boundary: user-controlled local profile or external signer; OOBE hosted MCP remains non-custodial.

ParametersJSON Schema
NameRequiredDescriptionDefault
amountYesAmount of sSOL to unstake
walletYesSolana public key (base58)

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYesMCP content blocks returned to the caller.
isErrorNoTrue when the tool result represents an application-level error.
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide little (readOnlyHint=false, destructiveHint=false). Description lacks specifics on unstaking behavior (e.g., lockup periods, fees, success outcomes). It mentions 'lockup/unstake terms' to confirm but does not disclose what the tool itself does beyond the generic 'Unstake sSOL back to SOL'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is verbose and padded with repetitive SAP MCP boilerplate that does not pertain to tool-specific behavior. The first sentence is clear, but the rest is unnecessarily long for the core 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 simple 2-parameter tool with an output schema (assumed present), the description covers the basic operation but omits details on return values or post-unstake state. The generic execution guidance partially substitutes, but completeness is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema already has 100% parameter coverage with descriptions. Tool description adds little beyond confirming that the agent should verify these values, but does not introduce new semantic meaning. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the verb (unstake) and resource (sSOL to SOL via Solayer). Distinguishes from sibling tools like staking_unstakeSOL by specifying the protocol (Solayer).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Use for SOL and liquid staking flows' and provides guidance on confirming terms and ownership. Also differentiates between SAP and AgentKit staking tools, helping the agent choose correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.