MCP Server

PJM vs MISO Energy Arbitrage Oracle

io.github.dornansgar390-hue/energy-oracle

What this MCP does

Delivers subscription-gated PJM and MISO wholesale electricity arbitrage signals, profitability checks, and on-chain subscription transaction support.

build_subscription_tx
Build Subscription Transaction
Generate the cryptographic transaction calldata required to purchase a subscription on Arbitrum One. Output covers a two-step payload: ERC-20 RLC token approve followed by contract purchaseSubscription. This tool strictly builds calldata and does not submit transactions; the calling agent must sign and broadcast the payload externally.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'build_subscription_txArguments', 'required': ['agent_address', 'tier'], 'properties': {'tier': {'type': 'integer', 'title': 'Tier', 'description': 'Subscription tier: 0 = 1 day ($20), 1 = 3 days ($50), 2 = 7 days ($100)'}, 'agent_address': {'type': 'string', 'title': 'Agent Address', 'description': 'EVM address of the agent that will receive the subscription, e.g. 0x1234...'}, 'sponsor_address': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Sponsor Address', 'default': None, 'description': "Optional EVM address of a sponsor who pays for the agent's subscription"}}}
Output schema
{'type': 'object', 'title': 'build_subscription_txOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
check_subscription
Check Subscription
Check whether an EVM address has an active subscription. Returns expiry timestamp and human-readable info.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'check_subscriptionArguments', 'required': ['address'], 'properties': {'address': {'type': 'string', 'title': 'Address', 'description': "The agent's EVM address (0x...), e.g. 0x1234..."}}}
Output schema
{'type': 'object', 'title': 'check_subscriptionOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_connection_info
Connection Info
Retrieve integration and transport configuration guides for connecting this oracle to AI clients (Claude Desktop, Cursor, MCP clients), including the complete list of accessible tools and capabilities.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_connection_infoArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'get_connection_infoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_oracle_info
Oracle General Info
Retrieve comprehensive metadata for the PJM vs MISO Energy Arbitrage Oracle: smart contract address, Arbitrum One network, Intel TDX attestation status, and available subscription pricing tiers. Use as the primary initialization step for any agent workflow.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_oracle_infoArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'get_oracle_infoOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_oracle_status
Oracle Status
Check the real-time operational status of the oracle contract. Returns whether the system is ACTIVE or in MAINTENANCE, along with total active subscribers. Use this tool to verify system availability before requesting premium telemetry.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_oracle_statusArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'get_oracle_statusOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_sdk_template
Get SDK Template
Get the FULL Python SDK code (ai_agent_oracle_client.py). Auto-cycle: check subscription → purchase (approve + purchase, RLC) → read signal. Suitable for non-MCP agents running on web3.py.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_sdk_templateArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'get_sdk_templateOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_subscription_cost
Get Subscription Cost
Current subscription cost in RLC (dynamic, pegged to USD). Returns live cost from on-chain contract.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_subscription_costArguments', 'required': ['tier'], 'properties': {'tier': {'type': 'integer', 'title': 'Tier', 'description': 'Subscription tier: 0 = 1 day ($20), 1 = 3 days ($50), 2 = 7 days ($100)'}}}
Output schema
{'type': 'object', 'title': 'get_subscription_costOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
get_telemetry
Get Telemetry
Retrieve the premium analytical energy signal computed inside the Intel TDX enclave. Returns the complete spatial arbitrage vector (direction: -1, 0, +1) and current price spread index between PJM and MISO. Executed as a static on-chain view call. Requires an active, unexpired paid RLC subscription for the provided address.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'get_telemetryArguments', 'required': ['subscriber_address'], 'properties': {'subscriber_address': {'type': 'string', 'title': 'Subscriber Address', 'description': 'EVM address that has an active RLC subscription, e.g. 0x1234...'}}}
Output schema
{'type': 'object', 'title': 'get_telemetryOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
is_arbitrage_profitable
Is Arbitrage Profitable
Evaluate the instantaneous financial viability of spatial electricity arbitrage between PJM West Hub and MISO Indiana Hub wholesale markets. Returns a boolean profitability indicator. Use as a zero-friction pre-flight check before deciding to purchase a full telemetry subscription.
Read only Open world Idempotent
Input schema
{'type': 'object', 'title': 'is_arbitrage_profitableArguments', 'properties': {}}
Output schema
{'type': 'object', 'title': 'is_arbitrage_profitableOutput', 'required': ['result'], 'properties': {'result': {'type': 'string', 'title': 'Result'}}}
Added
get_sdk_template
Sept. 21, 2026, 2:41 a.m.
Added
get_connection_info
Sept. 21, 2026, 2:41 a.m.
Added
build_subscription_tx
Sept. 21, 2026, 2:41 a.m.
Added
get_telemetry
Sept. 21, 2026, 2:41 a.m.
Added
is_arbitrage_profitable
Sept. 21, 2026, 2:41 a.m.
Added
get_subscription_cost
Sept. 21, 2026, 2:41 a.m.
Added
check_subscription
Sept. 21, 2026, 2:41 a.m.
Added
get_oracle_status
Sept. 21, 2026, 2:41 a.m.
Added
get_oracle_info
Sept. 21, 2026, 2:41 a.m.