Skip to content

Describe Capabilities

Status: Implemented — ships on the public MCP at launch. MCP tool: describe_capabilities. Public endpoint not live.

Purpose

Return a machine-readable snapshot of what this server can actually run: engine version, ceilings, named fork capabilities, inspectKinds, and runnable EIP modules. Each named fork describes a generic hardfork run (summary, keywords, shapes, advertised relatedEips) — you do not need to name an EIP. Each EIP module describes what became possible (opcodes, encoding rules, keywords, shapes) — not demo programs. Unimplemented EIPs are omitted. Use shapes to pick run_bytecode, run_transaction, run_block, generate, or inspect.

When to use

  • First call when connecting — learn forks, modules, and limits before simulating
  • Answer support questions: “Is Amsterdam available?”, “Which EIPs does that fork advertise?”, “Is EIP-8024 supported?”, “Can I run Amsterdam bytecode with DUPN?”
  • Read the amsterdam named-fork row for a generic preview run; read opcode encoding so you can construct bytecode (this tool does not hand you a canned example program)

MCP tool name

describe_capabilities

Inputs

None required. Pass {} or omit arguments.

Outputs

FieldDescription
engineVersionSemver of mcp-execution-engine
ceilingsmaxGasLimit, defaultGasLimit, maxBytecodeBytes, maxTraceSteps, maxTxsPerBlock
baselineForkIdCurrent mainnet EL baseline (osaka) — optional for comparisons
namedForksBerlin→Amsterdam lineage — order, predecessorId, successorId, role, activatedEips, advertised relatedEips, shapes
eipIntroductionsWhen each EIP activated — use with predecessor compares (e.g. PUSH0 at Shanghai, predecessor Paris)
eipsRunnable modules — comparison derived from eipIntroductions (predecessor vs introducedAt)
allowedBaseHardforksLineage forks (berlinamsterdam) plus aliases; glacier/BPO ids rejected

Example

Tool call:

json
{}

Output (abbreviated):

json
{
  "engineVersion": "0.1.0",
  "baselineForkId": "osaka",
  "namedForks": [
    { "id": "osaka", "role": "current", "aliases": ["mainnet-el"], "relatedEips": [7883, 7951], "…": "…" },
    { "id": "amsterdam", "role": "preview", "aliases": ["glamsterdam"], "relatedEips": [7708, 7843, 7928, 8024, 8037, 8038], "…": "…" }
  ],
  "eips": [{
    "eip": 8024,
    "runnable": true,
    "comparison": { "baselineForkId": "osaka", "previewForkId": "amsterdam", "note": "…" },
    "summary": "Amsterdam EVM executes DUPN, SWAPN, and EXCHANGE. Supply any bytecode; this server does not ship demo programs.",
    "shapes": ["simulate"],
    "opcodes": [
      { "name": "DUPN", "opcodeHex": "0xe6", "effect": "Copy the stack item at depth n onto the top.", "immediate": { "encoding": "n = (immediate + 145) mod 256; …", "minDepth": 17, "maxDepth": 235 } }
    ]
  }]
}

JSON schema

describe_capabilities.input.json

Changelog

Describe Capabilities Changelog
  1. v0.132026-09-16namedForks are catalog capabilities (summary, relatedEips, shapes); generic hardfork questions are first-class.
  2. v0.112026-09-10EIP-7843 SLOTNUM in the live catalog (shapes: block).
  3. v0.102026-09-10ceilings.maxTxsPerBlock; shapes may include block (run_block).
  4. v0.92026-09-08shapes distinguish run_bytecode vs run_transaction (7708/8037 include transaction).
  5. v0.82026-09-02Implemented for public launch — not a local stdio product path.
  6. v0.72026-08-27baselineForkId (osaka) and fork role metadata for mainnet vs preview comparisons.
  7. v0.62026-08-27Modules describe opcodes and encoding; demo scenarios removed from the catalog.
  8. v0.52026-08-27Runnable EIP modules with questions and scenarios; stub EIPs and presets removed.
  9. v0.42026-07-22Live MCP tool page — gateway v0.1 stdio ships describe_capabilities.

Use = end-user reference. Internals = architecture and operations. Each section carries its own micro-changelog.