com.formatho/runtime
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
| Author | com.formatho |
|---|---|
| Access | mixed |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 159 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"runtime": {
"url": "https://mcp.formatho.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (26)
json.formatValidate and pretty-print JSON with a configurable indent level. [data · v1.0.0 · deterministic: true · permissions: none]
Parameters:
json(required) — stringindent— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
json.minifyValidate JSON and strip all insignificant whitespace. [data · v1.0.0 · deterministic: true · permissions: none]
Parameters:
json(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
json.validateValidate JSON and report the parse error position if invalid. [data · v1.0.0 · deterministic: true · permissions: none]
Parameters:
json(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base64.encodeBase64-encode text (standard alphabet). [data · v1.0.0 · deterministic: true · permissions: none]
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
base64.decodeBase64-decode to text. [data · v1.0.0 · deterministic: true · permissions: none]
Parameters:
base64(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
url.encodePercent-encode text (component encoding). [network · v1.0.0 · deterministic: true · permissions: none]
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
url.decodeDecode percent-encoded text. [network · v1.0.0 · deterministic: true · permissions: none]
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
slug.generateConvert text to a URL-safe kebab-case slug. [dev · v1.0.0 · deterministic: true · permissions: none]
Parameters:
text(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
hash.textHash text with md5/sha1/sha256/sha384/sha512 (hex output). MD5/SHA1 are for compatibility checks only, not security. [security · v1.0.0 · deterministic: true · permissions: none]
Parameters:
text(required) — stringalgorithm— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
uuid.v4Generate random UUID v4 values. [security · v1.0.0 · deterministic: false · permissions: none]
Parameters:
count— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
random.stringGenerate a cryptographically random alphanumeric string. [security · v1.0.0 · deterministic: false · permissions: none]
Parameters:
length— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
jwt.decodeDecode a JWT (JWS compact serialization) header and claims WITHOUT verifying the signature. Reports expiry status from the exp claim. [security · v1.0.0 · deterministic: true · permissions: none]
Parameters:
token(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.keccak256Keccak-256 (Ethereum flavor, NOT NIST SHA3-256) of arbitrary hex or text. [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
data(required) — stringencoding— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.function_selectorCompute the 4-byte function selector from a canonical signature, with reverse lookup against common signatures. [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
selector— stringsignature— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.create2_addressCompute the deterministic CREATE2 address: keccak256(0xff ‖ factory ‖ salt ‖ initCodeHash)[12:]. [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
factory(required) — stringsalt(required) — stringinitCodeHash(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.storage_slotCompute Solidity storage slots: simple variables, mapping values (keccak(key ‖ p)), and dynamic array elements (keccak(p) + index). [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
baseSlot(required) — integerkind— stringkeyHex— stringarrayIndex— integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.decode_calldataExtract the 4-byte selector from raw calldata, match it against common signatures, and decode static (word-based) arguments: address, uint256, int256, bytes32, bool. [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
calldata(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.v4_hook_permissionsUniswap v4 hook permissions: compute the 14-bit permission field from hook-call names, or decode the field from a hook address (bits live in the LOW 14 bits: address & 0x3FFF). [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
calls— arrayaddress— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
erc4626.mathExact EIP-4626 vault math in BigInt: convert assets to shares (round down) and shares to assets (round down), with optional virtual offsets. [defi · v1.0.0 · deterministic: true · permissions: none]
Parameters:
totalAssets(required) — stringtotalSupply(required) — stringamount(required) — stringdirection— stringvirtualAssets— stringvirtualShares— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
timestamp.convertConvert Unix seconds/milliseconds to ISO 8601 (UTC) and back. [dev · v1.0.0 · deterministic: true · permissions: none]
Parameters:
iso— stringvalue— ['string', 'number']
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
regex.testTest a regular expression against text: match result plus all capture groups. [dev · v1.0.0 · deterministic: true · permissions: none]
Parameters:
pattern(required) — stringtext(required) — stringflags— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
case.convertConvert an identifier between camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case. [dev · v1.0.0 · deterministic: true · permissions: none]
Parameters:
text(required) — stringto— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
hex.encodeEncode text to hex, or decode hex (with or without 0x) to text. [data · v1.0.0 · deterministic: true · permissions: none]
Parameters:
hex— stringtext— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.checksum_addressEIP-55 checksum an Ethereum address, or verify a checksummed one. [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
address(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
evm.unit_convertConvert EVM amounts between wei, gwei, and ether with exact BigInt math. [web3 · v1.0.0 · deterministic: true · permissions: none]
Parameters:
value(required) — stringto— stringfrom— string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
formatho.registryList every registered Formatho tool with version, category, deterministic flag, permissions, and Formatho Verified status. [meta · v1.0.0 · deterministic: true · permissions: none]
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.