{"protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":false}},"agentGuidance":{"description":"General guidance for external AI agents using this MCP server. Read before selecting a project endpoint, requesting tool schemas, or calling protocol tools.","skillUrl":"https://erc8004.heyanon.ai/mcp/skill.md"},"serverInfo":{"name":"heyanon-erc8004-jupiterPerps","version":"1.0.0"},"tools":[{"name":"increasePosition","description":"Create new Jupiter perpetual position or increase existing one. Use jupiter-getPositionsList to resolve the market, tokenIn and leverage before proceeding if increasing existing position.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"market":{"type":"string","enum":["SOL","ETH","BTC"],"description":"Market to trade on"},"tokenIn":{"type":"string","description":"Token to deposit (mint address)"},"amount":{"type":"string","description":"Amount to deposit in human-readable decimal format (e.g. '1.5'). Use '-1' for all available balance."},"leverage":{"type":"string","description":"Leverage multiplier. Must be greater than 1."},"side":{"type":"string","enum":["long","short"],"description":"Side of the order"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","market","tokenIn","amount","leverage","side","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},"description":"Solana transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"decreasePosition","description":"Decrease Jupiter perpetual position. Use jupiter-getPositionDetails to resolve the positionPublicKey and tokenIn before proceeding.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"tokenIn":{"type":"string","description":"Token to withdraw (mint address)"},"positionPublicKey":{"type":"string","description":"Public key of the position"},"amount":{"type":"string","description":"Amount to withdraw in human-readable decimal format (e.g. '1.5'). Use '-1' to close position."},"marketTokenOut":{"type":"boolean","description":"If true, withdraw market token. If false, withdraw collateral (USDC). Use false as default."},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","tokenIn","positionPublicKey","amount","marketTokenOut","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},"description":"Solana transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getPositionsList","description":"Get list of Jupiter perpetual positions. Do not use it if user not requested it explicitly.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string","description":"Market symbol (e.g. SOL, ETH, BTC)"},"side":{"type":"string","description":"Position side (long or short)"},"leverage":{"type":"string","description":"Leverage multiplier"},"collateralUsd":{"type":"string","description":"Collateral value in USD"},"entryPriceUsd":{"type":"string","description":"Entry price in USD"},"liquidationPriceUsd":{"type":"string","description":"Liquidation price in USD"},"markPriceUsd":{"type":"string","description":"Current mark price in USD"},"sizeUsd":{"type":"string","description":"Position size in USD"},"pnlUsd":{"type":"string","description":"Unrealized PnL in USD"},"pnlPercent":{"type":"string","description":"Unrealized PnL percentage"},"tpslSummary":{"type":"string","description":"TP/SL orders summary or \"None\""}},"required":["market","side","leverage","collateralUsd","entryPriceUsd","liquidationPriceUsd","markPriceUsd","sizeUsd","pnlUsd","pnlPercent","tpslSummary"],"additionalProperties":false},"description":"Open perpetual positions"}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"tpsl","description":"Create a Take Profit or Stop Loss order for Jupiter perpetual position. Use jupiter-getPositionDetails to resolve the positionPublicKey before proceeding.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"positionPublicKey":{"type":"string","description":"Public key of the position"},"action":{"type":"string","enum":["tp","sl"],"description":"Action to perform (tp = take profit, sl = stop loss)"},"triggerPrice":{"type":"string","description":"Trigger price in human-readable decimal format (e.g. '150.5')"},"amount":{"type":"string","description":"Size of the order in human-readable decimal format (e.g. '1.5'). Use '-1' for the entire position."},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","positionPublicKey","action","triggerPrice","amount","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},"description":"Solana transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"tpslEdit","description":"Edit an existing Take Profit or Stop Loss order for Jupiter perpetual position. Use jupiter-getPositionDetails to resolve the positionPublicKey before proceeding.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"positionPublicKey":{"type":"string","description":"Public key of the position"},"action":{"type":"string","enum":["tp","sl"],"description":"Action to perform (tp = take profit, sl = stop loss)"},"triggerPrice":{"type":"string","description":"New trigger price in human-readable decimal format (e.g. '150.5')"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","positionPublicKey","action","triggerPrice","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},"description":"Solana transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getPositionDetails","description":"Get Jupiter perpetual position details.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"array","items":{"type":"object","properties":{"marketMint":{"type":"string","description":"Market mint address"},"side":{"type":"string","description":"Position side"},"leverage":{"type":"string","description":"Leverage multiplier"},"collateral":{"type":"string","description":"Collateral amount"},"tokenIn":{"type":"string","description":"Token input mint address"},"entryPriceUsd":{"type":"string","description":"Entry price in USD"},"liquidationPriceUsd":{"type":"string","description":"Liquidation price in USD"},"markPriceUsd":{"type":"string","description":"Current mark price in USD"},"size":{"type":"string","description":"Position size"},"pnlUsd":{"type":"string","description":"Unrealized PnL in USD"},"pnlPercent":{"type":"string","description":"Unrealized PnL percentage"},"positionPublicKey":{"type":"string","description":"Position public key"}},"required":["marketMint","side","leverage","collateral","tokenIn","entryPriceUsd","liquidationPriceUsd","markPriceUsd","size","pnlUsd","pnlPercent","positionPublicKey"],"additionalProperties":false},"description":"Per-position details including collateral and PnL"}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"tpslDelete","description":"Delete an existing Take Profit or Stop Loss order for Jupiter perpetual position. Use jupiter-getPositionDetails to resolve the positionPublicKey before proceeding.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"positionPublicKey":{"type":"string","description":"Public key of the position"},"action":{"type":"string","enum":["tp","sl"],"description":"Action to perform (tp = take profit, sl = stop loss)"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","positionPublicKey","action","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},"description":"Solana transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createLimitOrder","description":"Create new Jupiter perpetual limit order.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"market":{"type":"string","enum":["SOL","ETH","BTC"],"description":"Market to trade on"},"tokenIn":{"type":"string","description":"Token to deposit (mint address)"},"price":{"type":"string","description":"Trigger price in human-readable decimal format (e.g. '150.5')"},"amount":{"type":"string","description":"Amount to deposit in human-readable decimal format (e.g. '1.5'). Use '-1' for all available balance."},"leverage":{"type":"string","description":"Leverage multiplier. Must be greater than 1."},"side":{"type":"string","enum":["long","short"],"description":"Side of the order"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","market","tokenIn","price","amount","leverage","side","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"API requests to send (signed Solana tx is embedded in body)"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"editLimitOrder","description":"Edit existing Jupiter perpetual limit order. Use jupiter-getOrderDetails to resolve the positionPublicKey before proceeding.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"positionPublicKey":{"type":"string","description":"Public key of the order to edit"},"triggerPrice":{"type":"string","description":"New trigger price in human-readable decimal format (e.g. '150.5')"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","positionPublicKey","triggerPrice","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"apiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{},"description":"Request body as JSON object"},"toSign":{"description":"EIP-712 payload to sign (required for EIP-712 flows, omitted for unsigned API requests)","type":"object","properties":{"domain":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"types":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"}},"required":["name","type"],"additionalProperties":false}}},"message":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"primaryType":{"type":"string"}},"required":["domain","types","message","primaryType"],"additionalProperties":false}},"required":["url","method","headers","body"],"additionalProperties":false},"description":"API requests to send (signed Solana tx is embedded in body)"}},"required":["project","operation","apiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelLimitOrder","description":"Cancel existing Jupiter perpetual limit order. Use jupiter-getOrderDetails to resolve the positionPublicKey before proceeding.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"positionPublicKey":{"type":"string","description":"Public key of the order to cancel"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","positionPublicKey","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"transactions":{"type":"array","items":{"type":"object","properties":{"transaction":{"type":"string","description":"Base64-encoded serialized VersionedTransaction"}},"required":["transaction"],"additionalProperties":false},"description":"Solana transactions to sign and broadcast"}},"required":["project","operation","transactions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrdersList","description":"Get list of Jupiter perpetual limit orders. Do not use it if user not requested it explicitly.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"array","items":{"type":"object","properties":{"market":{"type":"string","description":"Market symbol"},"side":{"type":"string","description":"Order side"},"triggerPrice":{"type":"string","description":"Trigger price"},"sizeUsd":{"type":"string","description":"Order size in USD"},"positionPublicKey":{"type":"string","description":"Position public key"}},"required":["market","side","triggerPrice","sizeUsd","positionPublicKey"],"additionalProperties":false},"description":"Open limit orders"}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrderDetails","description":"Get Jupiter perpetual limit order details.","inputSchema":{"type":"object","properties":{"chainName":{"type":"string","enum":["solana"],"description":"Chain name"},"userAddress":{"type":"string","description":"The wallet address of the user"}},"required":["chainName","userAddress"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"type":"string","description":"Human-readable summary of the action"},"data":{"type":"array","items":{"type":"object","properties":{"side":{"type":"string","description":"Order side"},"marketMint":{"type":"string","description":"Market mint address"},"sizeUsd":{"type":"string","description":"Order size in USD"},"triggerPrice":{"type":"string","description":"Trigger price"},"collateralTokenAmount":{"type":"string","description":"Collateral token amount"},"collateralUsd":{"type":"string","description":"Collateral value in USD"},"collateralMint":{"type":"string","description":"Collateral mint address"},"inputMint":{"type":"string","description":"Input mint address"},"positionRequestPubkey":{"type":"string","description":"Position request public key"},"positionPublicKey":{"type":"string","description":"Position public key"}},"required":["side","marketMint","sizeUsd","triggerPrice","collateralTokenAmount","collateralUsd","collateralMint","inputMint","positionRequestPubkey","positionPublicKey"],"additionalProperties":false},"description":"Limit order details including trigger price, size, and collateral"}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}}]}