Solana MCP Server
The Solana MCP Server provides 25 tools for managing Solana wallets, SPL tokens, transfers, blockchain queries, and network connections.
Wallet Management
Create new wallets (in-memory keypair generation)
Import existing wallets via base58-encoded private keys
List all wallets in the current session
Check SOL balances
SPL Token Operations
Create new tokens with custom decimals and optional freeze authority
Mint, burn, freeze, and thaw token accounts
Set/change token authorities (mint, freeze, owner, close)
Approve and revoke delegates
Close token accounts to reclaim rent
Query token supply and metadata
Transfers
Transfer SOL and SPL tokens between wallets
Request SOL airdrops on devnet/testnet for testing
Account & Blockchain Queries
Get detailed account information for any address
Look up transaction details by signature
Create associated token accounts
List all SPL token accounts for a wallet
Check SPL token balances for a specific wallet and mint
Fetch recent blockhashes for transaction building
Network Management
Switch between mainnet, devnet, testnet, and localhost
Retrieve current network status and info
Security & Infrastructure: Private keys are stored in-memory only (never persisted), all inputs are validated via Zod schemas, keys are cleared on process exit, and network calls have a 10-second timeout.
Provides comprehensive Solana blockchain integration including wallet management, SOL and SPL token transfers, token creation and minting, account management, authority controls, and network operations across mainnet, devnet, testnet, and localhost.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Solana MCP Servertransfer 0.5 SOL to my friend's wallet address"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
solana-mcp-server
Full Solana blockchain MCP server. 25 tools for wallet management, SPL token operations, DeFi, staking, and network queries. Built on @solana/web3.js and @solana/spl-token with Anchor support.
The most actively maintained Solana MCP. Covers the complete SPL token lifecycle (create, mint, burn, freeze, thaw, delegate, authority management) that competitors skip.
Install
npx solana-mcp-serverOr install globally:
npm install -g solana-mcp-server
solana-mcp-serverRelated MCP server: SolanaBot
Configure
Add to your MCP config (claude_desktop_config.json or ~/.mcp.json):
{
"mcpServers": {
"solana": {
"command": "npx",
"args": ["-y", "solana-mcp-server"],
"env": {
"SOLANA_RPC_URL": "https://api.mainnet-beta.solana.com"
}
}
}
}Tools (25)
Wallet Management (4)
Tool | Description | Key Params |
| Create a new Solana keypair (in-memory only) | -- |
| Import from a base58-encoded private key |
|
| List all wallets in the current session | -- |
| Get SOL balance for any address |
|
SPL Token Operations (10)
Tool | Description | Key Params |
| Create a new SPL token with custom decimals |
|
| Mint tokens to any address |
|
| Burn tokens from an account |
|
| Freeze a token account |
|
| Unfreeze a token account |
|
| Change token authority (mint, freeze, owner, close) |
|
| Total supply and metadata for a token |
|
| Close an account and reclaim rent |
|
| Approve a delegate for token transfers |
|
| Revoke delegate approval |
|
Transfers (3)
Tool | Description | Key Params |
| Transfer SOL between wallets |
|
| Transfer SPL tokens |
|
| Request SOL airdrop (devnet/testnet only) |
|
Account Queries (4)
Tool | Description | Key Params |
| Detailed account information |
|
| Transaction details by signature |
|
| Create an associated token account |
|
| List all token accounts for a wallet |
|
Token Data (1)
Tool | Description | Key Params |
| SPL token balance for a specific account |
|
Network (3)
Tool | Description | Key Params |
| Switch between mainnet, devnet, testnet, localhost |
|
| Current network status and info | -- |
| Recent blockhash for transaction building | -- |
Why This One?
Complete SPL token lifecycle. Create, mint, burn, freeze, thaw, set authority, delegate, close -- 10 token tools covering every operation. Competitors stop at create/transfer.
Production-ready infrastructure. Lazy connection initialization (no startup timeouts), 10-second network call timeouts, comprehensive error handling, and Smithery deployment support.
Anchor integration. Built with
@coral-xyz/anchorsupport for interacting with Anchor programs alongside raw SPL token operations.
Networks
Network | Endpoint |
|
|
|
|
|
|
|
|
Security
Private keys stored in memory only -- never persisted to disk
Keys cleared on process exit
All inputs validated with Zod schemas
Environment Variables
Variable | Required | Description |
| No | Solana RPC endpoint (default: mainnet) |
Development
git clone https://github.com/ExpertVagabond/solana-mcp-server.git
cd solana-mcp-server
npm install
npm run build
npm startnpm test # Basic functionality tests
npm run type-check # TypeScript type checking
npm run lint # ESLint
npm run quality # Full quality check (lint + types + tests)License
MIT -- Purple Squirrel Media
Available Tools
25 toolsairdrop_solA
Request SOL airdrop for testing (devnet/testnet only)
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet | |
| amount | No | Amount of SOL to airdrop (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While it mentions the testing environment constraint, it doesn't describe what the tool actually does (e.g., whether it creates a transaction, modifies blockchain state, requires network connectivity, or has rate limits). For a tool that presumably interacts with blockchain networks, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is perfectly concise with a single sentence that contains no wasted words. It's front-loaded with the core purpose and efficiently includes both the testing context and environment restriction in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 (blockchain interaction with 2 parameters) and no annotations or output schema, the description provides basic context but lacks details about what the tool returns, error conditions, or implementation specifics. It's minimally adequate but leaves important contextual gaps for proper agent 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 both parameters thoroughly. The description doesn't add any parameter-specific information beyond what's in the schema, maintaining the baseline score of 3 for adequate coverage through structured data alone.
Input schemas describe structure but not intent. Descriptions should explain 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 specific action ('Request SOL airdrop') and resource ('SOL'), and explicitly distinguishes it from siblings by specifying the environment constraint ('devnet/testnet only'). It uses a precise verb ('Request') rather than a generic term.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 by stating when to use this tool ('for testing') and when not to use it ('devnet/testnet only'), which clearly differentiates it from production alternatives. This helps the agent understand the tool's specific testing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_delegateC
Approve a delegate to transfer tokens on your behalf
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet that owns the tokens | |
| tokenMint | Yes | Token mint address | |
| delegateAddress | Yes | Address of the delegate | |
| amount | Yes | Maximum amount delegate can transfer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'approve' but doesn't specify if this is a write operation, requires authentication, has side effects like token locking, or involves transaction fees. For a tool that likely modifies permissions, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words, clearly front-loading the core action. It efficiently conveys the tool's purpose without unnecessary elaboration, 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 complexity of a delegation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after approval (e.g., success response, error conditions, or token state changes), leaving critical behavioral and output details undocumented.
Complex tools with many parameters or behaviors need more documentation. 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 parameters are well-documented in the schema. The description adds no additional semantic context beyond implying a delegation relationship, which doesn't enhance understanding of the parameters. This meets 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 action ('Approve a delegate') and the resource ('to transfer tokens on your behalf'), making the purpose evident. However, it doesn't explicitly differentiate from sibling tools like 'revoke_delegate' or 'set_token_authority', which would require a more specific comparison to achieve a perfect 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?
The description provides no guidance on when to use this tool versus alternatives like 'revoke_delegate' or 'set_token_authority', nor does it mention prerequisites such as wallet ownership or token availability. It lacks context about typical scenarios or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
burn_tokensC
Burn tokens from a wallet
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet to burn tokens from | |
| tokenMint | Yes | Token mint address | |
| amount | Yes | Amount of tokens to burn (in token units) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Burn tokens' implies a destructive operation, but the description doesn't clarify whether this is irreversible, requires specific permissions, affects token supply, or has other behavioral implications. This is inadequate for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a tool with clear parameters documented in the schema and gets straight to the point without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 destructive operation with no annotations and no output schema, the description is insufficient. It doesn't explain what 'burning' means in this context, whether the operation is reversible, what happens to the burned tokens, or what the expected outcome is. Given the complexity of token burning operations, 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 description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. The baseline score of 3 reflects adequate parameter documentation via the schema alone.
Input schemas describe structure but not intent. Descriptions should explain 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 ('burn tokens') and target ('from a wallet'), providing a specific verb+resource combination. However, it doesn't distinguish this tool from sibling tools like 'close_token_account' or 'revoke_delegate' that might also involve token management 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 no guidance on when to use this tool versus alternatives. With sibling tools like 'close_token_account', 'revoke_delegate', and 'transfer_tokens' available, there's no indication of when burning tokens is appropriate versus other token management operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_token_accountC
Close a token account and reclaim rent
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet that owns the account | |
| tokenMint | Yes | Token mint address | |
| destinationAddress | Yes | Address to send remaining lamports to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It mentions 'reclaim rent' which hints at a financial implication, but doesn't disclose critical traits like whether this is destructive (likely yes), permission requirements, irreversible consequences, 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 description is a single, efficient sentence with zero waste. It's front-loaded with the core action and purpose, making it highly concise and well-structured for quick 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?
For a destructive operation (implied by 'close') with no annotations and no output schema, the description is incomplete. It lacks details on what happens to any remaining tokens, confirmation requirements, return values, or error handling, leaving significant gaps for safe 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?
Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no additional parameter semantics beyond what's in the schema, maintaining the baseline score of 3 for adequate but 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 ('Close') and resource ('token account'), with the additional purpose of 'reclaim rent' providing specific context. However, it doesn't explicitly differentiate from sibling tools like 'burn_tokens' or 'revoke_delegate' which might also involve token account modifications.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. The description doesn't mention prerequisites (e.g., account must be empty), exclusions, or compare it to similar tools like 'burn_tokens' or 'revoke_delegate' in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_spl_tokenC
Create a new SPL token with specified decimals
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet that will be the mint authority | |
| decimals | No | Number of decimal places for the token (default: 9) | |
| freezeAuthority | No | Whether to enable freeze authority (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'create' implies a write/mutation operation but doesn't mention permissions, costs (e.g., transaction fees), network requirements, or what happens after creation (e.g., token address generation). This leaves significant gaps for a tool that likely involves blockchain 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, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by specifying the token type and key parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 that creates tokens on a blockchain (implied by 'SPL'), the description is inadequate. With no annotations, no output schema, and no guidance on usage or behavior, it fails to address critical aspects like required permissions, network state, costs, or what is returned (e.g., token mint address). The high schema coverage doesn't compensate for these missing contextual elements.
Complex tools with many parameters or behaviors need more documentation. 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 thoroughly. The description adds minimal value by mentioning 'specified decimals' which aligns with the 'decimals' parameter but doesn't provide additional context beyond what's in the schema. Baseline 3 is appropriate when the schema 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 action ('create') and resource ('new SPL token'), specifying the key parameter 'with specified decimals'. It distinguishes from sibling tools like 'create_wallet' or 'create_token_account' by focusing on token creation rather than wallets or accounts. However, it doesn't explicitly differentiate from 'mint_tokens' which might be a related 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a wallet first), compare to similar tools like 'mint_tokens', or specify use cases. The agent must infer usage from the tool name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_token_accountC
Create associated token account for SPL tokens
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet | |
| tokenMint | Yes | Token mint address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states 'Create' which implies a write operation, but does not mention permissions, costs, side effects (e.g., network fees), or what happens on failure. This is a significant gap for a tool that likely involves blockchain transactions.
Agents need to know what a tool does to the 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 directly states the tool's purpose without unnecessary words. It is front-loaded and wastes no space, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 blockchain operations, no annotations, and no output schema, the description is incomplete. It does not cover behavioral aspects like transaction confirmation, error handling, or return values, leaving the agent with insufficient information to use the tool effectively in 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 clear descriptions for both parameters ('walletName' and 'tokenMint'). The description does not add any meaning beyond what the schema provides, such as explaining the relationship between wallet and token mint or format requirements. Baseline 3 is appropriate as the schema handles parameter documentation 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 ('Create') and the resource ('associated token account for SPL tokens'), making the purpose understandable. However, it does not differentiate this tool from sibling tools like 'create_spl_token' or 'create_wallet', which also involve creation operations in the same domain, leaving some ambiguity about 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?
No guidance is provided on when to use this tool versus alternatives. For example, it does not explain if this is for initial setup, how it relates to 'create_spl_token' or 'get_token_accounts', or any prerequisites like needing an existing wallet or token mint. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_walletC
Create a new Solana wallet
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'Create' implies a write operation, it doesn't specify whether this generates keys locally, requires network connectivity, has rate limits, or what happens on failure. For a wallet creation tool with zero annotation coverage, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the 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 just four words, front-loading the essential information. Every word earns its place, making it easy to parse while conveying the 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?
For a wallet creation tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what a successful creation returns (e.g., public key, private key storage), error conditions, or security implications. The minimal description leaves too many contextual gaps for effective tool 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 schema has 100% description coverage, with the single parameter 'name' clearly documented in the schema. The description adds no additional parameter context beyond what's already in the structured schema, meeting the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain 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 resource ('new Solana wallet'), making the purpose immediately understandable. However, it doesn't differentiate this from sibling tools like 'import_wallet' which also creates wallet instances, missing an opportunity for 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?
The description provides no guidance on when to use this tool versus alternatives like 'import_wallet' or 'list_wallets'. There's no mention of prerequisites, typical use cases, or when other tools might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
freeze_accountB
Freeze a token account to prevent transfers
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet with freeze authority | |
| tokenMint | Yes | Token mint address | |
| accountAddress | Yes | Address of the token account to freeze |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the outcome ('prevent transfers') but doesn't address critical aspects like required permissions (freeze authority), whether the action is reversible (implied by 'thaw_account' sibling but not stated), rate limits, or what happens to existing token holdings. For a security/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 is a single, efficient sentence that communicates the core purpose without unnecessary words. It's appropriately sized for a tool with clear functionality and good schema 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?
For a security/mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'freeze' entails operationally, what authority is required, whether there are side effects, or what the response contains. Given the complexity of token account management and lack of structured safety hints, 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 description coverage is 100%, so all parameters are documented in the schema. The description doesn't add any parameter-specific information beyond what's in the schema descriptions. This meets the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain 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 specific action ('freeze') and target resource ('token account'), with the explicit purpose 'to prevent transfers'. It distinguishes from sibling tools like 'thaw_account' by indicating the opposite 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?
No guidance is provided on when to use this tool versus alternatives. While 'thaw_account' is clearly the inverse operation, the description doesn't mention this relationship or any prerequisites like needing freeze authority. It simply states what the tool does without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_account_infoC
Get detailed account information
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Account address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states it 'gets' information (implying read-only), but does not disclose behavioral traits such as authentication needs, rate limits, error conditions, or what happens if the account doesn't exist. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It is front-loaded with the core purpose, though it could be more structured by including key details. Every word earns its place, but it is slightly under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations, no output schema, and a simple parameter, the description is incomplete. It does not explain what 'detailed account information' includes (e.g., balance, tokens, transactions), leaving the agent uncertain about the tool's output and utility in context with siblings.
Complex tools with many parameters or behaviors need more documentation. 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 parameter 'address' documented as 'Account address'. The description adds no meaning beyond this, as it does not explain what format the address should be in or provide examples. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get detailed account information' states the action (get) and resource (account information) but is vague about what constitutes 'detailed' information. It distinguishes from siblings like get_balance or get_token_balance by implying broader scope, but lacks specificity on what details are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 get_balance or get_token_accounts. The description does not mention prerequisites, exclusions, or contextual factors for choosing this tool over siblings in the Solana ecosystem.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceC
Get SOL balance for a wallet
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it's a read operation ('Get'), but doesn't mention potential errors (e.g., invalid wallet), network dependencies, rate limits, or what format the balance returns in. This leaves significant gaps for an agent to use it correctly.
Agents need to know what a tool does to the 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 with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple 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?
For a read operation with no annotations and no output schema, the description is insufficient. It doesn't explain what the return value looks like (e.g., numeric SOL amount, units), potential error conditions, or network context. Given the sibling tools include similar balance queries, more differentiation would be helpful.
Complex tools with many parameters or behaviors need more documentation. 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 the single 'walletName' parameter. The description doesn't add any additional context about parameter meaning, constraints, or examples beyond what's in the schema, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('SOL balance for a wallet'), making the purpose immediately understandable. However, it doesn't distinguish this tool from sibling 'get_token_balance', which might cause confusion about scope differences.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'get_token_balance' or 'get_account_info'. The description only states what it does, not when it's appropriate or what prerequisites might exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_network_infoC
Get current network information
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states 'Get current network information' but doesn't disclose behavioral traits like whether this is a read-only operation, if it requires authentication, rate limits, or what the response format might be. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded and appropriately sized for a simple tool, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 annotations and no output schema, the description is incomplete. It doesn't explain what 'network information' includes (e.g., network status, chain ID, nodes) or the return format, leaving significant gaps for the agent to understand the tool's behavior and output.
Complex tools with many parameters or behaviors need more documentation. 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 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate, earning a baseline score of 4 as it doesn't have to compensate for any gaps.
Input schemas describe structure but not intent. Descriptions should explain 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 current network information' states a clear verb ('Get') and resource ('network information'), but it's vague about what specific network information is retrieved. It doesn't distinguish from siblings like 'get_recent_blockhash' or 'switch_network', which also relate to network 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 no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone among many sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_blockhashB
Get recent blockhash for transaction building
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool's purpose but lacks details on traits such as rate limits, authentication needs, or what the return value looks like (e.g., format of the blockhash). This leaves significant gaps in understanding how the tool behaves beyond its basic function.
Agents need to know what a tool does to the 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 directly states the tool's purpose without any wasted words. It's front-loaded with the core action and resource, making it easy to parse and understand quickly. Every part of the sentence contributes 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 tool's simplicity (0 parameters, no output schema, no annotations), the description is minimal but incomplete. It explains what the tool does but lacks context on behavioral aspects like return format or constraints. For a tool that likely interacts with a blockchain network, more details on output or usage nuances would enhance 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 tool has 0 parameters, and the schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. A baseline of 4 is applied since no parameters exist, and the description doesn't introduce confusion about inputs.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Get') and resource ('recent blockhash') with a specific purpose ('for transaction building'), making the tool's function unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_network_info' or 'get_transaction', which might also provide blockchain-related data, so it doesn't reach the highest 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?
The description provides minimal guidance by mentioning 'for transaction building', which implies a context but doesn't specify when to use this tool versus alternatives like 'get_network_info' for general network data or other sibling tools. There are no explicit when/when-not rules or named alternatives, leaving usage decisions vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_accountsC
Get all token accounts for a wallet
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states a read operation ('Get') but lacks details on permissions, rate limits, output format, or error handling. This is insufficient for a tool with no annotation coverage, as it leaves key behavioral traits unspecified.
Agents need to know what a tool does to the 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 directly states the tool's function without unnecessary words. It is front-loaded and efficiently conveys the core purpose, making it 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 no annotations and no output schema, the description is incomplete. It does not explain what 'token accounts' entail, the return format, or any behavioral aspects like pagination or errors. For a tool in this context, more detail is needed to adequately guide 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?
The input schema has 100% description coverage, with 'walletName' documented as 'Name of the wallet'. The description does not add any additional meaning beyond this, such as format examples or constraints, so it meets the baseline for high schema coverage without compensating 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 ('Get') and resource ('all token accounts for a wallet'), making the purpose evident. However, it does not explicitly differentiate this tool from sibling tools like 'get_token_balance' or 'get_account_info', which might also retrieve token-related information, so it misses full 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?
The description provides no guidance on when to use this tool versus alternatives. For example, it does not specify if this is for listing all token accounts versus checking balances or account details, leaving the agent to infer usage from context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_balanceC
Get SPL token balance for a wallet
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet | |
| tokenMint | Yes | Token mint address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what the tool does, not how it behaves. It doesn't disclose whether this is a read-only operation (implied but not stated), what network it queries, error handling, rate limits, or what format the balance returns in. For a financial query tool with zero annotation coverage, this is inadequate.
Agents need to know what a tool does to the 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 states exactly what the tool does with zero wasted words. It's appropriately sized for a straightforward query tool and front-loads the 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?
For a financial query tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the return value looks like (numeric balance, token decimals, etc.), doesn't mention network context, and provides no behavioral context. The agent would need to guess important operational 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 description coverage is 100%, so the schema already fully documents both parameters. The description adds no additional meaning about parameter relationships, validation rules, or examples beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain 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 ('Get') and resource ('SPL token balance for a wallet'), making the purpose immediately understandable. It distinguishes from general 'get_balance' by specifying token type, but doesn't explicitly differentiate from 'get_token_accounts' which might provide similar 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?
The description provides no guidance on when to use this tool versus alternatives like 'get_balance' (for SOL) or 'get_token_accounts' (for token account details). It doesn't mention prerequisites, error conditions, or typical use cases, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_supplyC
Get the total supply of a token
| Name | Required | Description | Default |
|---|---|---|---|
| tokenMint | Yes | Token mint address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states a read operation ('Get') but lacks details on permissions, rate limits, error conditions, or return format. For a tool with no annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, front-loading the core purpose without unnecessary elaboration. It is appropriately sized for a simple tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of annotations and output schema, the description is incomplete. It does not explain what the total supply represents (e.g., circulating vs. max supply), how the value is returned, or potential errors. For a tool with no structured behavioral data, 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?
The input schema has 100% description coverage, with the parameter 'tokenMint' clearly documented as 'Token mint address'. The description does not add any additional meaning beyond this, such as format examples or constraints, but the schema provides adequate baseline information.
Input schemas describe structure but not intent. Descriptions should explain 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 the resource 'total supply of a token', making the purpose specific and understandable. However, it does not distinguish this tool from sibling tools like 'get_token_balance', which might retrieve similar token-related data, leaving room for ambiguity in 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 no guidance on when to use this tool versus alternatives, such as 'get_token_balance' or 'get_account_info', which could also provide token-related information. There are no explicit when/when-not instructions or named alternatives mentioned, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transactionC
Get transaction details by signature
| Name | Required | Description | Default |
|---|---|---|---|
| signature | Yes | Transaction signature |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states it 'gets' details, implying a read-only operation, but doesn't clarify if it requires authentication, has rate limits, returns structured data, or handles errors. For a tool with zero annotation coverage, this leaves critical behavioral traits unspecified.
Agents need to know what a tool does to the 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 with zero wasted words, front-loading the core action and key input. It avoids redundancy and is appropriately sized for a simple lookup tool, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 lack of annotations and output schema, the description is incomplete. It doesn't explain what 'transaction details' include (e.g., status, amount, timestamp), potential error cases, or integration context with sibling tools. For a tool in a blockchain environment with many related operations, more contextual guidance 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 description mentions the parameter ('by signature'), but the input schema already has 100% coverage with a clear description for 'signature'. No additional semantic context is provided, such as signature format examples or validation rules, so it adds minimal value beyond the schema, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('transaction details') with a specific mechanism ('by signature'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_account_info' or 'get_token_accounts' that also retrieve information, which prevents a perfect 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?
The description provides no guidance on when to use this tool versus alternatives like 'get_account_info' for account-level details or 'get_recent_blockhash' for blockchain context. It lacks any mention of prerequisites, exclusions, or specific scenarios where this tool is preferred, leaving usage context ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_walletC
Import an existing wallet from private key or mnemonic
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name for the wallet | |
| privateKey | Yes | Private key in base58 format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action ('import') which implies a write operation, but doesn't disclose behavioral traits such as security implications, whether this overwrites existing wallets, authentication needs, or error handling. For a sensitive operation like wallet import with zero annotation coverage, 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 a single, efficient sentence with zero waste. It front-loads the key information ('import an existing wallet') and adds necessary detail ('from private key or mnemonic') 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 complexity of wallet operations (sensitive, cryptographic) and no annotations or output schema, the description is incomplete. It lacks details on security implications, what 'import' entails (e.g., storage, overwriting), or expected outcomes. For a tool with 2 required parameters and no structured safety hints, 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 description coverage is 100%, so the schema already documents both parameters ('name' and 'privateKey'). The description adds minimal value by mentioning 'mnemonic' as an alternative source, but this isn't reflected in the schema parameters. Baseline 3 is appropriate as the schema does the heavy lifting, though the description could clarify the 'privateKey' format or 'mnemonic' 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 ('import') and resource ('existing wallet'), specifying the source ('from private key or mnemonic'). It distinguishes from sibling 'create_wallet' by implying this is for existing wallets, though it doesn't explicitly contrast them. The purpose is specific but could be more precise about 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 no guidance on when to use this tool versus alternatives like 'create_wallet' or other wallet-related tools. It mentions the source (private key or mnemonic) but doesn't specify prerequisites, exclusions, or contextual triggers for choosing this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_walletsB
List all created/imported wallets
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('List all') but doesn't describe key traits: whether this is a read-only operation (implied but not explicit), what the output format looks like (e.g., list of wallet addresses or objects), if there are rate limits, or any permissions required. This leaves significant gaps for a tool that likely interacts with sensitive wallet data.
Agents need to know what a tool does to the 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 with no wasted words. It's front-loaded with the core action ('List all created/imported wallets'), making it easy to parse. Every word earns its place by specifying the resource and 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?
Given the complexity of wallet management (likely involving sensitive financial data) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'wallets' entails (e.g., addresses, keys, types), the return format, or behavioral aspects like safety or limitations, which are crucial for an agent to use this tool effectively in a blockchain 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 tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it doesn't introduce any confusion. A baseline of 4 is appropriate as it avoids misalignment with the empty 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 'List all created/imported wallets' clearly states the verb ('List') and resource ('wallets'), with 'created/imported' providing some scope differentiation. However, it doesn't explicitly distinguish this from sibling tools like 'get_account_info' or 'get_token_accounts' which might also retrieve wallet-related information, keeping it from a perfect 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing wallets to exist), exclusions, or compare it to siblings like 'get_balance' or 'import_wallet' that might overlap in wallet-related contexts, leaving the agent with minimal usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mint_tokensC
Mint tokens to a specific account
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet with mint authority | |
| tokenMint | Yes | Token mint address | |
| destinationAddress | Yes | Destination wallet address | |
| amount | Yes | Amount of tokens to mint (in token units, not raw) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't cover permissions needed (e.g., mint authority), side effects (e.g., token supply increase), rate limits, or error conditions, which are critical for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—it directly states the tool's purpose without unnecessary words or fluff, making it 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 tool's complexity (a mutation with 4 parameters), lack of annotations, and no output schema, the description is incomplete. It fails to explain return values, error handling, or behavioral nuances, leaving significant gaps for agent 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 schema fully documents all 4 parameters. The description adds no additional meaning beyond what's in the schema (e.g., clarifying token units or wallet relationships), meeting the baseline 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 ('mint tokens') and target ('to a specific account'), which is a specific verb+resource combination. However, it doesn't distinguish this from sibling tools like 'create_spl_token' or 'transfer_tokens' that also involve token operations, missing explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 doesn't mention prerequisites (e.g., needing mint authority), exclusions, or compare to siblings like 'burn_tokens' or 'transfer_tokens', leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
revoke_delegateB
Revoke a delegate's authority to transfer tokens
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet that owns the tokens | |
| tokenMint | Yes | Token mint address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'revoke' implies a mutation that likely requires authorization, the description does not specify permissions needed, whether the action is reversible, potential side effects (e.g., impact on existing transfers), or error conditions. This is a significant gap for a mutation tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by conveying 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 tool's complexity (a mutation operation with security implications), lack of annotations, and no output schema, the description is incomplete. It fails to address critical aspects like required permissions, behavioral outcomes, or error handling, which are essential for safe and effective use by 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?
Schema description coverage is 100%, with both parameters ('walletName' and 'tokenMint') clearly documented in the schema. The description does not add any additional meaning or context beyond what the schema provides, such as explaining the relationship between the wallet and token or format examples. Baseline 3 is appropriate when the schema 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 action ('revoke') and the resource ('a delegate's authority to transfer tokens'), making the purpose specific and unambiguous. It distinguishes from sibling tools like 'approve_delegate' by indicating the opposite action, and from other tools like 'transfer_tokens' by focusing on authority management rather than token movement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 a delegate must already be approved), exclusions, or related tools like 'set_token_authority' or 'approve_delegate', leaving the agent to infer usage context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_token_authorityC
Set or change authority for a token mint or account
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet with current authority | |
| tokenMint | Yes | Token mint address | |
| authorityType | Yes | Type of authority to set | |
| newAuthority | No | Address of new authority (or null to revoke authority) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose that this is a mutation requiring specific permissions, potential irreversible changes, rate limits, or what happens on success/failure. The phrase 'Set or change' implies modification but offers no further context on risks or outcomes.
Agents need to know what a tool does to the 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 with zero waste. It's front-loaded with the core purpose and appropriately sized for the tool's complexity, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It should explain behavioral traits (e.g., permissions needed, side effects) and expected outcomes, but provides only basic purpose. For a 4-parameter authority-changing operation, 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 description coverage is 100%, so the schema fully documents all parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain authority interactions or the implications of setting 'newAuthority' to null). Baseline 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set or change') and target ('authority for a token mint or account'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'approve_delegate' or 'revoke_delegate' which also deal with authority management, making it less than fully 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing current authority), exclusions, or compare to siblings like 'approve_delegate' for delegation or 'revoke_delegate' for revocation, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
switch_networkC
Switch Solana network
| Name | Required | Description | Default |
|---|---|---|---|
| network | Yes | Network to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action ('Switch') but doesn't explain what this means operationally—whether it changes global state, requires specific permissions, has side effects, or how it affects subsequent operations. This leaves significant gaps in understanding 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 is extremely concise—just three words—and front-loaded with the essential action. There's zero waste or redundancy, making it efficient for quick comprehension without sacrificing clarity of 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 potential complexity (changing network state) and lack of annotations or output schema, the description is incomplete. It doesn't address what happens after switching, error conditions, or how this interacts with other tools, leaving the agent with insufficient context for safe and effective 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 description adds no parameter semantics beyond what the input schema already provides. Since schema description coverage is 100% (the 'network' parameter is fully documented with enum values and description), the baseline score of 3 is appropriate—the schema does all the work, and the description doesn't compensate or add 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 verb ('Switch') and resource ('Solana network'), making the purpose immediately understandable. However, it doesn't differentiate this tool from sibling tools that might also interact with network settings or configurations, which prevents a perfect 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?
The description provides no guidance on when to use this tool versus alternatives. There are no mentions of prerequisites, timing considerations, or comparisons to sibling tools like 'get_network_info', leaving the agent with insufficient context for optimal selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
thaw_accountC
Thaw a frozen token account to allow transfers
| Name | Required | Description | Default |
|---|---|---|---|
| walletName | Yes | Name of the wallet with freeze authority | |
| tokenMint | Yes | Token mint address | |
| accountAddress | Yes | Address of the token account to thaw |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the outcome ('allow transfers') but lacks critical details: it doesn't specify required permissions (e.g., freeze authority), whether the action is reversible, potential side effects, or error conditions. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its 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 a single, efficient sentence that front-loads the key action and outcome. Every word earns its place, with no redundancy or unnecessary elaboration, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 a mutation tool with no annotations and no output schema, the description is incomplete. It fails to address behavioral aspects like permissions, reversibility, or response format, and doesn't compensate for the lack of structured data. This leaves the agent under-informed for safe and effective 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 input schema has 100% description coverage, with clear parameter documentation. The description adds no additional meaning beyond the schema, such as explaining relationships between parameters (e.g., 'walletName' must hold freeze authority for 'tokenMint') or format constraints. Since the schema does the heavy lifting, 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 the action ('thaw') and the resource ('frozen token account'), with the purpose being to 'allow transfers'. It distinguishes from sibling tools like 'freeze_account' by specifying the opposite action. However, it doesn't explicitly differentiate from tools like 'close_token_account' or 'set_token_authority' that might also affect token account status, keeping it from a perfect 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?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., the account must be frozen first), exclusions, or compare to siblings like 'freeze_account' or 'close_token_account'. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_solC
Transfer SOL between wallets
| Name | Required | Description | Default |
|---|---|---|---|
| fromWallet | Yes | Name of the sender wallet | |
| toAddress | Yes | Recipient address | |
| amount | Yes | Amount in SOL |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'transfer' implies a write/mutation operation, the description doesn't address critical behavioral aspects like required permissions, transaction fees, confirmation times, error conditions, or whether the operation is reversible. This is a significant gap for a financial transaction 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 - a single sentence that communicates the core purpose without any wasted words. It's front-loaded with the essential information and doesn't include unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 financial transfer tool with no annotations and no output schema, the description is inadequate. It doesn't address what happens after the transfer (confirmation, receipt, error handling), doesn't mention network considerations, and provides no information about the operation's result format or potential 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 has 100% description coverage, with all three parameters clearly documented. The description doesn't add any meaningful semantic context beyond what's already in the schema descriptions, so it meets the baseline expectation but doesn't provide additional 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 ('Transfer') and resource ('SOL between wallets'), making the purpose immediately understandable. However, it doesn't differentiate this from sibling tools like 'transfer_tokens' or 'airdrop_sol', which would require more specificity about what makes this tool unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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. With sibling tools like 'transfer_tokens' and 'airdrop_sol' available, there's no indication of when this specific SOL transfer tool is appropriate versus those other options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transfer_tokensC
Transfer SPL tokens between wallets
| Name | Required | Description | Default |
|---|---|---|---|
| fromWallet | Yes | Name of the sender wallet | |
| toAddress | Yes | Recipient address | |
| tokenMint | Yes | Token mint address | |
| amount | Yes | Amount of tokens to transfer |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'transfer' implies a write/mutation operation, the description doesn't mention permission requirements, transaction fees, network confirmation times, error conditions, or what happens on success/failure. This is inadequate for a financial transaction 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 a single, efficient sentence that states the core purpose without any wasted words. It's appropriately sized and front-loaded with the 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?
For a financial transfer tool with 4 required parameters and no annotations or output schema, the description is insufficient. It doesn't explain what happens after the transfer, error conditions, network requirements, or how this differs from similar sibling tools. The agent would need to guess about critical 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% description coverage, so all parameters are documented in the schema itself. The description doesn't add any additional parameter context beyond what's already in the schema descriptions, which is acceptable given the comprehensive 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 ('Transfer') and resource ('SPL tokens between wallets'), making the purpose immediately understandable. However, it doesn't differentiate this tool from the sibling 'transfer_sol' tool, which appears to be a similar operation for SOL tokens rather than SPL tokens.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance about when to use this tool versus alternatives. With sibling tools like 'transfer_sol' (for SOL transfers) and 'airdrop_sol' (for free SOL distribution), there's clear need for differentiation that the description doesn't address.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
25 tool updates
- First observed
airdrop_sol - First observed
approve_delegate - First observed
burn_tokens - First observed
close_token_account - First observed
create_spl_token - First observed
create_token_account - First observed
create_wallet - First observed
freeze_account - First observed
get_account_info - First observed
get_balance - First observed
get_network_info - First observed
get_recent_blockhash - First observed
get_token_accounts - First observed
get_token_balance - First observed
get_token_supply - First observed
get_transaction - First observed
import_wallet - First observed
list_wallets - First observed
mint_tokens - First observed
revoke_delegate - First observed
set_token_authority - First observed
switch_network - First observed
thaw_account - First observed
transfer_sol - First observed
transfer_tokens
TDQS
Scored across 25 tools
Most tools have distinct purposes, but some overlap exists, such as get_balance and get_token_balance, which could cause confusion if not carefully described. However, the descriptions generally clarify the differences, and tools like freeze_account and thaw_account are clearly complementary.
All tool names follow a consistent verb_noun pattern using snake_case, such as create_wallet, transfer_sol, and get_account_info. This uniformity makes the tool set predictable and easy to navigate.
With 25 tools, the count is borderline high for a focused server, potentially overwhelming for agents. While it covers many Solana operations, it might benefit from consolidation or better scoping to reduce complexity.
The tool set provides comprehensive coverage for Solana operations, including wallet management, token handling, transactions, and network interactions. It supports full CRUD/lifecycle actions, such as create, transfer, and burn tokens, with no obvious gaps.
Maintenance
Related MCP Connectors
Solana MCP for wallets, trades, markets, PnL, transfers, onchain data, signable swaps and API tools.
Solana tools over MCP: Jupiter swaps, SPL tokens, Metaplex NFTs, SNS domains, network stats.
Non-custodial Solana toolkit: rug-checks, swaps, portfolios, token minting, multisig, Arweave.
Solana MCP developer toolkit: wallets, trades, markets, PnL, transfers, onchain, swaps & API tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Solana blockchain network, supporting documentation search, blockchain queries, wallet management, and cryptographic signing operations on Devnet and Testnet.-
- AlicenseNot gradedqualityDmaintenanceEnables interaction with the Solana blockchain through Claude Desktop, allowing users to check SOL balances, transfer SOL between accounts, and request airdrops using the Model Context Protocol.7,188 npmBSD 4-Clause "Original" or "Old"
- AlicenseAqualityDmaintenanceEnables AI agents to read chain data, execute transactions, swap tokens, and manage wallets on Solana through 38 tools across 7 modules. Supports write operations with a private key and includes built-in prompts for common workflows.381MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Solana blockchain, manage accounts and tokens, and develop and deploy smart contracts end-to-end.4-