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
amsterdamnamed-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
| Field | Description |
|---|---|
engineVersion | Semver of mcp-execution-engine |
ceilings | maxGasLimit, defaultGasLimit, maxBytecodeBytes, maxTraceSteps, maxTxsPerBlock |
baselineForkId | Current mainnet EL baseline (osaka) — optional for comparisons |
namedForks | Berlin→Amsterdam lineage — order, predecessorId, successorId, role, activatedEips, advertised relatedEips, shapes |
eipIntroductions | When each EIP activated — use with predecessor compares (e.g. PUSH0 at Shanghai, predecessor Paris) |
eips | Runnable modules — comparison derived from eipIntroductions (predecessor vs introducedAt) |
allowedBaseHardforks | Lineage forks (berlin … amsterdam) plus aliases; glacier/BPO ids rejected |
Example
Tool call:
{}Output (abbreviated):
{
"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
- v0.132026-09-16namedForks are catalog capabilities (summary, relatedEips, shapes); generic hardfork questions are first-class.
- v0.112026-09-10EIP-7843 SLOTNUM in the live catalog (shapes: block).
- v0.102026-09-10ceilings.maxTxsPerBlock; shapes may include block (run_block).
- v0.92026-09-08shapes distinguish run_bytecode vs run_transaction (7708/8037 include transaction).
- v0.82026-09-02Implemented for public launch — not a local stdio product path.
- v0.72026-08-27baselineForkId (osaka) and fork role metadata for mainnet vs preview comparisons.
- v0.62026-08-27Modules describe opcodes and encoding; demo scenarios removed from the catalog.
- v0.52026-08-27Runnable EIP modules with questions and scenarios; stub EIPs and presets removed.
- v0.42026-07-22Live MCP tool page — gateway v0.1 stdio ships describe_capabilities.