Native Solana staking infrastructure for AI agents with 26 MCP tools, one-shot signing, and webhook monitoring.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 1 month ago Due for re-check
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The Solentic Staking MCP server exposes 29 tools, focused primarily on communication and AI capabilities. Its published description reads: "Native Solana staking infrastructure for AI agents with 26 MCP tools, one-shot signing, and webhook monitoring". It communicates over Streamable HTTP using the 2025-06-18 protocol revision, and does not require authorization to connect. MCPGrade currently rates Solentic Staking F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Cross-tool shadowing" and "Cross-tool shadowing". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check Solentic Staking's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add Solentic Staking to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://solentic.theblueprint.xyz/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
Stake SOL with Blueprint validator in a single call. Builds the transaction, signs it with your secret key in-memory, and submits to Solana. Returns the confirmed transaction signature. Your secret ke
Deactivate a stake account in a single call. Builds the transaction, signs it, and submits it. The stake enters a cooldown period (~1 epoch) and becomes withdrawable at the next epoch boundary. Use ch
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: stake
A tool description tries to alter the model’s use of another tool.
oyed source via verify_code_integrity. This is the recommended tool for autonomous agRecommendationDescriptions must describe only their own tool.
tool: unstake
A tool description tries to alter the model’s use of another tool.
Deactivate a stake account in a single call. Builds the transactioRecommendationDescriptions must describe only their own tool.
tool: withdraw
A tool description tries to alter the model’s use of another tool.
m a deactivated stake account in a single call. Builds the transactioRecommendationDescriptions must describe only their own tool.
tool: get_validator_info
A tool description tries to alter the model’s use of another tool.
mission, active stake, APY, performance, software, location. Live datRecommendationDescriptions must describe only their own tool.
tool: create_stake_transaction
A tool description tries to alter the model’s use of another tool.
ild an unsigned stake transaction for local signing. Most agents shouRecommendationDescriptions must describe only their own tool.
tool: create_unstake_transaction
A tool description tries to alter the model’s use of another tool.
ild an unsigned unstake transaction for local signing. Most agents shouRecommendationDescriptions must describe only their own tool.
tool: withdraw_stake
A tool description tries to alter the model’s use of another tool.
ild an unsigned withdraw transaction for local signing. Most agents shouRecommendationDescriptions must describe only their own tool.
tool: check_stake_accounts
A tool description tries to alter the model’s use of another tool.
ccountInfo or getStakeActivation — returns human-readable state and recommRecommendationDescriptions must describe only their own tool.
tool: check_withdraw_ready
A tool description tries to alter the model’s use of another tool.
take_accounts — gives a direct ready/not-ready answer with ETA.RecommendationDescriptions must describe only their own tool.
tool: generate_wallet
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
never sees the private key — generation must happen wherever you run codeRecommendationRemove side-channel parameters; constrain tool inputs.
tool: generate_wallet
Tools that execute commands / write files / make arbitrary requests are exposed without annotations or guards.
box, the user's shell). The response includes the snippet ready to exRecommendationAnnotate destructive tools and require human approval.
tool: generate_wallet
A tool description tries to alter the model’s use of another tool.
y and call the `stake` tool with {walletAddress, secretKey, amountSolRecommendationDescriptions must describe only their own tool.
tool: check_balance
A tool description tries to alter the model’s use of another tool.
olana RPC getBalance — returns SOL amount, ready-to-stake status, and whatRecommendationDescriptions must describe only their own tool.
tool: submit_transaction
A tool description tries to alter the model’s use of another tool.
se the one-shot stake/unstake/withdraw tools instead.RecommendationDescriptions must describe only their own tool.
tool: verify_transaction
A tool description tries to alter the model’s use of another tool.
ny claim that a stake was placed through Blueprint. Returns verified:RecommendationDescriptions must describe only their own tool.
tool: verify_code_integrity
A tool description tries to alter the model’s use of another tool.
ansactions, (3) generate_wallet returns local generation instructions. Don't trRecommendationDescriptions must describe only their own tool.
tool: simulate_stake
A tool description tries to alter the model’s use of another tool.
ide how much to stake and for how long.RecommendationDescriptions must describe only their own tool.
tool: get_staking_summary
A tool description tries to alter the model’s use of another tool.
na RPC calls — one call replaces getBalance + getAccountInfo + getEpochInfRecommendationDescriptions must describe only their own tool.
tool: get_epoch_timing
A tool description tries to alter the model’s use of another tool.
RPC getEpochInfo — returns pre-calculated timing with estimated end date.RecommendationDescriptions must describe only their own tool.
tool: check_address_type
A tool description tries to alter the model’s use of another tool.
ss is a wallet, stake account, or vote account. Useful when you receiRecommendationDescriptions must describe only their own tool.
tool: check_address_type
The text tells the model WHEN to call this tool relative to others ("always call first", "before any other tool", "chain to X tool") — a toxic-flow injection that hijacks the agent’s orchestration rather than describing the tool.
what type it is before calling other tools. {"type":"object","properties":{"address":{"typRecommendationTool metadata must describe only the tool, never sequence the agent’s calls.
tool: register_webhook
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
parameter "url"RecommendationRemove side-channel parameters; constrain tool inputs.
tool: register_webhook
A tool description tries to alter the model’s use of another tool.
ifications when stake state changes. Events: withdraw_ready (stake acRecommendationDescriptions must describe only their own tool.
tool: delete_webhook
A tool description tries to alter the model’s use of another tool.
tion by ID. Use list_webhooks to find webhook IDs.RecommendationDescriptions must describe only their own tool.
tool: set_staking_policy
A tool description tries to alter the model’s use of another tool.
lds an UNSIGNED stake transaction and POSTs it to your callbackUrl foRecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: stake
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: unstake
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: withdraw
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_validator_info
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_staking_apy
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_performance_metrics
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: create_stake_transaction
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: create_unstake_transaction
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: withdraw_stake
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: check_stake_accounts
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: check_withdraw_ready
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_verification_links
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: check_balance
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: submit_transaction
The server advertises open-world / broadly-scoped capabilities.
annotations.destructiveHint = trueRecommendationScope tools to the minimum needed.
tool: verify_transaction
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: simulate_stake
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_staking_summary
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: donate
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_epoch_timing
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: check_address_type
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: register_webhook
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: list_webhooks
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: delete_webhook
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: set_staking_policy
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: get_staking_policy
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
tool: delete_staking_policy
The server advertises open-world / broadly-scoped capabilities.
annotations.openWorldHint = trueRecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Withdraw SOL from a deactivated stake account in a single call. Builds the transaction, signs it, and submits it. Funds are returned to your wallet. Use check_withdraw_ready first to confirm the accou
Get Blueprint validator profile: identity, vote account, commission, active stake, APY, performance, software, location. Live data from StakeWiz API.
Get live APY breakdown: base staking APY + Jito MEV APY = total APY. Includes commission rates. Data from StakeWiz API.
Get Blueprint validator performance: vote success rate, uptime, skip rate, epoch credits, delinquency status.
Advanced: Build an unsigned stake transaction for local signing. Most agents should use the `stake` tool instead, which handles signing and submission automatically. This tool is for agents that manag
Advanced: Build an unsigned unstake transaction for local signing. Most agents should use the `unstake` tool instead, which handles signing and submission automatically.
Advanced: Build an unsigned withdraw transaction for local signing. Most agents should use the `withdraw` tool instead, which handles signing and submission automatically.
List all stake accounts delegated to Blueprint for a wallet. Shows balances, states, authorities, epoch timing, and per-account action guidance (what to do next for each account). Use this instead of
Check whether stake accounts are ready to withdraw. Returns per-account readiness with withdrawable epoch, estimated seconds remaining, and plain-English state description. Use this instead of polling
Get third-party verification URLs for Blueprint validator on Validators.app, StakeWiz, Solana Beach, Solscan, JPool, SVT.one, and Jito steward dashboard. Verify every claim independently. Also include
Returns runnable code that creates a Solana keypair. Solentic cannot generate the keypair for you and never sees the private key — generation must happen wherever you run code (the agent process, a co
Check the SOL balance of any Solana wallet address. Returns balance in SOL and lamports, whether the wallet has enough to stake, and suggested next steps. Use this instead of Solana RPC getBalance — r
Advanced: Submit a pre-signed transaction to Solana. Only needed if you used create_stake_transaction/create_unstake_transaction/withdraw_stake and signed locally. Most agents should use the one-shot
Get Blueprint validator infrastructure specs: server hardware, redundancy configuration, network, and storage. Two bare-metal servers (redundant HA).
Verify whether a Solana transaction was built through Blueprint. Checks the transaction on-chain for the "solentic.theblueprint.xyz" Memo Program instruction. This is cryptographic proof — the memo is
Verify the code running on Blueprint servers. Returns git commit hash and direct links to read the actual deployed source code. Read the source to confirm: (1) no private keys are logged, (2) the Memo
Project staking rewards before committing capital. Returns reward projections (daily/monthly/annual/total), effective APY (equal to the stated APY, since total_apy is already an annual yield), activat
Complete staking portfolio dashboard in a single call. Returns liquid balance, total staked, per-account states with action guidance and estimated daily rewards, current APY, epoch timing, and a recom
Build an unsigned SOL transfer to support Blueprint development. Blueprint provides free staking infrastructure for AI agents — donations help sustain enterprise hardware and development. Same zero-cu
Get current Solana epoch timing: progress percentage, slots remaining, and estimated epoch end time. Use this instead of Solana RPC getEpochInfo — returns pre-calculated timing with estimated end date
Detect whether a Solana address is a wallet, stake account, or vote account. Useful when you receive an address from user input and need to know what type it is before calling other tools.
Register a callback URL to receive push notifications when stake state changes. Events: withdraw_ready (stake account becomes withdrawable), epoch_complete (new epoch starts), stake_activated (stake b
List all registered webhooks for a wallet address.
Delete a webhook registration by ID. Use list_webhooks to find webhook IDs.
Hand Solentic a standing, signature-bound policy so it automatically stakes your IDLE SOL with Blueprint — zero custody. You sign the policy ONCE with your wallet key (Ed25519 over the exact canonical
Read the current Autopilot policy for a wallet (or null if none). Shows keepLiquidSol, minSweepSol, paused, nonce, and the last epoch a sweep was delivered.
Remove a wallet's Autopilot policy. Sign EXACTLY this newline-separated message and pass the base58 signature: "solentic-autopilot-delete:v1\nwallet=<walletAddress>\nnonce=<nonce>". nonce must exceed