check_solana_transaction
Simulate an unsigned Solana transaction and return ALLOW, WARN or BLOCK with reasons. Costs $0.01 USDC.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| intent | No | ||
| signer | No | ||
| transaction | Yes | ||
| prefer_async | No |
Simulate an unsigned Solana transaction and return ALLOW, WARN or BLOCK with reasons. Costs $0.01 USDC.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | No | ||
| signer | No | ||
| transaction | Yes | ||
| prefer_async | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It adds useful context: the simulation returns a verdict (ALLOW/WARN/BLOCK) with reasons, and it costs $0.01 USDC. However, it does not explicitly state that the tool performs no on-chain side effects (simulation implies this but not guaranteed), nor does it mention authentication requirements, rate limits, or whether the result is returned directly or via an async job (given prefer_async). The cost disclosure is valuable, but the picture is incomplete.
Agents need to know what a tool does to the 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, focused sentence plus the cost detail. It is front-loaded with the core action and outcome, and the cost is an important practical detail that earns its place. No filler or redundancy. This is exactly the right size for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 4 parameters, no output schema, and no annotations. The description explains what the tool does and the verdict types, but not how the result is returned (e.g., direct response vs. a job ID for get_job_result), what to do after calling, or the role of parameters like `prefer_async` and `signer`. An agent would lack critical context for integrating the call into a workflow, especially given the sibling get_job_result and retry_failed_job imply async processing.
Complex tools with many parameters or behaviors need more documentation. 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 0%, so the description must compensate. It only implies that `transaction` is the unsigned transaction to simulate, but gives no meaning for `signer`, `intent`, or `prefer_async`. These parameter names are somewhat self-explanatory from the schema titles, but the description adds no semantic detail to help an agent construct correct arguments. It fails to bridge the documentation gap.
Input schemas describe structure but not intent. Descriptions should explain 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 a specific action ('Simulate an unsigned Solana transaction') and the specific outcome ('return ALLOW, WARN or BLOCK with reasons'). This distinguishes it from the siblings: check_solana_token_risk focuses on token risk, not transaction simulation, while get_job_result and retry_failed_job are about job management. An agent can immediately tell this tool is for pre-transaction simulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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: you should call this tool when you have an unsigned Solana transaction you want to simulate before sending. However, it does not explicitly state when to prefer this over check_solana_token_risk or how to handle asynchronous execution via prefer_async. No alternatives or exclusions are mentioned, leaving some ambiguity about the decision boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.