# PJM vs MISO Energy Arbitrage Oracle

> PJM/MISO energy arbitrage. Intel TDX attested, on-chain every 60 min. MCP tools for AI agents.

- name: io.github.dornansgar390-hue/energy-oracle
- version: 1.3.1
- connection class: unknown (unknown)
- trust: 61/100 flags: unreachable
- quality: 89/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.dornansgar390-hue%2Fenergy-oracle
- tools: https://api.protogrid.dev/v1/servers/io.github.dornansgar390-hue%2Fenergy-oracle/tools

**Not classified yet.** The remote endpoints have not been probed successfully, or the listing has nothing to connect to.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "energy-oracle": {
      "type": "http",
      "url": "https://energy-arbitrage.io/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 0
- freshness: 85
- provenance: 80
- drivers: +repository +namespace-matches-repo -unreachable(12 failures) ~updated-39d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 89/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,216 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool history not recorded yet

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 1,216 tokens to load them all
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.dornansgar390-hue/energy-oracle.svg)](https://protogrid.dev/servers/io.github.dornansgar390-hue/energy-oracle)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://energy-arbitrage.io/mcp (streamable-http, auth none, reachable false, uptime30d 0.071428575)

## Packages

_none_

## Tools (9)

- `build_subscription_tx`: 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.
- `check_subscription`: Check whether an EVM address has an active subscription. Returns expiry timestamp and human-readable info.
- `get_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.
- `get_oracle_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.
- `get_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.
- `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.
- `get_subscription_cost`: Current subscription cost in RLC (dynamic, pegged to USD). Returns live cost from on-chain contract.
- `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.
- `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.
