# sap_perp_markets

List available Adrena perpetual futures markets from Pool/Custody accounts with funding/accounting fields, open interest, leverage caps, and oracle identifiers. Read-only analysis tool. Custody accounts do not expose a ready mark price, so markPrice is null until an oracle/feed decoder or configured Adrena data runtime is available. If markets are empty, treat it as data unavailable, not proof that markets do not exist. SAP MCP exposes execution only when sap_perp_builder_status reports a verified hosted unsigned builder. SAP MCP execution guidance: Intent: SAP MCP tool workflow. Pricing: priced by hosted x402 challenge. Routing: paid hosted call; call sap_estimate_tool_cost first, then use sap_payments_call_paid_tool if the runtime cannot handle x402 natively. Signer boundary: hosted reads/builders never receive keypair bytes; value-moving results must be finalized locally when signing is required.

Agent View of the PolicyLayer registry record for `sap_perp_markets`. HTML page: https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-perp-markets

## Facts

- Tool: `sap_perp_markets`
- Server: Sap (`https://mcp.sap.oobeprotocol.ai/mcp`) — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server.md
- Homepage: https://github.com/OOBE-PROTOCOL/sap-mcp
- Risk category: Read (Low risk)
- Registry record: grade F, identity unverified
- Server auth posture: open
- Server rate-limited: yes
- Parameters: 1
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `market` | string | no | Optional market symbol filter (e.g. "SOL", "BTC"). Empty = all markets. |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "sap_perp_markets",
    "arguments": {}
  }
}
```

## Why sap_perp_markets is rated Low

Tool retrieves perpetual futures market data without modification or execution capability.

From the tool's own definition: "List available markets, read-only analysis tool, no side effects."

## Use case

AI agents call sap_perp_markets to retrieve information from Sap without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Sap:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "sap_perp_markets": {}
  }
}
```

## Other tools on Sap (374)

- `jupiter_cancelDCA` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-canceldca.md
- `jupiter_cancelLimitOrder` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-cancellimitorder.md
- `jupiter_cancelLimitOrders` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-cancellimitorders.md
- `manifest_cancelOrder` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/manifest-cancelorder.md
- `metaplex-nft_revokeAuthority` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/metaplex-nft-revokeauthority.md
- `openbook_cancelOrder` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/openbook-cancelorder.md
- `sap_revoke_attestation` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-revoke-attestation.md
- `sap_revoke_feedback` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-revoke-feedback.md
- `spl-token_burn` — Destructive — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/spl-token-burn.md
- `blinks_confirmAction` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/blinks-confirmaction.md
- `blinks_executeAction` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/blinks-executeaction.md
- `jupiter_swapInstructions` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/jupiter-swapinstructions.md
- `magicblock_ensureCrank` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-ensurecrank.md
- `magicblock_initializeMint` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-initializemint.md
- `magicblock_login` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-login.md
- `magicblock_requestRandomness` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/magicblock-requestrandomness.md
- `sap_adrena_build_add_limit_order` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-limit-order.md
- `sap_adrena_build_add_liquid_stake` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-liquid-stake.md
- `sap_adrena_build_add_liquidity` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-liquidity.md
- `sap_adrena_build_add_locked_stake` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-add-locked-stake.md
- `sap_adrena_build_cancel_limit_order` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-cancel-limit-order.md
- `sap_adrena_build_cancel_stop_loss` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-cancel-stop-loss.md
- `sap_adrena_build_cancel_take_profit` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-cancel-take-profit.md
- `sap_adrena_build_claim_stakes` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-claim-stakes.md
- `sap_adrena_build_close_commodity_long` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-close-commodity-long.md
- `sap_adrena_build_close_commodity_short` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-close-commodity-short.md
- `sap_adrena_build_init_user_staking` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-init-user-staking.md
- `sap_adrena_build_open_short` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-open-short.md
- `sap_adrena_build_position_package` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-position-package.md
- `sap_adrena_build_remove_liquid_stake` — Execute — https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server/sap-adrena-build-remove-liquid-stake.md
- …and 344 more: https://policylayer.com/tools/oobe-protocol-labs-sap-mcp-server.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=oobe-protocol-labs-sap-mcp-server · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/oobe-protocol-labs-sap-mcp-server
