MCP Server · Coming Q2 2026
Invarians
On-chain execution context for AI agents. Certified structural regime across L1, L2, and cross-chain bridges.
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"] )