Sign in
Docs
0%

Transports

EVM lab MCP tools

The 5 tools /mcp offers for EVM lab, what each needs and an example call.

The EVM lab's networks and assignments, and read-only calls. These are the 5 tools of the evm backend; all MCP tools lists the other backends.

evm_get_assignment

One assignment: its brief in both languages and the starter contract. Never the hidden tests, never the reference solution.

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
idstring
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evm_get_assignment",
    "arguments": {}
  }
}

evm_list_assignments

The assignments, without their tests or solutions.

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
page_sizeintegerAt most 1000 (larger is coerced down); 0 means 1000.
page_tokenstringFrom the previous answer's next_page_token; "" for the first page.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evm_list_assignments",
    "arguments": {}
  }
}

evm_list_networks

The networks the platform knows: their chain id, the providers they are reached through (host names only), the methods the platform forwards to each, and what the last probe found (up, down, or answering as another chain than it claims).

Scopes: mcp:read · reads only

ArgumentTypeWhat it is
page_sizeintegerAt most 1000 (larger is coerced down); 0 means 1000.
page_tokenstringFrom the previous answer's next_page_token; "" for the first page.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evm_list_networks",
    "arguments": {}
  }
}

evm_rpc

Ask a network one read-only JSON-RPC question. A method the network's list does not carry is FAILED_PRECONDITION with reason METHOD_UNSUPPORTED (the method and the network in the details); an unknown network is the same with NETWORK_UNKNOWN. Counted against the caller's daily allowance.

Scopes: mcp:read · reads only · reaches outside the platform

ArgumentTypeWhat it is
methodstringThe JSON-RPC method.
networkstringThe network's id.
params_jsonstringThe parameters, as a JSON array in text; empty means none.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evm_rpc",
    "arguments": {}
  }
}

evm_simulate

Run one call against a network's public state at a block, in an embedded EVM: what it would return, the gas it would use, what it would emit, and why it would fail. Every account, code and storage slot the call touches is read from the network's public endpoint once and counted against the caller's daily network-call allowance; a call that reads more than the platform allows stops. Nothing is signed, sent or traced: a question about state, not a replay of anyone's transaction.

Scopes: mcp:read · reads only · reaches outside the platform

ArgumentTypeWhat it is
blockstringThe block the state is read at: a number, "latest" (the default), or a block hash; every read of this call is at that block.
datastringThe calldata, hex.
fromstringThe account the call comes from; the zero address when empty. No signature is needed and its balance is not checked.
gasstringGas for the call; the platform's cap applies when 0.
networkstringThe network's id.
tostringThe contract called; empty deploys data as creation code instead.
valuestringWei sent along, decimal; "0" when empty.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "evm_simulate",
    "arguments": {}
  }
}