3 checks that ran failed — injection surface, credential hygiene and transport config — so this release can’t be trusted as-is.
- Publisher
- ai.oobeprotocol.sap.mcp
- Repository
- github.com/OOBE-PROTOCOL/sap-mcp
- Install
- npm:@oobe-protocol-labs/sap-mcp-server
- Versions
- 1
- MCP revision
- 2025-11-25 · superseded
- Inspected
- 5 of 6 checks · 90%
- Scored
- 2026-09-03 · rubric 1.0.0
What we checked
Six static checks, weighted by risk. Every result reflects only what could be observed in the published package and repository — never intent.
Injection surface
fail25% of gradeTool descriptions/manifest scanned for instruction-injection patterns (imperatives at the model, hidden text, 'ignore previous', data-exfil URLs).
tool "sap_premium_webhook_relay" description: names an outbound copy/exfil destination (BCC/exfil verb). tool "sap_agent_identity_plan" param "x402Endpoint" description: off-vendor URL in a description (host); capability text should not name where data goes. tool "sap_register_agent" param "x402Endpoint" description: off-vendor URL in a description (host); capability text should not name where data goes. tool "sap_sns_register_agent_domain" param "records" description: off-vendor URL in a description (...); capability text should not name where data goes. tool "blinks_resolveBlinkUrl" param "blinkUrl" description: off-vendor URL in a description (dial.to); capability text should not name where data goes. tool "sap_perp_trade_plan" description: 'before using this tool…' preamble (tool-poisoning shape). tool "sap_perp_trade_plan" param "entryPrice" description: 'before using this tool…' preamble (tool-poisoning shape).
Supply chain
warn25% of gradePackage provenance: namespace verification, repo linkage, maintainer count, account age, postinstall scripts, typosquat distance.
dependency "ink" is edit-distance 2 from popular package "pino" (typosquat candidate); dependency "bn.js" is edit-distance 2 from popular package "ejs" (typosquat candidate); dependency "@x402/svm" is edit-distance 2 from popular package "@anthropic-ai/sdk" (typosquat candidate); dependency "@x402/core" is edit-distance 1 from popular package "cors" (typosquat candidate); dependency "@solana/kit" is edit-distance 2 from popular package "vite" (typosquat candidate); dependency "@langchain/core" is edit-distance 1 from popular package "cors" (typosquat candidate)
Credential hygiene
fail15% of gradeHow the server takes secrets (env vs plaintext config vs hardcoded); secrets appearing in tool schemas.
tool "sap_x402_prepare_payment" has a secret-shaped input parameter "tokenMint" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_escrow_build_create_transaction" has a secret-shaped input parameter "tokenMint" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_create_escrow_v2" has a secret-shaped input parameter "tokenMint" — secrets must never be tool parameters (the model would supply/handle the credential). tool "bridging_bridgeDeBridge" has a secret-shaped input parameter "tokenIn" — secrets must never be tool parameters (the model would supply/handle the credential). tool "bridging_bridgeDeBridge" has a secret-shaped input parameter "tokenOut" — secrets must never be tool parameters (the model would supply/handle the credential). tool "coingecko_getTokenPrice" has a secret-shaped input parameter "tokenId" — secrets must never be tool parameters (the model would supply/handle the credential). tool "coingecko_getTokenInfo" has a secret-shaped input parameter "tokenId" — secrets must never be tool parameters (the model would supply/handle the credential). tool "coingecko_getPoolsByToken" has a secret-shaped input parameter "tokenAddress" — secrets must never be tool parameters (the model would supply/handle the credential). tool "coingecko_getOHLCV" has a secret-shaped input parameter "tokenId" — secrets must never be tool parameters (the model would supply/handle the credential). tool "jupiter_getHoldings" has a secret-shaped input parameter "tokenAccountAddresses" — secrets must never be tool parameters (the model would supply/handle the credential). tool "jupiter_swap" has a secret-shaped input parameter "destinationTokenAccount" — secrets must never be tool parameters (the model would supply/handle the credential). tool "jupiter_swapInstructions" has a secret-shaped input parameter "destinationTokenAccount" — secrets must never be tool parameters (the model would supply/handle the credential). tool "jupiter_getPrice" has a secret-shaped input parameter "vsToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "jupiter_smartSwap" has a secret-shaped input parameter "destinationTokenAccount" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_open_long" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_open_long" has a secret-shaped input parameter "collateralToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_open_short" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_open_short" has a secret-shaped input parameter "collateralToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_close_long" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_close_short" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_close_short" has a secret-shaped input parameter "collateralToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_set_stop_loss" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_set_take_profit" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_cancel_stop_loss" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_cancel_take_profit" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_simulate_position" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_simulate_position" has a secret-shaped input parameter "collateralToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_position_package" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_position_package" has a secret-shaped input parameter "collateralToken" — secrets must never be tool parameters (the model would supply/handle the credential). tool "sap_adrena_build_trailing_stop" has a secret-shaped input parameter "principalToken" — secrets must never be tool parameters (the model would supply/handle the credential).
Permission scope
pass15% of gradeDeclared tools vs. breadth (filesystem, network, exec); flags shell-exec and unbounded filesystem access.
No shell-exec, unbounded/sensitive filesystem, or download-and-run primitives found in scanned source. PASS = no static red flag. Static scanning is blind to code fetched or executed at runtime.
Version behavior
unscannable10% of gradeDiff of tool definitions between versions; new permissions or changed descriptions in a patch release (the postmark-mcp class).
no prior version to diff (first sight of ai.oobeprotocol.sap.mcp/[email protected]); version-drift / rug-pull cannot be evaluated. Cold-start risk is covered by point-in-time checks (injection_surface, supply_chain, credential_hygiene), not here.
Transport config
fail10% of gradeRemote servers: TLS and auth mode (none/token/OAuth). Local servers: whether the manifest indicates it phones home.
remote MCP endpoint declares NO authentication (unauthenticated remote — nginx-ui/CVE-2026-33032 class); manifest/source references analytics behavior — disclosure
Version history
Each release plotted by grade against the safe line at B. A version that sinks below the line has lost its trusted standing — the shape of a rug-pull.
| Version | Published | Grade | Score | Inspected | Change |
|---|---|---|---|---|---|
| v0.7.1 · current | 2026-07-13 | F | 37.5 | 5/6 · 90% | — |