RugShield
Server Details
Parallel Solana token risk and transaction safety for AI agents. Paid MCP tools inspect tokens and unsigned transactions; the HTTP risk panel queries compatible advisors in parallel and returns an indicative consensus. x402-compatible clients pay USDC automatically, with no signup or API key.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 5 tools
The two check tools are clearly split by input type (mint address vs unsigned transaction), and the job lifecycle tools (get_job_result, retry_failed_job) are distinct. However, check_solana_token_risk and quote_solana_risk_panel could be confused since both concern Solana token risk assessment, requiring careful reading of descriptions.
All five tools use consistent snake_case with a verb-first pattern (check_, get_, quote_, retry_). The convention is uniform and predictable throughout.
Five tools is well-scoped for a paid risk-check service: two domain checks plus three supporting lifecycle/quote tools. Every tool has a clear purpose and none feels redundant.
The core workflows (token risk, transaction simulation, job polling, retry, panel quoting) are covered with full async lifecycle. Minor gap: quote_solana_risk_panel only returns an HTTP URL, so there is no MCP tool to actually execute the advisor panel call, and no way to list or cancel outstanding jobs.
Available Tools
5 toolscheck_solana_token_riskInspect
Use before buying a pump.fun token when you have its Solana mint address. Returns advisory flags evaluated on selected historical tokens; no flags does not mean safe. Optional idempotency_key is random 32-byte base64url. A signed call waits up to 20 seconds for analysis and can settle without a key. If still processing, echo the unpaid job_id with the same proof and mint when ready. get_job_result reports processing and retry_after_s for free; the result appears there only after settlement. Costs $0.01 USDC via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Base58 Solana token mint address to check before buying; not a transaction or token symbol. | |
| job_id | No | Accepted job ID to echo with the original payment proof and identical inputs when recovering a call made without idempotency_key. | |
| prefer_async | No | If work is queued or running, return a job status instead of waiting for completion. Poll get_job_result for free, then retry this tool with the same payment proof and inputs when ready; payment does not settle while processing. | |
| idempotency_key | No | Optional canonical base64url encoding of 32 random bytes. Reuse with the original payment proof and identical inputs to recover a lost reply. |
check_solana_transactionInspect
Use before signing an unsigned Solana transaction, not for a token mint alone. Provide a real unsigned Solana transaction serialized as base64, with optional signer and expected intent. Malformed input is rejected before payment. Simulation returns ALLOW, WARN or BLOCK with reasons and balance changes. Optional idempotency_key is random 32-byte base64url. A signed call waits up to 20 seconds for analysis and can settle without a key. If still processing, echo the unpaid job_id with the same proof and arguments when ready. get_job_result reports processing and retry_after_s for free; the result appears there only after settlement. Costs $0.01 USDC via x402.
| Name | Required | Description | Default |
|---|---|---|---|
| intent | No | Optional expected action object. Supported keys: max_sol_out (nonnegative SOL amount), expected_mints_in (array of base58 Solana token mint addresses), allowed_recipients (array of base58 Solana addresses). No other keys. | |
| job_id | No | Accepted job ID to echo with the original payment proof and identical inputs when recovering a call made without idempotency_key. | |
| signer | No | Optional base58 Solana address that must be a required transaction signer; omit to use the fee payer. | |
| transaction | Yes | Real unsigned Solana transaction (legacy or v0), serialized as base64; not a token mint or example placeholder. | |
| prefer_async | No | If work is queued or running, return a job status instead of waiting for completion. Poll get_job_result for free, then retry this tool with the same payment proof and inputs when ready; payment does not settle while processing. | |
| idempotency_key | No | Optional canonical base64url encoding of 32 random bytes. Reuse with the original payment proof and identical inputs to recover a lost reply. |
get_job_resultInspect
Poll an accepted job for free. A paid job reports processing, ready, or failed without revealing its result before settlement; retry_after_s gives the next polling delay, capped at two minutes. An uncertain payment reports needs_review with no automatic retry: keep the job ID and contact support without another payment. After confirmed settlement, retrieve the saved result.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID returned by a paid check or accepted queued request. Poll for status without another payment; a settled result is available here. |
quote_solana_risk_panelInspect
Free quote for the paid HTTP panel of parallel Solana risk advisors. Pass a Solana mint and optionally comma-separated public advisor aliases from GET /v1/advisors and a CAIP-2 token chain. Returns a canonical HTTP URL and estimated total in USDC; does not call or pay advisors. The URL's HTTP 402 payment quote is authoritative. The HTTP panel supports prefer_async=true: poll its status_url for free and, when ready, retry the original URL and proof with its job handle or original key, without a new payment.
| Name | Required | Description | Default |
|---|---|---|---|
| mint | Yes | Base58 Solana token mint address to analyze through the paid HTTP panel. | |
| chain | No | Optional CAIP-2 network ID of the token being analyzed, not the payment network. Defaults to Solana mainnet; other token chains are currently unsupported. | |
| advisors | No | Optional comma-separated public advisor aliases from free GET /v1/advisors; omit to select all enabled advisors compatible with the token chain. |
retry_failed_jobAInspect
Retry a failed paid job for free. Transaction and token checks each have one manual retry per job ID; if it still fails, keep the job ID and contact rugshield@fastsoftware.uk for review. There is no automatic refund.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | Job ID of a failed paid transaction or token check. Retry that job for free after get_job_result reports failure. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does real work: it discloses that retries are free, that each job ID gets only one manual retry per transaction/token check, that there is no automatic refund, and that unresolved failures go to a support address with the job ID retained. It omits whether the retry re-executes asynchronously and what the immediate response indicates.
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?
Three sentences, no filler, and the core action and its 'for free' benefit are front-loaded. The middle sentence is dense (mixing the retry limit, failure path, and contact instructions) but every clause carries actionable 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 single-parameter tool with no annotations and no output schema, the description covers the key facts an agent needs: when it applies, the retry budget, cost, and what to do if the retry fails. The only gap is what the tool returns on success, which would tell the agent whether to poll get_job_result again.
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 coverage is 100%, so the baseline is 3, but the description adds meaning the schema alone does not: the job ID must be a *failed* paid transaction or token check, and the retry-per-job-ID budget is a property of that identifier rather than an extra input.
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?
States a specific verb and resource ('Retry a failed paid job') plus a notable scope modifier ('for free'), and ties itself into the paid-job workflow via 'Transaction and token checks'. It is clearly distinguishable from the check_* siblings and get_job_result, though it never names a sibling tool outright.
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 schema text gives an explicit precondition ('after get_job_result reports failure'), and the description adds the retry budget ('one manual retry per job ID') and the escalation path when it still fails. What's missing is an explicit statement of what NOT to use it for (e.g. successful jobs), so it stops short of a full when/when-not pair.
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.
5 tool updates
- Changed
check_solana_token_risk4 fields changed- added
Input schema / properties / idempotency_key / descriptionAdded value: +"Optional canonical base64url encoding of 32 random bytes. Reuse with the original payment proof and identical inputs to recover a lost reply." - added
Input schema / properties / job_id / descriptionAdded value: +"Accepted job ID to echo with the original payment proof and identical inputs when recovering a call made without idempotency_key." - added
Input schema / properties / mint / descriptionAdded value: +"Base58 Solana token mint address to check before buying; not a transaction or token symbol." - added
Input schema / properties / prefer_async / descriptionAdded value: +"If work is queued or running, return a job status instead of waiting for completion. Poll get_job_result for free, then retry this tool with the same payment proof and inputs when ready; payment does not settle while processing."
- Changed
check_solana_transaction6 fields changed- added
Input schema / properties / idempotency_key / descriptionAdded value: +"Optional canonical base64url encoding of 32 random bytes. Reuse with the original payment proof and identical inputs to recover a lost reply." - added
Input schema / properties / intent / descriptionAdded value: +"Optional expected action object. Supported keys: max_sol_out (nonnegative SOL amount), expected_mints_in (array of base58 Solana token mint addresses), allowed_recipients (array of base58 Solana addresses). No other keys." - added
Input schema / properties / job_id / descriptionAdded value: +"Accepted job ID to echo with the original payment proof and identical inputs when recovering a call made without idempotency_key." - added
Input schema / properties / prefer_async / descriptionAdded value: +"If work is queued or running, return a job status instead of waiting for completion. Poll get_job_result for free, then retry this tool with the same payment proof and inputs when ready; payment does not settle while processing." - added
Input schema / properties / signer / descriptionAdded value: +"Optional base58 Solana address that must be a required transaction signer; omit to use the fee payer." - added
Input schema / properties / transaction / descriptionAdded value: +"Real unsigned Solana transaction (legacy or v0), serialized as base64; not a token mint or example placeholder."
- Changed
get_job_result1 field changed- added
Input schema / properties / job_id / descriptionAdded value: +"Job ID returned by a paid check or accepted queued request. Poll for status without another payment; a settled result is available here."
- Changed
quote_solana_risk_panel3 fields changed- added
Input schema / properties / advisors / descriptionAdded value: +"Optional comma-separated public advisor aliases from free GET /v1/advisors; omit to select all enabled advisors compatible with the token chain." - added
Input schema / properties / chain / descriptionAdded value: +"Optional CAIP-2 network ID of the token being analyzed, not the payment network. Defaults to Solana mainnet; other token chains are currently unsupported." - added
Input schema / properties / mint / descriptionAdded value: +"Base58 Solana token mint address to analyze through the paid HTTP panel."
- Changed
retry_failed_job1 field changed- added
Input schema / properties / job_id / descriptionAdded value: +"Job ID of a failed paid transaction or token check. Retry that job for free after get_job_result reports failure."
3 tool updates
- Changed
check_solana_token_risk4 fields changed- removed
Input schema / properties / idempotency_key / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / idempotency_key / typeAdded value: +"string" - removed
Input schema / properties / job_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / job_id / typeAdded value: +"string"
- Changed
check_solana_transaction9 fields changed- removed
Input schema / properties / idempotency_key / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / idempotency_key / typeAdded value: +"string" - added
Input schema / properties / intent / additionalPropertiesAdded value: +true - removed
Input schema / properties / intent / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - added
Input schema / properties / intent / typeAdded value: +"object" - removed
Input schema / properties / job_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / job_id / typeAdded value: +"string" - removed
Input schema / properties / signer / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / signer / typeAdded value: +"string"
- Changed
quote_solana_risk_panel4 fields changed- removed
Input schema / properties / advisors / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / advisors / typeAdded value: +"string" - removed
Input schema / properties / chain / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - added
Input schema / properties / chain / typeAdded value: +"string"
2 tool updates
- Changed
check_solana_token_risk2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Idempotency Key" +} - added
Input schema / properties / job_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Job Id" +}
- Changed
check_solana_transaction2 fields changed- added
Input schema / properties / idempotency_keyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Idempotency Key" +} - added
Input schema / properties / job_idAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Job Id" +}
1 tool update
- Added
quote_solana_risk_panel
4 tool updates
- First observed
check_solana_token_risk - First observed
check_solana_transaction - First observed
get_job_result - First observed
retry_failed_job
Related MCP Connectors
Pay-per-call Solana token risk intelligence: 8 tools via x402. From $0.005 USDC, no API key.
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Solana address risk grades and token scans for AI agents. Pay-per-call via x402 (USDC on Base).
Pay-per-call ($0.005–$0.03 USDC) market, on-chain, and prediction-market data API for AI agents and trading bots via the x402 protocol — no signup, no API key. Exposed as a remote MCP server with 15 tools: pre-trade token security (honeypot/liquidity checks), kimchi premium, funding rate APR, DEX slippage, Polymarket arbitrage & liquidity audits, and Hyperliquid HIP-4 prediction-market odds.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceGives AI trading agents machine-readable trust and risk verdicts on Solana by checking whether a wallet's realized PnL makes it worth copying, where its funds came from, whether a token is structurally safe, and what a given trade size would really cost in slippage. Exposes these four checks as MCP tools callable against a hosted x402 pay-per-call API, so agents can hard-stop bad trades without RPC keys, signup, or local setup.MIT- AlicenseAqualityAmaintenanceOn-chain Solana token safety for trading agents — traces coordinated wallet funding, same-block Jito bundles, serial-rug deployers and live coordinated dumps into one Exit-Liquidity Risk verdict before a swap. Free tier, then $0.02 USDC/query via x402.152 npm1MIT
- AlicenseNot gradedqualityFmaintenanceMCP server for real-time Solana token risk analysis. Cross-references RugCheck.xyz, DexScreener, and GoPlus Security to generate three-layer reports: machine verdict → LLM analysis → raw on-chain evidence. Live on Solana mainnet with USDC micropayments ($0.02/audit). Give any AI agent the ability to check if a token is safe before trading.2MIT
- AlicenseAqualityFmaintenanceReal-time Solana token risk scoring, momentum signals, and graduation alerts via MCP. Free tier with 4 tools (no auth), PRO tier with 6 tools + batch analysis ($0.01/call via x402).61MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.