Solana MCP Server
Provides tools for interacting with the Solana blockchain, including retrieving current slot numbers, checking account balances, getting detailed account information, displaying keypair information, and transferring SOL between accounts.
Click on "Install 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 Serverwhat's the balance of my wallet 62QXuWZ3WT6ws1ZFxJobVDVXn6bEsiYpLo5yG612U6u3?"
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
A Model-Context-Protocol server for interacting with the Solana blockchain. This server provides simple RPC endpoints for common Solana operations.
Features
Get current slot number
Check account balances
Get detailed account information
Display keypair information
Transfer SOL between accounts
Related MCP server: Model Context Protocol Server for Solana Client
Quickstart
clone and install dependencies:
git clone https://github.com/yourusername/solana-mcp-server.git
cd solana-mcp-server
npm installbuild the tool
npm run buildadd the tool to your claude_desktop_config.json
"solana-rpc": {
"command": "node",
"args": [
"/PATH/TO/solana-mcp-server/build/index.js"
]
}Usage
Ask Claude:
whats the latest slot on solana?
whats the balance of 62QXuWZ3WT6ws1ZFxJobVDVXn6bEsiYpLo5yG612U6u3?
Here's my test key [REPLACE WITH SECRET KEY]. let's transfer 0.001 SOL to [REPLACE WITH PUBLIC ADDRESS]
Security Note
Only use this with a test wallet with a small amount of funds.
RPC Endpoint
The server connects to Solana's mainnet at https://api.mainnet-beta.solana.com. To use a different network (like devnet or testnet), modify the SOLANA_RPC constant in src/index.ts.
Available Tools
5 toolsgetAccountInfoB
Get detailed account information for a Solana address
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Solana account address | |
| encoding | No | Data encoding format |
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 the tool 'gets' information, implying a read-only operation, but doesn't clarify whether this requires authentication, has rate limits, returns structured data, or involves network calls. For a tool with no annotation coverage, 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 a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for a simple lookup tool. Every word earns its place without redundancy or 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?
Given the tool's low complexity (2 parameters, no nested objects) and 100% schema coverage, the description is minimally adequate. However, with no annotations and no output schema, it doesn't provide enough context about return values, error conditions, or behavioral traits. It meets the bare minimum but lacks completeness 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?
Schema description coverage is 100%, with clear descriptions for both parameters (address and encoding with enum values). The description adds no parameter-specific information beyond what's in the schema, such as format details for the address or when to use specific encodings. 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 clearly states the verb 'Get' and resource 'detailed account information for a Solana address', making the purpose unambiguous. It distinguishes from siblings like getBalance (balance only) and getKeypairInfo (keypair-specific), though it doesn't explicitly mention these distinctions. The description is specific but could be more precise about what 'detailed account information' includes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 getBalance or getKeypairInfo. There's no mention of prerequisites, context, or exclusions. The agent must infer usage from the tool name and description 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.
getBalanceC
Get balance for a Solana address
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Solana account address |
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' data (implying read-only), but doesn't mention potential limitations like network requirements, error conditions, rate limits, or what format the balance is returned in. This leaves significant gaps for a tool that interacts with blockchain 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, clear sentence with zero wasted words. It's front-loaded with the essential information and 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?
For a blockchain balance query tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the balance represents (native SOL, tokens, etc.), units, precision, or error handling. Given the complexity of blockchain interactions and lack of structured metadata, 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% (the 'address' parameter is fully documented in the schema), so the baseline is 3. The description adds no additional parameter information beyond what's already in the schema, but doesn't need to compensate for gaps either.
Input schemas describe structure but not intent. Descriptions should explain 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 balance') and target resource ('for a Solana address'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'getAccountInfo' which might also provide balance information, preventing 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?
No guidance is provided about when to use this tool versus alternatives like 'getAccountInfo' or 'getKeypairInfo'. The description only states what it does, not when it's appropriate or what distinguishes it from similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getKeypairInfoC
Get information about a keypair from its secret key
| Name | Required | Description | Default |
|---|---|---|---|
| secretKey | Yes | Base58 encoded secret key or array of bytes |
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 the action ('Get information') but doesn't describe what information is returned, whether it's read-only, if there are rate limits, or authentication requirements. For a tool with no annotations, 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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, 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 no output schema, the description is incomplete. It doesn't explain what information is returned about the keypair (e.g., public key, balance, permissions), leaving the agent uncertain about the tool's output. For a tool with no structured output documentation, 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%, with the parameter 'secretKey' fully documented in the schema as 'Base58 encoded secret key or array of bytes'. The description adds no additional parameter semantics beyond what the schema provides, so it meets the baseline of 3 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 information') and resource ('about a keypair'), making the purpose understandable. However, it doesn't differentiate from sibling tools like getAccountInfo or getBalance, which also retrieve information about different resources. The description is specific but lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, context for usage, or comparisons to sibling tools like getAccountInfo (which might retrieve different account details). This leaves the agent without explicit direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
getSlotC
Get the current slot
| 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 of behavioral disclosure. However, it only states 'Get the current slot' without explaining what 'slot' means, whether this is a read-only operation, if it requires authentication, or what the return format might be. This leaves critical behavioral traits undefined, making it inadequate for agent understanding.
Agents need to know what a tool does to the 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 three words: 'Get the current slot.' It is front-loaded and wastes no space, making it easy to parse quickly. Every word contributes directly to the tool's purpose, earning its place 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?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what a 'slot' is, what data it returns, or how it relates to sibling tools. For a tool with no structured context, the description should provide more clarity about its role and behavior to be sufficiently helpful for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0 parameters with 100% coverage, meaning no parameters are documented in the schema. The description doesn't add parameter details, but since there are no parameters to explain, this is acceptable. The baseline for 0 parameters is 4, as the description doesn't need to compensate for missing parameter 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 'Get the current slot' is a tautology that essentially restates the tool name 'getSlot' without adding meaningful specificity. While it indicates a retrieval action ('Get') and a resource ('slot'), it doesn't clarify what a 'slot' represents in this context or distinguish it from sibling tools like getAccountInfo or getBalance. The purpose remains vague rather than clearly defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 any context, prerequisites, or exclusions, and it fails to differentiate it from sibling tools such as getAccountInfo or getBalance. Without any usage instructions, the agent has no basis for selecting this tool appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
transferC
Transfer SOL from your keypair to another address
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount of SOL to send | |
| secretKey | Yes | Your keypair's secret key (as comma-separated numbers or JSON array) | |
| toAddress | Yes | Destination wallet address |
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 ('Transfer SOL') which implies a write/mutation operation, but doesn't disclose critical traits like authentication needs (handled via secretKey), potential for irreversible loss of funds, network fees, or rate limits. 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 a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, 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 a financial transfer tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens on success/failure, return values, error conditions, or security implications, leaving critical 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?
The schema description coverage is 100%, with all parameters well-documented in the input schema (amount, secretKey, toAddress). The description adds no additional parameter semantics beyond what's already in the schema, so it meets the baseline for adequate but unremarkable 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 SOL') and the resource ('from your keypair to another address'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this tool from its siblings (like getBalance or getAccountInfo), which are read-only operations, so it falls short of 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 a funded keypair), exclusions, or comparisons with sibling tools, leaving the agent to infer usage context on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: getAccountInfo retrieves detailed account data, getBalance focuses on balance only, getKeypairInfo handles keypair details, getSlot provides blockchain slot information, and transfer performs SOL transactions. There is no overlap or ambiguity in their functions.
All tool names follow a consistent verb_noun pattern using camelCase (e.g., getAccountInfo, getBalance, transfer). The naming is uniform and predictable across all five tools.
With 5 tools, the count is well-scoped for a Solana server, covering essential operations like querying accounts, balances, keypairs, slots, and transfers. It feels slightly thin but reasonable for basic blockchain interactions.
The tools cover key read operations (getAccountInfo, getBalance, getSlot) and a basic write operation (transfer), but there are notable gaps such as missing transaction history, program interactions, or token operations that are common in Solana workflows. Agents can work around this for simple tasks.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Solana MCP for wallets, trades, markets, PnL, transfers, onchain data, signable swaps and API tools.
Solana wallet tracker & alerts: real-time activity webhooks, balances, tx history. Free.
Solana MCP developer toolkit: wallets, trades, markets, PnL, transfers, onchain, swaps & API tools.
Broker + MCP server for last-bidder-wins on-chain games on Solana via x402 micropayments.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model-Context-Protocol server enabling users to perform basic operations on Solana and Ethereum blockchains through simple RPC endpoints.95Apache 2.0
- AlicenseBqualityDmaintenanceA server that enables interaction with the Solana blockchain, providing access to over 40 Solana RPC methods including getting balances, transaction details, block information, and sending transactions.444MIT
- AlicenseNot gradedqualityDmaintenanceA server that enables interaction with the Solana blockchain using your own private key, supporting operations like getting wallet information, checking balances, and transferring SOL.2910MIT
- AlicenseNot gradedqualityDmaintenanceA Solana blockchain interaction server that allows AI tools to query blockchain data using natural language, access structured token information, and generate human-readable explanations of complex blockchain concepts.6MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/akc2267/solana-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server