Marinade Finance MCP Server
Provides tools for interacting with Marinade Finance on the Solana network, including liquid staking operations (stake/unstake SOL for mSOL), checking mSOL token balances, sending mSOL tokens between wallets, querying protocol state information, and searching Marinade Finance documentation.
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., "@Marinade Finance MCP Servercheck my mSOL balance"
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.
Official page
Integration
Register the server in your MCP-aware host configuration.
{
"mcpServers": {
"marinade-finance": {
"url": "https://server.smithery.ai/@leandrogavidia/marinade-finance-mcp-server/mcp",
"type": "streamable-http"
}
}
}Note: Follow the Smithery's auth flow.
Related MCP server: Solana AI Terminal
Tools
Marinade Finance Docs
Docs
search_documentation: Search Marinade Finance Documentation for relevant information, code examples, API references, and guides.
Marinade Finance State
State
get_marinade_state: Retrieve the current state of the Marinade Finance protocol, including information about staked assets, mint address, price, rewards, and other relevant data.
Liquid Staking & Wallet Operations
Balance
get_msol_balance: Check the mSOL token balance of the environment wallet or any specified Solana wallet address.
Staking
stake_msol: Stake SOL tokens with Marinade Finance to receive mSOL tokens and earn rewards.unstake_msol: Unstake mSOL tokens to receive SOL tokens back.
Transfers
send_msol: Send mSOL tokens to another Solana wallet address (automatically creates recipient token account if needed).
.env Config
PRIVATE_KEY: Base58-encoded private key for your Solana wallet (required for on-chain operations like staking, unstaking, and transfers).SOLANA_RPC_URL: Solana RPC URL for mainnet operations.SOLANA_RPC_URL_DEVNET: Solana RPC URL for devnet/testnet operations.ENVIRONMENT: Working environment, eitherMAINNETorTESTNET.USE_STREAMABLE_HTTP: Specifies whether your MCP server will run on stdio or streamable-http (set totrueorfalse).PORT: Port where your MCP server will run when using streamable-http (default: 3000).HOST: Host where your MCP server will run when using streamable-http (default: 0.0.0.0).
Run the project locally
In one terminal window, run the following command: pnpx @modelcontextprotocol/inspector pnpx tsx ./src/index.ts in stdio mode.
Build and run
Run the command: pnpm run build and then: pnpm run start
Note: Run in http mode
Deployment
To deploy this MCP server, fork this project into your GitHub account, log in to smithery.ai, and click Publish server. Complete the steps, and once it is deployed, add the required environment variables in settings.
License
MIT
Available Tools
6 toolsget_marinade_stateGet Marinade StateA
Retrieve the current state of the Marinade Finance protocol, including information about staked assets, mint address, price, rewards, and other relevant data.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully convey behavioral traits. It only indicates a read operation ('Retrieve') but omits details such as side effects, authorization needs, rate limits, or error conditions. This is insufficient for a bare description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of about 20 words, front-loading key information. It is efficient and avoids redundancy. Slightly under-specified but still 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?
No output schema exists, so the description must compensate. It lists some returned fields but ends with 'other relevant data', which is vague. Given the tool's simplicity (no params), the description provides adequate but incomplete 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?
With zero parameters, schema coverage is trivially 100%. The description adds value by enumerating example data fields (staked assets, mint address, price, rewards) beyond the empty schema. Baseline for 0 params is 4, and the description justifies that score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Retrieve' and the resource 'current state of the Marinade Finance protocol'. It lists specific data items (staked assets, mint address, price, rewards), making the purpose unambiguous. The sibling tool 'search_documentation' is distinct, so there is no confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit usage guidance is provided. There is no mention of when to use this tool versus alternatives or when not to use it. However, the single sibling tool suggests a straightforward distinction, so it meets the minimum viable level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_msol_balanceGet mSOL BalanceA
Check the mSOL token balance of the environment wallet or any specified Solana wallet address.
| Name | Required | Description | Default |
|---|---|---|---|
| walletAddress | No | Optional: The Solana wallet address to check. If not provided, checks the environment wallet balance. |
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 without disclosing behavioral traits like rate limits, authentication requirements, error conditions, or what 'environment wallet' means. It's a basic functional description lacking operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose and includes all necessary information without any wasted words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with 100% schema coverage but no annotations or output schema, the description is adequate but incomplete. It explains what the tool does but lacks context about the return format, error handling, or what 'environment wallet' entails, leaving gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents the single optional parameter. The description adds minimal value by restating the parameter's purpose but doesn't provide additional syntax, format details, or constraints beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Check'), resource ('mSOL token balance'), and scope ('environment wallet or any specified Solana wallet address'), distinguishing it from siblings like send_msol (transfer) or stake_msol (staking 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 clear context about when to use this tool (checking mSOL balances) and implicitly distinguishes it from siblings by focusing on balance queries rather than transactions or staking. However, it doesn't explicitly mention when NOT to use it or name specific alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_documentationSearch Marinade Finance DocumentationA
Search across the documentation to find relevant information, code examples, API references, and guides. Use this tool when you need to answer questions about Marinade Finance Docs, find specific documentation, understand how features work, or locate implementation details. The search returns contextual content with titles and direct links to the documentation pages.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query string |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states the search returns 'contextual content with titles and direct links,' which is useful. However, it does not mention idempotency, authentication requirements, rate limits, or any potential side effects. For a search tool, the behavior is fairly transparent, but there is room for improvement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with three sentences, each adding value. It front-loads the purpose, then usage guidelines, and finally the return format. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description adequately covers what the tool does and what it returns. It explains the return as 'contextual content with titles and direct links,' which is sufficient for an agent to understand the output. Minor improvement could include specifying if results are ranked or limited.
Complex tools with many parameters or behaviors need more documentation. 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 coverage is 100% with a single parameter 'query' described as 'The search query string.' The description does not add any additional meaning beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches documentation for relevant information, code examples, API references, and guides. It uses a specific verb ('search') and resource ('documentation'), and the purpose is distinct from the sibling tool 'get_marinade_state' which retrieves state data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool: 'when you need to answer questions about Marinade Finance Docs, find specific documentation, understand how features work, or locate implementation details.' It provides clear context but does not mention when not to use it or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_msolSend mSOL to Another WalletA
Send mSOL tokens to another Solana wallet address. This tool automatically checks if the recipient's mSOL token account exists and creates it if necessary.
| Name | Required | Description | Default |
|---|---|---|---|
| recipientAddress | Yes | The Solana wallet address of the recipient | |
| amount | Yes | The amount of mSOL to send |
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 effectively describes key behavior: 'automatically checks if the recipient's mSOL token account exists and creates it if necessary.' This reveals important transactional logic beyond basic sending. However, it doesn't mention potential costs, transaction finality, 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?
Two concise sentences with zero waste. The first sentence states the core purpose, and the second adds valuable behavioral context about account creation. Every word earns its place, and the information is front-loaded appropriately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 transaction tool with no annotations and no output schema, the description is adequate but has clear gaps. It covers the core operation and one behavioral aspect (account creation) but doesn't address transaction costs, confirmation requirements, error handling, or what constitutes success. Given the complexity of blockchain transactions, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description doesn't add any parameter-specific information beyond what's in the schema (recipientAddress as wallet address, amount as mSOL quantity). Baseline score of 3 is appropriate when 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 specific action ('Send mSOL tokens') and resource ('to another Solana wallet address'), distinguishing it from sibling tools like get_msol_balance (read-only) and stake_msol/unstake_msol (different operations). The verb 'send' precisely indicates a transfer 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 implies usage for transferring mSOL tokens between wallets but doesn't explicitly state when to use this tool versus alternatives like stake_msol or unstake_msol. It mentions automatic account creation, which provides some context but doesn't offer clear exclusions or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stake_msolStake SOL for mSOLC
Stake your SOL tokens with Marinade Finance to receive mSOL tokens and earn rewards.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | The amount of SOL to stake |
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 and outcome but lacks details on permissions required, transaction costs, time to process, or potential risks (e.g., slashing). This leaves gaps in understanding the tool's behavior beyond the basic operation.
Agents need to know what a tool does to the 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 explains the tool's purpose without unnecessary words. It is front-loaded with the core action, making it easy to understand quickly, though it could be slightly more structured for complex tools.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 staking operation with no annotations and no output schema, the description is incomplete. It lacks information on return values (e.g., transaction ID, mSOL received), error conditions, or integration details, which are crucial for effective tool use in this 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 the 'amount' parameter fully documented in the schema. The description does not add any additional meaning beyond what the schema provides, such as minimum viable amounts or unit clarifications, so it 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 ('Stake your SOL tokens') and the resource ('with Marinade Finance'), specifying the outcome ('to receive mSOL tokens and earn rewards'). It distinguishes from siblings like 'unstake_msol' by focusing on staking rather than unstaking, though it doesn't explicitly differentiate from other tools like 'send_msol'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb 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 'unstake_msol' or 'send_msol'. It mentions earning rewards, which implies a use case, but lacks explicit when-to-use or when-not-to-use instructions, such as prerequisites or timing considerations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unstake_msolUnstake mSOLB
Unstake your mSOL tokens with Marinade Finance to receive SOL tokens.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | The amount of mSOL to unstake |
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 the action and outcome but lacks details on behavioral traits such as transaction costs, time delays, irreversible nature, or error conditions. This is a significant gap for a financial transaction 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 that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. 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 unstaking operation, no annotations, and no output schema, the description is incomplete. It lacks critical context such as return values, error handling, or operational constraints, which are essential for safe usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'amount' documented as 'The amount of mSOL to unstake'. The description adds no additional parameter semantics beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Unstake') and resource ('mSOL tokens') with the specific service provider ('Marinade Finance') and outcome ('receive SOL tokens'). It distinguishes from siblings like 'stake_msol' by indicating the reverse operation, though it doesn't explicitly contrast with other tools like 'send_msol'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you want to convert mSOL back to SOL, but it doesn't provide explicit guidance on when to use this tool versus alternatives (e.g., 'send_msol' for transferring mSOL, 'stake_msol' for staking SOL). No prerequisites or exclusions are mentioned.
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.
6 tool updates
- First observed
get_marinade_state - First observed
get_msol_balance - First observed
search_documentation - First observed
send_msol - First observed
stake_msol - First observed
unstake_msol
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose with no overlap: get_marinade_state retrieves protocol-wide data, get_msol_balance checks wallet balances, search_documentation handles documentation queries, send_msol transfers tokens, stake_msol stakes SOL for mSOL, and unstake_msol reverses that process. The actions and targets are unambiguous.
All tools follow a consistent verb_noun pattern using snake_case: get_marinade_state, get_msol_balance, search_documentation, send_msol, stake_msol, and unstake_msol. The naming is predictable and readable throughout the set.
With 6 tools, this server is well-scoped for its domain of Marinade Finance operations. Each tool earns its place by covering essential functions like state retrieval, balance checking, documentation search, token transfers, and staking/unstaking, without being overly sparse or bloated.
The tool set covers core workflows for interacting with Marinade Finance, including staking, unstaking, transfers, balance checks, and protocol state. A minor gap is the lack of tools for managing rewards or advanced operations like liquidity provision, but agents can work around this with the provided tools.
Maintenance
Related MCP Connectors
Solana MCP for wallets, trades, markets, PnL, transfers, onchain data, signable swaps and API tools.
Native Solana staking for AI agents. 26 MCP tools, one-shot signing, webhooks.
Solana tools over MCP: Jupiter swaps, SPL tokens, Metaplex NFTs, SNS domains, network stats.
Agent MCP for DeFi: cross-chain LINQ fan-out, AMM quotes/swaps, bridge, AI. Solana+EVM. Free+x402.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables comprehensive Solana blockchain interactions including wallet management, SOL and SPL token transfers, token creation and minting, account operations, and network switching across mainnet, devnet, testnet, and localhost.2535 npm1MIT
- 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.-
- 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
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to perform Lido staking operations (stake, unstake, wrap, unwrap, check balances/rewards) via natural language.5 npm1MIT