invarians.com →
MCP Server · Coming Q2 2026
Invarians
On-chain execution context for AI agents. Certified structural regime across L1, L2, and cross-chain bridges.
Endpoint https://agentic.invarians.com/mcp · not yet live Auth Bearer <api_key> Protocol MCP 1.0 · JSON-RPC REST API invarians.com/developers · live now Discovery /.well-known/mcp.json · /.well-known/agent.json
Call sequence
Step 1 · Discovery
invarians_get_scope()
Discover certified state of all chains and bridges. Filter by actionable or bridge type. Call this first if the chain pair is not known in advance.
Step 2 · Certification
invarians_get_execution_context(from, to)
Certify a specific chain pair before acting. Returns a signed attestation. Call after get_scope or directly if the pair is known.
Tool 1 — invarians_get_scope · Coming Q2 2026
invarians_get_scope()
Returns the certified operational state of all chains and bridges in the Invarians scope. Each entry includes an actionable flag computed by Invarians — the agent reads one field and decides. No prior knowledge of chain regimes required.
actionable optional boolean If true, returns only chains and bridges where actionable = true
bridge_type optional string "native" or "ccip" — filter bridges by type
include_l2 optional boolean true by default
Response — get_scope() (condensed)
"scope": {
  "l1": [
    { "id": "ethereum",  "regime": "S1D1", "actionable": true,  "calibrated": true,  "certified_at": "2026-04-13T14:22:00Z" },
    { "id": "solana",    "regime": "S1D2", "actionable": true,  "calibrated": false, "certified_at": "2026-04-13T14:21:45Z" },
    { "id": "polygon",   "regime": "S2D1", "actionable": false, "calibrated": true,  "certified_at": "2026-04-13T14:21:50Z" }
  ],
  "bridges": [
    { "from": "ethereum", "to": "arbitrum", "type": "native", "state": "BS1", "actionable": true,  "calibrated": true  },
    { "from": "ethereum", "to": "optimism", "type": "native", "state": "BS1", "actionable": true,  "calibrated": false },
    { "from": "ethereum", "to": "solana",   "type": "ccip",   "state": "BS1", "actionable": true,  "calibrated": false }
  ]
},
"signature":   "inv_sig_abc123...",
"computed_at": "2026-04-13T14:22:15Z"
Tool 2 — invarians_get_execution_context · REST available now · MCP Q2 2026
invarians_get_execution_context(from, to)
Returns a signed attestation for a specific chain pair. Covers L1 regime, L2 regime, and bridge state simultaneously. The signature is HMAC-SHA256, verifiable via the /verify endpoint without an additional secret.
from required string Source chain — e.g. "ethereum", "solana"
to required string Target chain — e.g. "arbitrum", "base", "solana"
bridge optional string "native" or "ccip" — defaults to native if available
Response — get_execution_context("ethereum", "arbitrum")
"chain":             "arbitrum",
"oracle_status":     "OK",
"l1_regime":         "S1D1",
"l2_regime":         "S1D1",
"bridge_state":      "BS1",
"l2_verified":       true,
"data_age_seconds":  312,
"signature":         "inv_sig_..."
Field semantics
Field Values Agent behavior
actionable true / false true = proceed. false = do not act, regardless of reason. No knowledge of regime codes required.
calibrated true / false true = threshold from historical backtests (30d+). false = hardcoded threshold, lower statistical confidence. Signal is valid in both cases.
regime (L1/L2) S1D1 · S1D2 · S2D1 · S2D2 S1 = structure nominal · S2 = structure stressed · D1 = demand nominal · D2 = demand elevated. Use for fine-grained reasoning (HFT, RWA).
bridge_state / state BS1 · BS2 BS1 = nominal. BS2 = degraded or RMN pause — override: do not execute cross-chain regardless of L1/L2 regime.
signature string HMAC-SHA256. Verifiable via GET /verify. No additional secret required beyond API key.
computed_at / certified_at ISO 8601 Freshness check. Agent verifies data_age_seconds against its own latency tolerance.
Quick setup · Coming Q2 2026
Claude Desktop · Cursor · any MCP client
{
  "mcpServers": {
    "invarians": {
      "url":  "https://agentic.invarians.com/mcp",
      "auth": { "type": "bearer", "token": "<your_api_key>" }
    }
  }
}
Python SDK · generalist agent (no hardcoded pair)
# Agent discovers scope at runtime
scope = client.get_scope()

candidates = [
    b for b in scope["bridges"]
    if b["actionable"] and b["calibrated"]
]

ctx = client.get_execution_context(
    from_chain=candidates[0]["from"],
    to_chain=candidates[0]["to"]
)
Links