SAP MCP Server
Server Details
Solana-native MCP gateway for SAP, DeFi tools, SNS identity, and x402 payments.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 3.7/5 across 268 of 268 tools scored. Lowest: 2.2/5.
Tools are grouped by protocol prefix (e.g., jupiter_, sap_), which clearly distinguishes cross-protocol overlap. However, within the sap_ namespace, there are multiple similar fetch/settle tools for different versions (e.g., sap_fetch_escrow vs sap_fetch_escrow_v2), creating some minor ambiguity that the descriptions mostly resolve.
All tools follow a consistent snake_case pattern with protocol prefix (protocol_action). This holds across every protocol, including odd mixes like 'sns_reverseLookup'? Actually it's sns_reverseLookup (still snake_case), so highly consistent. No mixing of conventions.
268 tools is an enormous surface for a single server. It aggregates many unrelated protocols (DeFi, NFT, gaming, SNS, bridging, etc.), making it hard for an agent to navigate and understand the scope. This should be split into multiple specialized servers.
Each protocol area covers core operations (e.g., CRUD for escrows, basic swap flows), but there are notable omissions like delete operations for many resources, missing SNS record management beyond basic fetch, and no tool for unregistering an agent. The surface is broad but shallow in places.
Available Tools
268 tools3land_buyNFT3land Buy N F TADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | Yes | Solana public key (base58) | |
| listingId | Yes | 3.Land listing ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description adds context with 'operation class write' and a note to confirm before writes. It also includes a nuanced guideline about pairing with SAP registry metadata, which adds 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains multiple sentences, including a somewhat redundant listing of flows and a guideline sentence. It could be more concise by merging related information, but is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 high schema coverage, the description provides sufficient context for an agent to understand when and how to use the tool. It includes confirmation prerequisites and pairing notes, though does not detail all behavioral side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 tool description does not add new semantic information beyond what the schema provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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,' using a specific verb and resource. It distinguishes from sibling tools like 3land_listForSale and 3land_cancelListing by focusing on purchase, and provides context for the overall flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions use in a set of flows but does not explicitly state when to use this tool versus alternatives. It gives a guideline to confirm before writes, but lacks clear when-not-to-use guidance or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
3land_cancelListing3land Cancel ListingADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| seller | Yes | Solana public key (base58) | |
| listingId | Yes | 3.Land listing ID to cancel |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive hint. Description confirms write operation and need to confirm state, but does not add 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, first is direct. Some generic SAP context adds length but not much value. Adequately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema and full param coverage, description is minimally complete. Could mention what happens on success, failure reasons, or idempotency if already cancelled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters fully (100% description coverage). Description adds no extra meaning to parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Cancel an active NFT listing on 3.Land.' verb+resource, distinct from sibling tools like 3land_listForSale.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for the flow (collection, minting, listing, cancellation) and advises confirming state before writes, but lacks explicit when-to-use vs 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 CollectionBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Collection name | |
| image | Yes | Collection cover image URL | |
| owner | Yes | Collection owner wallet | |
| symbol | Yes | Collection symbol | |
| creators | No | Creators parameter for 3land Create Collection. | |
| royaltyBps | No | Royalty Bps parameter for 3land Create Collection. | |
| description | No | Collection description |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds redundant 'operation class write' and offers a pre-check recommendation, but does not disclose potential side effects, permission requirements, or behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, starting with the core purpose. The inclusion of SAP MCP context is somewhat extraneous but not overly verbose. The structure is reasonably efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does not need to explain return values. It covers the basic usage context and includes a pre-check reminder. However, it lacks details on prerequisites (e.g., wallet setup) and does not address the full scope of parameters or potential errors.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema fully documents each parameter. The description does not provide additional semantic information about parameters beyond listing required fields. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new NFT collection on 3.Land marketplace.' This is a specific verb+resource combination that distinguishes it from sibling tools like 3land_buyNFT, 3land_cancelListing, etc., which handle different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides general context: 'Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows.' It advises to confirm marketplace conditions before writes. However, it does not explicitly state when to use this tool versus alternatives, nor does it give clear exclusions or prerequisites.
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 SaleBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | NFT mint to list | |
| price | Yes | Listing price (in specified token) | |
| expiry | No | ISO 8601 listing expiry timestamp | |
| seller | Yes | Solana public key (base58) | |
| priceMint | No | NFT mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'operation class write' but annotations include 'readOnlyHint: true', which is a direct contradiction. Listing an NFT is a mutation, so the tool is not read-only. This inconsistency severely harms transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains extra context like 'SAP MCP context: Protocol 3land; operation class write' which is redundant. The sentence about 'pair marketplace actions...' is unclear and could be omitted. It is not optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is incomplete due to the annotation contradiction. It does not explain return values or behavior when listing fails. The tool is a write operation, but the annotations misrepresent its nature, leading to confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaningful semantics beyond the schema; it merely lists parameters like 'mint' and 'price' without additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: 'List an NFT for sale on 3.Land in any SPL token.' The verb 'list' and resource 'NFT for sale' are explicit. It distinguishes from sibling tools like '3land_buyNFT' and '3land_cancelListing' by mentioning the listing flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Confirm marketplace price, seller/buyer wallet, collection, and listing state before writes' which provides some guidance but lacks explicit when-not-to-use or alternatives. The mention of 'pair marketplace actions with SAP registry metadata' is vague and not actionable.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name name or domain value used by 3land Mint And List. | |
| image | Yes | NFT image URL | |
| owner | Yes | Solana public key (base58) | |
| price | Yes | Listing price in token amount | |
| supply | No | Edition supply | |
| priceMint | No | NFT mint address (base58) | |
| attributes | No | Attributes parameter for 3land Mint And List. | |
| collection | Yes | 3.Land collection ID | |
| description | No | Description parameter for 3land Mint And List. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds context about SAP MCP, operation class write, and pairing with SAP registry metadata, which provides extra behavioral context. However, it does not disclose failure modes, atomicity, or what happens if listing fails after mint, leaving gaps in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, covering purpose, context, and a warning in a few sentences. It is front-loaded with the main action. However, some phrasing ('SAP MCP context') is technically dense and may not be immediately clear, slightly reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a complex operation (mint + list), 9 parameters (100% coverage but weak descriptions), and existing output schema, the description provides minimal completeness. It lacks parameter explanations, return value details, and error scenarios. It is adequate for a basic understanding but insufficient for confident invocation without further context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but many parameter descriptions are generic (e.g., 'Name name or domain value used by 3land Mint And List.'). The description does not clarify parameter meaning or relationships beyond what the schema provides, adding little value. Baseline 3 is reduced due to poor schema descriptions not compensated by the main description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool mints an NFT and lists it for sale, which is a specific verb-resource combination. It distinguishes from siblings like 3land_createCollection, 3land_listForSale, and 3land_buyNFT by combining both actions, making the purpose unique and clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides broad usage context ('Use for 3.Land NFT collection, minting, listing, cancellation, and purchase flows') and a warning to confirm state before writes, but it does not explicitly differentiate when to use this tool versus alternatives like 3land_listForSale or 3land_createCollection. Lacks explicit when/why-not guidance.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) | |
| positionKey | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 no additional behavioral context beyond 'Add collateral,' such as prerequisites, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise and clear. The second sentence about SAP registration is somewhat extraneous for describing this tool's purpose, but it doesn't significantly detract from readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the basic operation but lacks details on prerequisites, success/failure conditions, or wallet ownership requirements. With an output schema present, return values are covered, but more context would be helpful for a financial tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear descriptions for amount, wallet, and positionKey. The tool description does not add any extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Add collateral to an existing Adrena position,' which is a specific verb+resource. Among sibling tools like adrena_openPosition, adrena_closePosition, adrena_removeCollateral, this clearly distinguishes its unique action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., adrena_removeCollateral). The note about SAP registration is tangential and 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.
adrena_closePositionAdrena Close PositionBDestructiveInspect
Close a perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| positionKey | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description confirms the destructive nature ('close') but adds no further behavioral context such as fee implications, collateral return, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise and focused. The second sentence introduces unrelated SAP context, which dilutes clarity and does not help in selecting this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 lacks important context such as prerequisites (e.g., must have an existing position), side effects, and the outcome of closing (e.g., returns of collateral). For a destructive tool, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema alone documents both parameters as 'Solana public key (base58)'. The description adds no additional meaning or usage hints for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Close') and the resource ('perpetual position on Adrena Protocol'). It distinguishes from sibling tools like adrena_openPosition and adrena_addCollateral by specifying closing rather than opening or modifying positions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes SAP context about registering agents, but provides no guidance on when to use this tool versus other Adrena tools (e.g., when you have an open position). No prerequisites 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.
adrena_getPositionsAdrena Get PositionsARead-onlyIdempotentInspect
Get all open positions on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false. Description adds no additional behavioral context beyond stating it gets open positions. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first conveys purpose, second adds contextual SAP guidance. Could be slightly more concise by removing the second sentence if not needed, but not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read-only tool with one parameter and output schema. Annotations fill safety/idempotency. No missing info about auth or return format (output schema exists).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description covers the single parameter (wallet) with 'Solana public key (base58)'. Description text does not add further parameter meaning. Baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get all open positions on Adrena Protocol.' Distinct from sibling adrena tools (addCollateral, closePosition, etc.) and includes protocol name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for reading positions, but does not explicitly state when to use this tool vs. other similar tools like drift_getPositions. The SAP context sentence instructs when to use other tools, not this one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adrena_openPositionAdrena Open PositionCInspect
Open a leveraged perpetual position on Adrena Protocol. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Side parameter for Adrena Open Position. | |
| market | Yes | Market symbol (e.g. "SOL", "BTC", "ETH") | |
| wallet | Yes | Solana public key (base58) | |
| leverage | Yes | Leverage multiplier | |
| stopLoss | No | Stop loss price | |
| takeProfit | No | Take profit price | |
| collateralMint | Yes | Collateral token mint (e.g. USDC, SOL) | |
| collateralAmount | Yes | Raw token amount (smallest unit) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false) and non-destructive (destructiveHint=false), but the description does not add details about side effects, such as collateral locking, price impact, or liquidation risks. The behavioral transparency beyond annotations is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but includes an irrelevant second sentence about SAP tool registration that does not belong. It is not optimally concise; the extraneous content reduces effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters, required fields, and a mutation operation, the description lacks essential context about prerequisites (e.g., wallet connection), post-operation effects, or relationship to other adrena tools. An output schema exists but the description does not reference expected outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema itself describes each parameter adequately. The description does not add extra meaning or context for 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Open a leveraged perpetual position') and the protocol ('Adrena Protocol'). However, the inclusion of SAP MCP context about registering tools adds confusion and does not directly clarify the tool's purpose, slightly diluting clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative tools like adrena_closePosition or adrena_getPositions. The SAP context is about registration, not usage scenarios. No explicit when-to-use or when-not-to-use information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
adrena_removeCollateralAdrena Remove CollateralBDestructiveInspect
Remove collateral from an Adrena position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) | |
| positionKey | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, indicating a destructive operation. The description adds no further behavioral context beyond stating the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The second sentence about SAP context is potentially useful but slightly extraneous for core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic action but lacks context on prerequisites, reversibility, or post-conditions. The presence of an output schema mitigates the need for return value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 tool description does not add additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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,' using a specific verb and resource. It distinguishes from sibling tools like adrena_addCollateral and adrena_closePosition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The mention of SAP tools is tangential and not about this tool's usage context.
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 DomainsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | Filter by TLD | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety and idempotency. The description reinforces this with 'Protocol alldomains; operation class read' and notes it as 'discovery context', which implies no side effects. Given the rich annotations, the description adds useful context without being essential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and front-loaded with the core purpose. The first sentence is direct, and the second adds usage context. The 'SAP MCP context' line is redundant with annotations but not overly verbose. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple read operation with an output schema, so the description does not need to explain return values. It covers the essential 'what' and 'when', though it omits details like pagination or data freshness. For a list discovery tool, this is adequate and complete enough for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with clear descriptions for both parameters (wallet: 'Solana public key (base58)', tld: 'Filter by TLD'). The description adds 'across all TLDs' to hint that omitting tld returns all TLDs, but does not provide additional detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all domains owned by a wallet across all TLDs', specifying the verb 'get' and the resource 'domains owned by a wallet'. It distinguishes from sibling tools like alldomains_registerDomain (create) and alldomains_resolveDomain (resolve specific domain), making its unique purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use to list domains owned by a wallet through AllDomains' and advises 'Use as discovery context before choosing a name to associate with an agent'. This provides clear when-to-use guidance, though it does not explicitly mention when not to use or alternatives beyond the sibling tools' implied separation.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tld | No | TLD if not included in domain string | |
| domain | Yes | Full domain (e.g. "myname.abc", "trader.bonk") | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are present and the description adds operational context ('operation class write') and a caution about pre-write confirmation. However, it does not detail side effects, costs, or ownership changes beyond registration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two main sentences and a context line. It is front-loaded with purpose, though the 'SAP MCP context' line is somewhat technical and can be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core purpose, usage caveats, and parameter context. However, it lacks information on prerequisites (e.g., wallet funding), success conditions, and potential errors. The output schema is present, so return values are not needed in the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%. The description adds context for the tld parameter by listing supported TLDs and provides general guidance for parameter usage. This adds meaningful value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'register' and resource 'domain' with supported TLDs. It distinguishes from sibling tools like sns_resolveDomain by specifying 'use only when not SNS-specific', but mixes registration and resolution workflows slightly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('use only when the requested name service is not SNS-specific') and advises caution ('Confirm domain, TLD, owner, and renewal or purchase terms before writes'). No explicit mention of alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alldomains_resolveDomainAlldomains Resolve DomainARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Full domain to resolve |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. Description adds that it resolves to owner wallet and does not change ownership or records, reinforcing the safe read behavior. Includes operation class 'read' context. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each serving a distinct purpose: first sentence defines the action, second provides context and usage guidance. No wasted words, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 param, read-only, output schema present), the description covers purpose, usage constraints, and behavioral guarantees. It adequately distinguishes from sibling tools and completes the picture for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and baseline is 3. Description adds 'multi-TLD domain' clarification to the parameter 'domain', enhancing meaning beyond the schema's 'Full domain to resolve'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Resolve' and resource 'multi-TLD domain to its owner wallet'. Distinguishes from SNS-specific tools by specifying 'Use only when the requested name service is not SNS-specific.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Resolve an AllDomains name without changing ownership or records', and when not to use: 'Use only when the requested name service is not SNS-specific.' Provides clear context with alternatives implied (SNS tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blinks_buildActionUrlBlinks Build Action UrlBInspect
Build and optionally wrap a Solana Action URL for sharing as a Blink. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | Template parameters to encode | |
| baseUrl | Yes | Action API endpoint | |
| blinkProvider | No | Optionally wrap in a Blink provider URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description mentions 'operation class read' while annotations set readOnlyHint=false, creating a contradiction. Beyond that, no disclosures about side effects, authentication, or rate limits. The tool builds URLs which is typically non-destructive, but the inconsistency with annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is somewhat verbose with repetitive context like 'SAP MCP context: Protocol blinks; operation class read'. Could be more concise by removing redundant phrases. Still, it is not excessive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose, parameters, and usage context. Minor gap: does not explain what 'validate actions' entails, but overall complete enough for a URL builder.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the baseline is 3. The description adds minimal value over schema (e.g., 'optionally wrap' for blinkProvider). No additional syntax or format details are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it builds a Solana Action URL, optionally wraps it as a Blink. It distinguishes from sibling tools like blinks_getAction, blinks_confirmAction, blinks_executeAction by mentioning metadata fetch, validation, and POST action preparation. However, the phrase 'operation class read' contradicts the non-read-only annotation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for constructing action URLs before executing or confirming, but does not explicitly state when not to use it or name alternatives. Sibling tools are listed but not referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blinks_confirmActionBlinks Confirm ActionCInspect
Confirm a completed Solana Action by sending the tx signature back to the Action provider. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.
| Name | Required | Description | Default |
|---|---|---|---|
| actionUrl | Yes | Action URL parameter for Blinks Confirm Action. | |
| signature | Yes | Transaction signature after signing and submitting |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'operation class read,' which contradicts the annotation readOnlyHint=false, indicating the tool performs a write operation. It also mentions 'Preview and validate actions before signing,' which is misleading because this tool is for confirming after signing. No details are provided about the POST request or side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat verbose, including extraneous terms like 'SAP MCP context' and 'operation class read.' While it conveys the main idea, it could be more concise and better structured, with the key action stated upfront and unnecessary details removed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explain return values. However, it lacks clarity on the workflow step (after signing) and does not fully compensate for the contradiction between the description and annotations. It is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (actionUrl, signature). The tool description adds nothing beyond the schema, so it meets the baseline. There is no additional explanation of the parameters' semantics or expected formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool confirms a completed Solana Action by sending the transaction signature back to the Action provider. It distinguishes its purpose from sibling tools like blinks_executeAction and blinks_getAction by focusing on the confirmation step. However, it includes vague phrases like 'metadata fetch, validation, and POST action preparation' that dilute the specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context about using the tool for Solana Actions and Blinks workflows, but it does not explicitly state when to use this tool versus alternatives like blinks_executeAction or blinks_validateActionsJson. There is no guidance on prerequisites (e.g., having a signed transaction) 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.
blinks_executeActionBlinks Execute ActionADestructiveInspect
Execute a Solana Action — sends wallet to the Action endpoint and receives a transaction to sign. SAP MCP context: Protocol blinks; operation class write. Use to execute a Solana Action POST flow. Confirm the action metadata, parameters, expected transaction, and user intent before invoking. Preview and validate action output before signing or submitting any returned transaction through SAP transaction tools.
| Name | Required | Description | Default |
|---|---|---|---|
| params | No | Key-value parameters to fill Action template variables | |
| wallet | Yes | User wallet to sign the transaction | |
| actionUrl | Yes | Action endpoint URL (from getAction links) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds context about the flow—sending wallet to endpoint, receiving transaction to sign—and cautions about confirming intent before invocation. This aligns with annotations and provides helpful safety context beyond what annotations alone convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and focused, with key information front-loaded. Every sentence adds value without redundancy. It includes protocol context and operational guidance in a compact format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (write operation with transaction signing), the description covers essential behavioral and safety aspects. The presence of an output schema reduces the need to detail return values. However, it could briefly mention that the transaction needs to be submitted after signing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptions for all three parameters. The description does not add significant new meaning beyond the schema, though it mentions 'actionUrl' comes from getAction links, which is minor added context. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool executes a Solana Action by sending a wallet to an endpoint and receiving a transaction to sign. It specifies the protocol (Blinks) and operation class (write), distinguishing it from sibling tools like blinks_getAction or blinks_confirmAction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance to confirm metadata, parameters, expected transaction, and user intent before invoking, and advises previewing and validating output before signing. It mentions using SAP transaction tools for submission, but does not explicitly state when not to use the tool or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blinks_getActionBlinks Get ActionARead-onlyIdempotentInspect
Fetch metadata for a Solana Action (Blink) — returns title, description, available actions, and parameters. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.
| Name | Required | Description | Default |
|---|---|---|---|
| actionUrl | Yes | Solana Action URL (https endpoint implementing the Actions spec) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds context about preview/validation, but does not contradict annotations or provide new behavioral details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose and output, each sentence serves a distinct role. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with 1 param, complete annotations, and output schema present, the description adequately covers what to expect and when to use it. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning to the actionUrl parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches metadata for a Solana Action (Blink), listing specific return fields. It distinguishes from sibling tools like blinks_executeAction and blinks_confirmAction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using the tool for metadata fetch, validation, and POST action preparation before signing. It implies a step in a workflow but does not explicitly name alternatives or exclusion conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blinks_resolveBlinkUrlBlinks Resolve Blink UrlARead-onlyIdempotentInspect
Resolve a Blink URL (e.g. dial.to link) to its underlying Solana Action URL. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.
| Name | Required | Description | Default |
|---|---|---|---|
| blinkUrl | Yes | Blink URL (e.g. https://dial.to/?action=solana-action:...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, so safety is clear. The description adds workflow context (preview before signing) but no new behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the action, then context. No unnecessary words; every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with rich annotations and output schema, the description covers purpose, usage, and workflow integration. Lacks details on error cases but is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter description included. The description reinforces the parameter's purpose but doesn't add new semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it resolves a Blink URL to an underlying Solana Action URL, with examples and use cases. It distinguishes from siblings by specifying 'underlying Solana Action URL' and SAP context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use guidance: for metadata fetch, validation, and POST action preparation, and as a preview before signing. It lacks explicit when-not-to-use but implies its read-only nature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
blinks_validateActionsJsonBlinks Validate Actions JsonAInspect
Validate a domain's actions.json file — checks if a website correctly implements the Solana Actions spec. SAP MCP context: Protocol blinks; operation class read. Use for Solana Actions and Blinks metadata fetch, validation, and POST action preparation. Preview and validate actions before signing or submitting transactions through SAP transaction tools.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Domain to check for actions.json (e.g. "jupiter.exchange") |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=false, which suggests possible writes, but the description implies a read-only check ('checks if a website correctly implements'). The description does not clarify if the tool makes network requests or modifies state, which is a gap in transparency given the annotation. No contradiction, but more detail would help.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences and a brief note on SAP MCP context. It is front-loaded with the main purpose, but the structure could be improved for readability (e.g., bullet points). No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 sufficiently explains what it does and when to use it. It covers the domain validation purpose and its place in the transaction preparation workflow. Completeness is adequate for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a well-described parameter 'domain'. The description adds no extra meaning beyond the schema's definition, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a domain's actions.json file against the Solana Actions spec, which distinguishes it from sibling tools that handle other aspects (build URL, confirm, execute, etc.). The verb 'Validate' and the resource 'domain's actions.json file' 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool is used for validation and preview before signing or submitting transactions, providing context on when to use it. It does not explicitly state when not to use it or list alternatives, but the sibling tools imply the workflow, so it's clear enough.
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 BridgeBDestructiveInspect
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, advertise it with sap_publish_tool_by_name and include bridge capability IDs in sap_register_agent or sap_update_agent.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to bridge (raw) | |
| sender | Yes | Sender address | |
| tokenIn | Yes | Token address on source chain | |
| tokenOut | Yes | Token address on destination chain (use "0x0" for native) | |
| recipient | Yes | Recipient address on destination chain | |
| slippageBps | No | Slippage tolerance in bps | |
| sourceChain | Yes | Source chain ID (e.g. 7565164 for Solana) | |
| destinationChain | Yes | Destination chain ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true; description adds note about confirming fees and finality, but no further behavioral details like potential delays or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is somewhat verbose, includes SAP MCP context that may not be relevant for general agent use. Could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters and output schema, description covers basic usage but lacks details on return values, error handling, or finality guarantees. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline 3 is appropriate. Description reiterates some parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool bridges tokens across chains using deBridge DLN. Slightly confusing by also mentioning Wormhole in usage, but overall specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on when to use (cross-chain asset movement) and mentions calling status tool after submission. However, does not explicitly differentiate from sibling bridging_bridgeWormhole 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.
bridging_bridgeDeBridgeStatusBridging Bridge De Bridge StatusADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | Yes | deBridge DLN order ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'operation class read', indicating a non-destructive read operation. However, annotations set destructiveHint=true and readOnlyHint=false, contradicting the description. The description adds useful behavioral context (read, audit trail) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences: purpose, context, usage. It is well-structured and front-loaded, with no redundant content, though could be slightly more terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 operation), the description is relatively complete. It explains the workflow (after bridge submission), output context (audit trail), and benefits from the presence of an output schema (not shown but present). Minor gap: no explanation of output format beyond schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter is already fully documented. The description does not add additional semantics beyond the schema, providing no extra value for parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the status of a deBridge DLN cross-chain transfer, using a specific verb (Check) and resource (status of transfer). It distinguishes from siblings like bridging_bridgeWormholeStatus by naming the protocol (deBridge) and specifying the DLN order ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to call this after bridging_bridgeDeBridge and to keep the result with the user-facing audit trail. It provides clear sequential context but does not explicitly mention when not to use it or list alternatives, though sibling tools provide implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bridging_bridgeWormholeBridging Bridge WormholeADestructiveInspect
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, advertise it with sap_publish_tool_by_name and include bridge capability IDs in sap_register_agent or sap_update_agent.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token address on source chain | |
| amount | Yes | Amount to bridge (raw, smallest unit) | |
| sender | Yes | Sender wallet on source chain | |
| recipient | Yes | Recipient address on destination chain | |
| relayerFee | No | Raw token amount (smallest unit, no decimals) | |
| sourceChain | Yes | Source chain identifier (e.g. "solana", "ethereum", "base", "polygon") | |
| destinationChain | Yes | Destination chain identifier |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and description adds that it is a write operation ('operation class write') and mentions checking fees and finality expectations, providing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is clear and front-loaded with core purpose. Includes SAP context which may be necessary but adds length. Overall well-structured but slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers usage, prerequisites, post-submission steps (calling status tool), and SAP agent integration. Fully adequate for a bridge write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, so parameters are well-documented. Description adds value by emphasizing confirmation of source chain, destination chain, token mint, amount, recipient, route fees, and finality expectations, but does not add new semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it bridges tokens across chains via Wormhole, supports Solana ↔ EVM chains. Distinguishes from sibling tools like bridging_bridgeDeBridge and bridging_bridgeWormholeStatus by naming the protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use for cross-chain asset movement through Wormhole, provides prerequisites (confirm source/destination chains, token, amount, etc.), and advises to call status tool after submission. Also mentions SAP agent registration where applicable.
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 StatusBDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sequence | Yes | Wormhole sequence number from bridgeWormhole response | |
| sourceChain | Yes | Source Chain parameter for Bridging Bridge Wormhole Status. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There is a clear contradiction between the description and annotations. The description states 'operation class read', but annotations have readOnlyHint=false and destructiveHint=true, implying the tool may be destructive and not read-only. The description does not explain any destructive behavior or resolve this inconsistency, making it misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two sentences plus a brief SAP context note. It front-loads the purpose and usage guidance. Every sentence adds value, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 address the destructive hint from annotations and does not explain whether the status check has any side effects or requires special permissions. The contradiction undermines completeness. The description is inadequate for a tool with contradictory metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes both parameters ('sequence' and 'sourceChain') adequately. The description adds no additional meaning or context beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check the status of a Wormhole bridge transfer.' It distinguishes from its sibling bridging_bridgeWormhole by specifying that it is used after a bridge submission. The verb 'check' and resource 'status of a Wormhole bridge transfer' are specific and clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Call this after bridging_bridgeWormhole and keep the resulting status with the user-facing bridge audit trail.' It tells when to use the tool (after bridge submission) and what to do with the result. No explicit exclusions or alternatives are mentioned, but the context is clear and sufficient.
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 VARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Days parameter for Coingecko Get O H L C V. | |
| tokenId | Yes | Token ID mint, symbol, or token identifier used by Coingecko Get O H L C V. | |
| vsCurrency | No | Vs Currency parameter for Coingecko Get O H L C V. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 data is 'advisory context' and 'On-chain SAP settlement and escrow state remain authoritative for payments', which provides useful behavioral nuance 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains five sentences, some redundant (e.g., 'Use market data as advisory context' is partly repeated). The first sentence is clear, but subsequent sentences could be merged or removed for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and comprehensive annotations, the description covers the core purpose and advisory nature. However, it does not explain the meaning of OHLCV or the days parameter options beyond the schema. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all parameters described, but the descriptions are tautological (e.g., 'Days parameter for Coingecko Get O H L C V'). The tool description adds no extra meaning about parameters. Baseline score of 3 is appropriate as parameters are documented but not enriched.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get OHLCV (price chart) data from CoinGecko', specifying the verb (get) and resource (OHLCV data). It distinguishes from sibling coingecko tools (e.g., getTokenPrice, getPoolsByToken) by focusing on price chart data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for using this tool: 'Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV' and notes that on-chain SAP state is authoritative. However, it lumps multiple data types into a single sentence, which could cause confusion since the tool is specifically for OHLCV. Still, it gives clear advisory context.
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 TokenARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page pagination control for Coingecko Get Pools By Token. | |
| network | No | Network Solana network or cluster selector for Coingecko Get Pools By Token. | |
| tokenAddress | Yes | Token contract/mint address |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the safety profile is clear. The description adds that data is from 'CoinGecko on-chain DEX tracker' and is 'off-chain market data', which is helpful context but does not disclose behavioral traits like pagination or rate limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and a brief metadata line ('SAP MCP context:...'), which is relatively concise. The metadata line might be extraneous for agent selection, but overall structure is clear and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists (not shown but assumed complete), so return values don't need elaboration. The description provides sufficient context about data source and advisory nature. Could mention limitations (e.g., only covers tracked DEXs), but overall adequate for a read-only pool lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with parameter descriptions for all three fields (tokenAddress, page, network). The description adds no parameter-specific info 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Get all liquidity pools for a token from CoinGecko on-chain DEX tracker', clearly identifying the verb ('Get'), resource ('liquidity pools for a token'), and data source. It distinguishes from sibling coingecko tools that focus on prices, trends, or OHLCV.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: 'Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV' and contrasts with on-chain SAP data. It implicitly guides when to use this pool-specific tool vs other coingecko tools, but lacks explicit exclusionary guidance (e.g., 'For token prices, use getTokenPrice instead').
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 InfoARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | CoinGecko token ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds 'operation class read' and specifies return type (description, links, market data) and advisory nature. No contradictions; adds useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a few sentences with front-loaded purpose. Each sentence adds value: purpose, operation class, use cases, advisory role. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, 1 parameter, and no nested objects, the description sufficiently explains what data is returned and its advisory role. It covers the key behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (tokenId, described as 'CoinGecko token ID'). The description does not elaborate on tokenId format or source, so it adds no additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get detailed token information from CoinGecko (description, links, market data)'. It names specific data types and distinguishes from sibling tools like coingecko_getTokenPrice and coingecko_getTrending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: 'Protocol coingecko; operation class read' and lists use cases: 'off-chain market data such as token prices, trending assets, token info, pools, and OHLCV'. It also advises 'Use market data as advisory context. On-chain SAP settlement and escrow state remain authoritative for payments,' guiding when to use versus not. It doesn't directly name alternatives but implies distinction.
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 PriceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenId | Yes | CoinGecko token ID or contract address | |
| vsCurrency | No | Vs Currency parameter for Coingecko Get Token Price. | |
| include24hChange | No | Include24h Change parameter for Coingecko Get Token Price. | |
| include24hVolume | No | Include24h Volume parameter for Coingecko Get Token Price. | |
| includeMarketCap | No | Include Market Cap parameter for Coingecko Get Token Price. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds value by clarifying that data is off-chain and advisory, which is important for trustworthiness. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a context note, all front-loaded. Every sentence is informative with no fluff. Efficiently communicates purpose and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage context, and behavioral notes. With an output schema present, it need not detail return fields. Lacks mention of data freshness or real-time nature, but overall 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.
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 parameter-specific meaning beyond what the schema already provides. It only mentions general market data categories.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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', specifying the source and broad scope. It lists examples (token prices, trending assets, token info, pools, OHLCV) that distinguish it from siblings like coingecko_getOHLCV and coingecko_getTokenInfo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this tool for off-chain market data and emphasizes that on-chain SAP data is authoritative for payments, providing clear usage context. However, it does not explicitly contrast with sibling 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.
coingecko_getTopGainersLosersCoingecko Get Top Gainers LosersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| duration | No | Duration parameter for Coingecko Get Top Gainers Losers. | |
| vsCurrency | No | Vs Currency parameter for Coingecko Get Top Gainers Losers. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 valuable context: it confirms the operation class as 'read', labels the data as off-chain and advisory, and clarifies that on-chain SAP settlement remains authoritative for payments. This goes beyond the annotations to warn the agent about data provenance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient: it opens with the core purpose in one sentence, then adds contextual sentences about protocol, operation class, and usage guidance. It is not overly verbose and front-loads the primary action. Could be slightly more concise by omitting the redundant mention of 'token prices, trending assets...' but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, no required, output schema present), the description covers the essential points: what it retrieves, its off-chain nature, and advisory role. The warning that on-chain state is authoritative for payments is a helpful contextual detail. The output schema supplies return format information, so the description does not need to elaborate further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the descriptions are minimal but present. The tool description does not add any additional meaning about the parameters (e.g., expected format for vsCurrency or typical duration values). Since coverage is high, a baseline of 3 is appropriate; no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'top gainers and losers from CoinGecko'. It also provides context about the protocol and operation class, distinguishing it from other sibling tools like coingecko_getTrending or coingecko_getTokenPrice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only broadly groups this tool with other off-chain market data tools ('Use for off-chain market data such as token prices, trending assets, token info, pools, and OHLCV'), but does not provide explicit guidance on when to choose this specific tool over alternatives like coingecko_getTrending or coingecko_getTokenInfo. No when-not-to-use or alternative differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
coingecko_getTrendingCoingecko Get TrendingARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. Description adds that it returns trending tokens and NFTs, which is expected and does not reveal new 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences that are clear and front-loaded. Could be slightly more concise but effectively communicates purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and no parameters, the description sufficiently explains the tool's functionality and advisory nature, though it could mention returning JSON or pagination if applicable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; schema coverage is 100%. Description adds nothing about parameters but is not required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets trending tokens and NFTs on CoinGecko, and among sibling CoinGecko tools it is distinct as the only one for trending data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Describes use for off-chain market data and clarifies that on-chain data is authoritative. Does not explicitly exclude use cases but implies advisory context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
das_getAssetDas Get AssetBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Asset mint address |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the tool is for 'asset discovery by owner, creator, collection, or search query', which contradicts the fact that it only accepts an id parameter. This is misleading about the actual behavior. Annotations already indicate readOnlyHint, destructiveHint false, etc., but the description adds inaccurate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short with three sentences, but one sentence ('SAP MCP context: Protocol das; operation class read.') adds little value for the agent. The first sentence is clear, but the second sentence is misleading. Conciseness is acceptable but not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should be sufficient, but it is incomplete due to inaccurate claims about discovery capabilities. It does not mention error handling or what happens when an asset is not found, leaving gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the sole parameter id having a clear description 'Asset mint address'. The description does not add any additional 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.
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', using a specific verb and resource. It distinguishes from sibling tools like das_getAssetsByOwner or das_searchAssets by emphasizing 'single asset', which aligns with the id parameter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides useful context: 'Use for read-only DAS NFT and asset discovery' and advises to 'Prefer DAS reads before Metaplex writes when validating existing assets.' However, it does not explicitly exclude cases where alternative tools should be used or mention when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
das_getAssetsByCollectionDas Get Assets By CollectionBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page pagination control for Das Get Assets By Collection. | |
| limit | No | Limit controlling the maximum number of results returned by Das Get Assets By Collection. | |
| collectionAddress | Yes | NFT mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds 'read-only' and 'operation class read,' which are consistent but do not reveal new 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short but includes an overgeneralized sentence about 'owner, creator, collection, or search query' that may mislead. It could be tighter and more focused on the collection scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and full schema descriptions, the description covers the basic operation but lacks mention of pagination (page/limit) and does not fully differentiate this tool from its DAS siblings. Adequate but with gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 in the schema. The description does not add extra meaning or constraints for any parameter; baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence 'Get all NFTs in a collection via DAS' clearly states the verb and resource. However, the later sentence about 'owner, creator, collection, or search query' blurs the distinction from sibling tools like das_getAssetsByOwner and das_searchAssets, reducing differentiation within the DAS family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises 'Prefer DAS reads before Metaplex writes when validating existing assets,' which provides cross-category guidance but does not specify when to choose this tool over other DAS read tools (e.g., das_getAssetsByOwner). No explicit exclusions 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.
das_getAssetsByCreatorDas Get Assets By CreatorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page pagination control for Das Get Assets By Creator. | |
| limit | No | Limit controlling the maximum number of results returned by Das Get Assets By Creator. | |
| onlyVerified | No | Only Verified parameter for Das Get Assets By Creator. | |
| creatorAddress | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds 'Protocol das; operation class read' which reinforces annotations but offers no additional behavioral context beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loading the main purpose, then adding protocol context and usage guidance. No redundant or extraneous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is fairly complete. However, it does not explicitly differentiate from sibling tools like das_getAssetsByOwner or das_getAssetsByCollection, which could help in selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (though auto-generated). The tool description does not add any parameter-specific information beyond the schema, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get all NFTs/assets created by a specific creator via DAS', specifying the verb 'Get' and the resource 'NFTs/assets by creator'. It distinguishes from siblings by focusing on creator-based queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context: 'Use for read-only DAS NFT and asset discovery... Prefer DAS reads before Metaplex writes'. However, it does not explicitly exclude alternative tools like das_getAssetsByOwner 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.
das_getAssetsByOwnerDas Get Assets By OwnerBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page pagination control for Das Get Assets By Owner. | |
| after | No | After parameter for Das Get Assets By Owner. | |
| limit | No | Limit controlling the maximum number of results returned by Das Get Assets By Owner. | |
| before | No | Before parameter for Das Get Assets By Owner. | |
| sortBy | No | Sort By parameter for Das Get Assets By Owner. | |
| ownerAddress | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description reinforces read-only behavior and pagination support but adds little 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is three sentences, efficient and front-loaded. Each sentence adds value: purpose, context, and usage guidance. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and annotations, the description is mostly adequate. However, it suggests broader filtering capabilities (by creator, collection, etc.) that the input schema does not support, potentially misleading agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions pagination but does not explain parameters like page, after, limit, before, or sortBy beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves NFTs/assets by owner with pagination. However, it also implies it can be used for discovery by creator, collection, or search query, which is not reflected in the input schema and may cause confusion with sibling tools like das_getAssetsByCreator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description advises to prefer DAS reads before Metaplex writes, giving context for when to use it. But it does not differentiate among DAS read tools (e.g., das_getAssetsByCreator) or clearly 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.
das_searchAssetsDas Search AssetsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page pagination control for Das Search Assets. | |
| burnt | No | Burnt parameter for Das Search Assets. | |
| limit | No | Limit controlling the maximum number of results returned by Das Search Assets. | |
| frozen | No | Frozen parameter for Das Search Assets. | |
| jsonUri | No | Json URI parameter for Das Search Assets. | |
| grouping | No | Grouping key-value pair (e.g. ["collection", "mint_address"]) | |
| compressed | No | Compressed parameter for Das Search Assets. | |
| ownerAddress | No | Solana public key (base58) | |
| creatorAddress | No | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds minimal behavioral context, just stating 'operation class read.' It does not disclose pagination details, result limits, or potential side effects beyond what annotations cover. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise at 4 sentences, front-loading the core action. The third sentence adds context ('SAP MCP context: Protocol das; operation class read') and the last provides usage guidance. It could be slightly tighter, but overall well-structured without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 optional parameters and no required fields, the description omits guidance on parameter combinations or defaults. While output schema exists, return values are not addressed. The description covers high-level usage but lacks completeness for complex filtering scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, but descriptions are generic (e.g., 'Burnt parameter for Das Search Assets'). The tool's description does not add meaningful semantics to individual parameters, only listing use cases (owner, creator, etc.). Baseline 3 is appropriate as schema covers parameter existence, but not enrichment.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Search NFTs/assets with flexible filters via DAS.' It specifies the resource (NFTs/assets) and action (search), and distinguishes from sibling tools like das_getAsset by mentioning 'flexible filters' and listing discovery criteria (owner, creator, collection, search query).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance: 'Use for read-only DAS NFT and asset discovery by owner, creator, collection, or search query.' It also advises preference: 'Prefer DAS reads before Metaplex writes when validating existing assets for an agent profile, collection, or metadata update.' While it doesn't explicitly list when not to use it, the context and alternative are implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drift_borrowDrift BorrowBInspect
Borrow tokens on Drift against deposited collateral. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) | |
| subAccountId | No | Sub Account ID parameter for Drift Borrow. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, so the description's 'Borrow' aligns with a write operation. However, it adds no further behavioral detail (e.g., effect on collateral, fees, or debt). The bar is lower due to annotations, but the description minimally augments transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence is front-loaded with the core purpose. The second sentence about SAP MCP context is slightly tangential but does not detract significantly. Every sentence serves a purpose, though the second could be omitted for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (financial borrowing on Drift) and the presence of an output schema, the description covers the basic purpose and prerequisite. However, it lacks details on what happens after borrowing (e.g., impact on borrowing power, liquidation risk). It is adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing clear descriptions for all four parameters. The description does not add extra meaning beyond the schema's parameter definitions, meeting the baseline for a well-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Borrow tokens on Drift against deposited collateral,' which specifies the verb (borrow), resource (tokens on Drift), and the prerequisite (deposited collateral). It distinguishes from sibling tools like drift_deposit and drift_lend, but does not explicitly contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'against deposited collateral,' indicating a prerequisite. However, it lacks explicit 'when to use' or alternative recommendations, such as comparing with drift_lend or drift_openPerpPosition. The SAP MCP context is tangential to tool usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drift_closePerpPositionDrift Close Perp PositionBDestructiveInspect
Close a perpetual position on Drift. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| marketIndex | Yes | Market Index parameter for Drift Close Perp Position. | |
| subAccountId | No | Sub Account ID parameter for Drift Close Perp Position. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the description's assertion of 'close' aligns. However, no additional behavioral details (e.g., signature requirements, settlement behavior) are disclosed beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise, but the SAP MCP context paragraph is irrelevant to the tool's core function and adds unnecessary length. The description could be more focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 specify return values or side effects (e.g., transaction broadcast, balance changes). For a destructive action, details like confirmation and error handling are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 three parameters. The description adds no extra meaning beyond what's in the schema, merely repeating 'Market Index parameter' for marketIndex.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Close a perpetual position on Drift', using a specific verb (close) and resource (perp position). It distinguishes from sibling tools like drift_openPerpPosition and drift_getPositions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a tangent about SAP MCP context discussing sap_register_agent etc., but does not provide guidance on when to use this tool vs alternatives like drift_closePosition (adrena) or other protocols. No explicit when-to-use or 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.
drift_depositDrift DepositBInspect
Deposit tokens into a Drift account for trading or lending. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token to deposit (e.g. USDC, SOL) | |
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) | |
| subAccountId | No | Sub Account ID parameter for Drift Deposit. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false). The description adds the purpose (trading/lending) but does not disclose other behavioral traits like fees or confirmation requirements. It adequately complements 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence clearly states the tool's purpose. The second sentence provides SAP context, which is somewhat tangential but not excessively verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains the core purpose but omits details like prerequisites (e.g., needing a Drift account) and the role of the optional subAccountId. With a output schema present, it is minimally adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 four parameters. The tool description adds no additional parameter-level information 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'deposit' and resource 'tokens into a Drift account' with the purpose 'for trading or lending'. It distinguishes from sibling tools like drift_withdraw, drift_lend, and drift_borrow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The SAP context provided is about other tools, not about deposition alternatives. There is no guidance on preconditions or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drift_getPositionsDrift Get PositionsARead-onlyIdempotentInspect
Get all open positions and account info for a Drift account. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| subAccountId | No | Sub Account ID parameter for Drift Get Positions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds no extra behavioral traits, but is consistent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient two-sentence description. The SAP context adds moderate value but is somewhat tangential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With read-only intent, output schema, and clear parameter schema, the description is nearly complete. Could mention wallet requirement explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions; the description adds no further meaning to the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get all open positions and account info for a Drift account,' distinguishing it from sibling tools like drift_openPerpPosition and drift_closePerpPosition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mentions other tools but not for this specific use case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drift_lendDrift LendBInspect
Lend tokens on Drift to earn interest. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) | |
| subAccountId | No | Sub Account ID parameter for Drift Lend. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false, openWorldHint=true) are present, but the description does not expand on behavioral aspects such as state changes, multiple call effects, or prerequisites beyond the schema. It adds no new 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, the first stating the core purpose and the second providing SAP context. No waste; front-loaded with the primary action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, returns are handled. However, the description omits details about the lending process (e.g., requiring a Drift subaccount, interest accrual mechanics, and the role of the subAccountId parameter). It is adequate but not comprehensive for a DeFi lending tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explain individual parameters beyond the schema, but the schema already covers them. No additional semantic value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Lend tokens on Drift to earn interest.' It uses a specific verb (lend), resource (tokens on Drift), and purpose (earn interest), distinguishing it from sibling tools like drift_borrow or drift_deposit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes SAP MCP context but does not provide guidance on when to use drift_lend versus other financial tools like drift_deposit or lulo_deposit. It lacks explicit when-to-use or when-not-to-use criteria for the lending action itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
drift_openPerpPositionDrift Open Perp PositionCInspect
Open a perpetual futures position on Drift. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| size | Yes | Position size in base token units | |
| price | No | Limit price (required for limit orders) | |
| wallet | Yes | Solana public key (base58) | |
| leverage | No | Leverage multiplier (max 20x) | |
| direction | Yes | Direction parameter for Drift Open Perp Position. | |
| orderType | No | Order Type parameter for Drift Open Perp Position. | |
| reduceOnly | No | Reduce Only parameter for Drift Open Perp Position. | |
| marketIndex | Yes | Drift perp market index (0=SOL-PERP, 1=BTC-PERP, etc.) | |
| subAccountId | No | Sub Account ID parameter for Drift Open Perp Position. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, implying mutability but not destruction. The description adds no behavioral context beyond annotations—no mention of side effects (e.g., gas fees, collateral requirements, liquidation risk), execution semantics, or error handling. For a financial mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description has two distinct parts: a clear one-sentence tool purpose, followed by a lengthy, tangential paragraph about SAP integration context. This extra content is not relevant to opening a perp position and dilutes the description. The useful part is very short but the irrelevant part adds unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (reducing the need to document return values), the description fails to cover prerequisites (e.g., funded Drift account, sufficient balance, subaccount setup) or constraints (e.g., market availability, leverage limits beyond the max 20x). For a complex DeFi trading tool, this leaves critical gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for all 9 parameters. The tool description itself adds no parameter information beyond the title, which is acceptable because the schema already provides full semantics. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Open' and the resource 'a perpetual futures position on Drift'. It distinguishes from sibling tools like drift_closePerpPosition by naming a specific action. The resource and action are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes irrelevant SAP MCP context about registering agents, but provides no guidance on when to use this tool instead of other perp opening tools (e.g., adrena_openPosition) or related Drift tools (e.g., drift_deposit, drift_borrow). There is no 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.
drift_withdrawDrift WithdrawBDestructiveInspect
Withdraw tokens from a Drift account. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) | |
| subAccountId | No | Sub Account ID parameter for Drift Withdraw. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the mutation nature is clear. The description adds no additional behavioral context, such as side effects, prerequisites, or confirmation steps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise and essential. The second sentence about SAP MCP context is tangential and adds clutter for a Drift tool. It could be shorter or moved elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is minimal. While annotations and schema cover many aspects, the description lacks information about the role of subAccountId, any prerequisites, or return value expectations. For a destructive operation, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The tool description adds no 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Withdraw tokens from a Drift account,' using a specific verb and resource. It distinguishes from sibling tools like drift_deposit and drift_borrow through the action of withdrawal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It only mentions SAP context, which is unrelated to Drift operations. The name implies usage but no explicit when-to-use or when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags parameter for Gibwork Create Bounty. | |
| title | Yes | Bounty title | |
| creator | Yes | Solana public key (base58) | |
| deadline | No | Deadline (Unix timestamp) | |
| rewardMint | No | Token mint address (base58) | |
| description | Yes | Detailed bounty description | |
| rewardAmount | Yes | Reward amount |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds 'with on-chain escrow' but does not elaborate on behavioral details like required wallet signatures, transaction costs, or reversibility. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise but includes filler like 'SAP MCP context: Protocol gibwork; operation class write' which is metadata, not descriptive. The sentence about 'Use for bounty creation, listing, and work submission' is redundant and partially incorrect. Could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. However, the description omits important context about the on-chain nature (e.g., requiring a Solana signature, funds for escrow). For a tool with 7 parameters and 4 required, more procedural context would help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions 'scope, payout, recipient, deliverable evidence' but does not explicitly map these to parameter names or add meaning beyond the schema. No added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new bounty on Gib Work with on-chain escrow,' specifying the verb 'create' and the resource 'bounty.' Among siblings (gibwork_listBounties, gibwork_submitWork), it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says 'Use for bounty creation, listing, and work submission,' conflating purposes that are handled by sibling tools (listBounties, submitWork). It lacks explicit when-to-use or when-not-to-use guidance and does not differentiate from 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 BountiesCRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Tags parameter for Gibwork List Bounties. | |
| limit | No | Limit controlling the maximum number of results returned by Gibwork List Bounties. | |
| status | No | Status parameter for Gibwork List Bounties. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, clearly indicating a safe read operation. However, the description states 'SAP MCP context: Protocol gibwork; operation class write,' directly contradicting the readOnly hint. This is a serious inconsistency, earning the lowest score 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes unnecessary sentences like 'SAP MCP context: Protocol gibwork; operation class write' and generic advice that belongs elsewhere. It could be trimmed to just 'List available bounties on Gib Work.' The extra content wastes tokens and does not enhance understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) reducing the need to describe returns, but the description fails to explain how to use the optional parameters effectively, mention default behavior, or clarify pagination. For a list endpoint, more context on filtering and result structure would be expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 three parameters (tags, limit, status). The description adds no extra meaning or context for the parameters, which is acceptable given full schema coverage, but no value is added beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'List available bounties on Gib Work,' which clearly states the primary purpose. However, it then adds 'Use for bounty creation, listing, and work submission,' which confuses the scope by including creation and submission—tasks belonging to sibling tools. This muddies the purpose and reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 gibwork_createBounty or gibwork_submitWork. It includes irrelevant advice about 'Confirm scope, payout, recipient, and deliverable evidence before writes' and 'Use SAP attestation or feedback tools after work completion,' which do not help an agent decide when to call listBounties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gibwork_submitWorkGibwork Submit WorkCDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| notes | No | Notes parameter for Gibwork Submit Work. | |
| wallet | Yes | Solana public key (base58) | |
| bountyId | Yes | Bounty ID parameter for Gibwork Submit Work. | |
| submissionUrl | Yes | URL to the completed work (PR, doc, etc.) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true and readOnlyHint: false. The description adds 'operation class write' and confirmation advice, but does not detail specific side effects or state changes beyond that. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes irrelevant SAP context and redundant mentions of bounty creation/listing, making it less concise. It could be trimmed to focus solely on work submission.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions confirmation before writes and post-usage SAP tools, but given the destructive nature and existence of an output schema, it could provide more details on expected outcomes or error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameter-specific information beyond what the schema provides, which already has minimal descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states 'Submit completed work for a Gib Work bounty,' but subsequent text says 'Use for bounty creation, listing, and work submission,' which conflates this tool with sibling tools gibwork_createBounty and gibwork_listBounties, reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Confirm scope, payout, recipient, and deliverable evidence before writes,' which provides some prerequisite guidance. However, it does not differentiate when to use this tool versus sibling tools, and it misleadingly includes 'bounty creation, listing' in its scope.
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 StatusBRead-onlyIdempotentInspect
Check the status of a submitted Jito bundle. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| bundleId | Yes | Bundle ID parameter for Jito Get Bundle Status. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds no additional behavioral context beyond 'check the status'. No mention of idempotency, open world, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, but the second sentence about SAP MCP context is tangential and does not directly describe the tool. Could be split or removed to improve focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a simple one-parameter tool and an output schema, the description is minimally adequate but fails to explain the bundle lifecycle or when to use this tool after jito_sendBundle.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description for bundleId merely restates the schema description. No additional meaning or context about what constitutes a valid bundle ID.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks the status of a submitted Jito bundle, with a specific verb 'check' and resource 'bundle status'. It distinguishes from siblings like jito_sendBundle 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.
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 SAP MCP context is irrelevant to usage of this specific tool. No mention of prerequisites or typical workflow after sending a bundle.
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 EstimateARead-onlyIdempotentInspect
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 behavioral traits beyond these, such as data freshness or rate limits. With annotations covering safety, the bar is met but not exceeded.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, with the first being front-loaded and directly relevant. The second sentence adds context but slightly dilutes focus. Still concise overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does but does not mention output shape, precision of estimates, or any limitations. Given an output schema exists, the missing detail is partially mitigated, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the description need not add parameter semantics. Schema coverage is 100% trivially. Baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('Jito tip percentile estimates for bundle inclusion priority'). It clearly distinguishes from sibling Jito tools (jito_sendBundle, jito_getBundleStatus) by focusing on tip estimation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context (bundle inclusion priority) but lacks explicit guidance on when to use this tool versus alternatives or any prerequisites. The SAP context note is tangential to the tool's core purpose.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| tipLamports | No | Raw token amount (smallest unit) | |
| transactions | Yes | Array of base64-encoded signed transactions (max 5) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) indicate the tool modifies state but is not destructive. The description adds 'MEV-protected' and 'atomic execution' as behavioral traits, but does not elaborate on side effects, failure modes, or the bundle submission process. The description adds moderate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences). The first sentence directly states the purpose. The second sentence adds SAP context, which is relevant but slightly tangential. Overall, it is compact with no superfluous wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 2 parameters with 100% schema coverage, annotations, and an output schema (not shown). However, the description omits constraints like max 5 transactions or tip format, which are in the schema but not reinforced. It also lacks guidance on error behavior or output interpretation, leaving some gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description does not add any parameter-specific meaning beyond the schema (e.g., no additional format hints for tipLamports or transactions). Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Send a Jito bundle for MEV-protected, atomic transaction execution.' It includes a specific verb (Send) and resource (Jito bundle), and distinguishes from sibling tools like jito_getBundleStatus (status) and jito_getTipEstimate (tip estimate).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides SAP MCP context but lacks explicit guidance on when to use this tool versus alternatives. It mentions related sap_* tools for registration but does not clarify scenarios or prerequisites for sending a bundle, leaving the agent without actionable usage direction.
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 AADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | Wallet that owns the DCA order | |
| order | Yes | DCA order public key to cancel | |
| recurringType | Yes | Recurring order type — "time" for time-based DCA, "price" for price-triggered | |
| computeUnitPrice | No | Compute Unit Price parameter for Jupiter Cancel D C A. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, but the description adds that the tool only 'creates an unsigned transaction' rather than executing the cancellation directly. This is important behavioral context not captured by annotations. Also mentions the SAP MCP signer policy, which further clarifies the tool's role in a larger workflow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both essential. The first delivers the core purpose. The second provides critical workflow context. No redundant information. Well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (cancel a DCA order), the description is complete. It states what it does, that it produces an unsigned transaction, and how it fits into the broader SAP MCP workflow. An output schema exists, so return values are covered elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 4 parameters, so the baseline is 3. The description does not add additional meaning beyond what the schema already provides. It mentions the recurring order type implicitly but does not elaborate on parameter values or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it creates an unsigned transaction to cancel a DCA recurring order. The verb 'cancel' and resource 'DCA recurring order' are specific. Sibling tools like jupiter_createDCA and jupiter_cancelLimitOrder are distinguished by scope (DCA vs limit orders) and action (cancel vs create/execute).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides contextual guidance: states that this tool produces an unsigned transaction and advises using SAP transaction preview/sign/submit tools afterward. This tells the agent the workflow. However, it does not explicitly compare with alternatives like jupiter_cancelLimitOrder or when not to use this tool, so it is slightly incomplete.
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 OrderADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| maker | Yes | Solana wallet public key (base58) | |
| order | Yes | Order public key to cancel | |
| computeUnitPrice | No | Compute Unit Price parameter for Jupiter Cancel Limit Order. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true. The description adds the behavioral trait that the tool creates an unsigned transaction (not directly executing), which is key for understanding its role in the signing flow.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first clearly states the purpose, second provides essential context about integration with SAP tools. No waste, front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a single-purpose cancellation tool with an output schema. It explains what it does and how it fits into the broader Jupiter/SAP workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all three parameters. The description does not add additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'cancel' and the resource 'specific limit order', and distinguishes from sibling tools like jupiter_cancelDCA 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context that this tool prepares an unsigned transaction and should be used with SAP transaction preview/sign/submit tools. Does not explicitly differentiate from jupiter_cancelLimitOrders (plural) but gives sufficient usage guidance for the intended workflow.
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 OrdersADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| maker | Yes | Solana wallet public key (base58) | |
| orders | Yes | Array of order public keys to cancel | |
| computeUnitPrice | No | Compute Unit Price parameter for Jupiter Cancel Limit Orders. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool creates unsigned transactions, which is a key behavioral trait not covered by annotations (destructiveHint=true). Adds context about batch operation and ecosystem integration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Front-loaded with the core purpose, followed by necessary context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately covers the essential behavior (creating unsigned transactions, batch, ecosystem role). Lacks error cases or prerequisites but is sufficient for a tool with good annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 batch cancellation, which aligns with the orders array parameter, but adds no further parameter-level detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates unsigned transactions to cancel multiple limit orders in batch, with a specific verb and resource. It distinguishes from siblings like jupiter_cancelDCA 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context that this tool is part of the Jupiter protocol ecosystem and that resulting unsigned transactions should be handled by SAP transaction preview/sign/submit tools. Implicitly differentiates from cancelDCA by specifying limit orders.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| user | Yes | Wallet executing the DCA | |
| payer | Yes | Wallet paying for the DCA setup | |
| startAt | No | ISO 8601 start timestamp (default: now) | |
| frequency | Yes | DCA interval | |
| inputMint | Yes | Token mint address (base58) | |
| outputMint | Yes | Token mint address (base58) | |
| totalInAmount | Yes | Total amount of input token to DCA | |
| numberOfOrders | Yes | Total number of orders to split into | |
| maxOutAmountPerOrder | No | Raw token amount as string (no decimals) | |
| minOutAmountPerOrder | No | Raw token amount as string (no decimals) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals that the tool returns an unsigned transaction, which is key behavioral info not in annotations. It also explains the SAP MCP context. Annotations already indicate mutability (readOnlyHint=false) and non-destructiveness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, conveying purpose and context efficiently. It is concise without sacrificing necessary information, though could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, output schema exists), the description covers the main functional outcome (create DCA, return unsigned tx) and integrates with SAP workflow. Parameter details are fully in schema, so overall completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 additional context about parameter usage beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a Dollar-Cost Averaging (DCA) recurring order, which is a specific verb and resource. It distinguishes from sibling tools like jupiter_cancelDCA and jupiter_executeDCA by the action 'create'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about using Jupiter tools for quote/route/swap preparation and then using SAP transaction tools for unsigned transactions. This guides the agent on workflow, though it does not explicitly exclude alternatives like jupiter_createLimitOrder.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| maker | Yes | Wallet address of the order creator | |
| payer | Yes | Wallet paying for transaction fees | |
| feeBps | No | Referral fee in bps | |
| expiredAt | No | ISO 8601 expiry timestamp | |
| inputMint | Yes | Input token mint | |
| outputMint | Yes | Output token mint | |
| makingAmount | Yes | Amount of input token to sell | |
| takingAmount | Yes | Amount of output token to receive | |
| computeUnitPrice | No | Priority fee (µ-lamports/CU) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only operation. The description adds that the tool returns an unsigned transaction that must be signed via executeTrigger, disclosing a critical behavioral trait 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences that waste no words. Every sentence adds value: purpose and output, then ecosystem context and workflow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters and an output schema, the description covers the essential flow and ecosystem integration. It does not detail return structure, but output schema exists to fill that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions for all 9 parameters. The description does not add additional parameter meaning beyond what the schema provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a limit order' and specifies it returns an unsigned transaction. It also contextualizes within the Jupiter protocol and AgentKit ecosystem, distinguishing it from other flow steps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit workflow guidance: use for quote/route/swap preparation, then SAP transaction tools for signing. It implicitly tells when not to use (when needing immediate execution) but does not list alternative sibling tools.
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 AADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID from createDCA response | |
| signedTransaction | Yes | Base64-encoded signed transaction |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true and readOnlyHint: false, so the description adds minimal behavioral context. It mentions 'submit signed transaction' but does not elaborate on effects, authorization requirements, or error handling, leaving the description insufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action. The second sentence introduces broader ecosystem context, which is somewhat extraneous but not overly verbose. Could be slightly more direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and the description's mention of the broader Jupiter+SAP workflow, the description is reasonably complete for a submission tool. It lacks details on return format but is adequate for an experienced agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 ('Request ID from createDCA response' and 'Base64-encoded signed transaction'). The description adds no extra meaning beyond the schema, earning the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool submits a signed DCA order creation/cancellation transaction, clearly defining its purpose. It distinguishes from sibling tools like jupiter_createDCA and jupiter_cancelDCA by focusing on execution of already signed transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides ecosystem context (Jupiter+SAP workflow) but lacks explicit when-to-use or when-not-to-use guidance relative to alternatives. Usage is implied (submit signed transactions), but no exclusion criteria or alternative tool names are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_executeOrderJupiter Execute OrderADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | requestId from getOrder response | |
| signedTransaction | Yes | Base64-encoded signed transaction |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 it returns execution status, which is useful. However, it does not elaborate on potential failures or side effects beyond the annotations, but since annotations cover the safety profile, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides broader context. No wasted words, front-loaded with the primary function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema indicated and annotations present, the description is fairly complete. It covers purpose, usage guidance, and behavioral context. The mention of SAP tools adds valuable workflow completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 connection between signedTransaction and requestId from getOrder, adding value beyond the schema by clarifying the source of each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Execute a signed swap transaction obtained from getOrder'. It specifies the source of the transaction (getOrder) and the outcome (execution status), distinguishing it from siblings like jupiter_swap or jupiter_getOrder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool (after getOrder) and when to use SAP tools instead (for unsigned transactions). The context about Jupiter tools vs SAP tools provides clear workflow guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_executeTriggerJupiter Execute TriggerADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| requestId | Yes | Request ID from createLimitOrder response | |
| signedTransaction | Yes | Base64-encoded signed transaction |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description confirms the tool performs an on-chain execution, which aligns with annotations (destructiveHint=true). However, it adds no additional behavioral details (e.g., irreversibility, fees, error handling) beyond what annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the core purpose. No unnecessary words or repetition. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple tool with a known context (Jupiter protocol). It mentions the broader workflow (quote, route, swap preparation) but does not explicitly state prerequisites (e.g., must have created a limit order first). With output schema present, return values are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions in the schema, so the description need not add extra detail. It does not elaborate on the parameters (e.g., how to obtain requestId or format signedTransaction), but the schema handles it adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Submit') and resource ('signed limit-order transaction') and the goal ('for on-chain execution'). It distinguishes from creation tools like jupiter_createLimitOrder, but could be more explicit about differences from jupiter_executeOrder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some guidance on when to use this tool vs. SAP transaction tools for unsigned transactions, but does not clarify when to use this over other Jupiter execution tools (e.g., jupiter_executeOrder). The context is helpful but not comprehensive.
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 OrdersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page pagination control for Jupiter Get D C A Orders. | |
| user | Yes | Wallet address to query (sent as "user" query param to Jupiter) | |
| limit | No | Limit controlling the maximum number of results returned by Jupiter Get D C A Orders. | |
| inputMint | No | Token mint address (base58) | |
| outputMint | No | Token mint address (base58) | |
| orderStatus | Yes | Filter by order status: "active" for running orders, "history" for completed/cancelled | |
| recurringType | Yes | Recurring order type — "time" for time-based DCA, "price" for price-triggered, "all" for both | |
| includeFailedTx | No | Include failed transactions in results (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the description does not need to repeat these. The description adds minimal behavioral detail beyond stating the scope (active and optionally historical). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two clear sentences: first states the tool's purpose concisely, second provides ecosystem context. No redundant words, front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters including pagination and filters, the description is minimal. It mentions 'active and optionally historical' but does not explain pagination or other filter behavior. Schema descriptions are thorough, so the tool is still usable, but the description alone is incomplete for complex queries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are well-documented in the schema. The description does not add any additional meaning or context beyond what the schema provides, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves DCA orders (active and optionally historical) for a wallet, using a specific verb ('Get') and resource ('DCA orders'). It distinguishes from sibling tools like jupiter_createDCA, jupiter_cancelDCA, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a general note about Jupiter tools being used for 'quote, route, and swap preparation', but this specific tool is a read-only query for existing orders, not for preparation. This could mislead the agent about when to use this tool versus other Jupiter tools or SAP signer tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_getHoldingsJupiter Get HoldingsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tokenAccountAddresses | Yes | Array of token account addresses to query balances for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds the behavioral detail that results include USD valuations, which is useful but not extensive. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and includes relevant ecosystem context without unnecessary words. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple read-only tool with one parameter, full schema coverage, annotations, and an output schema, the description is sufficiently complete. It covers what the tool does and what it returns (USD valuations).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with clear description for the single parameter (array of Solana public keys). The description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 distinguishes it from siblings like jupiter_getPrice (price) and jupiter_getQuote (swap quote).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a general note about Jupiter tools in the SAP MCP context but does not specify when to use this tool versus alternative read tools (e.g., jupiter_getPrice, jupiter_getTokenInfo). No explicit guidance on usage context or exclusions.
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 OrdersARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page pagination control for Jupiter Get Limit Orders. | |
| limit | No | Limit controlling the maximum number of results returned by Jupiter Get Limit Orders. | |
| wallet | Yes | Wallet address to query | |
| inputMint | No | Token mint address (base58) | |
| outputMint | No | Token mint address (base58) | |
| orderStatus | Yes | Filter by order status: "active" for open orders, "history" for filled/cancelled |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds marginal value by specifying 'active and optionally historical', which clarifies the data scope. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, direct and efficient. The first sentence is the core purpose, the second provides ecosystem context. No wasted words, though the second sentence is somewhat tangential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of output schema and comprehensive parameter descriptions, the description is sufficient. It covers the main purpose and scope. Minor lack of mention of pagination or filtering options, but those are in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented. The description does not add any parameter-specific information beyond what the schema provides, hence baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Get all limit orders (active and optionally historical) for a wallet' which is a specific verb+resource. It distinguishes from siblings like jupiter_getOrder (singular) and jupiter_getDCAOrders by specifying 'all limit orders' and wallet scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides general context about Jupiter vs SAP transaction tools but does not give explicit guidance on when to use this tool vs alternatives among Jupiter siblings (e.g., getOrder, getDCAOrders). The guidance is implied by the purpose but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_getOrderJupiter Get OrderARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| taker | Yes | Taker (sender) wallet address | |
| amount | Yes | Raw token amount as string (no decimals) | |
| inputMint | Yes | Token mint address (base58) | |
| outputMint | Yes | Token mint address (base58) | |
| slippageBps | No | Slippage tolerance in bps (e.g. 50 = 0.5%) | |
| referralFeeBps | No | Referral fee in bps | |
| referralAccount | No | Solana wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds that it returns an unsigned transaction (preparation only), which is beyond the annotations and clarifies no execution occurs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states core function and recommendation, second provides MCP context and workflow guidance. No fluff, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of output schema, full parameter descriptions, and annotations, the description adequately rounds out the tool's role in the Jupiter ecosystem and its integration with SAP tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning or examples beyond what the parameter descriptions already provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get a quote + unsigned swap transaction in a single call (Ultra API)' and labels it as 'the recommended entry-point for swaps', which distinguishes it from other Jupiter swap tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it is the recommended entry-point for swaps and provides guidance on subsequent use of SAP transaction preview/sign/submit tools for policy compliance, offering clear when-to-use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_getPriceJupiter Get PriceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | Token mints to price | |
| vsToken | No | Token mint address (base58) | |
| showExtraInfo | No | Include confidence, depth, timestamps |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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, indicating safe read-only behavior. The description adds 'real-time heuristic prices' but no additional behavioral traits (e.g., rate limits, data freshness). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose. No redundant or verbose language. Every sentence adds value: first defines the tool, second provides ecosystem context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description mentions key data points (buy/sell price, confidence, depth). For a simple price query, this is mostly complete, though additional context like data staleness or availability across tokens could be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameters. The description adds context about output data (buy/sell price, confidence, depth) but does not clarify parameter usage 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose: 'Get real-time heuristic prices for tokens.' It also lists what data is included (buy/sell price, confidence, depth info), distinguishing it from other Jupiter tools like jupiter_getQuote which is for quotes. The verb 'Get' and resource 'Price' 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context: 'Use them for quote, route, and swap preparation, then use SAP transaction preview/sign/submit tools...' However, it does not differentiate this tool from many sibling Jupiter tools (e.g., jupiter_getQuote, jupiter_getHoldings) or specify when not to use it. The guidance is generic and not per-tool specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_getQuoteJupiter Get QuoteARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Raw token amount as string (no decimals) | |
| swapMode | No | Swap Mode parameter for Jupiter Get Quote. | |
| inputMint | Yes | Token mint address (base58) | |
| outputMint | Yes | Token mint address (base58) | |
| maxAccounts | No | Max accounts in transaction (default 64) | |
| slippageBps | No | Slippage tolerance in bps (e.g. 50 = 0.5%) | |
| platformFeeBps | No | Platform fee in bps | |
| dynamicSlippage | No | Dynamic Slippage pagination control for Jupiter Get Quote. | |
| onlyDirectRoutes | No | Restrict to single-hop routes | |
| asLegacyTransaction | No | Return a legacy transaction | |
| restrictIntermediateTokens | No | Restrict Intermediate Tokens mint, symbol, or token identifier used by Jupiter Get Quote. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, openWorld, idempotent hints. Description adds 'Metis engine' and 'full route plan details' but no additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. First sentence states purpose directly, second adds workflow context. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description is adequate. Mentions Metis engine and routing details. Could be more complete by noting it precedes a swap execution, but sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning beyond schema; parameters like inputMint, outputMint, amount are implied but not elaborated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches an optimally-routed swap quote with full route plan details. It distinguishes from sibling tools like jupiter_swap and jupiter_getPrice by specifying it returns route plan details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides workflow context: use for quote/route preparation, then use SAP tools for signing. However, it does not explicitly mention alternatives or 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.
jupiter_getTokenInfoJupiter Get Token InfoARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search by mint address, symbol, or name. Comma-separate for multiple (max 100) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description adds that the tool returns metadata, price, organic score, and audit info. This enriches the agent's understanding without contradicting any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences clearly convey the core function and integration context. Every sentence adds value, and the essential information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the detailed schema, annotations, and output schema, the description adequately covers what the tool does and how it fits into the Jupiter and SAP workflow. No obvious gaps for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'query' parameter with 100% coverage. The description marginally repeats the search methods but adds no new semantics beyond the schema's detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Search for token information' and specifies the resources by mint address, symbol, or name. It lists the detailed return fields (metadata, price, organic score, audit info), making the purpose distinct and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by linking Jupiter tools to 'quote, route, and swap preparation' and instructs when to switch to SAP transaction tools. However, it does not explicitly exclude alternatives or describe when not to use this tool versus siblings like jupiter_getTokenList.
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 ListARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Tag to filter by — "verified" or "lst" |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 value by detailing the return data (metadata, organic score, price, audit info) and the context of usage, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two sentences. The first sentence covers purpose and returns, the second provides context. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has a full output schema (not shown but present), the description's mention of returned fields is sufficient. The context of being part of Jupiter protocol tools and integration with SAP tools is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter (query) fully described. The description essentially repeats the parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: getting Jupiter tokens by tag (verified or lst) and returning metadata, organic score, price, and audit info. It distinguishes from sibling tools like jupiter_getPrice or jupiter_searchTokens by specifying the tag-based list retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that Jupiter protocol tools are for quote, route, and swap preparation, and then advises using SAP transaction tools for signing. However, it does not explicitly differentiate this tool from siblings like jupiter_searchTokens for general token lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_programLabelsJupiter Program LabelsAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description says 'Get a mapping' implying a read-only operation, yet annotations have readOnlyHint=false, which contradicts the description. No additional behavioral traits (e.g., side effects, permissions) are disclosed beyond the annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two sentences, no fluff. The first sentence states purpose, the second provides SAP MCP context. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with no parameters and an output schema. Description explains what the tool returns and how it fits into the broader workflow. Missing details on output format are 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema coverage is 100%. The description does not need to explain parameters. Baseline score of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns a mapping from program ID to human-readable label for all DEX programs in the routing engine. It specifies the verb 'Get', the resource, and the scope, distinguishing it from sibling Jupiter tools like getQuote or swap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions using Jupiter tools for quote/route/swap preparation and then SAP tools for signing, but does not explicitly say when to use this specific tool versus alternatives like jupiter_getTokenList. Usage guidelines are 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.
jupiter_searchTokensJupiter Search TokensARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search by token symbol, name, or mint address |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, so the description's claim of returning metadata is consistent. No additional behavioral traits like edge cases, result limits, or error conditions are mentioned. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) and front-loaded with the purpose. The second sentence adds ecosystem context, which slightly dilutes conciseness but remains efficient. Score 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool with a single parameter and existing output schema, the description covers the essential purpose and return type. It does not mention pagination or result limits, but for a search tool this might be acceptable. Score 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'query' parameter, and the tool description merely restates the schema description. No additional semantic detail like format examples or case sensitivity is provided. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'search' and resource 'tokens', and distinguishes from other Jupiter tools that retrieve specific token info or lists. It clearly states the search criteria (symbol, name, mint address).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes ecosystem-level guidance about Jupiter tools and SAP, but does not specify when to use this particular tool vs alternatives like jupiter_getTokenInfo or jupiter_getTokenList. No when-to-use or when-not-to-use guidance is provided.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mints | Yes | Token mints to check |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'check' implying a read-only operation, but annotations set readOnlyHint=false, suggesting possible state modification. This is a clear contradiction. No side effects or behavioral traits are disclosed beyond this inconsistency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the primary purpose. Every sentence adds value without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's purpose (security check), the description is minimal. It includes SAP context but does not mention that it is a read-only check (contradicted by annotations), nor how the results should be used. Output schema exists but description could still add context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add significant meaning beyond the schema. It lists 'mints' but provides no additional semantics or formatting details. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Check token mints for potential security risks (honeypot, freeze authority, low liquidity, etc.)'. It uses a specific verb ('Check') and resource ('token mints'), and the examples distinguish it from sibling tools like swap and quote tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides SAP MCP context, indicating when to use Jupiter tools (for quote, route, swap preparation) before SAP transaction tools. However, it does not explicitly state when to use this specific tool versus alternatives, such as when to check security before a swap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_smartSwapJupiter Smart SwapADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Raw token amount to swap (in smallest unit, no decimals) | |
| swapMode | No | Swap mode (default: ExactIn) | |
| inputMint | Yes | Source token mint address | |
| feeAccount | No | Solana wallet public key (base58) | |
| outputMint | Yes | Destination token mint address | |
| maxAccounts | No | Max accounts in transaction (default: 64) | |
| slippageBps | No | Slippage tolerance in bps (e.g. 50 = 0.5%) | |
| userPublicKey | Yes | Wallet public key that will sign the transaction | |
| platformFeeBps | No | Platform fee in bps for referral revenue | |
| dynamicSlippage | No | Enable dynamic slippage for better execution | |
| onlyDirectRoutes | No | Restrict to single-hop routes for lower latency | |
| wrapAndUnwrapSol | No | Auto wrap/unwrap SOL (default: true) | |
| asLegacyTransaction | No | Return a legacy transaction instead of v0 | |
| destinationTokenAccount | No | Solana wallet public key (base58) | |
| dynamicComputeUnitLimit | No | Use dynamic compute unit limit based on simulation | |
| restrictIntermediateTokens | No | Restrict intermediate tokens to reduce risk | |
| computeUnitPriceMicroLamports | No | Priority fee in micro-lamports per compute unit |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false. The description adds that it returns instructions to be assembled and signed, implying a state-changing operation. It does not contradict annotations and adds moderate 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, front-loaded with purpose and key inputs, followed by usage flow and context. Every sentence adds value; no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 17 parameters, an output schema, and annotations, the description sufficiently explains the tool's role, return value (quote, instructions, summary), and integration with SAP tools. Optional parameters are left to the schema, which is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage, so parameters are well-documented. The description adds a high-level summary of key parameters (input/output mints, amount, wallet address) but does not meaningfully expand on the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a compound tool that fetches a quote and builds swap instructions in one call (specific verb+resource). It distinguishes itself as the recommended entry-point for AI agents preparing a swap, differentiating from siblings like jupiter_swap and jupiter_swapInstructions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use (as the entry-point for swap preparation) and references SAP tools for subsequent signing steps. However, it does not explicitly exclude alternatives like jupiter_getQuote or jupiter_swapInstructions for specialized cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_swapJupiter SwapADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feeAccount | No | Solana wallet public key (base58) | |
| quoteResponse | Yes | The full quoteResponse object from getQuote | |
| userPublicKey | Yes | Solana wallet public key (base58) | |
| useTokenLedger | No | Use Token Ledger mint, symbol, or token identifier used by Jupiter Swap. | |
| dynamicSlippage | No | Dynamic Slippage pagination control for Jupiter Swap. | |
| wrapAndUnwrapSol | No | Auto wrap/unwrap SOL (default true) | |
| useSharedAccounts | No | Use Shared Accounts parameter for Jupiter Swap. | |
| asLegacyTransaction | No | As Legacy Transaction transaction payload used by Jupiter Swap. | |
| destinationTokenAccount | No | Solana wallet public key (base58) | |
| dynamicComputeUnitLimit | No | Dynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap. | |
| skipUserAccountsRpcCalls | No | Skip User Accounts RPC Calls endpoint or RPC selector used by Jupiter Swap. | |
| computeUnitPriceMicroLamports | No | Priority fee in µ-lamports/CU |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, so the safety profile is clear. The description adds context that the tool builds an unsigned transaction that must be signed and sent via SAP tools, which is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each with clear value. The first sentence states the core purpose, the second provides ecosystem context. It is front-loaded and avoids redundancy. Slight room for improvement: could mention prerequisite of jupiter_getQuote.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 params, output schema, nested objects), the description covers the main workflow and SAP integration. It does not explicitly mention that the quoteResponse must come from jupiter_getQuote, but overall it provides sufficient context for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 12 parameters. The description does not add additional meaning beyond the schema, so baseline 3 is appropriate. Some schema descriptions (e.g., 'Dynamic Slippage pagination control') are vague but not the description's fault.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 response.' It uses a specific verb ('build') and resource ('swap transaction'), and distinguishes itself from siblings like jupiter_smartSwap and jupiter_swapInstructions by specifying it builds an unsigned transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidelines: '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.' This tells the agent when to use this tool (after getting a quote) and when to delegate signing to SAP tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jupiter_swapInstructionsJupiter Swap InstructionsADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| feeAccount | No | Solana wallet public key (base58) | |
| quoteResponse | Yes | The full quoteResponse object from getQuote | |
| userPublicKey | Yes | Solana wallet public key (base58) | |
| useTokenLedger | No | Use Token Ledger mint, symbol, or token identifier used by Jupiter Swap Instructions. | |
| wrapAndUnwrapSol | No | Wrap And Unwrap Sol parameter for Jupiter Swap Instructions. | |
| useSharedAccounts | No | Use Shared Accounts parameter for Jupiter Swap Instructions. | |
| asLegacyTransaction | No | As Legacy Transaction transaction payload used by Jupiter Swap Instructions. | |
| destinationTokenAccount | No | Solana wallet public key (base58) | |
| dynamicComputeUnitLimit | No | Dynamic Compute Unit Limit controlling the maximum number of results returned by Jupiter Swap Instructions. | |
| computeUnitPriceMicroLamports | No | Compute Unit Price Micro Lamports value to use for Jupiter Swap Instructions. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description describes a read operation ('Get') but annotations have destructiveHint=true, a contradiction. No disclosure of side effects or requirements like quoteResponse dependency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficient two sentences with front-loaded purpose. The SAP context sentence is useful but could be integrated more concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Minimal description for a tool with 10 parameters and complexity. Does not explain that userPublicKey is the wallet, quoteResponse must come from getQuote, or the purpose of optional params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds no parameter info. Some schema descriptions are confusing (e.g., useTokenLedger), but tool description doesn't compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and specific resource 'swap instructions'. Distinguishes from sibling jupiter_swap which returns full transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context about Jupiter tools in AgentKit ecosystem and when to use SAP transaction tools. Does not explicitly differentiate from all sibling Jupiter tools but gives helpful workflow guidance.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token to deposit (e.g. USDC) | |
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 the 'best APR' claim but no details on how the protocol is selected, transaction guarantees, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first is clear and direct, second provides relevant context. Could be more streamlined by removing SAP MCP context which might be better placed elsewhere.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite annotations and output schema existence, the description lacks details on fees, slippage, execution time, and differentiation from other deposit tools. It does not cover behavioral nuances like what 'best APR' means or whether the deposit is split across protocols.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 3 parameters with descriptions. The description adds no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('deposit'), the resource ('best APR lending protocol via Lulo aggregator'), and distinguishes from related tools like lulo_withdraw and lulo_getPositions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context about SAP MCP integration and suggests using sap_* tools for on-chain registration, but does not explicitly state when to use this tool versus alternatives like drift_deposit or raydium-pools_addLiquidity.
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 RatesARead-onlyIdempotentInspect
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | No | Token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 adds minimal behavioral context. It merely says 'Get', which aligns with read-only, but lacks details on rate freshness, pagination, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first clearly states the tool's purpose, while the second covers SAP MCP context. Although the second sentence is tangential, it is brief and does not significantly bloat the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, read-only, with annotations and output schema), the description is mostly complete. It provides the necessary context ('via Lulo') and the purpose. However, it could benefit from mentioning what data the output contains, though the output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'mint' has a description in the schema ('Token mint address (base58)') with 100% schema coverage. The tool description does not add extra meaning, so it meets the baseline but provides no additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the best lending/yield rates across all protocols via Lulo', using a specific verb and resource. It distinguishes from sibling tools like lulo_deposit and lulo_getPositions by focusing solely on rate retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning SAP MCP integration, but does not explicitly state when to use this tool versus other Lulo tools (e.g., lulo_deposit). It provides no exclusions or alternative guidance for rate-related tasks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lulo_getPositionsLulo Get PositionsARead-onlyIdempotentInspect
Get all Lulo lending positions for a wallet. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 no additional behavioral traits beyond the basic read operation. It is consistent but does not add context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first clearly states purpose, second provides relevant SAP context. It is efficient but the second sentence slightly deviates from the core tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple one-param schema and presence of output schema, the description is reasonably complete. It lacks error handling details but is adequate for a read-only positions tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'wallet' parameter as 'Solana public key (base58)'. The description does not add any additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (Get), resource (all Lulo lending positions), and qualifier (for a wallet). It distinguishes from sibling Lulo tools (deposit, withdraw, getBestRates) and other lending position tools (drift_getPositions, adrena_getPositions).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit SAP MCP context and directs when to use sap_register_agent, sap_update_agent, and sap_publish_tool_by_name for on-chain registration. However, it does not compare to other lending position tools or specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lulo_withdrawLulo WithdrawCDestructiveInspect
Withdraw from Lulo lending position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, and the description matches that intent. However, the description does not add any extra behavioral context beyond what annotations provide, such as effects, reversibility, or authorization needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but includes an irrelevant sentence about SAP MCP context. This adds unnecessary verbosity and does not help with the tool's core purpose. The main description is concise but wasted space reduces effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a DeFi withdrawal tool, the description is minimal. It does not explain what a Lulo lending position is, prerequisites (e.g., must have deposited first), or the effect on the user's state. Given the complexity and presence of an output schema, more context is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter descriptions in the schema are clear and cover 100% of parameters. The tool description adds no additional semantic value beyond the schema, which is acceptable per baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Withdraw' and resource 'Lulo lending position'. However, it does not differentiate from sibling tools like lulo_deposit or other lending protocols, missing an opportunity to clarify its specific role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks when-to-use guidance, prerequisites, or alternatives. It includes a tangential SAP MCP context paragraph that is irrelevant for the tool's usage. No exclusions or conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_balancemagicblock balanceAInspect
Read the base-chain SPL token balance for an address (public, no auth required). Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL mint pubkey | |
| address | Yes | Owner wallet pubkey | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says it's a read operation, but annotations have readOnlyHint=false, creating a contradiction. Additionally, it mentions a cost, which is helpful, but the contradiction severely undermines transparency. Score 1 per rubric for contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence plus cost note. Front-loads the core purpose. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, usage context (public, no auth), cost, and output schema exists. Lacks details on exactly what the response contains, but sufficient for a simple query.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage). The description adds no additional parameter-specific context, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 and resource. It distinguishes itself from siblings like magicblock_privateBalance and spl-token_getBalance by noting it's public and on base-chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'public, no auth required', indicating when to use (public addresses) and that no authentication is needed. Does not explicitly mention alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_challengemagicblock challengeAInspect
Generate a challenge string for the wallet to sign (step 1 of the PER auth flow). Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | Yes | Wallet pubkey that will sign the challenge | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic hints; description adds price and flow step context but does not disclose side effects, rate limits, or authentication requirements 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence plus a price note, front-loaded with key action, and contains no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. Description includes price and flow step. For a simple challenge generation tool, this is nearly complete; minor gap: no mention of idempotency or retry behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and descriptions in schema already explain parameters; the tool description adds no additional meaning beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Generate' and resource 'challenge string', and specifies it is step 1 of the PER auth flow, distinguishing it from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as the first step in PER auth flow, but does not provide explicit when-not-to-use or alternative tools among siblings.
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. Sign with sap_sign_transaction and submit to the RPC indicated by sendTo. Price: $0.05.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | No | SPL mint. Defaults to USDC (mainnet) or devnet USDC | |
| owner | Yes | Wallet pubkey that owns the tokens and will sign | |
| amount | Yes | Base-unit amount to deposit (integer, minimum 1) | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL | |
| validator | No | Optional ER validator pubkey. Defaults to the selected ephemeral RPC identity. | |
| idempotent | No | Use idempotent variants for preparatory init instructions (default true) | |
| initIfMissing | No | Initialize the transfer queue if missing (default true) | |
| initAtasIfMissing | No | Initialize associated token accounts if missing (default true) | |
| initVaultIfMissing | No | Initialize the vault if missing (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by disclosing the workflow (building unsigned transaction, signing, submission) and the cost ($0.05). It is consistent with annotations (readOnlyHint=false, not idempotent, not destructive).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences and a pricing note, front-loaded with key purpose. Every sentence contributes useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and cost. Since an output schema exists, return values need not be explained. Minor omission: no mention of prerequisites like token ownership, but required parameters imply that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add additional meaning to parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 for depositing SPL tokens into an Ephemeral Rollup, distinguishing it from sibling tools like magicblock_withdraw and magicblock_swap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (depositing SPL tokens into an Ephemeral Rollup) and provides next steps (sign with sap_sign_transaction and submit to RPC), but does not explicitly mention when not to use it or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_getAccountInfomagicblock getAccountInfoARead-onlyIdempotentInspect
Fetch account information (data, lamports, owner, executable, space) via the Magic Router. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account pubkey to fetch info for | |
| encoding | No | Encoding for account data | |
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, etc. The description adds the cost ('Price: $0.01') and the routing mechanism ('via the Magic Router'), providing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise, front-loading the purpose in a single sentence. Every word adds value, including the cost disclosure. No wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with good annotations and output schema, the description is adequate but minimal. It lacks usage guidelines and behavioral details beyond cost, but covers the core purpose. Acceptable given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all three parameters. The description does not add any parameter-level details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Fetch'), the resource ('account information'), and the specific fields returned. It effectively distinguishes itself from sibling tools by focusing on account info, unlike other magicblock tools that handle balances, swaps, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., sol_get_balance or other magicblock tools). The context signals include many sibling tools, but the description does not mention any exclusions or complementary tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_getBlockhashForAccountsmagicblock getBlockhashForAccountsARead-onlyIdempotentInspect
Get a blockhash and last valid block height for a batch of account addresses (max 100). Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| accounts | Yes | Array of account addresses (max 100) | |
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context: the cost ($0.01) and the batch limit (max 100 accounts). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no extraneous words. The purpose is front-loaded, and additional info (price) is appended efficiently. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with good annotations and an output schema, the description covers the essential purpose, constraints, and cost. It doesn't explain blockhash semantics, but that is reasonable given the target audience (AI agents familiar with Solana). Slightly more context on when to use (e.g., prior to transaction submission) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description. The tool description does not add new information beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the verb 'Get', resource 'blockhash and last valid block height', and scope 'for a batch of account addresses (max 100)'. 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.
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 purpose is clear enough to infer usage, but with many sibling tools, explicit context would help an agent decide. No exclusions or when-not-to-use are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_getDelegationStatusmagicblock getDelegationStatusARead-onlyIdempotentInspect
Check whether a Solana account is delegated to an Ephemeral Rollup. Returns authority, owner, delegation slot, and lamports. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| account | Yes | Account pubkey to check delegation status for | |
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. Description adds extra context about return values and cost ($0.01), which is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. First sentence covers purpose and output, second sentence adds price. Perfectly concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, an output schema exists, and the description lists return fields. It provides sufficient context for an agent to understand what to expect. Could mention that delegation status implies a boolean or check, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters well-described. Description adds no additional parameter information beyond what the schema provides, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Check', the resource 'Solana account delegation status', and lists returned fields. It distinguishes this tool from other magicblock_* siblings by focusing on delegation check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description mentions price but doesn't guide selection among alternatives like magicblock_getAccountInfo or magicblock_balance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_getIdentitymagicblock getIdentityARead-onlyIdempotentInspect
Get the identity and FQDN of the current ER Validator node. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as readOnly, idempotent, and non-destructive. The additional disclosure of a $0.01 cost adds behavioral context beyond annotations, though no side effects are described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a cost note, with no wasted words. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with an output schema and thorough annotations, the description is nearly complete. It covers purpose and cost, but could optionally mention default endpoint behavior or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear enum descriptions for the endpoint parameter. The description adds no further parameter details, so it meets the baseline without adding extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Get') and the resource ('identity and FQDN of the current ER Validator node'), clearly distinguishing it from sibling magicblock tools that deal with balances, accounts, or signatures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It implies usage for retrieving validator identity, but no when-not or sibling differentiation is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_getRandomnessResultmagicblock getRandomnessResultARead-onlyIdempotentInspect
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. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' | |
| requestKey | Yes | VRF request PDA key from magicblock_requestRandomness |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations confirm it's read-only and safe. The description adds the cost ($0.01) and specifies what is returned (fulfilled status, random bytes, metadata), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no extraneous information. First sentence covers purpose and action, second lists outputs and cost. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has an output schema, so return values need no elaboration. Description covers action, resource, and cost. No gaps given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description repeats no parameter details, so it adds no extra meaning beyond the schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool checks VRF request fulfillment by reading an on-chain account, clearly distinguishing it from the sibling 'magicblock_requestRandomness' which likely creates the request. Uses specific verbs and resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use after requesting randomness, but does not explicitly state when to use vs alternatives or any exclusions. No direct guidance like 'use after magicblock_requestRandomness'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_getRoutesmagicblock getRoutesARead-onlyIdempotentInspect
List available Ephemeral Rollup nodes from the Magic Router (identity, FQDN, fee, block time, country). Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds the cost ($0.01), which is a behavioral trait 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is one sentence plus price note, very concise and front-loaded. Could be slightly more structured but no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose, return fields, and cost. It is complete given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'endpoint' with enum and description already provided (100% coverage). The description adds no additional meaning to the parameter; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action (list available Ephemeral Rollup nodes) and the specific fields returned (identity, FQDN, fee, block time, country). It clearly distinguishes itself from other magicblock tools by focusing on routes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It mentions cost but no when-not-to-use or sibling differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_getSignatureStatusesmagicblock getSignatureStatusesARead-onlyIdempotentInspect
Check the confirmation status (processed/confirmed/finalized) of one or more transaction signatures. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' | |
| signatures | Yes | Array of transaction signatures |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false) already indicate safety, and the description adds the cost and status types, which are beyond the annotation scope. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence plus price. Front-loaded with main action. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of output schema, the description covers the essential behavior: checking status of one or more signatures, listing possible statuses, and cost. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds no parameter details beyond what the schema provides. Baseline 3 is appropriate since the schema already documents both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks confirmation status with specific allowed values (processed/confirmed/finalized). It distinguishes itself from sibling magicblock tools by focusing on transaction signatures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides cost ($0.01) as a usage guideline but lacks explicit when-to-use or when-not-to-use compared to alternatives. However, the purpose is clear enough 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.
magicblock_healthmagicblock healthAInspect
Check the health status of the MagicBlock Private Payments API. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the cost ($0.01), which is not in annotations. Annotations provide read/write hints, but description adds valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences covering purpose and cost, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple health check tool, the description is sufficient: it states what it does and cost. Missing details about return format are covered by output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 details, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check the health status') and identifies the resource ('MagicBlock Private Payments API'), clearly distinguishing it from sibling tools like magicblock_balance or magicblock_swap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when or why to use this tool over alternatives. It does not mention scenarios, preconditions, or exclusions.
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. Price: $0.05.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL mint to initialize a transfer queue for | |
| owner | Yes | Wallet pubkey that will sign the transaction | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL | |
| validator | No | Optional ER validator pubkey |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value over annotations by specifying that the tool builds an unsigned transaction (rather than executing it). It also includes pricing ($0.05), which hints at on-chain costs. Annotations already indicate it's not read-only and not destructive, so the description complements them well. However, it does not disclose potential side effects or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus pricing, making it concise and front-loaded. The pricing information is a minor extra detail that could be placed elsewhere, but it does not significantly harm conciseness. It avoids verbosity and gets the core purpose across efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, all documented) and the presence of an output schema (not shown), the description is adequate but not rich. It lacks details about the return value (the unsigned transaction structure) or how the tool fits into the broader workflow (e.g., subsequent signing/swapping). Compared to the calibration high example, it is less complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 is already documented clearly. The tool description does not add any extra semantic context for the parameters (e.g., what 'validator' specifically refers to or how 'cluster' should be formatted). Therefore, it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 that initializes a validator-scoped transfer queue for a mint. It uses specific verbs ('initializes') and resources ('validator-scoped transfer queue'), and distinguishes itself from sibling tools like 'magicblock_isMintInitialized' (which checks status) and 'magicblock_swap' (which performs swaps).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not mention prerequisites (e.g., whether the mint must already exist), or when not to use it (e.g., if the transfer queue is already initialized). It also lacks any mention of related tools like 'magicblock_isMintInitialized' for pre-checking.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_isMintInitializedmagicblock isMintInitializedBInspect
Check whether a mint has a validator-scoped transfer queue on the ephemeral RPC. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL mint to check | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL | |
| validator | No | Optional ER validator pubkey |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description says 'check', implying a read-only operation, but annotations set readOnlyHint=false, creating a contradiction. No detail on side effects, cost implications beyond price, or behavior when mint is not initialized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff, front-loaded with core action. However, including price may be unnecessary for tool selection but does not detract significantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists but description does not explain return values or any edge cases. Adequate for a simple check, but lacks clarity on what 'initialized' means in this context and how to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 value beyond parameter names/descriptions; the term 'validator-scoped' loosely connects to the validator parameter but no deeper semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Check'), the resource ('mint'), and the specific condition ('validator-scoped transfer queue on the ephemeral RPC'), making the purpose unambiguous and distinct 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.
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., other magicblock tools like magicblock_initializeMint), no exclusions or prerequisites, and missing context on the role of the ephemeral RPC or validator parameter.
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. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | Yes | Wallet pubkey that signed the challenge | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL | |
| challenge | Yes | Challenge string from magicblock_challenge | |
| signature | Yes | Wallet signature over the challenge string |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses cost ($0.01) and that it produces a bearer token for subsequent operations. Annotations cover readOnly, idempotent, destructive hints; description adds useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: one sentence plus a price note. Front-loaded with action and step context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for an authentication step tool. Explains purpose, step context, token usage, and cost. Output schema exists for return values. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions. Description adds minimal value by tying 'signed challenge' to parameters, but no additional semantic detail beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool exchanges a signed challenge for a bearer token, identifies it as step 2 of PER auth flow, and mentions token usage. Distinguishes from sibling magicblock_challenge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly links to step 1 (magicblock_challenge) and indicates the token is needed for private-balance/transfers. No explicit when-not or alternatives, 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.
magicblock_privateBalancemagicblock privateBalanceAInspect
Read the ephemeral-rollup SPL token balance for an address (requires bearer token from login). Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL mint pubkey | |
| address | Yes | Owner wallet pubkey | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL | |
| authToken | Yes | Bearer token from magicblock_login (required for private reads) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims 'Read' (read operation) but annotation readOnlyHint is false, creating a contradiction. Additionally, no disclosure of rate limits, token expiration, or other behaviors beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with clear front-loading of purpose and requirement. Price mention is concise and useful. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. Description adds context about ephemeral-rollup and private reads. However, contradiction and lack of parameter details reduce completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds no parameter-specific meaning beyond what schema already provides (e.g., authToken described as 'Bearer token from login').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Read the ephemeral-rollup SPL token balance for an address' with specific verb and resource. The qualifier 'ephemeral-rollup' distinguishes it from sibling magicblock_balance, which likely reads regular balances.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description mentions prerequisite 'requires bearer token from login' and implies context (private reads). However, it does not explicitly state when to use vs alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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. The caller must sign with sap_sign_transaction and submit to Solana. The oracle queue defaults to the base-layer queue (Cuj97ggrhhidhbu39TijNVqE74xvKJ69gDervRUXAxGh); set ephemeral=true to use the ER queue for delegated programs. Price: $0.05.
| Name | Required | Description | Default |
|---|---|---|---|
| payer | Yes | Wallet pubkey that will pay for the request and sign the transaction | |
| endpoint | No | MagicBlock Router endpoint: 'mainnet' or 'devnet' | |
| ephemeral | No | Use the Ephemeral Rollup oracle queue instead of the base-layer queue (default false) | |
| callerSeed | Yes | Seed string for the VRF request — committed before randomness is produced. The seed is hashed to 32 bytes. | |
| callbackAccounts | Yes | Accounts to pass to the callback instruction | |
| callbackProgramId | Yes | Program ID of the callback program (the program that will consume the randomness) | |
| callbackDiscriminator | Yes | Base58 or hex discriminator for the callback instruction in your program |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (mutation) and no idempotency. The description adds behavioral traits: transaction building, required signing, cost ($0.05), and the seed commitment model. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph of four sentences, front-loaded with the primary action. Every sentence provides necessary information without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the full schema coverage and presence of an output schema, the description adequately covers the workflow: requesting randomness, signing, submitting, and referring to getRandomnessResult for retrieval. It also includes cost and queue options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter thoroughly. The description adds little new parameter-level detail (e.g., seed hashing is in the schema), earning the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'request' and resource 'provably fair on-chain randomness', and distinguishes from the sibling tool magicblock_getRandomnessResult by stating it builds an unsigned transaction for requesting randomness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the tool builds an unsigned transaction and that the caller must sign with sap_sign_transaction and submit to Solana, providing clear context for subsequent steps. It also mentions queue options and cost, though it does not explicitly list 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_swapmagicblock swapADestructiveInspect
Build an unsigned swap transaction from a quote. 'public' mode passes through Jupiter, 'private' mode routes output through a scheduled private transfer with delay and split. Price: $0.05.
| Name | Required | Description | Default |
|---|---|---|---|
| split | No | Private only. Number of queue entries to split across (1-14) | |
| validator | No | Optional validator pubkey for the transfer-queue PDA | |
| maxDelayMs | No | Private only. Latest (ms) the queued transfer may settle (<= 600000) | |
| minDelayMs | No | Private only. Earliest (ms) the queued transfer may settle | |
| visibility | No | 'public' = transparent Jupiter pass-through, 'private' = output routed through scheduled private transfer | |
| clientRefId | No | Private only. Optional u64 client correlation ID | |
| destination | No | Final private-transfer recipient (required when visibility='private') | |
| quoteResponse | Yes | Quote response object from magicblock_swapQuote (pass as-is) | |
| userPublicKey | Yes | Wallet that will sign the swap transaction | |
| wrapAndUnwrapSol | No | Auto wrap/unwrap native SOL when needed (default true) | |
| asLegacyTransaction | No | Build a legacy transaction (not allowed when visibility=private, default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds detail about private mode behavior (scheduled transfer with delay/split) and the price, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading the core purpose and key details. Every word serves a purpose, no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 params, output schema exists) and high schema coverage, the description covers the essential function and mode differences. It could mention prerequisites (like needing a quote) but is overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already described. The description adds context about mode behaviors and pricing, but does not significantly enhance understanding of individual parameters beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 swap transaction from a quote, with specific modes (public/private). However, it does not explicitly differentiate from sibling tools like jupiter_swap or magicblock_swapQuote.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the two modes and mentions a price, but lacks explicit guidance on when to use this tool vs alternatives, such as prerequisites (e.g., obtaining a quote first) 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_swapQuotemagicblock swapQuoteADestructiveInspect
Get a swap quote between two SPL mints (proxies Triton Metis swap API). Pass the result into magicblock_swap. Price: $0.01.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Raw amount to swap (unsigned integer string, e.g. '1000000') | |
| swapMode | No | Swap mode: fixed input or fixed output amount | |
| inputMint | Yes | Input token mint address | |
| outputMint | Yes | Output token mint address | |
| maxAccounts | No | Approximate maximum account budget for the route (default 64) | |
| slippageBps | No | Slippage threshold in basis points (e.g. 50 = 0.5%) | |
| platformFeeBps | No | Optional platform fee in basis points | |
| onlyDirectRoutes | No | Limit routing to a single hop (default false) | |
| restrictIntermediateTokens | No | Restrict intermediate tokens to a more stable set (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description describes a read-only operation ('Get a swap quote'), but annotations mark destructiveHint=true, which is contradictory. No additional behavioral disclosure is provided beyond the annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose, and contains no unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and usage context, and the existence of an output schema reduces the need to explain return values. However, the annotation contradiction undermines completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents parameters. The description adds no parameter-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'swap quote', and the context 'between two SPL mints'. It also distinguishes from the sibling magicblock_swap by specifying that the result should be passed into that tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Pass the result into magicblock_swap', providing clear usage guidance. It does not include explicit conditions for when not to use, but the context is sufficient.
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. Price: $0.05.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient wallet pubkey | |
| from | Yes | Sender wallet pubkey | |
| memo | No | Optional memo appended to the transaction | |
| mint | Yes | SPL mint pubkey | |
| split | No | Private only. Number of queue entries to split across (1-15, default 1) | |
| amount | Yes | Base-unit amount to transfer (integer, minimum 1) | |
| legacy | No | Skip lookup-table compilation, return a legacy transaction (default false) | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL | |
| gasless | No | When true, uses configured sponsor as fee payer (default false) | |
| authToken | No | Bearer token from login (required for private transfers) | |
| toBalance | Yes | Where the recipient should receive funds | |
| validator | No | Optional ER validator pubkey | |
| maxDelayMs | No | Private only. Latest (ms) the queued transfer may settle (<= 600000) | |
| minDelayMs | No | Private only. Earliest (ms) the queued transfer may settle. Default '0' | |
| visibility | Yes | 'public' = transparent SPL transfer, 'private' = routed through Private ER with delayed+split settlement | |
| clientRefId | No | Private only. Encrypted client reference ID for payment confirmation | |
| fromBalance | Yes | Where the sender's balance is held | |
| initIfMissing | No | Initialize transfer queue if missing (default true) | |
| initAtasIfMissing | No | Initialize recipient ATA if missing (default true) | |
| initVaultIfMissing | No | Initialize vault if missing (default false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description indicates the transfer is 'unsigned,' suggesting no state change, but annotations set readOnlyHint to false, implying a mutation. This contradiction is not clarified. Additional context like auth requirements for private transfers is in the schema but not in the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main purpose, and includes price as a helpful detail. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the tool's complexity (20 parameters, many features), the description does not explain the output, lifecycle (e.g., need to sign and submit), or prerequisites like login for private transfers. The existing output schema partially compensates, but behavioral context is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 20 parameters. The description adds only a high-level summary (e.g., 'Supports base/ephemeral source and destination'), which does not improve understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 SPL token transfer (public or private) through an Ephemeral Rollup, providing a specific verb and resource. It distinguishes from siblings like magicblock_deposit or magicblock_swap by focusing on transfers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists supported features (base/ephemeral source/destination, delayed settlement, split transfers, gasless mode) but does not explicitly state when to use this tool versus alternatives like spl-token_transfer. No when-not or trade-offs are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
magicblock_withdrawmagicblock withdrawADestructiveInspect
Build an unsigned transaction to withdraw SPL tokens from an Ephemeral Rollup back to Solana. Price: $0.05.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | SPL mint on Solana | |
| owner | Yes | Wallet pubkey that owns the tokens and will sign | |
| amount | Yes | Base-unit amount to withdraw (integer, minimum 1) | |
| cluster | No | Cluster: 'mainnet', 'devnet', or custom RPC URL | |
| validator | No | Optional ER validator pubkey | |
| idempotent | No | Use idempotent variants for preparatory init instructions (default true) | |
| escrowIndex | No | Optional escrow index for the withdrawal | |
| initIfMissing | No | Initialize transfer queue if missing (default true) | |
| initAtasIfMissing | No | Initialize ATAs if missing (default true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds important context: it builds an unsigned transaction (deferring destructive action) and the price ($0.05). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence plus a price mention, no extraneous information. It is front-loaded and highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having output schema and 100% parameter coverage, the description lacks context on when to use optional parameters and the overall workflow (e.g., how to use the unsigned transaction). More completeness could assist an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter. The description does not add any extra parameter-level meaning. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'build an unsigned transaction' and resource 'withdraw SPL tokens from an Ephemeral Rollup back to Solana'. It clearly distinguishes from sibling tools like magicblock_deposit or magicblock_swap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but does not explicitly guide when to use it versus alternatives or mention prerequisites. It is clear for the specific withdrawal task but lacks exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_cancelOrderManifest Cancel OrderADestructiveInspect
Cancel a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| orderId | Yes | Order ID parameter for Manifest Cancel Order. | |
| marketId | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, which the description aligns with by stating 'Cancel'. The description adds no further behavioral details beyond what annotations provide, such as irreversibility 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences; the first is concise and front-loaded with the core purpose. The second sentence adds contextual but somewhat tangential integration guidance. It is not verbose, but could be more focused on the tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 complete parameter descriptions, the tool description is largely sufficient. It covers the basic operation, though more detail on the on-chain transaction effects could enhance completeness, but annotations partially compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add any additional meaning or constraints beyond the schema definitions, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states the verb 'Cancel' and the resource 'a limit order on a Manifest market', which precisely identifies the tool's function. It distinguishes itself from sibling tools like manifest_placeLimitOrder and manifest_createMarket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (for canceling limit orders on Manifest markets) and provides SAP integration context. However, it does not contrast with alternative cancel tools like jupiter_cancelLimitOrder or openbook_cancelOrder, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| creator | Yes | Solana public key (base58) | |
| baseMint | Yes | Base token mint | |
| quoteMint | Yes | Quote token mint |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=true. The description does not add behavioral details beyond 'Create a new ... market', which is consistent. No mention of side effects, permissions, or state changes, but the annotations cover the essential safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences with no wasted words. It front-loads the core purpose and then adds contextual guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 3-parameter tool with output schema and annotations, the description is minimally adequate. It lacks details about the creation process, token requirements, or how the market fits into the broader Manifest ecosystem. The output schema exists but is not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning to the parameters beyond the schema descriptions. No examples or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and the resource ('Manifest market for a token pair'). It is specific and distinguishes from sibling tools like manifest_cancelOrder or openbook_createMarket by naming the Manifest protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some context about SAP MCP tool integration and suggests using sap_* tools for on-chain registration. However, it does not provide guidance on when to use this tool versus other market creation tools like openbook_createMarket, nor does it mention prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
manifest_getOrderbookManifest Get OrderbookBRead-onlyIdempotentInspect
Get the current orderbook for a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | Depth parameter for Manifest Get Orderbook. | |
| marketId | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering safety and idempotency. The description adds no extra behavioral context beyond these annotations, so it is adequate but not enriched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the purpose front-loaded. The second sentence adds SAP-specific context that may be unnecessary for general use, but overall it is efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations and an output schema, the description is mostly complete. It doesn't detail orderbook structure (e.g., bids/asks), but the output schema can compensate. Lacks mention of prerequisites like market existence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add meaning beyond the parameter descriptions. The 'depth' parameter remains vague ('Depth parameter'), and no further clarity is provided in the description text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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', specifying the verb, resource, and scope. It distinguishes from sibling tools like manifest_cancelOrder and manifest_placeLimitOrder, though it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides SAP MCP context and references tools for on-chain registration, but it offers no guidance on when to use this tool versus alternatives like other orderbook tools or when to avoid it. No explicit when-to-use or 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.
manifest_placeLimitOrderManifest Place Limit OrderBInspect
Place a limit order on a Manifest market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Side parameter for Manifest Place Limit Order. | |
| size | Yes | Order size in base tokens | |
| price | Yes | Limit price | |
| wallet | Yes | Solana public key (base58) | |
| marketId | Yes | Solana public key (base58) | |
| orderType | No | Order Type parameter for Manifest Place Limit Order. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description does not disclose behavioral traits beyond annotations. It lacks details on side effects, required permissions, or error scenarios. Annotations already indicate non-read-only and non-idempotent, but no additional context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence is purposeful; the second introduces SAP context which may be useful but slightly tangential. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trading tool with 6 parameters, missing context on what a Manifest market is, how to obtain marketId, and order type implications. Output schema exists but does not compensate for these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no extra parameter information, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Place a limit order on a Manifest market,' providing a specific verb and resource. It distinguishes from sibling tools like manifest_cancelOrder and manifest_createMarket by focusing on placing limit orders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 openbook_placeOrder or jupiter_swap. The description mentions SAP context but does not help in choosing between different trading tools.
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | NFT mint address (base58) | |
| creators | Yes | Creator list with revenue shares (must sum to 100) | |
| updateAuthority | Yes | Solana public key (base58) | |
| sellerFeeBasisPoints | Yes | Royalty fee in bps |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read-only, non-destructive write operation (readOnlyHint=false, destructiveHint=false). The description adds value by specifying 'operation class write' and advising to confirm metadata URI, collection mint, creators, royalties, update authority, and ownership before writes, which is beneficial context about necessary prerequisites. However, it does not elaborate on potential failures, return behavior, or side effects beyond the write itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose, but subsequent sentences introduce SAP MCP context, agent identity instructions, and a generic grouping statement for Metaplex tools, which dilutes conciseness. While not excessively long, each sentence does not fully carry its weight; the SAP-specific details may not be relevant for all agents.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 required params, nested creators array, no output schema concerns), the description covers the main purpose, prerequisites, and usage in a broader protocol context. It mentions confirmation steps and the need for an update authority, aligning with the schema. The description is largely complete for an experienced Metaplex user, though it could be more succinct.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 directly elaborate on individual parameter meanings beyond what the schema already provides. It does implicitly relate to parameters by mentioning 'confirm ... creators, royalties, update authority' which echoes the required fields, but adds no new semantic detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear and specific verb-resource pair: 'Configure royalty fee and creator splits for an NFT.' This directly states the tool's function and distinguishes it from sibling tools like mintNFT or deployCollection, which handle other aspects of NFT lifecycle. The additional context about workflows reinforces the purpose without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides broad use cases ('Use for Metaplex NFT collection, mint, metadata, royalty, creator verification, collection verification, and authority workflows') but fails to explicitly differentiate when to use this tool versus alternatives like updateMetadata or delegateAuthority. There is no mention of when not to use or trade-offs among siblings, leaving the agent to infer selection 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 AuthorityBInspect
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | NFT mint address (base58) | |
| newAuthority | Yes | Solana public key (base58) | |
| authorityType | Yes | Type of authority to delegate | |
| currentAuthority | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds 'operation class write' and warns about confirming metadata before writes, providing useful behavioral context beyond annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly verbose, including extraneous SAP context and general Metaplex advice that dilutes focus. The main purpose is front-loaded, but subsequent sentences do not earn their place for this specific tool. A more concise description would be more effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, preconditions, and broad use cases. It does not discuss return values (output schema exists, so not required), but includes irrelevant SAP registration details. Completeness is adequate but not exemplary for a write tool with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 description does not add new parameter-specific meaning beyond listing authority types, which are already in the enum. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the core action: 'Delegate a specific authority (update, mint, freeze, collection) to another wallet.' This provides a specific verb and resource. However, it does not explicitly differentiate from sibling tools like revokeAuthority, relying on implicit distinction. The purpose is clear but not perfectly refined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions broad use cases ('Use for Metaplex NFT collection, mint, metadata, royalty, creator verification...') and includes prerequisites ('Confirm metadata URI, collection mint...'). However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., revokeAuthority), and does not state when not to use it. The guidance is present but vague.
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | URI to collection metadata JSON | |
| name | Yes | Collection name | |
| symbol | Yes | Collection symbol | |
| creators | No | Creator list with revenue shares (must sum to 100) | |
| authority | Yes | Collection authority wallet | |
| isMutable | No | Is Mutable parameter for Metaplex-nft Deploy Collection. | |
| maxSupply | No | Max NFTs in collection (0 = unlimited) | |
| sellerFeeBasisPoints | No | Royalty fee in bps (500 = 5%) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) and the description adds 'Returns the collection mint and metadata addresses' and advises to confirm parameters before writes. This provides useful behavioral context beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat verbose with redundant phrases like 'Use these Metaplex tools...' and includes SAP-specific jargon not essential for all agents. The core purpose is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, an output schema, and many siblings, the description covers return values, pre-checks, and workflow context. While it lacks explicit alternatives, it is fairly complete for the core functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. The description reiterates some parameters but adds no new meaning beyond the schema. Baseline score of 3 applies due to high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Deploy a new NFT collection via Metaplex' with a specific verb and resource. It distinguishes from siblings by focusing on collection deployment, and mentions returning collection mint and metadata addresses, which is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for collection deployment and related workflows but does not explicitly differentiate from sibling tools like mintNFT or setAndVerifyCollection. No exclusions or when-not-to-use guidance is provided.
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 TBInspect
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | Yes | URI to NFT metadata JSON (image, attributes, etc.) | |
| name | Yes | NFT name | |
| symbol | No | NFT symbol | |
| creators | No | Creators parameter for Metaplex-nft Mint N F T. | |
| authority | Yes | Mint authority wallet | |
| isMutable | No | Is Mutable parameter for Metaplex-nft Mint N F T. | |
| recipient | No | Solana public key (base58) | |
| collection | No | NFT mint address (base58) | |
| merkleTree | No | Solana public key (base58) | |
| isCompressed | No | Mint as compressed NFT (cNFT) for lower cost | |
| sellerFeeBasisPoints | No | Seller Fee Basis Points parameter for Metaplex-nft Mint N F T. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds context by mentioning cNFT support and the need to confirm fields before writes. Annotations already indicate non-read-only and non-destructive traits, so description adds moderate value but omits side effects or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with multiple topics, but includes some repetitive phrasing (e.g., listing many workflow keywords). Could be more front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main purpose and prerequisites, but does not detail the difference between standard and compressed minting or explain output (though output schema exists). Adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions some parameters (metadata URI, creators) and their role in the process, but does not provide detailed explanation beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 both standard and compressed options. It broadly distinguishes from sibling tools by referencing workflows like collection and metadata, but does not explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on prerequisites ('confirm metadata URI, collection mint...') and suggests when to use Metaplex tools, but lacks explicit when-not-to-use advice or direct comparisons to specific siblings like deployCollection.
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 AuthorityADestructiveInspect
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | NFT mint address (base58) | |
| authority | Yes | Current authority holder | |
| authorityType | Yes | Authority Type parameter for Metaplex-nft Revoke Authority. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructiveHint=true), the description adds 'Irreversible for some types' and a confirmation warning. It also labels the operation as 'write' class. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is clear and purposeful. However, the description includes boilerplate SAP MCP context and agent identity instructions that are tangential, making it slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (destructive write with enums) and presence of an output schema, the description adequately covers purpose, usage warnings, and irreversibility. It could mention prerequisites or error scenarios but is generally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and each parameter is described. The description mentions 'authority' and 'authorityType' but adds no deeper semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Revoke (remove) a specific authority' and lists use cases for various NFT workflows. It distinguishes itself from sibling tools like delegateAuthority and verifyCollection by focusing on removal, but it does not explicitly differentiate when to use revoke versus delegate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a warning to confirm metadata and ownership before writes, and notes irreversibility for some types. However, it does not provide when-not-to-use guidelines or explicitly contrast with alternative actions like delegation or verification.
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 CollectionAInspect
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | NFT mint address (base58) | |
| collection | Yes | NFT mint address (base58) | |
| updateAuthority | Yes | NFT update authority | |
| collectionAuthority | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds that the tool performs the action in a single transaction, which is useful beyond annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false). It also advises pre-checks. However, it does not disclose other behavioral traits like error conditions or side 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads the key purpose sentence but then includes a substantial paragraph about SAP MCP protocol and agent identity, which is tangential to understanding the tool's function. It could be more concise and focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 4 required parameters, the description provides sufficient context: the combined action, usage in Metaplex workflows, and pre-check advice. It does not explain the output, but output schema covers that. Fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are well-documented in the input schema. The description mentions the need to confirm certain values (metadata URI, collection mint, etc.) but does not add specific semantics beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Set and verify a collection on an NFT in a single transaction.' It identifies the verb (set and verify) and resource (collection on NFT). However, it does not explicitly differentiate from sibling tools like metaplex-nft_verifyCollection or metaplex-nft_deployCollection, though the combined action is implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use the tool, stating 'Use for Metaplex NFT collection, mint, metadata, royalty, creator verification...' and advises to confirm metadata URI, collection mint, etc., before writes. It does not explicitly state when not to use it or mention 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.
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | New metadata URI | |
| mint | Yes | NFT mint address | |
| name | No | New name | |
| symbol | No | New symbol | |
| creators | No | Creators parameter for Metaplex-nft Update Metadata. | |
| isMutable | No | Is Mutable parameter for Metaplex-nft Update Metadata. | |
| updateAuthority | Yes | Current update authority | |
| newUpdateAuthority | No | Solana public key (base58) | |
| primarySaleHappened | No | Primary Sale Happened parameter for Metaplex-nft Update Metadata. | |
| sellerFeeBasisPoints | No | Seller Fee Basis Points parameter for Metaplex-nft Update Metadata. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 requiring confirmation before writes, but does not disclose additional behavioral traits beyond what annotations provide. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise but includes extraneous details like 'SAP MCP context' and agent identity instructions that could be omitted. It could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 10 parameters and a known output schema, the description provides adequate context for usage but lacks details on return values, error scenarios, or precise differentiation from siblings. Completeness is acceptable but not high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but many parameter descriptions are tautological (e.g., 'Share parameter for...'). The tool description lists some key fields but does not add substantive meaning beyond the schema. Overall, marginal improvement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Update NFT metadata fields (name, symbol, URI, creators, royalties, authority)' which is a specific verb+resource. It is clear, though it does not explicitly differentiate from sibling Metaplex tools like configureRoyalties or verifyCreator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists workflows and preconditions ('Confirm metadata URI, collection mint... before writes') but does not explicitly say when not to use this tool or provide alternatives among siblings. Usage guidance is implied but incomplete.
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | NFT mint to verify | |
| collection | Yes | Collection mint | |
| collectionAuthority | Yes | Collection authority wallet |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and openWorldHint=true. The description adds 'operation class write' but does not disclose specific behaviors such as authority checks, error conditions, or side effects. The advice about confirming metadata before writes is helpful but not about the tool's behavior itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose with five sentences, including tangential details about SAP MCP and agent identity. The core purpose gets buried. It could be more front-loaded and trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not needed. However, the description lacks prerequisites, error scenarios, and whether verification is a one-time or idempotent operation. It provides some context but is not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with simple descriptions. The description mentions parameters only indirectly ('collection mint', 'authority workflows') without adding format, constraints, or logical relationships beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Verify an NFT as part of a collection', which clearly states the verb and resource. However, it does not distinguish from the similar sibling tool setAndVerifyCollection, and includes extraneous SAP context that may dilute clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 setAndVerifyCollection. The description provides broad context but no when-not or alternative selection criteria.
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, keep sap_register_agent as the SAP on-chain registration step and 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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | NFT mint address (base58) | |
| creator | Yes | Creator wallet to verify |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by stating the signature requirement and recommending pre-write checks. Annotations indicate a write operation (readOnlyHint=false) but no contradiction. The description discloses necessary behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose, including redundant SAP MCP context and generic workflow advice. The first sentence is effective, but subsequent sentences add little value, making it less concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 high schema coverage, the description is adequate but lacks specific workflow guidance. It mentions signature requirement and pre-checks but does not cover edge cases or expected output behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions. The description does not add semantic detail beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Verify a creator on an NFT's metadata (requires creator's signature).' This clearly distinguishes it from sibling tools like verifyCollection or configureRoyalties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists use cases but does not explicitly name alternatives or state when not to use. It provides good prerequisites ('Confirm metadata URI... before writes') but lacks clear differentiation from similar metaplex-nft tools.
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 LiquidityBInspect
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| amountX | Yes | Raw token amount (smallest unit) | |
| amountY | Yes | Raw token amount (smallest unit) | |
| maxBinId | No | Max Bin ID parameter for Meteora Add D L M M Liquidity. | |
| minBinId | No | Min Bin ID parameter for Meteora Add D L M M Liquidity. | |
| strategy | No | Liquidity distribution strategy | |
| poolAddress | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint=false, destructiveHint=false), the description adds no behavioral detail such as required permissions, transaction costs, slippage, or state changes. It merely restates the obvious action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) and front-loaded with purpose. However, the second sentence about SAP context is tangential to core function, slightly reducing relevance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters, required fields, and an enum, the description lacks explanation of distribution strategy options, bin ID constraints, return values, or required wallet state. An output schema exists but the description itself is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not elaborate on parameters beyond what the schema provides. No additional meaning or context is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool adds liquidity to a Meteora DLMM pool with a distribution strategy. It uses a specific verb ('add') and resource ('liquidity to a Meteora DLMM pool'), and the sibling tool 'meteora_removeDLMMLiquidity' confirms the tool's distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes SAP context but does not provide guidance on when to use this tool versus alternatives like Jupiter or Raydium liquidity tools. No explicit when-to-use or when-not-to-use instructions are given.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| creator | Yes | Solana public key (base58) | |
| startTime | No | Vault start time (Unix timestamp) | |
| maxDeposit | Yes | Maximum deposit cap | |
| depositMint | Yes | Token mint accepted for deposits | |
| poolAddress | Yes | Solana public key (base58) | |
| vestingDuration | Yes | Vesting duration in seconds |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a non-read-only, open-world, non-idempotent, non-destructive tool. The description adds no behavioral details beyond what annotations already provide, such as permissions needed 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise and front-loaded with the purpose. The second sentence adds relevant context, though it could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary purpose and adds SAP context, but given the tool's complexity (6 parameters, creation action), more detail about prerequisites or outcomes would improve completeness. The presence of an output schema reduces the need for return value explanation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no parameter-specific information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a Meteora Alpha Vault for fair token launches with vesting,' specifying the verb and resource. However, it does not explicitly distinguish this tool from other meteora tools or similar vault creation tools, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides SAP MCP context and suggests using other SAP tools for on-chain registration, but it does not give explicit guidance on 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.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mintX | Yes | Token X mint | |
| mintY | Yes | Token Y mint | |
| feeBps | No | Fee Bps parameter for Meteora Create D L M M Pool. | |
| amountX | No | Raw token amount (smallest unit) | |
| amountY | No | Raw token amount (smallest unit) | |
| binStep | Yes | Bin step size (defines fee tier and price granularity) | |
| creator | Yes | Solana public key (base58) | |
| initialPrice | Yes | Initial Price parameter for Meteora Create D L M M Pool. | |
| activationType | No | Activation Type parameter for Meteora Create D L M M Pool. | |
| activationPoint | No | Activation Point parameter for Meteora Create D L M M Pool. | |
| priceRoundingUp | No | Price Rounding Up parameter for Meteora Create D L M M Pool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 mutation but not destructive. The description adds no further behavioral details such as prerequisites, side effects, or output format. With no additional context, the score is low.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise but includes an extra paragraph about SAP context that is not directly relevant to creating a DLMM pool. It is still relatively short and front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 11 parameters. The description does not explain what the tool returns or how to interpret results. While output schema helps, the description lacks completeness about the pool creation process and integration context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the description does not need to add parameter details. However, the description provides no extra meaning beyond the schema's basic 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a Meteora DLMM (Discrete Liquidity Market Maker) pool.' This is a specific verb+resource combination that distinguishes it from sibling Meteora tools like meteora_addDLMMLiquidity and meteora_createDynamicPool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as meteora_createDynamicPool or meteora_createAlphaVault. The SAP context paragraph discusses unrelated integration steps, not usage context.
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 PoolAInspect
Create a Meteora Dynamic AMM pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mintA | Yes | Token mint address (base58) | |
| mintB | Yes | Token mint address (base58) | |
| amountA | Yes | Raw token amount (smallest unit) | |
| amountB | Yes | Raw token amount (smallest unit) | |
| creator | Yes | Solana public key (base58) | |
| activationType | No | Activation Type parameter for Meteora Create Dynamic Pool. | |
| activationPoint | No | Activation slot/timestamp | |
| tradeFeeNumerator | No | Trade fee numerator (default pool fee) | |
| tradeFeeDenominator | No | Trade Fee Denominator parameter for Meteora Create Dynamic Pool. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, indicating mutation. The description adds no further behavioral traits (e.g., permission requirements, side effects). With annotations present, description does not significantly enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficient and to the point. The first sentence directly states the action. The second sentence adds SAP context, which is valuable but slightly shifts focus. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, DeFi context) and presence of output schema, the description is minimal. It does not explain what a 'Dynamic AMM pool' is, prerequisites, or behavioral impacts like activation or fees. Adequate but could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the JSON schema fully documents all 9 parameters. The description does not add extra meaning beyond what's 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state the tool creates a 'Meteora Dynamic AMM pool', using specific verb+resource. It distinguishes from sibling tools like meteora_createDLMMPool by explicitly naming 'Dynamic AMM pool'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit SAP context: when to use this tool vs. SAP SDK tools (e.g., sap_register_agent). However, it lacks guidance on when to prefer this over other Meteora pool creation tools (e.g., createDLMMPool).
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 LiquidityADestructiveInspect
Remove liquidity from a Meteora DLMM position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| percentage | No | Percentage parameter for Meteora Remove D L M M Liquidity. | |
| positionAddress | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint=true and readOnlyHint=false, indicating mutation. The description adds 'remove liquidity' which aligns but does not disclose beyond what annotations already convey. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and efficient, but includes a somewhat extraneous sentence about SAP agent context that could be omitted or placed elsewhere. Still well-structured for its purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 minimally viable. However, for a destructive tool, it could mention prerequisites (e.g., existing position) or what the output represents (e.g., transaction signature).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so the baseline is 3. The description does not add any additional meaning or context for parameters beyond the schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Remove liquidity from a Meteora DLMM position,' which clearly identifies the verb (remove) and resource (Meteora DLMM position). It distinguishes from sibling tools like meteora_addDLMMLiquidity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the tool name and basic verb, but provides no explicit guidance on when to use this tool versus other liquidity removal tools (e.g., raydium-pools_removeLiquidity, orca_closePosition). The SAP context note is tangential and 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.
openbook_cancelOrderOpenbook Cancel OrderBDestructiveInspect
Cancel an open order on an Openbook market. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| orderId | Yes | Order ID parameter for Openbook Cancel Order. | |
| marketId | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds no behavioral details beyond that. No mention of side effects, reversibility, or what happens after cancellation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with clear purpose and relevant context. Could be slightly more concise by removing the SAP context, but it's not overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a relatively simple destructive tool with output schema present, the description is adequate. However, it lacks details on what happens post-cancellation (e.g., confirmation, effects on market) that could be useful given the destructive nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema definitions provide complete parameter descriptions (100% coverage). The description adds no additional parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (cancel) and resource (open order on Openbook market). Distinguishes from sibling tools like openbook_createMarket 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides SAP ecosystem context but no guidance on when to use this tool versus alternative cancel order tools (e.g., jupiter_cancelLimitOrder, manifest_cancelOrder). The introduction of SAP tools is helpful but not about direct usage of this tool.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| creator | Yes | Solana public key (base58) | |
| lotSize | Yes | Minimum order size | |
| baseMint | Yes | Token mint address (base58) | |
| tickSize | Yes | Minimum price increment | |
| quoteMint | Yes | Token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a read-write (not read-only) and non-destructive operation. The description adds no additional behavioral details like prerequisites, costs, or side effects. Minimal added value beyond schema 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first covers purpose, second provides extra context. Each sentence adds value, though the second feels slightly tangential. No fluff, but could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 required parameters, an output schema, and sibling tools, the description lacks details on return values (e.g., market address), failure conditions, and does not differentiate from other market creation tools. Adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not elaborate on parameter meanings beyond the existing schema descriptions. No examples or additional context for lotSize or tickSize are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'new Openbook DEX market for a token pair', distinguishing it from order-related siblings. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use SAP-related tools instead (sap_register_agent, etc.), but lacks explicit exclusions or alternatives among other market creation tools (e.g., manifest_createMarket). Still, it gives clear context for the SAP ecosystem.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| side | Yes | Side parameter for Openbook Place Order. | |
| size | Yes | Raw token amount (smallest unit) | |
| price | Yes | Price parameter for Openbook Place Order. | |
| wallet | Yes | Solana public key (base58) | |
| marketId | Yes | Solana public key (base58) | |
| orderType | No | Order Type parameter for Openbook Place Order. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write semantics (readOnlyHint=false). The description adds no behavioral details beyond the basic action, such as order lifecycle, failure conditions, or fund requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, but the second sentence about SAP context is tangential to the core function. It front-loads the primary purpose but could be more focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an order placement tool, the description lacks crucial context such as error handling, prerequisites (e.g., token balance), output format, and market validity. Output schema exists but is not detailed in description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are documented. The description adds no additional meaning to parameters beyond what the schema provides, leaving baseline at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Place an order on an Openbook market,' specifying the verb and resource, and differentiates from sibling tools like openbook_cancelOrder and openbook_createMarket. The additional SAP context does not diminish clarity, though it adds extraneous information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., Jupiter swap or other order placement tools). The SAP context discusses registering agents, not usage conditions, and provides no criteria for selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orca_closePositionOrca Close PositionADestructiveInspect
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| positionMint | Yes | Token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds the 'collect fees' aspect but does not disclose additional behavioral details like side effects or prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core purpose is front-loaded in the first sentence. The second sentence adds SAP context, which is useful but slightly dilutes conciseness. Still, very efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool, the description covers essential behavior. Output schema exists, so return values need not be described. Lacks warnings but annotations fill some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Close a Whirlpool position and collect all fees/rewards.' It uses a specific verb and resource, clearly distinguishing it from siblings like orca_openPosition and orca_collectFees.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It lacks explicit when-to-use or when-not-to-use statements, and does not mention alternative tools for fee collection without closing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orca_collectFeesOrca Collect FeesBInspect
Collect accumulated fees from a Whirlpool position. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| positionMint | Yes | Token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond annotations. The annotations already indicate a mutation (readOnlyHint false) and no destruction (destructiveHint false). The description does not disclose side effects, permissions needed, or what happens to the fees collected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise, but the second sentence about SAP context introduces irrelevant information for the tool's own purpose, making the description less efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 context on prerequisites like needing an existing Whirlpool position with fees. Overall adequate but not fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with adequate descriptions for both parameters. The tool description does not add further 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'collect' and the resource 'accumulated fees from a Whirlpool position', which distinguishes it from sibling tools like 'orca_swap' or 'orca_openPosition'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes tangential SAP context about other tools but provides no guidance on when to use this tool, prerequisites, or exclusions. It fails to help the agent distinguish between this and alternative actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orca_getWhirlpoolOrca Get WhirlpoolBRead-onlyIdempotentInspect
Get Orca Whirlpool pool information. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| poolAddress | Yes | Whirlpool pool address |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint false. The description aligns ('Get...information') but adds no behavioral details beyond what annotations convey. With annotations present, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is concise. The second sentence about SAP context is irrelevant to the tool's function, adding noise without value. Structure is adequate but not optimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (1 param, output schema present, full annotations), the description is largely complete. It does not discuss output format or prerequisites, but the structured fields compensate. A 4 reflects sufficient coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter `poolAddress` has 100% schema description coverage. The tool description does not add extra meaning (e.g., format, chain) beyond the schema's 'Whirlpool pool address', so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
First sentence clearly states 'Get Orca Whirlpool pool information' with specific verb and resource. However, the second sentence about SAP MCP context is tangential and may distract from the core purpose, preventing a top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 only mentions unrelated SAP tools, leaving the agent without direction on selecting orca_getWhirlpool over other Orca tools like orca_swap.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| amountA | No | Raw token amount (smallest unit) | |
| amountB | No | Raw token amount (smallest unit) | |
| priceLower | Yes | Price Lower parameter for Orca Open Position. | |
| priceUpper | Yes | Price Upper parameter for Orca Open Position. | |
| poolAddress | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a write operation (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds no further behavioral context beyond stating the action, but is consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description has a concise first sentence but includes a lengthy SAP MCP context note that may distract from the core purpose. It could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of opening a concentrated liquidity position, the description lacks workflow context, prerequisites, or parameter relationships. Output schema exists but does not compensate for the minimal description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for each parameter. The description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Open a concentrated liquidity position on an Orca Whirlpool,' which is a specific verb+resource. This distinguishes it from sibling tools like orca_closePosition, orca_collectFees, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes SAP MCP context but provides no guidance on when to use this tool versus alternatives for opening liquidity positions. It lacks exclusions or references to other Orca tools or DEX tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
orca_swapOrca SwapCDestructiveInspect
Swap tokens on an Orca Whirlpool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Raw token amount (smallest unit) | |
| wallet | Yes | Solana public key (base58) | |
| inputMint | Yes | Token mint address (base58) | |
| poolAddress | Yes | Solana public key (base58) | |
| slippageBps | No | Slippage Bps pagination control for Orca Swap. | |
| isExactInput | No | Is Exact Input parameter for Orca Swap. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false, but the description adds no behavioral context such as side effects, gas costs, or required approvals. The description only restates the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes irrelevant SAP context that is not about the tool's core function, making it less concise and potentially confusing. It could be shortened to one focused sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Missing critical context about output (output schema exists but not described), required preconditions, and gas costs. The description does not provide a complete picture for a complex swap operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but parameter descriptions contain an error (slippageBps described as 'pagination control') and add little meaning beyond types. The description does not compensate for this.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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,' providing a specific verb and resource. It distinguishes this tool from other swap tools like jupiter_swap by naming Orca.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., Jupiter swap). The SAP context is irrelevant to swapping and does not help with usage decisions.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Token name | |
| image | No | Token logo URL | |
| symbol | Yes | Token ticker | |
| No | Twitter/X handle | ||
| website | No | Website URL | |
| deployer | Yes | Deployer wallet | |
| telegram | No | Telegram group link | |
| description | No | Description parameter for Pump Launch Token. | |
| initialBuyAmount | No | Raw token amount (smallest unit) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a mutation (readOnlyHint=false) but no destructive or idempotent traits. The description states 'launch a new token', confirming a write operation. However, it fails to disclose side effects like cost, reversibility, or any rate limits. With no extra behavioral context beyond the obvious, transparency is low.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a paragraph of SAP MCP context. While the first sentence is direct, the SAP context is tangential to the tool's core purpose, making it less concise. Some agents may not need that context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, an output schema, and a non-trivial operation, the description is adequate but does not explain what is returned after launch or any post-launch considerations. The SAP context addresses a specific integration but not general completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 9 parameters have schema descriptions (100% coverage), so the description adds minimal value. It rephrases the existence of initialBuyAmount as 'optionally include an initial dev buy', but no other parameter semantics are enriched. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool launches a new token on Pump.fun via PumpPortal and optionally includes an initial dev buy. The verb 'launch' combined with 'Pump.fun' provides a specific resource. However, it does not explicitly differentiate from the sibling 'pump_trade' tool, which handles trading rather than launching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the optional initial dev buy, giving one usage hint. The SAP MCP context advises when to use SAP registry tools instead, but there is no guidance on prerequisites (e.g., wallet funding) or when to avoid using this tool (e.g., if the token already exists).
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Pump.fun token mint | |
| action | Yes | Trade direction | |
| amount | Yes | Amount in SOL (buy) or tokens (sell) | |
| wallet | Yes | Solana public key (base58) | |
| slippageBps | No | Slippage Bps pagination control for Pump Trade. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutating (readOnlyHint=false) and non-destructive operation. Description adds no behavioral details beyond buying/selling—no mention of bonding curve mechanics, price impact, slippage behavior, or trade settlement. Falls short 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with a clear first sentence. The second sentence about SAP MCP context is extraneous for the tool's core function but does not harm conciseness significantly. Could be slightly leaner.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trading tool with 5 parameters and output schema, the description omits critical context such as execution model, pricing, fees, or what happens on failure. The output schema may cover return values but the description should still set expectations for a financial operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no additional semantics or clarifications. For example, 'slippageBps' description is confusing ('pagination control') but not corrected. Baseline 3 applies as description does not detract nor enhance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Buy or sell tokens on Pump.fun bonding curve', providing a specific verb and resource. It identifies the platform and operation, but does not differentiate from sibling tools like pump_launchToken or other DEX trading tools, missing explicit sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description only mentions SAP MCP context and tool registration, not usage context such as prerequisites or when to choose buy vs sell. Minimal help 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.
pyth_getPricePyth Get PriceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| priceId | Yes | Pyth price feed ID (hex) or symbol (e.g. "SOL/USD") |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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: 'SAP MCP context: Protocol pyth; operation class read' and the settlement proof warning, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and no waste. Every sentence adds value: the first states purpose, the second provides usage context and a critical warning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 rich annotations, the description covers purpose, usage, and a behavioral caveat. It lacks explicit mention of error conditions or rate limits, but for a simple read-only oracle tool, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the priceId parameter well-described in the schema. The description does not add parameter-level details beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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' with a specific verb, resource, and scope. It distinguishes from siblings like pyth_getPriceHistory and pyth_listPriceFeeds by focusing on current price and feed discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use: for oracle price reads, feed discovery, and as context for pricing/risk checks. It explicitly warns 'do not treat them as settlement proof,' setting appropriate expectations. It does not explicitly mention alternatives, but the context of sibling tools implies them.
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 HistoryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | Period parameter for Pyth Get Price History. | |
| priceId | Yes | Price ID parameter for Pyth Get Price History. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 SAP MCP context and a warning about not using as settlement proof, which is helpful but not substantial 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief and to the point, but includes a somewhat redundant 'SAP MCP context' line. Overall well-structured with no unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only historical data tool with output schema and rich annotations, the description covers purpose, usage, and a behavioral caveat. It is fairly complete, though could mention output format briefly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but parameter descriptions in schema are generic ('Price ID parameter for Pyth Get Price History'). The tool description does not add any additional meaning or examples for parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get historical price data from Pyth oracle' and mentions 'feed discovery'. However, it does not explicitly differentiate from sibling tools like pyth_getPrice (current price) or pyth_listPriceFeeds, though the name implies history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on when to use: 'Use for Pyth oracle price reads and feed discovery' and includes a caveat: 'do not treat them as settlement proof'. It also mentions use as context for pricing and risk checks. But lacks explicit comparison to alternatives.
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 FeedsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search filter (e.g. "SOL", "BTC") | |
| assetType | No | Asset Type parameter for Pyth List Price Feeds. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 the valuable behavioral note about not treating oracle reads as settlement proof, which goes beyond the annotations. No contradictions. Missing details like rate limits or authentication are not critical given the simple nature of the tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences plus a brief note. Every sentence adds value: the first states purpose, the second gives context, and the final note provides behavioral caveat. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 optional params, output schema exists), the description covers purpose, usage context, and key behavioral notes. An output schema documents return values, so missing descriptions of pagination or field names are not needed. The description is fully adequate for an agent to select and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's mention of 'optionally filtered by query or asset type' adds minimal value beyond what the schema already provides. The description does not elaborate on parameter meaning further, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists available Pyth price feeds with optional filtering by query or asset type. It uses specific verbs and resource, and while not explicitly naming sibling tools, it implicitly differentiates from pyth_getPrice and pyth_getPriceHistory by focusing on listing feeds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use for Pyth oracle price reads and feed discovery' and includes important guidance about not treating reads as settlement proof. However, it does not explicitly mention when not to use this tool or compare it to alternatives like pyth_getPrice, so some guidance gaps exist.
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 LiquidityBInspect
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes | Raydium pool ID | |
| wallet | Yes | Solana public key (base58) | |
| amountA | No | Raw token amount (smallest unit) | |
| amountB | No | Raw token amount (smallest unit) | |
| fixedSide | No | Fixed side for single-sided liquidity | |
| priceLower | No | Lower price for CLMM range | |
| priceUpper | No | Upper price for CLMM range |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=false, idempotentHint=false, and destructiveHint=false. The description adds pool type variants but does not disclose side effects (e.g., token transfers, LP token minting), required permissions, or failure modes. The behavioral disclosure is minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with two sentences. The first sentence directly states the tool's purpose. The second sentence provides contextual guidance about SAP integration, which is helpful but slightly tangential to the tool's core function. It is concise but the second sentence could be omitted or integrated into a separate note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of adding liquidity in DeFi (multiple pool types, parameter interactions like fixedSide and price range), the description is insufficient. It does not explain when to use CPMM vs CLMM vs AMM v4, how parameters like fixedSide and priceLower/priceUpper work, or what the output schema contains. The existence of an output schema is not leveraged.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 7 parameters. The description does not add further parameter-specific meaning or usage context beyond what is already 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add liquidity') and the specific resource ('Raydium pool (CPMM, CLMM, or AMM v4)'). It effectively distinguishes the tool from siblings like 'raydium-pools_removeLiquidity' by using a distinct verb and specifying pool types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on when to use SAP tools (sap_register_agent, etc.) instead of this tool for on-chain registry purposes. However, it lacks explicit guidance on when to use this tool versus other liquidity-providing tools (e.g., meteora_addDLMMLiquidity, orca_openPosition) and does not mention prerequisites like token approvals or pool existence.
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| creator | Yes | Solana public key (base58) | |
| marketId | Yes | Openbook market ID | |
| startTime | No | Start Time parameter for Raydium-pools Create A M Mv4. | |
| baseAmount | Yes | Raw token amount (smallest unit) | |
| quoteAmount | Yes | Raw token amount (smallest unit) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, indicating a state-changing but non-destructive operation. The description adds only the prerequisite condition, not additional behavioral traits like permission needs or side effects, so it provides limited added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences. The first directly states the tool's function, and the second adds ecosystem context. It is well-structured and front-loaded, though the second sentence could be more tightly integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and the description covering the prerequisite and SAP ecosystem integration, the tool is well-documented for an agent. No critical gaps remain, though additional details on pool creation behavior are not required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 5 parameters with descriptions (100% coverage). The description adds context that marketId must be an existing Openbook market, but this is a minimal addition. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 AMM v4 pool and includes a prerequisite (requires an existing Openbook market), making the purpose specific and distinguishable from sibling tools like createCLMM or createCPMM.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly requires an existing Openbook market and directs the agent to use sap_register_agent, sap_update_agent, and sap_publish_tool_by_name when the capability should become part of an on-chain SAP profile, providing clear when-to-use and alternative 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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mintA | Yes | Token mint address (base58) | |
| mintB | Yes | Token mint address (base58) | |
| amountA | Yes | Initial liquidity for token A | |
| amountB | Yes | Initial liquidity for token B | |
| creator | Yes | Solana public key (base58) | |
| startTime | No | Start Time parameter for Raydium-pools Create C L M M. | |
| priceLower | Yes | Lower price bound for liquidity range | |
| priceUpper | Yes | Upper price bound for liquidity range | |
| tickSpacing | Yes | Tick spacing (defines fee tier: 1=0.01%, 10=0.05%, 60=0.3%, 200=1%) | |
| initialPrice | Yes | Initial price of token A in terms of token B |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly and non-destructive. The description adds no additional behavioral context such as side effects, fees, or failure conditions, so it provides minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (two sentences) and front-loaded with the core purpose. The second sentence provides ecosystem context, which is relevant but not directly about the tool's function, adding slight overhead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the schema and annotations, the description covers the basic purpose. However, it lacks important context such as potential errors, liquidity ranges, or on-chain interactions that could aid agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions. The tool description adds no extra parameter information, meeting the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Create a Raydium CLMM (Concentrated Liquidity) pool with a price range,' clearly specifying the verb and resource. However, it does not explicitly differentiate this tool from sibling raydium pool creation tools like createAMMv4 or createCPMM, though the name is distinctive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use CLMM vs other pool types or any prerequisites. The only usage advice (SAP context) is about post-creation steps, not about invoking this tool.
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 MBInspect
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_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| mintA | Yes | Token A mint | |
| mintB | Yes | Token B mint | |
| amountA | Yes | Initial liquidity for token A | |
| amountB | Yes | Initial liquidity for token B | |
| creator | Yes | Solana public key (base58) | |
| startTime | No | Pool start time (Unix timestamp) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, consistent with a creation tool. The description adds minimal behavioral context (just 'Create'). With annotations present, the bar is lower, but no additional details about permissions, side effects, or response behavior are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences). The first sentence is direct and efficient. The second sentence, while useful for SAP context, is somewhat tangential and could be placed elsewhere. Overall, it is well-structured but not maximally focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covered. However, the description lacks context on prerequisites, authority requirements, or pool address derivation. Given the existence of sibling tools with similar purposes, more differentiation would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning to parameters; it only repeats the high-level purpose. The schema descriptions already cover parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it creates a Raydium CPMM pool, but it does not differentiate from sibling tools like raydium-pools_createAMMv4 or raydium-pools_createCLMM. The acronym CPMM is explained, but the unique characteristics of this pool type are not highlighted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternative pool creation tools (AMMv4, CLMM). It includes an SAP MCP context note about other tools, but this is not about when to use CPMM. 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.
raydium-pools_removeLiquidityRaydium-pools Remove LiquidityBDestructiveInspect
Remove liquidity from a Raydium pool. SAP MCP context: This Synapse AgentKit tool is served beside the sap_* SDK tools. Use sap_register_agent, sap_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.
| Name | Required | Description | Default |
|---|---|---|---|
| poolId | Yes | Solana public key (base58) | |
| wallet | Yes | Solana public key (base58) | |
| lpAmount | No | Raw token amount (smallest unit) | |
| percentage | No | Percentage of liquidity to remove | |
| positionNft | No | Token mint address (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint: true and readOnlyHint: false. The description only restates 'Remove liquidity', adding no additional behavioral context such as permission requirements, reversibility, or side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two sentences. The first sentence is concise and directly states the tool's purpose. The second sentence about SAP context is tangential and may distract from the core purpose, reducing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool has 5 parameters and an output schema, the description does not explain the relationship between lpAmount and percentage, nor does it clarify that only one of them is needed. Given the complexity, more guidance would complete the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 5 parameters. The description does not add any parameter-specific 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'liquidity from a Raydium pool'. It directly distinguishes from sibling tools like raydium-pools_addLiquidity and other pool creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides SAP MCP context about when to use SAP tools instead, but does not give guidance on when to use this tool versus alternatives like meteora_removeDLMMLiquidity or orca_closePosition. No when-to-use or when-not-to-use exclusions for competing tools.
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 SubscriptionADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subId | No | Subscription ID (as a decimal string, default: 0) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 write operations require signer mode and policy approval, but does not describe the exact effects of cancellation (e.g., termination behavior, refunds) or side effects beyond the prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences. The first sentence immediately states the purpose, followed by context and prerequisites. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is straightforward with two params and good annotations. The description adds workflow context and prerequisites, but lacks details on post-cancellation state or output. Given the output schema exists, completeness is adequate but not exceptional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (subId, agentWallet) with types and descriptions at 100% coverage. The description adds no additional information about the parameters, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Cancel a recurring subscription,' with a specific verb and resource. It differentiates from sibling tools like sap_create_subscription by the action. The additional SAP context reinforces the domain without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions prerequisites (enabled signer mode and MCP policy approval) and suggests a workflow (estimate/fetch state before escrows/settlements). It does not explicitly contrast with alternative tools or specify when not to use this tool, leaving usage guidance somewhat implicit.
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 RoomAInspect
Derive a deterministic SAP chat room/session ID. Group and public room IDs are active; DM derivation is reserved for future native support.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the deterministic nature and the limitation about DM support, which provides some behavioral context. However, it doesn't disclose potential side effects or what happens when roomId is provided versus derived, leaving gaps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences with no extraneous information. Every word serves a purpose, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite only two sentences, the description covers the essential purpose and a key limitation. With an output schema available (as indicated) and all parameters documented, the missing return value explanation is compensated. However, no prerequisites or error conditions are mentioned, which could be useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already explains parameters well. The description adds value by clarifying that group and public room IDs are active while DM is not, providing contextual nuance beyond the schema's enum and descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool derives a deterministic SAP chat room/session ID, which is a specific verb+resource. It distinguishes between active group/public room IDs and DM derivation reserved for future, but does not explicitly differentiate from sibling tools like sap_chat_start_room.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a hint about when not to use (DM not yet supported) but lacks explicit guidance on when to use this tool instead of alternatives. No when-not or alternative tool names are provided.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Small topic tags used by discovery, for example openbook, markets, sol-usdc. | |
| links | No | Optional signed room links for docs, market references, IPFS manifests, or execution receipts. | |
| topic | No | Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery. | |
| policy | No | Compact group policy or content-addressed policy reference. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| metadata | No | Optional compact manifest metadata. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| description | No | Short public room/group description. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write operation) and openWorldHint=true (possible side effects). The description adds context about the target audience but does not disclose specific behavioral traits like idempotency, validation, or potential side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loading the key action and purpose. No filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (10 parameters, nested objects, output schema), the description is minimal. It does not explain the manifest's role in the chat workflow or how it relates to sibling tools like sap_chat_start_room or sap_chat_seal_room. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description does not add additional meaning beyond the schema, so it meets the baseline of 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Publish', the resource 'signed thematic room/group manifest', and the target audience 'discovery indexers, policy-aware agents, and chat clients'. It effectively distinguishes from sibling chat tools like sap_chat_send_message or sap_chat_start_room.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for making manifests available to discovery and agents, but lacks explicit guidance on when to use this tool vs alternatives, prerequisites, or exclusions. Among siblings, no direct alternative is named, so usage is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_chat_read_allSAP Chat Read AllCInspect
Read all SAP chat messages from sealed ledger pages plus the latest ring buffer.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims a read operation ('Read all') but the annotation readOnlyHint=false suggests it may have side effects, creating a contradiction. No additional behavioral details are provided beyond the misleading hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. It efficiently conveys the core purpose, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and parameter details. However, it lacks context on the behavior of reading from sealed pages vs. ring buffer, which is relevant for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 5 parameters. The description adds no extra semantic value beyond mentioning data sources, which is not directly parameter-related.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read all') and the resource ('SAP chat messages'), specifying data sources (sealed ledger pages + ring buffer). However, it does not explicitly differentiate from sibling tools 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.
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 is provided. The description lacks context for when to choose this over other chat 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 LatestCInspect
Read latest SAP chat messages from the room ring buffer.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description ('Read') contradicts the readOnlyHint=false annotation, which implies the tool may modify state. The description does not disclose any side effects, permissions, or behavioral quirks 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence without waste, front-loading the action. However, it omits usage guidance, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the contradiction and lack of sibling differentiation, the description is incomplete. The 'ring buffer' concept is unexplained, and the tool's behavior relative to readAll is unclear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is described. The tool description adds no additional meaning beyond the schema, achieving the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the latest SAP chat messages from the ring buffer, using a specific verb and resource. It distinguishes from sibling tools like sap_chat_read_all and 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.
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; no exclusions or context about the ring buffer versus full history.
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 RoomAInspect
Seal the current chat ring buffer into an immutable SAP ledger page for permanent history.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by revealing that the operation creates an 'immutable' record for 'permanent history,' implying irreversibility. It also mentions the 'current chat ring buffer,' indicating it operates on the most recent state. Annotations already indicate a write operation (readOnlyHint=false), and the description adds valuable context about immutability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that efficiently conveys the core action. It is front-loaded with the key verb 'Seal.' While it could be structured more (e.g., bullet points), it contains no filler and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a write operation with optional parameters and an output schema), the description provides the minimum viable information: the action and result. It does not elaborate on prerequisites, side effects, or usage scenarios, leaving gaps for an agent. The output schema exists, so return values are covered, 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.
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 tool description does not add additional meaning or context for the parameters; it only briefly mentions 'current chat ring buffer' without linking to parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('current chat ring buffer') and the outcome ('immutable SAP ledger page'). It effectively distinguishes from sibling tools like sap_chat_send_message or sap_chat_read_latest, which 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.
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 (e.g., when to seal vs. send or read messages). No context or exclusions are given.
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 MessageBInspect
Send a chunked SAP chat message to a room. Public messages store UTF-8 text; private messages store caller-provided ciphertext bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| links | No | Optional signed link references. Each link must include url and may include kind, label, sha256. | |
| topic | No | Required thematic group topic when deriving or writing to topic-scoped groups. | |
| policy | No | Optional compact group policy reference or policy hash. Full policy bodies should live off-chain and be linked by hash. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| content | No | Plain UTF-8 message content for public messages. | |
| replyTo | No | Optional parent message ID. | |
| metadata | No | Optional JSON metadata. Keep small; large metadata should be stored off-chain and hashed. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| visibility | No | Message visibility. Defaults to public. | |
| contentType | No | MIME content type. Defaults to text/plain for public messages. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. | |
| payloadBase64 | No | Base64 payload. Required for private/ciphertext messages. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-readonly, non-destructive, non-idempotent. The description adds context about chunked messages and public/private storage (UTF-8 vs ciphertext). However, it does not fully disclose side effects like room auto-creation or message limits, which would be valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs essential information (action, resource, public/private distinction) without redundancy. It could be slightly more structured with separate usage notes, but for a concise description, it is effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 13 parameters, no required fields, and an output schema present, the description covers the basic use case but lacks detail on chunking behavior, room derivation logic, error handling, or constraints. The output schema partially compensates, but more behavioral context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 13 parameters. The description adds minimal extra meaning (e.g., 'chunked' message, public/private distinction), but does not compensate for the lack of parameter-specific guidance beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (send), the resource (SAP chat message to a room), and differentiates between public and private messages with specific storage details. It effectively distinguishes from sibling chat tools like sap_chat_read_all 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus other chat-related tools (e.g., sap_chat_start_room, sap_chat_read_latest). There are no explicit when-to-use or when-not-to-use statements, leaving the agent to infer context from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_chat_start_roomSAP Chat Start RoomBInspect
Start an on-chain SAP chat room by creating the backing vault, session, and ledger if needed.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only (readOnlyHint=false) and the description adds that it creates multiple on-chain artifacts. However, it does not disclose potential side effects like non-idempotency (idempotentHint=false) or cost implications, which would be valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the tool's purpose without unnecessary words. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having a complex operation with 5 parameters and an output schema, the description only gives a high-level goal. It lacks workflow context, prerequisites, and explanation of return values, leaving the agent needing more information to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already documented in the input schema. The description does not add any extra meaning or usage hints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Start' and the resource 'on-chain SAP chat room', and explains it creates backing vault, session, and ledger. This differentiates it from sibling tools like sap_chat_derive_room or sap_chat_read_all, which handle different chat operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_chat_derive_room or sap_chat_seal_room. The description does not mention prerequisites or context for choosing this over other chat tools.
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 StatusBInspect
Get backing SAP memory session status for a chat room.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Thematic topic, for example openbook:sol-usdc:market-makers or sap:registry:discovery. | |
| roomId | No | Optional explicit room ID. If omitted, one is derived deterministically. | |
| roomKind | No | Chat room kind: dm, group, or room. | |
| roomName | No | Human-readable room name for public thematic rooms. | |
| participants | No | Participant agent/wallet identifiers for DM or group rooms. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set readOnlyHint=false and idempotentHint=false, but the description claims 'Get', implying a read-only, idempotent operation. This is a direct contradiction, and the description fails to disclose any side effects or state changes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 9 words with no wasted text. It efficiently conveys the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 5 optional parameters and an output schema, the description lacks context about the meaning of 'backing SAP memory session', prerequisites, or behavior when parameters are omitted. For a non-read-only tool, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented. The tool description adds no additional meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get backing SAP memory session status for a chat room' uses a specific verb ('Get') and resource ('backing SAP memory session status'), clearly distinguishing it from siblings like sap_chat_start_room (start) and sap_chat_send_message (send).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as sap_chat_read_all or sap_session_status. The description does not specify context, prerequisites, or exclusions, leaving the agent to infer from sibling names.
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 AgentADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true and readOnlyHint=false. The description adds value by explaining the outcome ('reclaim rent') and listing prerequisites (signer policy, configured RPC, active SAP profile), which are beyond the annotations. However, it does not describe potential 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: one stating the action, one providing SAP MCP context and requirements. It is efficient and front-loaded, though the second sentence could be considered slightly redundant if the agent already knows the context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 existing output schema, the description is sufficiently complete. It covers the primary action, rent reclaim, and write-tool prerequisites. It does not elaborate on return values, but the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters with 100% coverage, so no parameter explanation is needed. The baseline for 0 parameters is 4, and the description adds no parameter info (appropriately).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool closes the connected wallet SAP agent and reclaims rent, using a specific verb ('close') and resource ('SAP agent'). This distinguishes it from siblings like sap_deactivate_agent, which likely deactivates without reclaiming rent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_deactivate_agent or other SAP management tools. The description mentions prerequisites for write tools (signer policy, RPC, active profile) but does not provide contextual distinctions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_close_escrowClose SAP Escrow V1ADestructiveInspect
Close an empty V1 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false, signaling a write operation. The description adds value by specifying the need for 'enabled signer mode and MCP policy approval' and the condition that the escrow must be empty, which are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, with no redundant information. The first sentence states the core purpose, and the second provides context and usage requirements. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 present, good annotations), the description covers purpose, preconditions, authorization context, and its role in the payment flow. It lacks explicit mention of return values, but the output schema fills that gap. Sibling tool variations (v2) are implicitly clear from the name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter (agentWallet) with 100% schema description coverage in the schema itself. The tool description does not add any additional semantic meaning or usage hints for this parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Close an empty V1 escrow', clearly identifying the verb (close) and resource (V1 escrow). The qualifier 'empty' distinguishes it from other escrow operations like create or settle, and the V1 designation differentiates it from sap_close_escrow_v2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: 'Payment and settlement flow' and 'Estimate or fetch state before creating escrows or settling calls'. It also implies a precondition (escrow must be empty) and mentions requirements ('enabled signer mode and MCP policy approval'). However, it does not explicitly state when not to use or name alternatives like sap_close_escrow_v2.
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 V2ADestructiveInspect
Close a V2 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (as a decimal string, default: 0) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide destructiveHint and readOnlyHint. Description adds useful behavioral context: requires enabled signer mode and MCP policy approval, and advises to estimate/fetch state before related operations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states the core purpose; second provides operational context. No unnecessary words, but could be slightly more compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 optional parameters and an output schema, the description covers the essential usage context (payment/settlement flow, authorization requirements). It is sufficient for an agent to understand when and how to invoke the tool, though it omits detailed side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (nonce and agentWallet) with descriptions. Schema coverage is 100%, so the description does not need to add semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Close a V2 escrow', which is a specific verb-action targeting a specific resource. Distinguishes from the sibling 'sap_close_escrow' (v1) by specifying V2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context about payment and settlement flow and mentions that write operations require enabled signer mode and policy approval. However, it does not explicitly guide when to use this tool over alternatives like 'sap_close_escrow' or 'sap_settle_escrow_v2'.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Encryption nonce as a byte array, hex string, or base64 string | |
| vaultPda | No | Vault PDA (base58) for the memory inscription | |
| sessionPda | No | Session PDA (base58) for the memory inscription | |
| contentHash | No | 32-byte content hash as a byte array, hex string, or base64 string | |
| encryptedData | No | Encrypted memory data as a byte array, hex string, or base64 string |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate non-read-only, non-idempotent, non-destructive behavior. The description adds valuable context: that session and vault PDAs are visible on-chain metadata and that only intentionally encrypted payloads or public hashes should be stored. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and adding context without waste. Every phrase earns its place, making it efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 present), the description covers the main action and a key caution. However, it lacks comparative context with the non-compact version and does not describe side effects beyond on-chain visibility. Output schema handles return values, so completeness is adequate but not rich.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions. The tool's description does not add additional meaning beyond what the schema provides, meeting the baseline expectation but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function ('compact memory inscription with explicit vault/session PDAs') and situates it within the SAP MCP memory/session flow. It distinguishes from sibling 'sap_inscribe_memory' by the 'compact' qualifier, but does not explicitly differentiate the two, 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.
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 the non-compact version. It includes a caution about storing only encrypted payloads or public hashes, but lacks explicit context for selection among sibling tools.
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 UnstakeAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentWallet | No | Agent wallet public key (base58) to complete unstaking for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, meaning it's a write operation but not destructive. The description reinforces this by mentioning 'before writes' and places it within a staking flow. No contradictions; adds useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the purpose, and contains no extraneous information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description adequately explains the context (SAP staking flow) and warns about confirming details before writing. It is complete enough for correct use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'agentWallet' has a schema description covering 100% of its meaning. The tool description does not add extra detail beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Complete unstake for an agent wallet.' It specifies the action (complete unstake), the resource (agent wallet), and distinguishes it within the SAP protocol staking flow. Sibling tools like sap_request_unstake and sap_deposit_stake confirm differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises confirming agent wallet, amount, and unstake timing before writes, providing clear contextual guidance. It also distinguishes this tool from external AgentKit staking protocol tools, helping the agent decide when 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_create_attestationCreate SAP AttestationBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| expiresAt | No | Optional expiry timestamp (as a decimal string, 0 = no expiry) | |
| agentWallet | No | Agent wallet public key (base58) to create attestation for | |
| metadataHash | No | 32-byte metadata hash as a byte array, hex string, or base64 string | |
| attestationType | No | Optional attestation type string (default: "generic") |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false, which aligns with the creation action. The description adds that the operation is on-chain and involves attestation metadata, but doesn't detail side effects, authorization needs, or other behavioral traits beyond what annotations already convey. It adds moderate context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief with two sentences, front-loading the purpose. However, the clause 'SAP MCP context: Reputation and trust flow.' is somewhat vague and could be more precise, slightly reducing efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no required parameters and an output schema (not shown but indicated), the description provides some contextual completeness by noting when to use (after verification) and what to maintain (stability/auditability). Yet it lacks explanation of what an attestation is or its structure, which would aid understanding for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers all four parameters (100% coverage), so the description does not need to add much parameter meaning. The description hints at the importance of stable hashes for metadataHash, but does not provide new semantics beyond the schema definitions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates an on-chain attestation for an agent wallet, using a specific verb and resource. It provides SAP MCP context, but does not explicitly differentiate from sibling tools like sap_fetch_attestation or sap_revoke_attestation, though the purpose is discernible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to use the tool 'after verifying the target agent PDA or wallet' and to 'keep hashes/attestation metadata stable and auditable', which gives some guidance on prerequisites. However, it does not specify when not to use it or provide alternatives, making the guidance partial.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_create_escrowCreate SAP Escrow V1AInspect
Create a V1 escrow using SDK EscrowModule.create. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| maxCalls | No | Maximum number of calls the escrow covers (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) | |
| pricePerCall | No | Price per call in lamports (as a decimal string) | |
| initialDeposit | No | Initial deposit amount in lamports (as a decimal string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds that this is a write operation requiring signer mode and policy approval, which is valuable beyond the annotations. It also gives a precaution to estimate/fetch state first. Could be improved by mentioning what happens on failure, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the action, the second provides essential usage context. Every sentence adds value, with no fluff. It is front-loaded with the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage, annotations, and an output schema (context indicates its existence), the description is largely complete. It explains the tool's place in the SAP ecosystem and necessary conditions. Minor omission: does not describe the return value, but the output schema likely covers that. Still, a strong 4.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with individual parameter descriptions. The tool description does not add additional meaning to the parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Create a V1 escrow using SDK EscrowModule.create', which is a specific verb+resource. It distinguishes from siblings (e.g., sap_create_escrow_v2) by specifying 'V1'. The context about payment and settlement 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use guidance: 'SAP MCP context: Payment and settlement flow.' It also provides important prerequisites: 'Estimate or fetch state before creating escrows or settling calls; write operations require an enabled signer mode and MCP policy approval.' This tells the agent when to use this tool and what conditions must be met.
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
Create a V2 escrow using SDK EscrowV2Module.create. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| maxCalls | No | Maximum number of calls the escrow covers (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) | |
| pricePerCall | No | Price per call in lamports (as a decimal string) | |
| initialDeposit | No | Initial deposit amount in lamports (as a decimal string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false (write) and destructiveHint=false. Description adds that write operations require signer mode and policy approval, but does not elaborate on side effects, failure modes, or return structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two sentences, efficient and front-loaded with the core action. The phrase 'SAP MCP context: Payment and settlement flow' adds some contextual value but is somewhat vague.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and many sibling tools, the description adequately identifies the tool as a V2 creation but does not explain differences from V1 or relation to other escrow operations (deposit, settle, withdraw). Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 4 parameters with descriptions. The tool description does not add any additional semantic context beyond what is already in the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a V2 escrow' and distinguishes from V1 by specifying the version. It identifies the resource (escrow) and action (create), and places it in the payment/settlement flow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear prerequisites: estimate/fetch state before creating, and requires enabled signer mode with MCP policy approval. However, does not explicitly exclude alternatives or compare with related tools like sap_create_escrow.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subId | No | Subscription ID (as a decimal string, default: 0) | |
| agentWallet | No | Agent wallet public key (base58) to create subscription for | |
| initialFund | No | Initial fund amount in lamports (as a decimal string) | |
| billingInterval | No | Billing interval in seconds between charges | |
| pricePerInterval | No | Price per billing interval in lamports (as a decimal string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds behavioral context beyond annotations by stating write operations require signer mode and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no fluff. First sentence states purpose, second adds essential context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, annotations are present, description provides workflow hints. Could mention when to use this vs sap_fund_subscription, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 5 parameters. Description adds no additional parameter info, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Create a recurring subscription for an agent wallet', using specific verb and resource. The context differentiates it from other sap_ tools like fetch or fund.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on prerequisites: signer mode and policy approval, and suggests fetching state before related operations. However, does not explicitly compare to alternatives.
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 AgentBDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral information beyond what annotations already provide. Annotations indicate destructiveHint=true and readOnlyHint=false, but the description does not elaborate on side effects, reversibility, or prerequisites (e.g., signer policy).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with one sentence and a generic context line. It is front-loaded but could be slightly more structured. However, it is not overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does not explain return values or the effect of deactivation. For a destructive action with no parameters and simple purpose, the description is incomplete. It lacks clarity on what happens after deactivation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so the schema already covers parameter semantics fully. The description does not need to add parameter details, earning a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Deactivate the connected wallet SAP agent', which is a clear verb+resource. It distinguishes from similar tools like 'sap_reactivate_agent' by implying a deactivation action, though it lacks specifics on what deactivation entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about SAP MCP and prerequisites for write tools, but it does not explicitly state when to use this tool versus alternatives like 'sap_close_agent' or 'sap_reactivate_agent'. The usage 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_deactivate_toolDeactivate SAP ToolADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | No | Name of the tool descriptor to deactivate |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true and readOnlyHint=false. The description adds value by stating that write tools require signer policy and other prerequisites, which supplements the annotations. However, it does not disclose additional behavioral traits such as reversibility or side effects beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that cover the action and necessary context. Every sentence serves a purpose without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately covers prerequisites for write operations. It is missing details about error cases or return values, but those are likely handled by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one parameter (toolName) with full schema coverage. The description does not add any information beyond the schema's parameter description, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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,' specifying the verb and resource. The title also reinforces this. However, it does not explicitly differentiate from sibling tools like sap_reactivate_tool or sap_publish_tool_by_name, which would make it a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that write tools require signer policy, configured RPC, and active SAP profile, which implies when to use it. However, it does not explicitly state when not to use this tool or suggest alternatives like sap_reactivate_tool for reactivation, leaving room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_decode_transactionDecode TransactionBInspect
Decode a serialized Solana transaction and return stable transaction metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| encoding | No | Input encoding | |
| transaction | No | Serialized transaction |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation ('decode', 'return metadata'), but the annotation readOnlyHint: false contradicts this, indicating potential side effects. This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single efficient sentence that front-loads the verb. It is concise but could include more context without bloating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and the presence of an output schema, the description provides sufficient context for the decoding action. However, it omits mention of the metadata structure, relying on the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adequately. The tool description adds no additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Decode' and the resource 'serialized Solana transaction', and specifies the output 'stable transaction metadata'. It distinguishes the tool from siblings like sap_sign_transaction or sap_submit_signed_transaction by focusing on decoding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusion criteria. Given the many sibling tools, an agent lacks 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_deposit_escrowDeposit SAP Escrow V1AInspect
Deposit funds into a V1 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Deposit amount in lamports (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation, non-idempotent, non-destructive. The description adds context about required signer mode and policy approval, and suggests pre-fetching state, which are useful behavioral traits beyond annotations. However, it does not detail mutation behavior or return value specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences. The first sentence states the core purpose, and the second adds critical context. Every word contributes value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 existence of an output schema, the description covers purpose, prerequisites, and workflow context adequately. It could mention the output format briefly, but overall it provides sufficient completeness for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters already described in the schema. The description adds no additional parameter-level meaning or formatting guidance, so it meets the baseline without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it deposits funds into a V1 escrow, distinguishing it from other escrow tools (e.g., V2). The verb 'deposit' and resource 'V1 escrow' 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides general workflow context (estimate/fetch state before creating or settling) and prerequisites (signer mode, policy approval), but does not explicitly differentiate from sibling tools like sap_deposit_escrow_v2 or advise when to use this specific tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_deposit_escrow_v2Deposit SAP Escrow V2AInspect
Deposit funds into a V2 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (as a decimal string, default: 0) | |
| amount | No | Deposit amount in lamports (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate write operation (readOnlyHint false), and description adds that write operations require signer mode and MCP policy approval, which is valuable context about authorization. No annotation contradiction. Could mention potential side effects or idempotency, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose, additional context in second sentence. No waste, efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has output schema, so return values are covered. Description mentions prerequisites and context (estimate state, signer mode). Could mention nonce or amount specifics, but schema covers those. Sufficient for agent to understand usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline score is 3. Description does not add any parameter-specific information beyond what the schema already provides. No extra guidance on how to fill parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'deposit funds into a V2 escrow' with a specific resource, and the version number distinguishes it from sibling tools like sap_deposit_escrow. Context about payment/settlement flow adds clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides context about prerequisites (estimate/fetch state, signer mode, policy approval) but does not explicitly compare this tool to alternatives or state when to use it versus other deposit tools. Implicit guidance from versioning is not sufficient.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Additional stake deposit amount in lamports (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns to confirm details before writes, which adds behavioral context beyond the annotations. It correctly implies a non-destructive write operation without contradicting the provided annotations. The behavioral context is adequate for a write tool with readOnlyHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences covering purpose, usage guidance, and differentiation. Every sentence serves a distinct purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 documentation, and annotations, the description is fairly complete. It provides essential usage warnings and context. It could be enhanced by describing the staking flow implications, but overall it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description does not add parameter-specific meaning beyond what the schema already provides, nor does it compensate with additional context for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Deposit additional stake') and the resource ('for an agent wallet'). It explicitly distinguishes this tool from external AgentKit staking protocol tools, which helps with sibling differentiation 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises confirming agent wallet, amount, and unstake timing before writes, and notes it is distinct from external AgentKit staking tools. However, it does not explicitly compare with other SAP staking tools or specify when to use this tool over alternatives within the SAP protocol.
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
Discover agents by protocol, capability, or capability list. Unfiltered global listing is not exposed by SDK v0.20. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of agents to return (default: 50) | |
| hydrate | No | Whether to include full hydrated agent profiles in results (default: true) | |
| protocol | No | Protocol identifier to filter agents by (e.g. "jupiter", "drift") | |
| capability | No | Single capability ID to filter agents by (e.g. "jupiter:swap") | |
| capabilities | No | Array of capability IDs to filter agents by (requires at least one) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims 'Read-only SAP SDK wrapper' but annotations set readOnlyHint to false, contradicting the claim. This is a serious inconsistency; no other behavioral traits are disclosed to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering purpose, limitation, and usage context. Mostly efficient, though the third sentence could be more targeted. Still concise for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description provides usage context and the unfiltered limitation, but the contradiction with annotations undermines trust. With an output schema present, the description is otherwise adequate for a discovery tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the parameter names (protocol, capability, capability list). No additional syntax or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it discovers agents by protocol, capability, or capability list, and explicitly notes what it does not do (unfiltered global listing). This distinguishes it from sibling tools like sap_list_agents or sap_list_all_agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context to use before mutations ('inspect current chain state before mutating...'), which is helpful. However, it does not explicitly compare with sibling discovery tools or specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Optional FairScale task type: one of "defi_execution", "trust_focused", "work_focused", "hiring" | |
| agent | No | Agent PDA or wallet (base58) to score |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show readOnlyHint=false and idempotentHint=false, suggesting possible side effects, but the description does not clarify what modifications occur (e.g., state changes, logging). It adds vague context about reputation flow but insufficient detail on behavioral impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first stating the action, second providing context. No redundancy, every word contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions reputation and trust flow, and references an output schema (not shown). However, it does not explain the returned score format or range, leaving some gaps for a new user.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. The description reinforces the 'agent' parameter by mentioning verification, and hints at the 'task' parameter via 'optional FairScale task type' but no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool scores an agent using FairScaleRegistry. It mentions the SAP MCP reputation context. However, it does not explicitly differentiate from siblings like sap_fairscale_trust_gate or sap_fetch_attestation, which are related but distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and to keep hashes/attestation metadata stable. This provides some sequencing guidance but no explicit alternatives or when-not-to-use scenarios.
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 GateBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Agent PDA or wallet (base58) to evaluate | |
| minScore | No | Optional minimum trust score threshold | |
| requireVerification | No | Whether verified status is required to pass the gate (default: false) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description says 'Evaluate', which implies a read-only operation, but annotations show readOnlyHint=false, indicating potential side effects. The description does not clarify what side effects occur (e.g., writing a trust decision), nor does it mention permissions or rate limits. The behavioral information is insufficient given the annotation conflict.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and quickly communicates the main purpose and usage context. However, the second sentence is somewhat verbose and could be tightened (e.g., 'Use after verifying the agent PDA or wallet, and ensure hashes/attestation metadata remain stable and auditable'). It remains mostly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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), so the description does not need to explain return values. It mentions a prerequisite (verification) and a contextual note about metadata, but it does not explain what happens when the gate passes or fails, or how the result should be interpreted. Given the tool's complexity and the presence of sibling tools, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes the three parameters. The description only adds context about 'after verifying the target agent PDA or wallet', which relates to the 'agent' parameter, but provides no additional semantics for 'minScore' or 'requireVerification'. With full schema coverage, the description adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool evaluates an agent via 'FairScaleRegistry.trustGate'. It includes the specific context of reputation and trust flow, and instructs when to use it (after verifying the agent). However, it does not explicitly differentiate it from the sibling tool 'sap_fairscale_score', which likely returns a numeric score, whereas this is a gate check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and to keep hashes/attestation metadata stable and auditable. This gives clear context, but it does not mention when NOT to use the tool or suggest alternatives, such as using 'sap_fairscale_score' for more granular scoring.
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 AttestationARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentPda | No | Agent PDA (base58) to fetch attestation for | |
| attester | No | Optional attester wallet (base58) to filter attestation by |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds context about being a read-only SDK wrapper against Solana RPC and SAP program, which is consistent but does not significantly expand 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, consisting of two sentences that directly convey purpose and contextual usage. Every part earns its place with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the tool's simplicity, the description covers the essential aspects. It does not detail error handling or edge cases, but this is acceptable for a straightforward fetch operation with robust annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description only restates the parameters mentioned in the schema without adding new semantic meaning. The baseline of 3 is appropriate as 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.
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', specifying the key parameters (agent PDA and optional attester wallet). It distinguishes the tool from mutation siblings like sap_create_attestation and sap_revoke_attestation by emphasizing the read-only nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly indicates to use this tool to inspect current chain state before mutating accounts, providing clear context. While it does not list alternatives or when not to use, the purpose is well-defined and the sibling context implies other fetch tools 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_capability_indexFetch Capability IndexARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| capabilityId | No | Capability ID to fetch the index for (e.g. "jupiter:swap") |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context about being a 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program', which aligns with annotations (readOnlyHint, idempotentHint). No hidden behaviors disclosed beyond annotations, but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: operation, context, usage guidance. Every sentence adds value, no redundancy, front-loaded with core action. Efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 parameter, no required, annotations cover safety, output schema exists), the description is fully sufficient. It covers purpose, context, and usage without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage for the single parameter 'capabilityId' with an example value. Description adds no additional parameter meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Fetch', the resource 'capability index', and the parameter 'capability ID'. It distinguishes itself from sibling fetch tools like 'sap_fetch_tool_category_index' and 'sap_fetch_protocol_index' through its specific focus on capability index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to use these reads 'to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts', providing context for when to use. However, it does not mention specific alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_fetch_disputeFetch SAP DisputeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| disputePda | No | Dispute PDA (base58) to fetch |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description repeats 'Read-only SAP SDK wrapper', which adds no new behavioral information beyond confirming the safety profile. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero wasted words. First sentence delivers purpose, second provides system context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not detail return values. It identifies what is fetched (V2 dispute PDA) and situates the tool within SAP context. Slight gap: does not mention that the result is the dispute state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter, and the schema already describes 'Dispute PDA (base58) to fetch'. The description adds no additional semantics or syntax details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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. Among sibling tools with similar fetch patterns (e.g., sap_fetch_attestation, sap_fetch_escrow), this one is clearly distinguished as dispute-specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: 'Use these reads to inspect current chain state before mutating... accounts.' This implies when to use (before mutations) but does not explicitly mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_fetch_epoch_pageFetch SAP Epoch PageARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| epochIndex | No | Zero-based epoch index to fetch | |
| sessionPda | No | Session PDA (base58) to fetch epoch page for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 only that it is a 'Read-only SAP SDK wrapper', which does not provide new behavioral insights 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that convey purpose and context without any filler. Every sentence is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a fetch tool. It explains the read-only nature and usage in a broader workflow. Missing a brief definition of 'epoch page' but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters fully described in the schema. The description simply restates the parameter names without adding new semantic context, so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch') and the resource ('epoch page') with specific parameters (session PDA and epoch index). It distinguishes from sibling sap_* tools that fetch other types of data (sessions, escrows, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 a clear usage context. However, it does not explicitly mention when not to use or name alternative tools for similar queries.
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 V1ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentPda | No | Agent PDA (base58) — used when escrowPda is omitted | |
| depositor | No | Optional depositor wallet (base58) to filter by | |
| escrowPda | No | Escrow PDA (base58) to fetch directly |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds that it's a read-only SDK wrapper for inspecting state, but no additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states core function, second provides context. No fluff, front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full annotation coverage and output schema, the description is complete. It covers purpose, usage context, and parameter relationships without gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions. Description adds value by clarifying the alternative lookup logic: either escrowPda or agentPda+depositor, which goes beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a V1 escrow by either escrow PDA or by agent PDA with optional depositor. This differentiates it from sibling tools like sap_fetch_escrow_v2 by specifying 'V1'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context that it's a read-only operation to inspect chain state before mutations. Implies when to use, but doesn't explicitly mention alternatives or when not to use (e.g., v2).
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 V2ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (default: 0) — used with agentPda and depositor | |
| agentPda | No | Agent PDA (base58) — used when escrowPda is omitted | |
| depositor | No | Optional depositor wallet (base58) to filter by | |
| escrowPda | No | Escrow V2 PDA (base58) to fetch directly |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, which cover the key behavioral traits. The description adds that it is an SDK wrapper using Solana RPC and SAP program, and suggests usage before mutations. This adds some context beyond annotations but does not reveal new behavioral traits not implied by 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: what the tool does, its technical context, and its recommended use case. It is front-loaded with the core function, has no redundant information, and every sentence contributes meaningfully.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has a complete schema, zero required parameters, output schema present, and comprehensive annotations, the description adequately covers the essential aspects. It explains the fetching logic and usage context. It could briefly mention that the output is the escrow V2 account data, but the output schema likely handles that. Overall, it is sufficiently complete for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 4 parameters with 100% description coverage. The description adds value by explaining the two alternative query methods (by escrowPda directly, or by agentPda+depositor+nonce when escrowPda is omitted). This combinatorial logic is not present in the individual parameter descriptions, thus enhancing semantic understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 using either escrowPda or a combination of agentPda, depositor, and nonce. It is specific about the resource (V2 escrow) and the action (fetch). While it distinguishes from other fetch tools by specifying V2, it does not explicitly contrast with the V1 escrow fetch tool, but the intention is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage context by stating it is a read-only SDK wrapper for inspecting chain state before mutations. This implies when to use it, but it does not explicitly exclude other fetch tools or provide direct alternatives. The guidance is present 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_fetch_feedbackFetch SAP FeedbackARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentPda | No | Agent PDA (base58) to fetch feedback for | |
| reviewer | No | Optional reviewer wallet (base58) to filter feedback by |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds value beyond annotations by explaining the 'SAP MCP context: Read-only SAP SDK wrapper against the configured Solana RPC and SAP program' and purpose to inspect state before mutations. Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false, and description aligns perfectly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence states the action, second provides SDK context and usage guidance. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has output schema, so return values need not be described. Description covers purpose, usage context, and SDK wrapper. Could mention that it returns feedback data, but output schema likely covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 schema. The description merely restates that it fetches by agent PDA and optional reviewer wallet, adding no new semantic information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Name and title clearly state 'Fetch SAP Feedback'. Description specifies it fetches a feedback PDA by agent PDA and optional reviewer wallet, distinguishing it from sibling tools like sap_give_feedback, sap_revoke_feedback, sap_update_feedback, and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description says 'Use these reads to inspect current chain state before mutating...', providing context for when to use this read-only tool. It does not explicitly exclude alternatives but implies usage before mutations.
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 SettlementARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pendingPda | No | Pending settlement PDA (base58) to fetch |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 safety profile is well-covered. The description adds that it is a 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program,' which provides some extra context but does not significantly enhance 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first directly states the action, and the second provides useful context about being a read-only SDK wrapper and its recommended usage. No extraneous information; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with one optional parameter, annotations, and an existing output schema, the description adequately covers purpose and usage context. It could be slightly improved by briefly noting what the returned data represents, but the output schema handles that, so no major gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (pendingPda) with 100% schema description coverage. The description does not add any additional meaning, format, constraints, or examples 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Fetch a V2 pending settlement PDA,' which is a specific verb ('Fetch') and a clearly defined resource ('V2 pending settlement PDA'). This distinguishes it from other sap_fetch_* tools by naming a unique resource type. It is not a tautology and provides immediate clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states to 'Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.' This gives a clear usage context (before mutations) but does not explicitly mention when not to use it or provide alternative 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_fetch_protocol_indexFetch Protocol IndexARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| protocolId | No | Protocol ID to fetch the index for (e.g. "jupiter", "drift") |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already supply readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context by framing the tool as a read-only operation for pre-mutation inspection, which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two succinct sentences that cover the action and context without any redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter (1, fully documented), existing output schema, and annotations covering behavior, the description provides sufficient context for the tool's usage in the SAP ecosystem.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 protocolId. The tool description does not add any extra parameter information 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a SAP protocol index by protocol ID', specifying the verb and resource. However, it does not differentiate this from other similar fetch tools like 'sap_fetch_capability_index', relying on the tool name for distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: 'Use these reads to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.' This gives guidance on when to use, but lacks explicit alternatives or exclusions for sibling fetch tools.
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 SessionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionPda | No | Session PDA (base58) to fetch the ledger for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. Description adds 'Read-only SAP SDK wrapper' and 'inspect current chain state', reinforcing the safe read behavior without contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the core action, second provides context. No unnecessary words, front-loaded with the key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, read-only, and existence of an output schema, the description provides enough context about purpose and usage. The guidance to inspect state before mutations completes the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter. The tool description does not add meaning beyond the schema's description of 'Session PDA (base58) to fetch the ledger for', so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies 'Fetch a session ledger by session PDA', clearly indicating the verb and resource. It distinguishes from siblings like sap_session_status and other sap_fetch_* tools by focusing on session ledger.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit context: 'Use these reads to inspect current chain state before mutating...' This guides the agent on when to use the tool, though it doesn't explicitly mention when not to use it or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_fetch_stakeFetch SAP StakeARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentPda | No | Agent PDA (base58) — used when stakePda is omitted | |
| stakePda | No | Stake PDA (base58) to fetch directly |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint. Description adds 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program,' which reinforces the read-only behavior and adds implementation context. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences: first states purpose, second provides context. No redundant words, front-loaded with core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich annotations, complete schema coverage, and existence of output schema, the description is sufficient. It adds SAP MCP context and read-only guidance, making it complete for the tool's purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with individual descriptions. Description adds value by clarifying the mutual exclusivity: 'by stake PDA or agent PDA' and that agentPda is used when stakePda is omitted. This goes beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Fetch' and resource 'agent stake' with two ways (by stake PDA or agent PDA). However, it does not explicitly differentiate from other fetch tools like sap_fetch_escrow or sap_fetch_subscription, though the resource is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use these reads to inspect current chain state before mutating...' This tells when to use the tool. Does not exclude alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_fetch_subscriptionFetch SAP SubscriptionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subId | No | Subscription ID (default: 0) — used with agentPda and subscriber | |
| agentPda | No | Agent PDA (base58) — used when subscriptionPda is omitted | |
| subscriber | No | Optional subscriber wallet (base58) to filter by | |
| subscriptionPda | No | Subscription PDA (base58) to fetch directly |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reinforces the read-only nature already declared in annotations and adds the context of inspecting state before mutating. It does not contradict annotations and provides additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with no verbose or redundant content. The first sentence states the action and parameters, the second adds context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (not shown but referenced) and the annotations, the description sufficiently explains the tool's purpose, parameters, and usage context. It is complete for a fetch operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains the two main ways to fetch (by PDA or by combination of agentPda, subscriber, subId), which adds meaning beyond the individual parameter descriptions in the schema. Since schema coverage is 100%, the description effectively summarizes the usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches a subscription by specific identifiers (PDA, or agent PDA/subscriber/subId). The verb 'Fetch' matches the tool name, and it distinguishes from other sap_fetch_* siblings by specifying 'subscription'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies it is a read-only operation for inspecting chain state before mutations. This provides clear when-to-use context. However, it doesn't explicitly differentiate from other fetch tools or mention 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_toolFetch SAP Tool DescriptorARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentPda | No | Agent PDA (base58) that owns the tool descriptor | |
| toolName | No | Name of the tool descriptor to fetch |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds value by specifying 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program', confirming the read-only behavior and providing implementation context that aids in understanding side-effects (none).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. It front-loads the action in the first sentence and provides context in the second. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple fetch tool with good annotations and an output schema, the description is fairly complete. It covers what it does, the read-only context, and usage guidance. It could elaborate on what a tool descriptor is, but that is likely understood from the domain context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters having descriptions. The tool description mentions 'agent PDA and tool name' but does not add 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.
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' which is a specific verb and resource. It adds context about being a read-only SAP SDK wrapper, but does not explicitly differentiate from sibling fetch tools like sap_fetch_attestation or sap_fetch_epoch_page. However, the verb and resource are distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Use these reads to inspect current chain state before mutating...' which gives some usage context but does not specify when not to use or name alternative tools. It implies a preparatory role but lacks explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_fetch_tool_category_indexFetch Tool Category IndexARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Numeric tool category ID to fetch the index for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive nature. The description reinforces this with 'Read-only SAP SDK wrapper' and adds opaque context about the Solana RPC and SAP program, providing additional transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence delivers the primary function, and the second provides beneficial usage context. Every sentence is warranted with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 nested objects), the presence of a complete output schema, and comprehensive annotations, the description provides sufficient context. It explains the tool's role within the broader SAP MCP context, making it fully useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'category' is fully described in the input schema (100% coverage). The description does not add any meaning beyond 'by numeric category', so it meets the baseline but offers no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch a SAP tool category index'), the resource ('tool category index'), and the required parameter ('by numeric category'). It effectively distinguishes from sibling fetch tools by specifying the category index focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using reads before mutations, providing clear context for when the tool should be invoked. It implicitly guides agents to inspect state before mutating accounts, though it does not explicitly list alternatives or when to avoid.
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 VaultARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentPda | No | Agent PDA (base58) to fetch the memory vault for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 that it is a read-only SDK wrapper and suggests usage for inspection, but does not disclose new behavioral traits beyond what annotations provide. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with two clear sentences. First sentence states the purpose; second provides context and usage guideline. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no required fields, a clear output schema, and thorough annotations, the description is complete. It explains what the tool does and when to use it adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage for the single parameter 'agentPda', describing it as 'Agent PDA (base58) to fetch the memory vault for'. The description merely mentions 'by agent PDA' without adding new meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a memory vault by agent PDA, which is specific and distinguishes it from other fetch tools like sap_fetch_escrow. The verb 'Fetch' and resource 'memory vault' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context: 'Use these reads to inspect current chain state before mutating...' This guides the agent to use this tool as a preliminary read. However, it does not explicitly mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_file_dispute_v2File SAP Escrow V2 DisputeAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (as a decimal string, default: 0) | |
| agentWallet | No | Agent wallet public key (base58) | |
| disputeType | No | Optional dispute type identifier (numeric) | |
| evidenceHash | No | 32-byte evidence hash as a byte array, hex string, or base64 string | |
| settlementIndex | No | Settlement index to dispute (as a decimal string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) indicate a non-destructive write. The description adds value by explaining that write tools require signer policy, configured RPC, and active SAP profile. However, it does not detail the outcome or side effects of filing a dispute.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The first sentence states the purpose, the second provides context. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is mostly complete. It covers purpose and prerequisites but could mention that disputes can only be filed for pending settlements. Still adequate for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are documented. The description adds no additional meaning beyond the schema, which is acceptable per guidelines. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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', using specific verb and resource, and distinguishes from sibling tools like sap_fetch_dispute (read) and sap_finalize_settlement_v2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about write tools requiring signer policy, RPC, and active SAP profile, but does not explicitly state when to use this tool versus alternatives like fetching disputes or finalizing settlements. Usage is implied but not contrasted.
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 SettlementBDestructiveInspect
Finalize a V2 pending settlement. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (as a decimal string, default: 0) | |
| agentWallet | No | Agent wallet public key (base58) | |
| depositorWallet | No | Depositor wallet public key (base58) | |
| settlementIndex | No | Settlement index to finalize (as a decimal string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 write operations require signer mode and policy approval, confirming mutation behavior. But it lacks details on what gets destroyed and consequences, and idempotency is not addressed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the main action, then context, then requirement. No unnecessary words, but could be slightly more concise by merging context and requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the payment/settlement flow and the need for prior state estimation, but lacks details on prerequisites, state dependencies, and integration with other tools. Given the tool has an output schema (though not shown), the description is somewhat incomplete for a complex workflow tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 provide any additional parameter details beyond the schema, which already describes each parameter. No added value from description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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, using a specific verb and resource. It distinguishes from siblings by specifying 'finalize' rather than 'settle', though the exact difference could be more explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage context: estimate or fetch state before, and requires signer mode and policy approval for writes. However, it does not explicitly state when not to use it or mention alternative tools like sap_settle_escrow_v2.
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 CategoryAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of tools to return (default: 50) | |
| hydrate | No | Whether to include full hydrated tool descriptors in results (default: true) | |
| category | No | Tool category name (e.g. "defi", "infrastructure") or numeric category ID |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims the tool is 'Read-only SAP SDK wrapper', but the annotation sets readOnlyHint: false, creating a direct contradiction. This undermines transparency and confuses the agent about the tool's safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the main purpose, and contains no fluff. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 optional parameters and an output schema, the description provides context (read-only wrapper, inspect before mutations) but is undermined by the annotation contradiction. It does not explain what 'hydrated tool descriptors' means or what the return format is, though the output schema may cover that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are fully documented in the schema. The description adds marginal value by mentioning 'category name or numeric category' but does not elaborate on limit or hydrate beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the resource 'on-chain tool descriptors by SDK tool category name or numeric category'. It distinguishes this tool from siblings like sap_fetch_tool (which fetches a single tool) and sap_fetch_tool_category_index (which likely fetches the category index itself).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit context: 'Use these reads to inspect current chain state before mutating... accounts.' This tells when to use the tool (before mutations) and implies it is for inspection. However, it does not explicitly mention when not to use it or compare with alternatives like sap_fetch_tool.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| subId | No | Subscription ID (as a decimal string, default: 0) | |
| amount | No | Funding amount in lamports (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and no destructiveness. The description adds valuable context: it places the tool in the 'Payment and settlement flow' and clarifies the need for signer mode and policy approval, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (three sentences) and front-loads the purpose. It avoids fluff, though the first sentence could be considered somewhat terse. Overall, it is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has 3 parameters, annotations, and an output schema, the description covers the core action, SAP context, and prerequisites. It does not explain return values (output schema handles that) or edge cases, but it is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (subId, amount, agentWallet). The description does not add any additional parameter-specific meaning beyond what is already 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fund a recurring subscription,' which is a specific verb+resource. It provides SAP MCP context and mentions related operations (escrows, settlement), but does not explicitly differentiate from similar sibling tools like sap_create_subscription or sap_fetch_subscription.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Estimate or fetch state before creating escrows or settling calls' and notes that write operations require 'enabled signer mode and MCP policy approval.' This gives a precondition and requirement but lacks explicit when-to-use vs 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_get_agentGet SAP AgentARead-onlyIdempotentInspect
Fetch agent identity by owner wallet. If omitted, fetches the connected wallet agent. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | No | Solana public key of the agent owner wallet (base58). If omitted, uses the connected wallet. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description reaffirms the read-only nature and adds context about being an SDK wrapper, but does not disclose additional behavioral details such as error handling or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two efficient sentences with no wasted words. The first sentence states the core purpose, and the second provides context. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and an output schema, the description covers purpose, usage context, and parameter semantics completely. No gaps identified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already describes the 'wallet' parameter. The description adds value by explaining the default behavior when omitted, which is not in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and resource ('agent identity'), and clearly states the optional behavior when wallet is omitted. It distinguishes itself from sibling fetch tools like sap_get_agent_profile by focusing on the base identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises using these reads before mutations, providing clear context for when to invoke. However, it does not explicitly mention when not to use this tool 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_get_agent_profileGet SAP Agent ProfileARead-onlyIdempotentInspect
Fetch a hydrated SAP agent profile by owner 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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | No | Solana public key of the agent owner wallet (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 an SDK wrapper, which enhances understanding 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no wasted words, and structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is complete for a simple read tool with an output schema; covers purpose, usage context, and leverages annotations and schema for details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description is clear; the description adds no additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Fetch a hydrated SAP agent profile by owner wallet', using a specific verb and resource, and distinguishes from mutation siblings by noting it's a read-only operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises using reads to inspect chain state before mutations, providing context and orientation, though lacks explicit comparison with other 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_agent_statsGet SAP Agent StatsARead-onlyIdempotentInspect
Fetch agent stats 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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentPda | No | Agent PDA (base58) to fetch stats for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds context about being a read-only SDK wrapper for inspecting chain state, which is helpful but not beyond what annotations imply. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-loaded with action. Every sentence adds value. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so description needn't explain return values. Description provides sufficient context for a simple fetch tool, including its usage within SAP MCP.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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'. Description does not add any additional meaning beyond the schema's description of 'Agent PDA (base58) to fetch stats for', so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Fetch agent stats by agent PDA' with specific verb and resource. It distinguishes from siblings by focusing on a specific SAP agent stats endpoint. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use these reads before mutating accounts, which provides good guidance. However, it doesn't mention when not to use or list alternative tools, so it's not a full 5.
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 StateARead-onlyIdempotentInspect
Fetch the on-chain global registry through SDK AgentModule.fetchGlobalRegistry. 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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 SDK wrapper and the underlying RPC/program, but does not introduce new behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: the first states the action, the second provides context and usage. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters, clear annotations, and an output schema, the description provides enough context to understand its purpose and when to apply it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and 100% schema coverage, so the baseline is 4. The description cannot add parameter details; it is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches the on-chain global registry via a specific SDK method. It distinguishes itself from sibling mutation tools by emphasizing read-only nature and pre-mutation inspection use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to use this tool 'to inspect current chain state before mutating registry, payment, reputation, memory, or tool accounts.' This provides clear when-to-use guidance and contrasts with mutation 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 OverviewARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 context about the SDK source and the purpose of inspecting chain state before mutation, which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with no wasted words. The first sentence states the action, the second provides context and usage. It is perfectly sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and an output schema exists, the description covers what the tool does, why it's used, and the read-only nature. It is complete for an 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so schema coverage is 100%. The description does not need to add parameter info, and it correctly provides no misleading details. Baseline score for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches real network counters from a specific SDK method (DiscoveryRegistry.getNetworkOverview) and is a read-only wrapper. The verb 'Fetch' and resource 'network counters' are specific, and the context distinguishes it from other read tools like sap_get_agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says to use these reads before mutating various accounts, providing clear usage context. However, it does not mention when not to use it or offer 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.
sap_get_tool_category_summaryGet SAP Tool Category SummaryARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 primarily adds context about the data source (Solana RPC and SAP program). No contradictions; the description complements annotations adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the action. Every word provides value; no redundancy or irrelevant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not detail return values. It explains the overall purpose and read-only nature, which is sufficient for a summary tool among many sibling reads.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (0 params), and schema coverage is 100% trivially. The description adds value by explaining what is fetched (SDK discovery summary across categories) beyond the empty schema, justifying a baseline of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Fetch SDK discovery summary across SAP tool categories,' specifying verb and resource. It distinguishes from sibling reads by focusing on a high-level overview of categories, but does not explicitly differentiate from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using reads 'before mutating registry, payment, reputation, memory, or tool accounts,' which implies when to use. However, it does not specify when not to use or list alternatives among the many SAP sibling tools.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional feedback tag/category (default: "general") | |
| score | No | Feedback score (numeric, e.g. 1–5) | |
| agentWallet | No | Agent wallet public key (base58) to give feedback for | |
| commentHash | No | Optional 32-byte comment hash as a byte array, hex string, or base64 string |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description notes that the tool creates 'on-chain feedback,' implying a write operation (consistent with readOnlyHint=false). It adds context about 'stable and auditable' metadata, but does not detail side effects, authentication requirements, or failure modes. Annotations already cover destructiveHint=false and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the core purpose in the first sentence. Every phrase earns its place, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters (none required) and an output schema, the description covers the primary action and a key prerequisite (verifying target). It lacks details about error cases or required authorities, but the output schema and annotations fill gaps. The description is sufficient for a straightforward feedback creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameter-specific meaning beyond the schema; the mention of 'hashes/attestation metadata' loosely relates to commentHash but does not elaborate on format or constraints. Baseline 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.
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 on-chain feedback for an agent wallet.' It specifies the resource (agent wallet) and context (SAP MCP reputation/trust flow), which is distinct from siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage condition: 'Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.' However, it does not explicitly differentiate when to use this tool over alternatives like sap_update_feedback or sap_revoke_feedback, nor does it mention 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_init_stakeInitialize SAP StakeBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentWallet | No | Agent wallet public key (base58) to initialize stake for | |
| initialDeposit | No | Initial stake deposit amount in lamports (as a decimal string) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds minimal behavioral context beyond 'Initialize stake' and a caution about confirmation before writes. It does not disclose what happens during initialization, side effects, or return details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first states the purpose, the second provides context and a warning. Every sentence adds value, with no wasted words. It is well-structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has simple parameters and an output schema, the description provides a high-level overview but lacks details on the outcome, state changes, or connection to other SAP staking tools. It is adequate but not comprehensive for a complex staking flow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description mentions 'agent wallet, amount, and unstake timing', but 'unstake timing' is not a parameter. It adds limited extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it initializes stake for a specific agent wallet, with a clear verb ('Initialize') and resource ('stake'). It distinguishes from external AgentKit tools but does not differentiate from internal SAP staking tools like sap_deposit_stake, slightly reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises confirming agent wallet, amount, and unstake timing before writes, and notes it's distinct from external AgentKit tools. However, it lacks explicit when-to-use vs when-not-to-use guidance and does not mention alternatives within the SAP protocol, such as sap_deposit_stake.
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 VaultAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| vaultNonce | No | Vault nonce as a byte array, hex string, or base64 string |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds important behavioral context beyond annotations: mentions on-chain visibility of PDAs and storage recommendations. However, does not disclose if initialization overwrites existing vaults or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. First sentence states purpose, second provides critical usage guidance. Front-loaded with essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is mostly complete. It covers purpose, parameter, and security context. Could mention prerequisites or idempotency behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter description is adequate. The description adds no additional meaning about the 'vaultNonce' parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'initialize' and resource 'memory vault', and provides SAP MCP context. However, it does not explicitly differentiate from sibling tools like 'sap_open_vault_session' or 'sap_fetch_vault', but the context is specific enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives guidance on what to store (encrypted payloads or public hashes) and warns about on-chain visibility, but 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.
sap_inscribe_memoryInscribe SAP MemoryAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds context about using SDK VaultModule.inscribe, storing encrypted memory, and on-chain visibility of session/vault PDAs, which helps the agent understand 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is two concise sentences, front-loading the core action and adding essential context without unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the open input schema, the description provides expected fields and on-chain visibility context. Output schema exists, so return values are handled. However, error handling or prerequisites are not mentioned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description covers 100% of parameters, listing fields like sequence, encryptedData, nonce, etc. The description adds value by instructing to store only intentionally encrypted payloads or public hashes, which guides parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Inscribe encrypted memory') and the method ('SDK VaultModule.inscribe'), but does not differentiate from the sibling tool 'sap_compact_inscribe_memory'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context about when to use (SAP MCP context, memory/session flow) and what to store (encrypted payloads or public hashes), but 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_is_agent_activeCheck SAP Agent ActiveAInspect
Check if a wallet owns an active SAP agent. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | No | Solana public key of the wallet to check for an active SAP agent (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims 'Read-only SAP SDK wrapper' but annotations have readOnlyHint=false, creating a direct contradiction. This significantly 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, front-loading the core purpose and then adding context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no required fields, the description provides sufficient context about its role in the workflow (inspect before mutations). It is complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with a clear description for the 'wallet' parameter. The tool description adds no additional parameter details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb and resource: 'Check if a wallet owns an active SAP agent.' It distinguishes itself from sibling tools by emphasizing it is a read-only check, which sets it apart from mutation tools in the same namespace.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using these reads before mutating accounts, providing clear context for when to use the tool. However, it does not explicitly state when not to use it or list alternatives, which would improve the score.
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 AgentsARead-onlyIdempotentInspect
Compatibility alias for filtered SAP agent discovery. Requires protocol or capability. Use sap_list_all_agents for a global on-chain directory snapshot. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of agents to return (default: 50) | |
| hydrate | No | Whether to include full hydrated agent profiles in results (default: true) | |
| protocol | No | Protocol identifier to filter agents by (e.g. "jupiter", "drift") | |
| capability | No | Single capability ID to filter agents by (e.g. "jupiter:swap") | |
| capabilities | No | Array of capability IDs to filter agents by (requires at least one) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds context: 'Read-only SAP SDK wrapper against the configured Solana RPC and SAP program' and advises using reads before mutations, reinforcing safety 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with 5 sentences, front-loads the purpose, and includes essential usage and context without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and annotations cover safety, the description provides key context (filtered discovery, sibling alternative, read-only nature) but could mention other list tools or edge cases for complete coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description doesn't need to elaborate on individual parameters. It adds high-level guidance that protocol or capability is required, which aligns with schema but doesn't introduce new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a 'Compatibility alias for filtered SAP agent discovery' and specifies the requirement for protocol or capability. It explicitly distinguishes from the sibling sap_list_all_agents, which provides a global snapshot.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Requires protocol or capability' and directs to use sap_list_all_agents for a global snapshot. However, it does not mention other related read tools (e.g., sap_get_agent) or when to use this over them.
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 AgentsARead-onlyIdempotentInspect
Enumerate SAP AgentAccount PDAs directly from the on-chain program account set. Use this for current global directory requests such as "list all agents in the SAP ecosystem rn". 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum rows to return. Defaults to 100; hard-capped at 500. | |
| offset | No | Zero-based pagination offset. Defaults to 0. | |
| protocol | No | Optional protocol filter matched against agent profile protocols and protocol-index membership. | |
| capability | No | Optional capability ID filter such as jupiter:swap. | |
| includeInactive | No | Include inactive agents. Defaults to false. | |
| includeProtocolIndexes | No | Include compact protocol index summaries. Defaults to true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and idempotent behavior. The description reinforces this by noting it reads directly from on-chain state and is a read-only wrapper, adding context about using it before mutations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: two sentences plus a brief context snippet. It front-loads the core purpose and avoids unnecessary detail, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 documentation, the description adequately covers purpose, usage context, and read-only nature. It could mention filtering capabilities, but the schema fills that gap, so overall completeness is high.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema. The description does not add extra meaning for individual parameters beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it enumerates SAP AgentAccount PDAs from on-chain, with a specific example ('list all agents in the SAP ecosystem rn'). This distinguishes it from siblings like 'sap_list_agents' by emphasizing global directory listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises using the tool for global directory requests and before mutating operations, but does not explicitly compare with the sibling 'sap_list_agents' or specify when not to use this tool. The context provided is helpful but lacks direct exclusionary guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| detailed | No | Include both discovery overview and raw global registry state. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide some traits (readOnlyHint=false, openWorldHint=true, etc.), but the description adds little beyond the purpose. It does not clarify side effects, idempotency, or potential latency. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous information. However, it could be more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool with an output schema, the description is adequate but lacks details on what 'network statistics' encompasses and when to set 'detailed=true'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already has 100% coverage with a clear description for the 'detailed' parameter. The tool description does not add additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Fetch') and the resource ('SAP network statistics'), and mentions the underlying technology (synapse-sap-sdk). However, it does not differentiate from sibling tools like sap_get_network_overview, which may have similar scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not specify prerequisites, scenarios, or exclusions.
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 IndexBDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (as a decimal string, default: 0) | |
| agentWallet | No | Agent wallet public key (base58) | |
| depositorWallet | No | Depositor wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation contradiction: description says 'Read' but annotations set destructiveHint=true. No behavioral context beyond annotations. The description does not clarify the contradiction or disclose any side effects, making it misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that pack purpose and usage context efficiently. No wasted words, though could be slightly more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers purpose and usage adequately. However, it fails to address the destructiveHint annotation contradiction and does not elaborate on parameter specifics, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the three parameters (nonce, agentWallet, depositorWallet). The description adds no further explanation of the parameters, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the next V2 settlement index and places it in the SAP payment/settlement flow context. It distinguishes from write operations by noting it's for estimation before creating escrows or settling calls.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear guidance: use to estimate/fetch state before creating escrows or settling calls. Implicitly contrasts with write operations that require signer mode and policy approval, though it doesn't explicitly name alternative tools.
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 SessionBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionHash | No | 32-byte session hash as a byte array, hex string, or base64 string |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly, non-destructive, non-idempotent behavior. The description adds context about on-chain metadata visibility and data sensitivity, but does not fully disclose side effects (e.g., whether a new session is created or an existing one resumed). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, effectively communicating the core action and a security caution. The second sentence could be slightly more concise, but 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.
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 adequately explains the core function and adds security context. However, it does not mention prerequisites (e.g., init_vault) or clarify the lifecycle of a vault session, leaving some gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the parameter as a 32-byte session hash but does not add meaning beyond the schema's description (byte array, hex, or base64).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (open) and resource (vault session by 32-byte session hash). However, it does not differentiate from sibling tools like sap_session_start or sap_fetch_session, leaving potential ambiguity for an agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It mentions SAP MCP context and cautions about data visibility, but does not provide use cases, prerequisites, 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.
sap_preview_transactionPreview TransactionBInspect
Preview a Solana transaction before signing or submission.
| Name | Required | Description | Default |
|---|---|---|---|
| encoding | No | Input encoding | |
| transaction | No | Serialized transaction |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Preview', which typically implies a read-only operation with no side effects. However, the annotation readOnlyHint=false contradicts this, indicating the tool may cause state changes. This contradiction severely undermines transparency, as the description fails to disclose the actual behavioral traits beyond what is inferred.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 9 words, front-loading the action and resource. Every word is necessary and no information is redundant. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (2 parameters, no nested objects) and presence of an output schema, the description is mostly adequate. However, the contradictory annotation (readOnlyHint=false vs. preview) creates a completeness gap, as the tool's actual behavior is unclear. The description does not address this inconsistency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a basic description ('Input encoding', 'Serialized transaction'). The tool description adds no additional meaning beyond the schema. Baseline 3 is appropriate given the schema handles parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Preview' and the resource 'a Solana transaction'. It also specifies the context 'before signing or submission', which distinguishes it from related sibling tools like sap_decode_transaction (decode) and sap_sign_transaction (sign). 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('before signing or submission') but does not provide explicit guidance on when to use this tool versus alternatives. No exclusionary criteria or comparisons to siblings are given. The context is clear but incomplete.
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 ProfileAInspect
Return the currently loaded SAP MCP profile and redacted signer/config metadata.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations set readOnlyHint to false, indicating potential state modifications, but the description only says 'Return', implying a read-only operation. The description does not clarify whether any side effects occur or address the apparent contradiction with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of 14 words with no redundancy. It efficiently communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters, annotations, and an output schema, the description is largely adequate. The phrase 'redacted signer/config metadata' is slightly vague, but the existence of an output schema compensates for that lack of detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the input schema coverage is 100%, so the description does not need to elaborate on parameters. The baseline score of 4 applies as the description adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Return' and identifies the resource as 'the currently loaded SAP MCP profile and redacted signer/config metadata'. It clearly distinguishes from sibling tools like sap_profile_list, sap_profile_switch, and sap_profile_public_key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but does not provide explicit guidance on when to use it versus alternatives such as sap_profile_list or sap_profile_switch. The context of the tool name and title implies usage for retrieving the current profile, but no exclusions or comparative advice are given.
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 ProfilesARead-onlyIdempotentInspect
List available SAP MCP profiles with redacted signer metadata and no wallet paths.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 behavioral context (redacts signer metadata, no wallet paths) that goes beyond annotations, enhancing transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence that conveys purpose and key behavioral detail. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no parameters and an existing output schema, the description is complete enough. It appropriately focuses on the list's behavioral constraints beyond what structured data provides.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters; schema coverage is 100% (empty object). Baseline for zero-parameter tools is 4, and the description adds no parameter details, which is acceptable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List available SAP MCP profiles', which is a specific verb and resource. It additionally describes behavioral nuances (redacted signer metadata, no wallet paths) that distinguish it from any sibling profile tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the tool's purpose; no explicit guidance on when to use or not use is provided. Sibling tools like sap_profile_current or sap_profile_switch suggest alternatives but no exclusions are stated.
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 KeyBInspect
Return the configured public agent key for a profile without reading or exposing keypair bytes.
| Name | Required | Description | Default |
|---|---|---|---|
| profileName | No | Profile name. Defaults to the loaded profile. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims a read-only operation (returning a key) but the readOnlyHint annotation is false, creating a contradiction. This undermines the agent's ability to understand the tool's side effects. The description adds the context of not exposing private bytes, but the annotation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the core purpose. It wastes no words but could potentially include a bit more context without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With the output schema available, the description doesn't need to cover return values. However, the description omits what 'configured public agent key' means in the broader workflow, leaving minor ambiguity. The annotation contradiction reduces overall completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its single parameter, so the baseline is 3. The description adds no extra parameter detail beyond what's already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the public agent key for a profile, explicitly distinguishing it from operations that might expose keypair bytes. The verb 'Return' and resource 'configured public agent key' are specific. Among many sap_ sibling tools, none have similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies safe usage by noting 'without reading or exposing keypair bytes', offering some context. However, it does not explicitly state when to use this tool versus alternatives, nor does it mention prerequisites or conditions where it 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_profile_switchSwitch Loaded SAP MCP ProfileAInspect
Switch the live SAP MCP runtime to another existing profile and reload client, signer, connection, and policy.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | No | Must be true because switching profile can change signer, network, and policy. | |
| profileName | No | Existing profile name to load. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses multiple behavioral traits beyond the annotations: it reloads client, signer, connection, and policy, and the confirm parameter description warns that switching 'can change signer, network, and policy.' Annotations already indicate it is not read-only and not destructive, but the description adds valuable context about what changes occur. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that immediately conveys the action and its effects. It is concise with no wasted words, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (2 parameters, output schema exists), the description is fairly complete. It explains the action, the components reloaded, and hints at the necessity of an existing profile. The output schema likely covers return values, so the description does not need to detail them. However, it could briefly mention prerequisites (e.g., profile must exist) for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (confirm, profileName). The tool description does not add additional meaning beyond what the schema already provides. Thus, it meets the baseline of 3 but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Switch the live SAP MCP runtime to another existing profile and reload client, signer, connection, and policy.' It uses a specific verb ('Switch') and resource ('profile'), and the effect is detailed. This distinguishes it from sibling tools like sap_profile_list (list profiles) and sap_profile_current (view current profile).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on what the tool does but does not offer explicit guidance on when to use it versus alternatives or when not to use it. It implies that the user needs an existing profile name, but no direct exclusions or alternative suggestions are given. Given the abundance of sibling tools, some guidance would enhance usability.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Numeric tool category ID | |
| toolName | No | Name of the tool to publish | |
| httpMethod | No | HTTP method code (e.g. 0=GET, 1=POST) | |
| isCompound | No | Whether the tool is a compound tool (default: false) | |
| protocolId | No | Protocol ID the tool belongs to (e.g. "jupiter") | |
| description | No | Human-readable description of the tool | |
| paramsCount | No | Total number of parameters the tool accepts | |
| requiredParams | No | Number of required parameters | |
| inputSchemaJson | No | JSON string of the tool input schema | |
| outputSchemaJson | No | JSON string of the tool output schema |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and idempotentHint=false, but the description adds a caution about matching the actual tool surface. However, it does not disclose that the operation is not idempotent, nor does it explain potential side effects (e.g., overwriting, duplication) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: one stating the action, another adding context and a caution. It is front-loaded and efficient, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema shown, annotations present), the description covers the core purpose and provides a usage caution. However, it omits details about output, effects of non-idempotency, and parameter interpretations like HTTP method codes and JSON schema formatting.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no additional semantic information beyond what is in the schema, such as category number meanings or JSON schema format requirements. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool publishes a tool descriptor via SDK ToolsModule.publishByName, and provides SAP MCP context. It is specific about the verb and resource, but does not explicitly differentiate from sibling tools like sap_update_tool or sap_reactivate_tool, which serve related but distinct purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context for when to use (advertise concrete capabilities) and includes examples, but lacks explicit guidance on when not to use or how to choose among alternatives such as sap_update_tool or sap_reactivate_tool.
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 AgentAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as a write tool (readOnlyHint: false) and non-destructive. The description adds context that write tools require signer policy, configured RPC, and active SAP profile, which is valuable behavioral information. However, it does not detail effects of reactivation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficient and front-loaded. The second sentence provides contextual background, which is slightly tangential but not excessive. Could be more precise without losing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values. However, it lacks specificity on what reactivation entails (e.g., state changes, idempotency) and does not contrast with sap_deactivate_agent. The context about SAP MCP is helpful but not fully complete for a write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so the description cannot add parameter meaning. The baseline score of 4 for no parameters applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (reactivate) and the resource (connected wallet SAP agent). It implicitly distinguishes from sap_deactivate_agent, and the purpose is immediately understandable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides general context about write tool requirements but does not explicitly state when to use this tool vs siblings or specify prerequisites beyond the general statement. Usage is implied by the tool 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_reactivate_toolReactivate SAP ToolBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | No | Name of the tool descriptor to reactivate |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal (readOnlyHint false, etc.). The description only adds generic context about write tools, but does not disclose specific behavioral traits such as idempotency, failure cases, reversibility, or permissions required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. However, the second sentence is generic and applies to many tools, slightly reducing focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter and output schema, the description covers the basic purpose but lacks details on preconditions (e.g., tool must exist, be deactivated) and behavior (e.g., idempotent? what happens if already active?).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter 'toolName' is fully described in the schema. The tool description does not add any additional information beyond what is already provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Reactivate a SAP tool descriptor by name', which is a specific verb and resource. This distinguishes it from sibling tools like sap_deactivate_tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides general context about write tools requiring signer policy, RPC, and active SAP profile, but does not explicitly state when to use this tool vs alternatives like sap_publish_tool_by_name or sap_update_tool.
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 AgentAInspect
Register the connected wallet as a SAP agent using SDK AgentModule.register. SAP MCP context: This is the primary on-chain SAP agent registration tool for the connected profile signer. Use agentUri or metadataUri for off-chain metadata, including a Metaplex or DAS-backed identity document when the agent also has NFT/collection metadata. After registration, use sap_publish_tool_by_name for advertised MCP capabilities and AgentKit metaplex-nft_* tools for NFT collection, badge, or metadata workflows.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Human-readable name for the SAP agent | |
| agentId | No | Optional unique agent identifier string | |
| pricing | No | Array of pricing tier objects defining per-call costs, rate limits, and settlement terms | |
| agentUri | No | Optional URI to the agent's off-chain metadata or service endpoint | |
| protocols | No | Array of protocol identifiers the agent supports (e.g. "jupiter", "drift") | |
| description | No | Detailed description of the agent's purpose and capabilities | |
| metadataUri | No | Alias for agentUri — URI to off-chain agent metadata JSON | |
| capabilities | No | Array of capability objects or strings identifying what the agent can do (e.g. "jupiter:swap") | |
| x402Endpoint | No | Optional x402 payment endpoint URL for HTTP-based agent payments |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 behavioral context by mentioning 'on-chain' registration and the SDK method, and hints at idempotency by not stating otherwise. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding value: core action, SAP MCP context, parameter guidance and follow-up. No wasted words, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a registration tool with 9 optional parameters and an output schema (context shows has output schema: true), the description covers the primary function, key parameters, and post-registration steps. Could be slightly improved by explicitly noting that all parameters are optional, but schema's required: 0 compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description adds meaning beyond schema by explaining that agentUri and metadataUri are for off-chain metadata and can include a Metaplex or DAS-backed identity document. This provides usage context not present in individual parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Register' and the resource 'connected wallet as a SAP agent'. It distinguishes itself from sibling tools by calling itself 'the primary on-chain SAP agent registration tool' and mentions SDK AgentModule.register.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use agentUri vs metadataUri for off-chain metadata, and directs to follow-up tools like sap_publish_tool_by_name and metaplex-nft_* tools. 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.
sap_report_callsReport Agent CallsBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| callsServed | No | Number of calls served to report for the agent |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide basic flags (readOnlyHint=false, destructiveHint=false), and the description adds that this is a write tool requiring signer policy and RPC. However, it does not detail the effect of reporting (e.g., state changes, storage) or include return value information, which an output schema might cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences. The first sentence directly states purpose; the second provides relevant context. While efficient, the boilerplate part about SAP MCP could be trimmed for specificity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and clear purpose, the description is minimally adequate. However, it lacks information about the output schema, when reporting is appropriate, and any side effects, leaving some gaps for an unfamiliar agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning beyond the parameter's schema description ('Number of calls served to report for the agent'). No additional semantics or examples are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Report served call count for the connected wallet SAP agent,' specifying the action and resource. It distinguishes from sibling tools like sap_report_tool_invocations by focusing on a specific metric (call count), though it does not explicitly compare itself to similar tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 provides general SAP MCP context (read vs write tools), it does not explain the intended use case, prerequisites, or situations where sap_report_calls should be preferred over 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_report_tool_invocationsReport SAP Tool InvocationsBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| toolName | No | Name of the tool descriptor to report invocations for | |
| invocations | No | Number of invocations to report |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-destructive write (readOnlyHint=false, destructiveHint=false). The description adds generic context about write tools requiring signer policy etc., but does not explain the exact side effects of 'reporting' invocations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, though the second sentence is a generic note that could be omitted or integrated more efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 could still explain what the tool returns or the effect of the operation. The lack of behavioral detail (e.g., whether invocations are appended or overwritten) leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning beyond the schema's parameter names and descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Report' and the resource 'invocation count for a SAP tool descriptor'. However, it does not distinguish from the sibling tool 'sap_report_calls', which may have 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.
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 'sap_report_calls'. The generic note about read/write tools is not 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_request_unstakeRequest SAP UnstakeAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Unstake request amount in lamports (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false and destructiveHint=false. The description adds context about the SAP staking flow and pre-write confirmation, but does not elaborate on side effects, authorization needs, or rate limits. With annotations, the description adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and contains no unnecessary words or repetition. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose, usage guidance, and context. Missing prerequisites or error conditions, but 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; both parameters have clear descriptions. The description does not add additional parameter semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Request unstake for an agent wallet.' It specifies the SAP protocol context and explicitly distinguishes from external AgentKit staking tools, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises confirming wallet, amount, and timing before writes, and notes distinction from external tools. However, it does not specify when not to use this tool or mention alternatives within SAP (e.g., sap_complete_unstake).
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 AttestationADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentWallet | No | Agent wallet public key (base58) to revoke attestation for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, and description adds 'keep hashes/attestation metadata stable and auditable,' providing useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. First sentence states purpose, second provides context. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple (one parameter, destructive, has output schema). Description covers purpose and usage context sufficiently for an agent to decide correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter is described in schema (agentWallet, base58) with 100% coverage. Description adds 'Use after verifying...' but does not provide new parameter constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Revoke attestation for an agent wallet' with a specific verb and resource, distinguishing it from sibling tools like sap_create_attestation and 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: 'SAP MCP context: Reputation and trust flow. Use after verifying...' which guides when to use, but does not explicitly list alternative tools or cases to avoid.
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 FeedbackADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentWallet | No | Agent wallet public key (base58) to revoke feedback for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructiveHint=true, which aligns with the revoke action. The description adds context about reputation/trust flow and metadata stability, but does not elaborate on side effects, reversibility, or required permissions beyond what annotations already communicate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states the core function, second provides context and usage advice. No extraneous information, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 can focus on behavior. It includes SAP MCP context and specific guidance on metadata stability. Could potentially add more about the revoke effect (e.g., permanent vs temporary), but overall sufficient for a single-parameter destructive tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with a clear description for 'agentWallet'. The description adds a usage note about verification but no additional parameter-level detail. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Revoke feedback' and the target resource 'for an agent wallet'. The description adds SAP MCP context and differentiates from related tools like sap_give_feedback and sap_update_feedback by specifying the revoke action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Use after verifying the target agent PDA or wallet and keep hashes/attestation metadata stable and auditable.' It implies when to use (after verification) and what to maintain (stability/auditability), but does not explicitly exclude alternative tools or scenarios.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | High-level session identifier string to read latest entries from |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation readOnlyHint is false, indicating potential side effects, but description claims it is a read operation. This is a direct contradiction. Description does not clarify why the tool is not read-only or what side effects occur.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences that are reasonably concise. First sentence states purpose, second provides context, third offers storage guidance. Could be more structured but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema, the description fails to explain what 'latest entries' means or the format of the return. Missing details about expected behavior and the contradiction with annotations undermines completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with one parameter. The description adds 'high-level SDK session ID' which matches the schema. No additional meaning beyond what the schema provides, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reads latest entries from a high-level SDK session ID, with specific verb and resource. It adds context about SAP MCP memory/session flow, but does not explicitly differentiate from sibling tools like sap_session_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 provides context about memory/session flow but lacks when-not-to-use instructions or prerequisites.
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 SessionAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | High-level session identifier string | |
| vaultNonce | No | Optional vault nonce as a byte array, hex string, or base64 string |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a non-read, non-destructive, open-world tool. The description adds important context about on-chain visibility and data storage practices ('Store only intentionally encrypted payloads or public hashes; session and vault PDAs are visible on-chain metadata'), which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two short sentences) yet front-loads the core purpose. Every sentence serves a purpose: the first states the action, the second adds critical behavioral context. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (optional params, output schema exists), the description covers the key behavioral and security aspects. It could mention what the tool returns or how the session is used, but the presence of an output schema mitigates this need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description does not add extra meaning to the parameters 'sessionId' and 'vaultNonce' beyond what the schema provides. The baseline of 3 applies as the schema already describes them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Start') and the resource ('a high-level SDK session by session ID'). It is specific enough, though it could better differentiate from related tools like sap_open_vault_session or sap_session_read_latest. Nonetheless, the verb+resource pair is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'SAP MCP context: Memory/session flow' but does not explicitly state when to use this tool instead of other session-related tools. No alternatives or exclusions are provided, leaving the agent to infer usage from the context.
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 StatusBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | High-level session identifier string to get status for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'Fetch', which implies a read-only operation, but the annotation readOnlyHint is false, suggesting the tool may have side effects or is not read-only. This is a clear contradiction. The description does not clarify the actual behavioral characteristics beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences that front-load the purpose and then add context. Every sentence serves a purpose with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has a single parameter and an output schema (which covers return values), the description provides sufficient high-level context about the session flow and data visibility. It is mostly complete, though it could briefly note that the status is high-level vs. detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description only mentions the session ID parameter without adding meaningful detail beyond the schema's description. The schema already states 'High-level session identifier string to get status for', so the description adds minimal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Fetch high-level SDK session status by session ID.' It identifies the resource (session status) and the parameter (session ID). However, it does not explicitly differentiate from the sibling tool 'sap_fetch_session', 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context by mentioning 'SAP MCP context: Memory/session flow' and warns about data visibility ('session and vault PDAs are visible on-chain metadata'). However, it does not specify when to use this tool versus alternatives, nor does it provide explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_settle_escrowSettle SAP Escrow V1ADestructiveInspect
Settle calls against a V1 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| serviceHash | No | 32-byte service hash as a byte array, hex string, or base64 string | |
| callsToSettle | No | Number of calls to settle (as a decimal string) | |
| depositorWallet | No | Depositor wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false (write) and destructiveHint=true. The description adds 'write operations require an enabled signer mode and MCP policy approval' and advises to estimate/fetch state first, providing useful behavioral context without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: first defines purpose, second gives context and requirements. No redundant information, front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has an output schema and annotations cover safety. The description adds usage context for a settlement tool with 3 parameters and no required fields. It is sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage. The description does not add further meaning to parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Settle calls against a V1 escrow,' specifying the action and resource. It distinguishes from sibling tools like sap_settle_escrow_batch and sap_settle_escrow_v2 by mentioning 'V1', but lacks explicit differentiation (e.g., single vs batch).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; write operations require an enabled signer mode and MCP policy approval.' This guides when to use the tool and prerequisites, though it does not explicitly compare to alternatives like batch or v2.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_settle_escrow_batchBatch Settle SAP Escrow V1ADestructiveInspect
Batch settle V1 escrow entries using SDK EscrowModule.settleBatch. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| batchRoot | No | Optional 32-byte Merkle root for batch verification | |
| settlements | No | Array of settlement objects, each containing callsToSettle (string) and serviceHash (32-byte array) | |
| depositorWallet | No | Depositor wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only. Description adds meaningful context: prerequisites (estimate/fetch state) and authorization requirements (signer mode, policy approval). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences efficiently conveying purpose, context, and prerequisites. No unnecessary words; front-loaded core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description doesn't need return values. Covers batch focus, V1 version, and operational prerequisites. Could mention why batchRoot is optional, but schema already handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 parameters. Description does not add additional meaning or format details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Batch settle V1 escrow entries' using a specific SDK method, which distinguishes it from siblings like sap_settle_escrow (singular) and sap_settle_escrow_v2 (V2).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: 'Estimate or fetch state before creating escrows or settling calls' and 'write operations require enabled signer mode and MCP policy approval'. However, it does not explicitly compare to alternatives (e.g., when to use batch vs singular settle).
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 V2ADestructiveInspect
Settle calls against a V2 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (as a decimal string, default: 0) | |
| serviceHash | No | 32-byte service hash as a byte array, hex string, or base64 string | |
| callsToSettle | No | Number of calls to settle (as a decimal string) | |
| depositorWallet | No | Depositor wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description confirms a write operation ('settle calls') and adds usage context beyond annotations (destructiveHint=true, readOnlyHint=false). It includes prerequisites and advice to check state first, which helps the agent understand behavioral requirements without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action. No wasted words; every sentence provides essential information (action and usage context).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, output schema exists, destructive), the description provides the payment/settlement flow context and prerequisite steps. It is complete enough for selection, though it omits details about the output or process beyond what the schema may cover.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (all 4 parameters described in input schema), so baseline is 3. The description does not add extra meaning for the parameters (e.g., nonce, serviceHash, callsToSettle, depositorWallet) beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Settle calls against a V2 escrow,' specifying the exact action (settle), resource (calls against a V2 escrow), and version (V2), distinguishing it from siblings like sap_settle_escrow and sap_settle_escrow_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'estimate or fetch state before creating escrows or settling calls' and mentions prerequisites: 'write operations require an enabled signer mode and MCP policy approval.' This provides clear context and when-not conditions, though it does not explicitly name alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_sign_transactionSign TransactionBInspect
Sign a serialized Solana transaction with the configured SAP MCP signer.
| Name | Required | Description | Default |
|---|---|---|---|
| encoding | No | Input encoding | |
| transaction | No | Unsigned or partially signed transaction |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description says 'sign' but adds no context beyond annotations. Annotations indicate not read-only, not destructive, but the tool could mutate state (signing). No disclosure of failure modes, resource costs, or required configuration. Minimal 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and object, no redundant words. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, description does not mention return value (signed transaction). No clarification on required parameters (schema missing required array). Does not address common workflow: sign then submit. For a core operation, more completeness is expected.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover both parameters (encoding and transaction) adequately. Description adds no additional meaning. Baseline 3 due to 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (sign), the object (serialized Solana transaction), and the signer (configured SAP MCP signer). It distinguishes well from siblings like sap_submit_signed_transaction and sap_decode_transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites (e.g., transaction must be built first, signer configured), and no mention of ordering with sap_submit_signed_transaction. The description only states what it does, not 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_skills_bundleBundle SAP MCP SkillsCInspect
Return bundled SAP MCP skills as JSON so an agent can load or write them itself.
| Name | Required | Description | Default |
|---|---|---|---|
| skills | No | Skills parameter for Bundle SAP MCP Skills. | |
| includeContents | No | Include Contents parameter for Bundle SAP MCP Skills. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims the tool returns JSON (read-only), but annotations have readOnlyHint=false, suggesting possible side effects. This contradiction makes the behavior unclear. Flagged as annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but lacks necessary details. It efficiently states the purpose but omits context for parameters and usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but input parameters are poorly documented. The tool is simple but the description insufficiently guides the agent on how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but parameter descriptions are trivial (e.g., 'Skills parameter for Bundle SAP MCP Skills'), adding no meaning beyond names. The overall description does not explain what values are expected for 'skills' or what 'includeContents' controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool returns bundled SAP MCP skills as JSON for loading or writing, distinguishing it from siblings like sap_skills_install and sap_skills_list. However, it could be more precise about what 'bundled' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Siblings include sap_skills_install and sap_skills_list, but the description does not differentiate use cases.
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 SkillsBInspect
Install bundled SAP MCP skills into a local agent skill directory. Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | No | Agent parameter for Install SAP MCP Skills. | |
| skills | No | Skills parameter for Install SAP MCP Skills. | |
| confirm | No | Confirm confirmation flag required before Install SAP MCP Skills performs a local write. | |
| targetDir | No | Target Dir parameter for Install SAP MCP Skills. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description correctly indicates a write operation (installing) and flags the need for confirmation. Annotations do not contradict, but the description lacks details on side effects (e.g., overwriting existing files, directory creation permissions) that would fully inform 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that states the core purpose and a key requirement upfront. Every word adds value, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description adequately covers the primary action and a critical behavioral constraint. However, it omits details like whether the target directory must exist or what happens if skills are already installed, leaving some gaps for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no further meaning beyond the schema, and the schema descriptions are generic ('Skills parameter for Install SAP MCP Skills'), so while adequate, no additional clarity is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Install' and identifies the resource ('bundled SAP MCP skills') and target ('local agent skill directory'), clearly defining the action. However, it does not differentiate from related sibling tools like 'sap_skills_bundle' or 'sap_skills_list', which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only states a requirement ('Requires confirm: true') but provides no guidance on when to use this tool versus alternatives, or any context about prerequisites or expected outcomes. This leaves the agent uncertain about appropriate usage scenarios.
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 SkillsCRead-onlyIdempotentInspect
List bundled SAP MCP skills and their files.
| Name | Required | Description | Default |
|---|---|---|---|
| skills | No | Skills parameter for List SAP MCP Skills. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, which cover safety. The description adds minimal context beyond 'list skills and files', but does not disclose the format of the output or any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 8 words, which is concise and front-loaded. However, it may be too brief to convey all needed information, but it avoids waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 detail return values. However, it lacks context about the skills system and does not explain what 'bundled' means or how to interpret the output. The parameter is poorly described, making the tool incomplete for a user unfamiliar with the domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The parameter 'skills' is described as 'Skills parameter for List SAP MCP Skills', which is a tautology. It does not explain the purpose of the array (e.g., filtering specific skills). With 100% schema description coverage, the description fails to add meaningful semantics beyond the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List bundled SAP MCP skills and their files' clearly states the action (list) and the resource (skills and files). It distinguishes from sibling tools like 'sap_skills_bundle' and 'sap_skills_install' which bundle or install skills, not list them. However, it could be more explicit about what 'bundled' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool over its siblings. The description does not mention alternative tools like 'sap_skills_bundle' or 'sap_skills_install', nor does it specify the context for listing skills.
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 DomainsARead-onlyIdempotentInspect
Check availability for multiple .sol domains (up to 25) using the SAP SDK SnsModule.
| Name | Required | Description | Default |
|---|---|---|---|
| domains | No | Array of .sol domain names to batch-check for availability (1-25 domains) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint false. The description only adds 'using the SAP SDK SnsModule', which is minimal. No additional behavioral context like rate limits or response format 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no wasted words. Front-loaded with verb and resource. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple batch check tool with one parameter, output schema present, and strong annotations, the description is sufficiently complete. It covers the core purpose and constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3. The tool description does not add meaning beyond the schema; it repeats the batch limit and domain type already in the parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'check availability' for multiple .sol domains (up to 25), using the SAP SDK SnsModule. It distinguishes from sibling tool sap_sns_check_domain which is singular.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies batch usage ('multiple .sol domains (up to 25)') but does not explicitly state when to use this vs sap_sns_check_domain, nor mention any 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_sns_build_manage_record_transactionBuild SNS Manage Record TransactionAInspect
Build an unsigned SNS record create/update/delete transaction using the Bonfida SDK. The returned transaction must be signed with sap_sign_transaction before submission. Use null value to delete a record. Note: SOL record is not supported — it requires a separate Ed25519 signature flow.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | The Solana public key (base58) of the domain owner authorizing the record change | |
| value | No | The new record value as a string, or null to delete the record | |
| domain | No | The .sol domain name whose record should be created, updated, or deleted | |
| recordType | No | The SNS record type to manage (e.g. TXT, Url, IPFS, ETH, BTC, etc.) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds important behavioral context beyond annotations: the tool produces an unsigned transaction requiring subsequent signing, and explicitly excludes SOL records. No contradiction with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-loaded with the main purpose. No redundant information, each sentence earns its place: purpose, signing requirement, null usage and exclusion.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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) and 100% parameter coverage, the description adequately covers what the tool does, its prerequisites (signing), and a notable limitation (SOL record). No gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds value beyond the schema: confirms null usage for deletion and warns about unsupported record types (SOL). Schema coverage is 100%, and description enhances two parameters. Baseline 3, plus 1 for added context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 SNS record transaction for create/update/delete operations, using the Bonfida SDK. It differentiates from sibling tools like sap_sns_check_domain and sap_sns_resolve_domain by focusing on transaction construction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit instructions: the returned transaction must be signed with sap_sign_transaction, use null to delete, and notes that SOL record is not supported. Lacks comparison with alternative tools but offers clear context for 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_sns_build_set_primary_domain_transactionBuild SNS Set Primary Domain TransactionAInspect
Build an unsigned transaction to set a .sol domain as primary for the owner using the Bonfida SDK. The returned transaction must be signed with sap_sign_transaction before submission.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | The Solana public key (base58) of the domain owner setting their primary domain | |
| domain | No | The .sol domain name to set as primary for the owner |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds the behavioral context that the transaction is unsigned and requires signing, which is useful for understanding the multi-step process.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description consists of two concise sentences with essential information front-loaded. No redundant or unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main purpose and required next step (signing). An output schema exists for return format details. However, it lacks prerequisites (e.g., ownership of domain) and error conditions, but given the tool's narrow scope, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully documents the two parameters. The description does not add additional meaning beyond what the schema provides, hence a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 set a .sol domain as primary, specifying verb (build), resource (transaction for setting primary domain), and context (Bonfida SDK). It distinguishes from sibling tools like sap_sns_check_domain and sap_sns_resolve_domain 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the returned transaction must be signed with sap_sign_transaction before submission, providing clear usage guidance. However, it does not explicitly mention when to use this tool versus alternatives or any prerequisites.
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 DomainARead-onlyIdempotentInspect
Check whether a .sol domain is available for registration using the SAP SDK SnsModule.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name to check for availability (with or without .sol suffix) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide safety profile (readOnly, idempotent, not destructive). The description adds that the check is for registration using the SAP SDK SnsModule. This is sufficient and consistent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that directly states the purpose with no extraneous words. Every part is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with annotations and output schema, the description is complete enough. It covers the essential purpose and domain. Could optionally mention the TLD restriction, but that is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'domain' parameter (including suffix handling). The description does not add additional meaning beyond what is in the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check' and resource 'domain availability for .sol registration'. It distinguishes from sibling tools like sap_sns_batch_check_domains (batch check) and sap_sns_check_ownership (ownership check) by focusing on registration availability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (to check if a .sol domain can be registered) but does not explicitly contrast with alternatives such as sap_sns_batch_check_domains or sap_sns_check_ownership. No when-not-to-use guidance is provided.
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 OwnershipARead-onlyIdempotentInspect
Check whether a wallet owns a .sol domain using the Bonfida SDK.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | No | The Solana public key (base58) of the wallet to verify as the domain owner | |
| domain | No | The .sol domain name to check ownership of |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral traits beyond the existing annotations (readOnlyHint=true, destructiveHint=false). It does not contradict annotations, but also does not provide additional context such as that this is a simple lookup without 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, the output schema exists (per context signals), and the two parameters are fully described in the schema, the description is adequately complete. It could mention the return type (boolean) but the output schema covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 tool description adds no extra meaning beyond what the schema already provides, such as format or constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether a wallet owns a .sol domain using the Bonfida SDK. The verb 'check' and resource 'ownership' are specific, and it distinguishes from sibling tools like 'sap_sns_resolve_domain' and 'alldomains_getOwnedDomains'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_sns_check_domain' or 'alldomains_getOwnedDomains'. Usage is implied by the description but no exclusions or context are given.
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 PDABRead-onlyIdempotentInspect
Derive the SNS domain PDA for a .sol domain using the SAP SDK SnsModule.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name to derive the SNS domain PDA for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, idempotent, non-destructive behavior. The description adds no extra behavioral context (e.g., permissions, determinism, error conditions), so it doesn't enhance 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action and resource. No wasted words, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. However, the description does not address the optionality of the 'domain' parameter or clarify how this tool relates to its many SNS siblings, leaving some contextual gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides 100% coverage for the 'domain' parameter with a clear description. The tool description does not add any further meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'derive' and the resource 'SNS domain PDA for a .sol domain'. It distinguishes this tool from siblings like 'sap_sns_get_record_pda' by focusing on domain-level PDA, though it could explicitly mention the difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_sns_resolve_domain' or 'sap_sns_check_domain'. The description lacks context about prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_sns_get_domain_recordsGet SNS Domain RecordsARead-onlyIdempotentInspect
Fetch all configured SNS records for a .sol domain using the Bonfida SDK. Returns a key-value map of all records.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name to fetch all configured SNS records for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds that it uses the Bonfida SDK and returns a key-value map, providing useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently conveys the action and result without any extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 existing output schema, the description covers the core functionality (fetch all records, return key-value map). It does not mention error cases or prerequisites, but annotations and schema handle safety and return structure adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'domain', and the tool description does not add any additional semantic meaning beyond what the schema already provides (the domain name to fetch records for). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it fetches all configured SNS records for a .sol domain, using specific verb 'Fetch' and resource 'all configured SNS records'. It distinguishes from sibling tools like sap_sns_get_record (specific record) and sap_sns_validate_records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While the purpose implies usage for fetching all records, there is no mention of conditions or exclusions, leaving it to the agent to infer from sibling tool names.
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 RecordARead-onlyIdempotentInspect
Fetch a single SNS record value for a .sol domain using the Bonfida SDK.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name to fetch a record from | |
| recordType | No | The SNS record type to fetch (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool is safe and side-effect-free. The description adds that it uses the Bonfida SDK and that it fetches a value, which aligns with annotations but does not disclose additional behavioral traits like error conditions or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core function. It is not verbose, though it could be slightly improved by mentioning the need for a recordType parameter. Overall, it is concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool, rich annotations, and existence of an output schema, the description provides sufficient context for a fetch operation. It does not detail edge cases or expected return values, but the structural fields compensate adequately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with clear descriptions including examples for recordType. Since schema_description_coverage is 100%, a baseline of 3 is appropriate. The description does not add further semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it fetches a single SNS record value for a .sol domain using the Bonfida SDK. It is specific about the resource and action, but does not explicitly mention the requirement of specifying a record type, which is key to distinguishing from retrieving all records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching a single record but does not provide explicit guidance on when to use this tool versus alternatives like sap_sns_get_domain_records or sap_sns_get_record_pda. No when-not-to-use or alternative naming is given.
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 PDAARead-onlyIdempotentInspect
Derive the SNS record PDA for a domain and record type using the SAP SDK SnsModule.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name to derive the record PDA for | |
| recordType | No | The SNS record type for the PDA derivation (e.g. SOL, TXT, Url, IPFS, ETH, BTC, etc.) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 that the derivation is performed using the SAP SDK SnsModule, clarifying the computational nature. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's purpose and method. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (two parameters, pure derivation), the description is adequate. The output schema would cover return values. Could be more complete by explaining 'PDA' acronym, but not necessary for basic understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for both parameters (domain and recordType), so schema already explains them. The description adds minimal extra meaning, only mentioning the SDK used. Baseline of 3 is appropriate as description does not substantially enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool derives the SNS record PDA for a given domain and record type, using a specific SDK. It specifies the verb (derive), resource (PDA), and parameters, distinguishing it from siblings like sap_sns_get_record which likely fetches actual record data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_sns_get_record or sap_sns_get_domain_pda. There is no mention of prerequisites, contexts, or exclusions, leaving the agent without decision support.
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
Register a .sol domain for the configured local SAP agent wallet using the SAP SDK SnsModule. Builds, signs, and submits the full registration transaction with USDC payment in one call. Domain registration fees are paid in USDC plus SOL for rent and transaction fees. The SOL record is NOT set during registration (it requires a separate Ed25519 signature) — set it after using sap_sns_build_manage_record_transaction.
| Name | Required | Description | Default |
|---|---|---|---|
| pic | No | Profile picture URL for the SNS Pic record (required if not provided in records.Pic) | |
| space | No | Storage space in bytes for the domain name account (default: 600) | |
| domain | No | The .sol domain name to register for the SAP agent (with or without .sol suffix) | |
| records | No | Optional map of SNS record key-value pairs to set during registration (e.g. { "Url": "https://...", "Twitter": "@handle" }). Note: SOL record is skipped during registration. | |
| sapData | No | Optional structured SAP metadata to embed in the domain TXT record (capabilities, protocols, endpoints, etc.) | |
| protocols | No | Optional list of protocol IDs the agent supports | |
| agentWallet | No | The Solana public key (base58) of the SAP agent wallet that will own the domain | |
| capabilities | No | Optional list of SAP capability IDs to advertise in the domain TXT record | |
| setAsPrimary | No | Whether to set this domain as the agent primary .sol domain | |
| durationYears | No | Registration duration in years (default: 1) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds valuable behavioral context: USDC payment, SOL for rent and fees, and that the SOL record is excluded from registration. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loaded with the primary action. It packs essential information without verbose explanations. The second sentence adds a critical caveat. Some restructuring could improve readability, but it is efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, nested objects, output schema exists), the description covers the main purpose, payment details, and a key caveat about the SOL record. It assumes knowledge of SAP SDK and does not mention prerequisites or output, but the output schema mitigates the latter. Context is sufficient for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 significantly enhance parameter meaning beyond what the schema already provides. It mentions 'one call' and 'USDC payment' but does not elaborate on individual parameters like space, records, or sapData beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool registers a .sol domain for the SAP agent wallet, specifying the verb 'Register', resource '.sol domain', and scope with USDC payment. It distinguishes itself from the sibling sap_sns_build_manage_record_transaction by explicitly noting that the SOL record is not set during registration and must be set separately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use context ('Builds, signs, and submits the full registration transaction with USDC payment in one call') and an explicit when-not-to-use instruction ('The SOL record is NOT set during registration — set it after using sap_sns_build_manage_record_transaction'). It does not compare against all sibling registration tools but addresses the most relevant alternative.
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 DomainARead-onlyIdempotentInspect
Resolve a .sol domain to SAP agent identity, wallet, metadata, and SNS records using the SAP SDK SnsModule.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name to resolve to SAP agent identity and SNS records |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. The description adds valuable context about the resolved data (identity, wallet, metadata, SNS records), which goes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with no redundancy. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (per context signals) and annotations, the description is complete. It specifies the inputs and the type of outputs expected, without needing to detail return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter description in the schema already clearly explains the domain parameter. The tool description does not add new semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 specific outputs (SAP agent identity, wallet, metadata, SNS records) using the SAP SDK SnsModule. It is distinct from sibling tools like sap_sns_resolve_wallet and sap_sns_check_domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With many SNS-related siblings (e.g., sap_sns_resolve_wallet, sap_sns_check_domain), the description misses an opportunity to clarify when this is the appropriate choice.
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 WalletARead-onlyIdempotentInspect
Resolve a .sol domain to its owner wallet public key using the Bonfida SDK.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name to resolve to its owner wallet public key |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds that it uses the Bonfida SDK, but does not expand on 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 12 words, no fluff. Efficiently communicates the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with one parameter, good annotations, and an output schema. Description covers the essential action; no missing critical information for a lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter domain is fully described in schema with the same detail as in description. Description adds no new parameter-specific meaning beyond mentioning the SDK.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (resolve), the resource (.sol domain), and the result (owner wallet public key). It also distinguishes from sibling tools like sap_sns_resolve_domain by specifying the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sns_resolveDomain or alldomains_resolveDomain. No mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_sns_validate_recordsValidate SAP SNS RecordsAInspect
Validate SNS records for SAP agent compatibility (checks SOL, Pic, TXT records on-chain).
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | The .sol domain name whose SNS records should be validated for SAP agent compatibility |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and openWorldHint=true. The description adds no additional behavioral context (e.g., authentication, side effects, or data mutations). The readOnlyHint=false might suggest non-read-only, but the description aligns with a read operation; 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 15 words, conveying the core purpose and specific record checks. No fluff, every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter, full schema description, and an output schema, the description provides sufficient context. It explains what the tool does and what it checks, leaving details like return values to the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter 'domain' is already well-described in the schema. The tool description adds no new information about the parameter beyond summarizing the purpose, so it meets the baseline without extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Validate' and resource 'SNS records' for a defined purpose: SAP agent compatibility. It also lists the record types checked (SOL, Pic, TXT), clearly distinguishing it from sibling tools like 'sap_sns_get_domain_records' or 'sap_sns_check_domain'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the use case: validating SNS records for SAP agent compatibility. It implies when to use this tool (when compatibility check is needed) but does not provide exclusions or mention alternatives like fetching records without validation.
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 TransactionBDestructiveInspect
Submit a signed Solana transaction through the configured RPC endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| encoding | No | Input encoding | |
| maxRetries | No | Maximum RPC send retries | |
| skipPreflight | No | Skip RPC preflight checks | |
| signedTransaction | No | Signed serialized transaction |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate destructive behavior, but the description does not elaborate on consequences (e.g., potential failure, fees, non-idempotency). It provides minimal additional context beyond the structured annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it could benefit from slightly more context to improve usability without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's destructive nature and 4 parameters, the description is minimal. It does not mention return values (though an output schema exists) or provide usage hints, leaving the agent without enough context for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with parameter descriptions included. The tool description adds no extra meaning beyond what the schema already provides, meeting the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Submit' and the resource 'signed Solana transaction', specifying the action and channel through the RPC endpoint, effectively distinguishing it from signing tools like sap_sign_transaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., after signing, or when to use sap_preview_transaction). It lacks context about prerequisites and exclusions.
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
Update the connected wallet SAP agent using SDK AgentModule.update. 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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 the mutation being performed via SDK AgentModule.update and the prerequisite of prior registration. It does not elaborate on side effects or authorization, but the core mutation behavior is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no redundancy. The first sentence states the core action, the second provides usage context and a special case. It is front-loaded and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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), the description need not detail return values. It covers the main purpose, usage guidelines, and a special workflow. It does not mention error conditions or asynchronicity, but for an update tool this is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only defines additionalProperties as true, so the description compensates by listing all expected keys: name, description, capabilities, pricing, protocols, agentId, agentUri, x402Endpoint, and notes that any combination is valid. Schema description coverage is 100% and the description adds significant meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update the connected wallet SAP agent using SDK AgentModule.update') and lists specific updatable fields (name, description, capabilities, pricing, supported protocols, x402 endpoint, metadataUri). It distinguishes this tool from its sibling 'sap_register_agent' by specifying it is used after registration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use this after sap_register_agent to refresh...' and includes a special case for NFT-backed identity changes, instructing to update the Metaplex asset first when needed. It differentiates usage from alternatives.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional new feedback tag/category | |
| score | No | New feedback score (numeric, e.g. 1–5) | |
| agentWallet | No | Agent wallet public key (base58) to update feedback for | |
| commentHash | No | Optional 32-byte comment hash as a byte array, hex string, or base64 string |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool is modifying (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds context about reputation flow and auditability but does not further detail side effects or permissions. With annotations covering the safety profile, the added value is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states the core purpose, and the second provides usage context. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (unknown content but exists), so return values need not be described. The description covers the operation, usage context, and stability expectations. It could mention that all parameters are optional for partial updates, but the schema already indicates that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all four parameters. The description does not add any extra meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'existing on-chain feedback for an agent wallet'. This distinguishes it from related SAP tools like sap_give_feedback (create) and sap_revoke_feedback (delete).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance to verify the target agent PDA or wallet before use and to keep metadata stable, giving clear context. However, it does not explicitly mention when not to use this tool (e.g., if feedback doesn't exist yet) or suggest alternatives, which would strengthen this dimension.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| avgLatencyMs | No | Average response latency in milliseconds to report | |
| uptimePercent | No | Uptime percentage (0–100) to report for the agent |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate write operation and non-destructive nature. The description adds that metrics are self-reported and emphasizes stability/auditability, which provides context beyond the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the main action, and contains no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 provides sufficient context for usage (verification, stability) and covers the key behavioral aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (avgLatencyMs, uptimePercent). The description does not add additional meaning beyond what the schema already provides, so it meets the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates self-reported latency and uptime metrics for the SAP agent. It specifies the resource (reputation metrics) and action (update), and distinguishes from sibling tools like sap_fetch_* 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.
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 agent PDA or wallet and to keep hashes/attestation metadata stable. It provides clear context but does not explicitly state when not to use 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_update_toolUpdate SAP ToolCInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 little beyond stating it updates hashes; it does not disclose side effects, required permissions, or whether the update is reversible. The instruction to 'Publish only schemas...' is not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is not concise; the first sentence states the purpose, but the second sentence is a verbose tangent about SAP MCP context and internal instructions, which does not belong in a tool description. It would be better split into separate documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the confusing input schema and the presence of many sibling tools, the description does not adequately explain what the tool does beyond 'update hashes'. It does not explain the effect, prerequisites, or relationship to other SAP tools. The output schema may fill gaps, but the description remains incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but the schema itself is oddly structured and its description lists optional fields without defining them as properties. The tool description does not clarify the input parameters or add meaning beyond what the schema provides. Baseline score of 3 is appropriate given high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Update tool descriptor hashes using SDK ToolsModule.update'. This clearly identifies the verb and resource. However, the subsequent rambling about SAP MCP context and publishing schemas muddles the purpose and distracts from the core function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sap_publish_tool_by_name or sap_deactivate_tool. The mention of 'Use tool registry writes' is vague and does not help an agent decide. 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_withdraw_escrowWithdraw SAP Escrow V1ADestructiveInspect
Withdraw funds from a V1 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | Withdrawal amount in lamports (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 it is a write operation needing signer mode and policy approval, but does not detail what happens to the escrow or balance after withdrawal. With annotations covering the destructive nature, the description adds some context but not deep 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second provides key context and prerequisites. No unnecessary information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 2 parameters and no nested objects. It has an output schema. The description covers purpose, usage context, and prerequisites, making it complete given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions). The description does not add 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Withdraw funds from a V1 escrow' using a specific verb and resource. It distinguishes itself from siblings like 'sap_deposit_escrow' and 'sap_withdraw_escrow_v2' by specifying V1.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: '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.' It gives prerequisites and context but 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.
sap_withdraw_escrow_v2Withdraw SAP Escrow V2ADestructiveInspect
Withdraw funds from a V2 escrow. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| nonce | No | Escrow nonce (as a decimal string, default: 0) | |
| amount | No | Withdrawal amount in lamports (as a decimal string) | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description confirms this is a write operation and adds context about required approvals. It does not describe specific side effects (e.g., what happens to the escrow after withdrawal), but the combination of annotations and description is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences. The first sentence states the core purpose, and the second adds context. No redundant or irrelevant information, making it easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 essential aspects: the action, the SAP MCP context, and prerequisites. It is sufficient for an agent to understand when and how to use the tool, though a bit more detail on the withdrawal's effect could be added.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a clear description. The tool description does not add extra meaning beyond the schema, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action 'Withdraw funds from a V2 escrow' with a specific verb and resource. The 'V2' suffix distinguishes this tool from its sibling 'sap_withdraw_escrow' (presumably v1). The purpose is clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to 'Estimate or fetch state before creating escrows or settling calls' and notes that 'write operations require an enabled signer mode and MCP policy approval.' This provides clear context on when to use the tool and prerequisites, though it does not explicitly name alternative tools for similar actions.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Optional network identifier for X-Payment-Network | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond annotations: it is part of a payment/settlement flow, involves fetching escrow data, and notes that write operations require specific setup. No contradiction with annotations (readOnlyHint=false, destructiveHint=false). Could mention more about side effects or auth, but adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, and the second sentence adds essential context. No wasted words. Efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 required/optional parameters, output schema exists), description covers the flow context and prerequisites. Does not explain return format (likely covered by output schema). Fairly complete for its purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds no additional meaning beyond the schema's parameter descriptions. The description does not elaborate on parameters or their usage, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool builds SAP x402 HTTP headers by fetching escrow data, using a specific SDK method. It distinguishes from other x402 tools (like calculate_cost, settle) but does not explicitly differentiate from the similar sibling 'sap_x402_build_payment_headers'. The verb 'build' and resource are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on when to use ('Estimate or fetch state before creating escrows or settling calls') and prerequisites for write operations (signer mode, policy approval). Does not explicitly mention when not to use or list alternative tools, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sap_x402_build_payment_headersBuild SAP x402 Payment HeadersBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Optional override for X-Payment-Network | |
| agentPda | No | Agent PDA (base58) | |
| maxCalls | No | Max calls as a decimal string | |
| escrowPda | No | Escrow PDA (base58) | |
| agentWallet | No | Agent wallet public key (base58) | |
| txSignature | No | Escrow creation transaction signature | |
| pricePerCall | No | Price per call in token base units | |
| depositorWallet | No | Depositor wallet public key (base58) | |
| networkIdentifier | No | x402 network identifier stored in the payment context |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description mentions 'Estimate or fetch state' and 'write operations require signer mode', but does not clearly disclose whether this tool itself performs writes or side effects. Annotations show readOnlyHint=false, but description could imply a read-like operation. Insufficient clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, efficient. However, the second sentence packs multiple ideas (MCP context, estimate/fetch state, signer mode requirement) which could be better structured for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. Description provides dependency context and flow placement, but does not explain how headers are used, what the output format is, or the exact role in payment flow. Some gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no additional meaning beyond the schema, so baseline score 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it builds HTTP headers from a PaymentContext returned by sap_x402_prepare_payment. Mentions context (payment/settlement flow) and prerequisites, but does not explicitly differentiate from sibling sap_x402_build_headers_from_escrow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some usage context: after prepare_payment, before creating escrows or settling. But does not mention alternatives or when not to use this tool. The 'write operations require...' clause is ambiguous regarding 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_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.
| Name | Required | Description | Default |
|---|---|---|---|
| calls | No | Number of calls to calculate | |
| basePrice | No | Base price per call in token base units | |
| volumeCurve | No | Array of { afterCalls, pricePerCall } pricing breakpoints | |
| totalCallsBefore | No | Cumulative settled calls before this calculation (default: 0) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Disclosure that it is purely local and does not read chain state adds context beyond annotations. Notes prerequisites for subsequent write operations, though the tool itself is a calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that efficiently convey the core functionality and usage context without any wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given full schema coverage and an output schema, the description adequately explains the tool's nature, context, and prerequisites, leaving no obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 details. It provides minimal additional context about when to use parameters (e.g., totalCallsBefore), but not beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is a local cost calculation using a specific SDK method, and explicitly notes it does not read chain state, distinguishing it from related tools like sap_x402_estimate_cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Places the tool in the payment/settlement flow and advises to estimate or fetch state before creating escrows or settling calls. Does not explicitly contrast with siblings but implies use cases.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| calls | No | Number of calls to estimate | |
| agentWallet | No | Agent wallet public key (base58) | |
| volumeCurve | No | Optional array of { afterCalls, pricePerCall } pricing breakpoints | |
| pricePerCall | No | Optional base price per call override in token base units | |
| totalCallsBefore | No | Optional cumulative settled calls before this estimate |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the tool reads escrow/pricing and estimates cost, implying read-only behavior. However, the annotation declares readOnlyHint=false, indicating it is not read-only. This is a direct contradiction, so the description fails to align with structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, front-loaded with the primary action, and every sentence adds essential context. No redundant or unnecessary information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 descriptions, the description adequately covers purpose, usage context, and sequencing. It could mention error handling or more detailed conditions for optional parameters, but overall it is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter is described. The description adds value by mentioning 'volume curve overrides' and 'reads escrow/pricing,' which contextualizes the volumeCurve, pricePerCall, and other parameters beyond their schemas.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool estimates cost for a number of calls using a specific SDK method. It distinguishes from sibling tools by emphasizing its role before write operations like creating escrows or settling calls, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises using this tool to estimate or fetch state before creating escrows or settling calls, providing clear context for when to use it. However, it does not explicitly mention when not to use it or suggest alternative tools, leaving some room for improvement.
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 EscrowARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| depositor | No | Optional depositor wallet (base58); defaults to caller in SDK | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint. The description adds valuable behavioral details: uses SDK, resolves V2 then V1 fallback. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main action, no unnecessary words. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and thorough annotations, the description adds necessary usage context and technical behavior (V2/V1 fallback). 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add new 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Fetch raw x402 escrow account data using SDK X402Registry.fetchEscrow', identifying the resource and verb. However, it does not explicitly distinguish itself from related sibling tools like sap_fetch_escrow or sap_fetch_escrow_v2, other than mentioning the V2-first then V1 fallback resolution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: 'SAP MCP context: Payment and settlement flow. Estimate or fetch state before creating escrows or settling calls.' This offers when to use it but lacks explicit guidance on when not to use it 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_get_balanceGet SAP x402 BalanceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| depositor | No | Optional depositor wallet (base58) to filter balance by | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds minimal behavioral context beyond the SDK method name and workflow placement, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence directly states the function, and the second provides valuable workflow context. The mention of write operations is slightly tangential but still relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, workflow context ('Payment and settlement flow'), and SDK source. It is sufficiently complete for a simple fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (depositor and agentWallet). The description does not add extra meaning or usage details 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Fetch', the resource 'x402 escrow balance', and references the specific SDK method. It distinguishes this tool from sibling x402 tools by positioning it as a read operation for balance before escrow creation or settlement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises to use this tool 'before creating escrows or settling calls', providing clear context. It implicitly contrasts with write operations that require signer mode, but does not explicitly name alternatives or list when-not-to-use scenarios.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| depositor | No | Optional depositor wallet (base58); defaults to caller in SDK | |
| agentWallet | No | Agent wallet public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only check ('Check whether... exists'), but annotations set readOnlyHint=false, suggesting potential side effects. The description does not clarify if the tool modifies state, nor does it add behavioral context beyond the annotation contradiction. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first delivers the core purpose, the second adds workflow context. It is efficient, though the second sentence could be seen as slightly tangential to the tool's immediate function. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool purpose and existence of an output schema (not shown but declared), the description provides enough context for an agent to understand when to use it. It mentions the SAP MCP context and workflow placement, though it does not detail return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (depositor and agentWallet) with 100% coverage. The description only references 'agent/depositor pair' without adding 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks whether an x402 escrow exists for an agent/depositor pair, using the specific verb 'check' and resource 'x402 escrow existence'. This distinguishes it from sibling tools like sap_fetch_escrow (which returns details) and sap_create_escrow (creates escrows).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context about the payment and settlement flow and advises using this tool before creating escrows or settling calls. However, it does not explicitly contrast with alternatives like sap_x402_fetch_escrow or specify when not to use it, missing some nuance.
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 Payment V1 DeprecatedAInspect
Prepare a V1 x402 payment context using SDK X402Registry.preparePayment. Deprecated by the SDK for production escrow creation; prefer Escrow V2 tools for new 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.
| Name | Required | Description | Default |
|---|---|---|---|
| deposit | No | Initial deposit amount as a decimal string | |
| maxCalls | No | Optional maximum number of calls covered | |
| expiresAt | No | Optional expiry timestamp in unix seconds | |
| tokenMint | No | Optional SPL token mint; omit/null for SOL | |
| agentWallet | No | Agent wallet public key (base58) | |
| volumeCurve | No | Optional array of { afterCalls, pricePerCall } pricing breakpoints | |
| pricePerCall | No | Price per call as a decimal string | |
| tokenDecimals | No | Optional token decimals | |
| networkIdentifier | No | Optional x402 network identifier written into headers |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false. The description adds that it is a write operation requiring signer mode and policy approval, but does not detail side effects or on-chain impact. Some behavioral context is provided, but limited beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, covering purpose, deprecation, context, and guidelines. No fluff, but could be more structured (e.g., separate sections). Still concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool is deprecated and has 9 optional parameters with an output schema, the description adequately covers purpose, alternatives, and requirements. It mentions integration context but does not explain the full flow with other tools. Adequate for a deprecated tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 tool description does not add any parameter-specific meaning beyond the existing schema descriptions. No extra value is provided for understanding parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb 'Prepare' and resource 'V1 x402 payment context' are specific. The description explicitly states it is deprecated and points to Escrow V2 tools, distinguishing it from siblings like sap_x402_settle and sap_create_escrow_v2.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly advises against using for new flows and recommends Escrow V2 tools. Also provides context for when to use: 'Estimate or fetch state before creating escrows or settling calls' and prerequisites (enabled signer mode, 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_x402_settleSettle SAP x402 CallsADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| commitment | No | Optional processed|confirmed|finalized commitment | |
| maxRetries | No | Optional RPC retry limit | |
| serviceData | No | Service data to hash into the settlement proof | |
| computeUnits | No | Optional compute-unit limit | |
| callsToSettle | No | Number of calls to settle | |
| skipPreflight | No | Optional skip preflight flag | |
| depositorWallet | No | Depositor wallet public key (base58) | |
| priorityFeeMicroLamports | No | Optional priority fee in microlamports per compute unit |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds important behavioral context: it settles 'served' calls, requires owner wallet, and mandates signer mode and policy approval. This goes beyond the annotations and helps the agent understand the write operation's requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences plus important prerequisite details. It front-loads the core purpose. While every sentence is useful, it could be slightly tighter. Still, it respects the reader's time.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose, prerequisites, and behavioral constraints. It could elaborate on what 'served' means or the outcome, but the overall context is sufficient for an agent to use it correctly within the SAP MCP framework.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with well-described parameters. The description does not add new semantics for individual parameters but provides overall context. Per the guidelines, high coverage earns a baseline of 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description clearly state the tool settles served x402 calls via a specific SDK call. It uses a specific verb 'settle' and resource 'x402 calls', distinguishing it from sibling tools like sap_x402_fetch_escrow or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the caller must be the agent owner wallet and that write operations require enabled signer mode and MCP policy approval. It also advises to estimate or fetch state before settling. This provides clear context on when and how to use the tool, though it does not explicitly name alternative tools for other actions.
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 CallsADestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | No | Array of { calls, serviceData } settlement entries | |
| commitment | No | Optional processed|confirmed|finalized commitment | |
| maxRetries | No | Optional RPC retry limit | |
| computeUnits | No | Optional compute-unit limit | |
| skipPreflight | No | Optional skip preflight flag | |
| depositorWallet | No | Depositor wallet public key (base58) | |
| priorityFeeMicroLamports | No | Optional priority fee in microlamports per compute unit |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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: ownership requirement ('agent owner wallet'), authorization needs (signer mode and MCP policy approval), and a best-practice note (pre-estimate state). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences), front-loads the core purpose, and each sentence adds a distinct piece of value: action, ownership constraint, context, and prerequisites. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (covers return values) and full parameter documentation, the description is largely complete. It places the tool within the payment/settlement flow and mentions prerequisites. However, it could briefly explain what 'x402 calls' are, but that may be assumed from the SAP context. Slightly lacking in explaining the array structure of entries, but that is in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not elaborate on any parameters or provide additional meaning beyond the schema fields. While the description explains overall behavior, it adds no parameter-specific guidance, which is acceptable given full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'batch-settle' and the resource 'served x402 calls', referencing the SDK method. It distinguishes from the singular 'sap_x402_settle' sibling by specifying 'batch', though not naming the sibling explicitly. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage constraints: 'Must be called by the agent owner wallet' and 'write operations require an enabled signer mode and MCP policy approval'. It also advises to 'estimate or fetch state before creating escrows or settling calls', which guides pre-invocation steps. However, it does not explicitly contrast with the singular settle tool 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.
send-arcade_listGamesSend-arcade List GamesBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Status parameter for Send-arcade List Games. |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'operation class write', which contradicts the annotations readOnlyHint=true and destructiveHint=false. This is a clear contradiction, and per scoring rules, transparency scores 1. The description does not adequately disclose behavioral traits beyond annotations and adds confusion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the purpose sentence, but it consists of five sentences, including unnecessary technical and cautionary notes (e.g., 'Keep gaming activity separate from SAP identity'). 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and an output schema exists. The description provides the basic purpose and some context but includes contradictory information. It does not fully explain the return value or behavior beyond listing, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 provide additional meaning for the status parameter beyond what the schema already offers (enum values). No extra guidance is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List available games on Send Arcade', specifying the verb (list), resource (available games), and scope (on Send Arcade). It effectively distinguishes from the sibling tool send-arcade_playGame.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'Use for Send Arcade game listing and play flows', implying the tool is for listing games, but does not explicitly state when to use it versus alternatives like send-arcade_playGame. It lacks clear exclusions or alternative suggestions.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| gameId | Yes | Game ID parameter for Send-arcade Play Game. | |
| wallet | Yes | Solana public key (base58) | |
| betAmount | No | Raw token amount (smallest unit) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a write operation (readOnlyHint=false) and description adds that it pays an entry fee via transaction, with a warning to confirm before writes. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences including a redundant 'SAP MCP context' line. Could be more concise, but it is front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the main action, financial implication, and a caution about separating gaming from SAP identity. Output schema exists to fill details on return values, making this adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are present. Description adds only minimal extra context ('wager or spend') 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Enter and play a game on Send Arcade' with a specific verb and resource, and distinguishes from sibling 'send-arcade_listGames' which is for listing only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context for use in game play flows and advises to confirm account, wager, and rules before writes. However, it mentions 'game listing' which is handled by a sibling, slightly blurring boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sns_resolveDomainSns Resolve DomainARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Full domain name (e.g. "myname.sol") |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds context about operation class read and protocol, which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action, no wasted words. Highly concise and effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, annotations, and presence of an output schema, the description covers all necessary context: what it does, when to use it, and the alternative tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage for the single parameter, so the description does not need to add much. It adds no extra semantics beyond the schema's description of the domain parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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, and distinguishes itself from sibling sap_sns_resolve_domain by specifying the preferred tool for SAP-linked domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use the tool (resolve .sol domain via AgentKit) and when to avoid it (prefer sap_sns_resolve_domain for SAP-linked domains), providing clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sns_reverseLookupSns Reverse LookupAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Wallet address to reverse-lookup |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims 'operation class read', contradicting annotations where readOnlyHint=false. This is a serious inconsistency. No other behavioral traits are disclosed beyond the misleading read claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loads the action, includes context and pairing advice, and contains no waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose and context. It could mention potential limitations like pagination, but it's sufficient for a simple lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds minimal value beyond the schema's own description of the wallet parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Reverse-lookup') and the resource ('all .sol domains owned by a wallet'). It differentiates from sibling tools by mentioning pairing with sap_sns_resolve_wallet or sap_sns_check_ownership.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context ('Use to find the SNS domain associated with a wallet') and suggests related tools for profile checks. It does not explicitly state when not to use, but the pairing guidance is strong.
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 BalanceARead-onlyIdempotentInspect
Fetch the SOL balance for a wallet or account using the configured Solana RPC endpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| pubkey | No | Alias for address | |
| address | No | Wallet or account public key in base58 | |
| commitment | No | Optional commitment override |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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's burden is lower. It adds useful context about using the configured RPC endpoint, which is a behavioral trait beyond the annotations. No contradictions or additional behavioral warnings needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the key verb and resource. No redundant information. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (3 optional parameters, no required), the presence of an output schema, and comprehensive annotations, the description provides all necessary context. It clearly states what the tool does and how it executes, making it complete for an agent to select and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (pubkey, address, commitment) including types and enums. The description does not add further meaning beyond the schema, but that is acceptable as the schema is sufficient. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Fetch') and resource ('SOL balance'), clearly distinguishing it from sibling tools like spl-token_getBalance for token balances. It explicitly states the scope (wallet or account) and method (configured Solana RPC endpoint).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates when to use this tool (to fetch SOL balance), but it lacks explicit guidance on when not to use it or what alternatives exist. However, given the tool's simplicity and the context of sibling tools, the usage is straightforward.
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 BurnCInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| owner | Yes | Token account owner | |
| amount | Yes | Amount to burn |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond 'burn' and 'write'. With annotations already indicating destructiveHint=false, the description adds no insight into irreversibility, supply reduction, or authority requirements, missing an opportunity to clarify the tool's impact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than necessary, including boilerplate about SAP MCP context and general protocol use. The first sentence is concise, but the rest adds noise, reducing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple burn tool with 3 parameters, the description is adequate but lacks detail on prerequisites (e.g., owner authority) and consequences. The presence of an output schema partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with meaningful parameter descriptions. The description adds no new information beyond the schema, achieving the baseline for parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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,' providing a specific verb and resource. However, it includes extraneous SAP MCP context that dilutes focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., spl-token_transfer, spl-token_mintTo). The description lists general use cases for the protocol but does not specify when burning is appropriate or differentiate from 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_closeAccountSpl-token Close AccountBDestructiveInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Token account owner | |
| account | Yes | Token account to close | |
| destination | No | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive behavior. The description adds that rent SOL is reclaimed, but it fails to disclose a critical precondition: the token account must have zero balance. This omission 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes generic boilerplate about SPL token operations and SAP MCP context that is not specific to this tool. It could be more concise by focusing only on the close account action and its requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 important context such as the precondition of zero balance and the exact outcome (rent reclaimed, account removed). This leaves the agent underinformed for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does not add meaningful semantic context beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Close a token account and reclaim the rent SOL.' This is specific and distinguishes it from sibling SPL token tools like burn or transfer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides generic guidance about SPL token operations and precautions but does not explicitly specify when to use closeAccount versus alternatives. The core purpose (reclaim rent) is implied but not fully developed.
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 TokenAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| uri | No | URI to off-chain metadata JSON (image, description, etc.) | |
| name | Yes | Token name (stored in Metaplex metadata) | |
| owner | Yes | Token owner / mint authority wallet | |
| symbol | Yes | Token symbol (e.g. "MYTKN") | |
| decimals | No | Token decimals (default: 9) | |
| isMutable | No | Whether metadata is mutable (default: true) | |
| initialSupply | No | Raw token amount (smallest unit, no decimals) | |
| mintAuthority | No | Solana public key (base58) | |
| freezeAuthority | No | Solana public key (base58) | |
| sellerFeeBasisPoints | No | Royalty fee in bps (for fungible with metadata) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses returns unsigned transaction, but annotations already indicate write operation. Adds some 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose. Some redundancy in listing operations. Earns its sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains return value (mint address and unsigned transaction). For a deploy tool with 10 params, it covers the essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; description does not add significant meaning beyond schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Deploy' and resource 'new SPL token with Metaplex metadata'. Distinct from sibling tools like burn, transfer, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Misleadingly lists multiple operations (mint, transfer, etc.) that this tool does not perform. No clear when-to-use or alternative guidance.
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 AccountBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| account | Yes | Token account to freeze | |
| freezeAuthority | Yes | Freeze authority wallet |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write operation (readOnlyHint=false). Description adds that freeze authority is required, which is useful. However, it does not disclose whether freezing is reversible or any side effects beyond preventing transfers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are concise and clear, but the description includes generic boilerplate ('SAP MCP context...', 'Use for SPL token...', 'Confirm mint...') that is not specific to this tool, adding unnecessary length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given sibling tools like thawAccount, the description should mention that freezing is reversible. It also fails to clarify whether freezing affects other operations like burning. The output schema exists but does not fully compensate for these omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter (mint, account, freezeAuthority) already has a description. The description adds no additional meaning beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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)' which is a specific verb and resource. It distinguishes from sibling tools like thawAccount (unfreeze) and transfer (move tokens).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'requires freeze authority' but includes generic boilerplate ('Use for SPL token deploy, mint, transfer, burn, freeze, thaw...') that does not differentiate when to use this tool vs alternatives. No explicit when-not or decision guidance.
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 BalanceCRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | No | Token mint address (base58) | |
| wallet | Yes | Wallet address to check |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts annotations by suggesting the tool is used for write operations, while annotations set readOnlyHint=true and destructiveHint=false. This is a severe contradiction, making the description untrustworthy.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes extraneous and confusing phrases like 'SAP MCP context: Protocol spl-token; operation class write.' This not only adds noise but contradicts itself. The core info is diluted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists but is not shown; given the tool's simplicity, the description covers the basic behavior. However, it omits potential error conditions (e.g., invalid wallet) and the irrelevant write-operation guidance detracts from completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds valuable context: 'If mint is omitted, returns native SOL balance.' This clarifies behavior beyond schema definitions of mint and wallet.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves token or SOL balance based on whether mint is provided. This is specific and distinguishes it from siblings like sol_get_balance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes misleading guidance like 'Use for SPL token deploy, mint, transfer...' which are write operations, not relevant for this read-only tool. No clear differentiation from sol_get_balance or when to choose this over other balance tools.
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 AccountsCRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Wallet to query all token accounts for | |
| showZeroBalance | No | Include zero-balance accounts |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description claims 'operation class write' while annotations clearly indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false. This direct contradiction undermines transparency and misleads the agent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description contains 5 sentences, but the last three are extraneous and unrelated to the tool's core function. It would be more concise if it only included the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While an output schema exists, the description is incomplete due to contradictory and irrelevant information. It does not clarify what metadata is included or how zero-balance filtering works, leaving room for confusion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have descriptions. The description adds no additional 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states the tool lists all SPL token accounts for a wallet with balances and metadata. This distinguishes it from sibling write tools. However, later sentences mention using it for deploy, mint, transfer, etc., which are not its function, partially confusing the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_getBalance. The description includes irrelevant recommendations for write operations, which are not applicable to this read-only tool.
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 ToBInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address | |
| amount | Yes | Amount to mint (raw, smallest unit) | |
| destination | Yes | Wallet to receive minted tokens | |
| mintAuthority | Yes | Mint authority wallet |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a non-read-only, non-idempotent, non-destructive operation. The description adds that it requires mint authority and advises parameter confirmation, but does not disclose other behavioral traits such as side effects on token supply, potential failure modes, or rate limits. Given the annotation coverage, the description provides minimal additional behavioral context beyond confirming the authority requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description includes several sentences that are not essential: the SAP MCP context line, the overly broad 'Use for...' sentence, and the advice about using token tools alongside SAP tools. The core purpose is stated clearly in the first sentence, but the additional content adds noise and could mislead the agent. Conciseness is compromised by the inclusion of extraneous and potentially confusing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers the basic purpose and authority requirement, it lacks completeness for a write operation. It does not describe what the return value represents (e.g., transaction signature), potential errors (e.g., insufficient authority, invalid mint), or the effect on the token supply. The output schema exists but is not shown; even so, the description should at least mention that a transaction is submitted. The confirmation advice is good but insufficient for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 briefly described (e.g., 'Token mint address', 'Amount to mint (raw, smallest unit)'). The description does not add any new semantic information about the parameters beyond what the schema already provides. It mentions 'decimals' in a confirmation note, but that parameter is not present in the schema. Thus, the description adds no value to parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Mint additional tokens to a destination wallet' with a clear verb and resource. The requirement for mint authority is explicitly mentioned, distinguishing it from sibling tools like spl-token_transfer or spl-token_burn. However, the later mention of 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management' dilutes the specificity and could confuse the agent about the tool's exact purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description highlights that mint authority is required, which is a key precondition. It also advises confirming parameters before writes. However, it does not provide explicit guidance on when to use this tool versus alternatives, nor does it mention exclusions or scenarios where this tool should be avoided. The mention of 'Use for...' is overly broad and not helpful for distinguishing usage from sibling tools.
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 CheckCInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint to analyze |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims 'operation class write' which contradicts the check/read nature of the tool. Annotations set readOnlyHint=false, aligning with 'write', but the tool's actual behavior is read-only (checking risks). This inconsistency undermines transparency. No disclosure of side effects or state changes beyond the listed checks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description includes four sentences, but the second and third sentences are generic context about SPL token operations and SAP lifecycle, irrelevant to this specific tool. This wastes space and obscures the core intent. Front-loading is partially okay but diluted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists (not shown) but description does not explain what the tool returns (e.g., risk scores, structured data). The description only lists what it checks (authority, concentration, liquidity) but omits format or any additional behavioral context needed to interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one parameter 'mint' with description 'Token mint to analyze'. Tool description does not add any additional meaning beyond that, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Check a token for potential rug pull risks' with specific aspects (mint/freeze authority, holder concentration, liquidity), but misleadingly says 'Use for SPL token deploy, mint, transfer, burn, freeze, thaw, and authority management'—which are write operations, not checks. This dilutes core purpose and distracts from what the tool actually does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The phrase 'Confirm mint, decimals, authority, recipient, and amount before writes' vaguely implies using this check before writes, but doesn't state the tool's role. No alternatives are mentioned. The mention of SAP context and 'alongside SAP payments' adds boilerplate without actionable direction.
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 AccountAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Token mint address (base58) | |
| account | Yes | Token account to thaw | |
| freezeAuthority | Yes | Freeze authority wallet |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is a write (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds that it thaws an account, which is consistent. No contradictions, but limited additional behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences. The first is effective. The second includes SAP MCP context, which may be unnecessary, and the third is generic advice. Slightly verbose but still clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and presence of output schema, the description is adequate. However, it does not specify response details or error conditions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with concise descriptions for each parameter (mint, account, freezeAuthority). The description does not add further semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Thaw (unfreeze) a previously frozen token account.' This is a specific verb+resource that distinguishes it from related tools like freezeAccount.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 operations and advises confirming details before writes. However, it does not explicitly state when to use this tool versus alternatives (e.g., freezeAccount) 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient wallet address | |
| from | Yes | Sender wallet address | |
| memo | No | Optional memo to attach to the transaction | |
| mint | Yes | Token mint address | |
| amount | Yes | Amount to transfer (raw, smallest unit) | |
| createAta | No | Create recipient ATA if needed (default: true) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description claims the tool is used for 'deploy, mint, transfer, burn, freeze, thaw, and authority management', which directly contradicts the actual behavior (only transfer, as seen by name and schema). While annotations declare readOnlyHint=false and destructiveHint=false, the description falsely broadens capabilities, misleading the agent about what actions this tool performs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes extraneous information (SAP MCP context, list of operations, generic lifecycle note). It repeats the tool's name in the first sentence and has no clear structure. A concise two-sentence version would be more effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists but the description does not mention return values (e.g., transaction signature). It adds a prerequisite warning about confirming mint/decimal details, but fails to clarify important behavioral details like authority requirements, gas fees, or error conditions. Given the tool's moderate complexity, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for all 6 parameters, so the description adds limited value. It mentions 'Optionally creates the recipient ATA', which relates to the createAta parameter, but this is already implied by the schema description. No additional syntactic details or constraints are provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
First sentence clearly states 'Transfer SPL tokens between wallets', but subsequent sentences list multiple unrelated operations (deploy, mint, burn, etc.), diluting the specific purpose of this tool and causing confusion. Does not effectively distinguish from sibling tools like spl-token_mintTo or spl-token_burn.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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...' which incorrectly groups multiple operations under this single tool. It provides no guidance on when to use this tool specifically vs. other token tools, nor does it mention prerequisites or exclusions. The generic 'Use token tools alongside SAP...' adds little practical guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient wallet address | |
| from | Yes | Sender wallet address | |
| memo | No | Optional memo to attach | |
| amount | Yes | Amount in lamports (1 SOL = 1_000_000_000 lamports) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a non-read-only, non-idempotent, non-destructive write operation. The description confirms transfer via SystemProgram.transfer but adds unnecessary SPL token context. It does not clarify behavior like transaction finality, fees, or failure modes. Moderate disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and includes irrelevant content like 'SAP MCP context' and generic token operation instructions that do not apply to native SOL transfers. It wastes space and confuses rather than simplifies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return values. It lacks details on prerequisites, error conditions, or expected outcomes. Given the complexity and cost of on-chain transactions, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description reiterates 'amount in lamports' which is already in the schema. No additional semantic value beyond the structured input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states 'Transfer native SOL between wallets via SystemProgram.transfer,' but the following sentences list SPL token operations like deploy, mint, transfer, etc., which are not relevant to this tool. This creates confusion about the tool's actual purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mentions 'Use for SPL token deploy, mint, transfer...' which is misleading and does not distinguish it from the sibling tool 'spl-token_transfer'. No guidance on context or prerequisites.
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 AccountsBRead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Wallet to query stake accounts for |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states 'operation class write' but annotations declare readOnlyHint=true, which is a direct contradiction. This misleads the agent into thinking the tool performs writes when it is actually read-only. The description also includes confusing MCP context that does not add useful behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences, but includes unnecessary and contradictory 'SAP MCP context' lines. The first sentence is clear and compact, but the rest could be trimmed without losing value. There is some redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description provides usage context and return hints (delegation status), the contradiction with annotations and the confusing 'operation class write' statement undermine completeness. Given the tool has an output schema, the description could have been more straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter 'wallet' with a description, and the tool description does not add significant new meaning. Since schema description coverage is 100%, baseline is 3, and the description offers no extra parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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, including delegation status. It uses a specific verb ('List') and resource ('stake accounts'). It distinguishes itself from sibling staking tools which are write operations (stake/unstake), making its read-only purpose clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises to use this tool before writes, and distinguishes between SAP protocol staking tools and AgentKit tools for external protocols. It provides clear context for when to use this tool (for SOL and liquid staking flows) and what to confirm before proceeding with writes.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in lamports to stake for jupSOL | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-read-only, non-destructive, non-idempotent, open-world. Description adds operation class and confirmation requirements. No contradictions, but lacks details on failure consequences or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each adds value. Could be slightly more front-loaded, but overall concise with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present, return values are covered. Description covers purpose, usage context, and sibling differentiation. Lacks examples, but adequate for a simple 2-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning beyond what the schema describes for amount and wallet parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Stake SOL') and the resource ('jupSOL'), with specific context of liquid staking. It distinguishes from siblings like 'staking_stakeSOL' and 'staking_unstakeJupSOL'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use ('SOL and liquid staking flows') and mentions alternatives (SAP vs AgentKit). Lacks explicit when-not-to-use, but the differentiation is strong.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in lamports to stake | |
| wallet | Yes | Wallet to stake from | |
| validator | No | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly and non-destructive. Description adds that it creates a stake account and delegates, which clarifies the write 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is multiple sentences but front-loaded with core action. Contains some extra context (SAP MCP, operation class) but not overly verbose. Still efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description doesn't need to explain returns. Provides purpose, usage guidelines, and behavioral context. Could mention optional validator parameter more explicitly, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 3 parameters. Tool description does not add extra meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb ('stake'), resource ('native SOL'), and outcome ('creates a stake account and delegates'). Distinguishes from sibling tools like staking_stakeJupSOL by specifying native SOL. Title matches well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (SOL and liquid staking flows), provides a warning about confirming details, and indicates alternatives (SAP vs AgentKit staking tools). This helps agent choose correctly.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount in lamports to stake for sSOL | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
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 context: 'Re-staking protocol with additional yield', 'operation class write', and warnings about confirming details before writes. This provides useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, but the second and third are packed with multiple pieces of information (protocol details, SAP context, usage guidance, caution). Could be more structured and concise, e.g., separating metadata from usage instructions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the basic function and cautions, but lacks details about the return value (e.g., what happens after staking, how to get sSOL) and the lockup/unstake terms mentioned. The companion tool staking_unstakeSolayer exists, so complete workflow is implied but not fully explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The tool description adds caution about confirming 'amount, lockup/unstake terms, and account ownership' but does not add new parameter semantics beyond what the schema provides. The schema descriptions are sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Stake SOL for sSOL via Solayer' clearly states the action and resource. It distinguishes from sibling tools like staking_stakeSOL (likely native staking) by mentioning 'Re-staking protocol with additional yield' and guidance to use SAP tools for SAP protocol, but could be more explicit about when to choose this over staking_stakeJupSOL.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 provides guidance on SAP vs AgentKit tools, implying when to use this tool. However, it does not explicitly state when not to use it or compare with similar liquid staking tools like staking_stakeJupSOL.
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 LAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of jupSOL to unstake | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation (readOnlyHint=false). Description adds context about confirming terms before writes and mentions it's a 'write' operation class. No contradiction, and it complements annotations with actionable usage notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with core purpose, followed by relevant context. No redundant information; every sentence adds value. Efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple operation (2 parameters, output schema exists), the description fully covers purpose, usage, and behavioral context. References to sibling tools and protocol differentiation ensure completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. The description does not add significant meaning beyond schema definitions (e.g., no format details for amount or wallet). Baseline score of 3 is appropriate as schema carries the parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Unstake jupSOL back to SOL.' It distinguishes from sibling tools like staking_unstakeSOL and staking_unstakeSolayer by referencing protocol context (SAP vs AgentKit) and use for liquid staking flows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes' and directs usage to SAP vs AgentKit staking tools based on protocol. Lacks explicit 'when not to use' but adequately guides selection.
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 LAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana public key (base58) | |
| stakeAccount | Yes | Stake account to deactivate and withdraw |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's a write operation (readOnlyHint=false) and non-idempotent. The description adds that it involves deactivation and withdrawal, plus warnings about confirmation, but does not elaborate on multi-step behavior or potential failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Mostly concise with the core action front-loaded. However, it includes some redundant context ('SAP MCP context: Protocol staking; operation class write') that could be omitted without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With output schema present and annotations available, the description covers the core function and usage guidance. It lacks details on return values (but output schema handles that) and potential side effects like timing or fees, but is generally adequate for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already described in the schema. The tool description does not add new or clarifying information about parameters beyond what the schema provides, so baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Deactivate and withdraw SOL from a stake account,' with a clear verb and resource. It also specifies 'Use for SOL and liquid staking flows,' distinguishing from sibling tools like staking_unstakeJupSOL and staking_unstakeSolayer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides guidance on when to use (SOL and liquid staking flows) and prerequisites to confirm before writes. However, it does not explicitly exclude alternatives or state when not to use this tool, though sibling tools are listed in context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of sSOL to unstake | |
| wallet | Yes | Solana public key (base58) |
Output Schema
| Name | Required | Description |
|---|---|---|
| content | Yes | MCP content blocks returned to the caller. |
| isError | No | True when the tool result represents an application-level error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (which indicate a write operation but no destructive hint), the description adds value by warning to 'Confirm validator or provider, amount, lockup/unstake terms, and account ownership before writes.' This provides behavioral context for safe usage. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (four sentences) and front-loaded with the core purpose. It could be slightly tighter, but it is efficient and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (write operation, 2 params, output schema exists), the description is fairly complete: it states the action, prerequisites, and alternative tools. It does not explain the output, but the output schema covers that. Minor missing details like fees or slippage are acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100% with descriptive parameter names and descriptions (wallet as 'Solana public key (base58)' and amount as 'Amount of sSOL to unstake'). The description does not add further meaning, such as format or constraints, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Unstake sSOL back to SOL via Solayer.' This is a specific verb and resource, and it distinguishes from sibling tools like staking_unstakeJupSOL and staking_unstakeSOL by naming the Solayer protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidelines by stating to 'Use SAP staking tools for SAP protocol stake accounts; use AgentKit staking tools for external staking protocols.' This helps the agent choose between related tools, though it does not explicitly say when to prefer this tool over others within the same category.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!