runtime
Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (26)
- LOWin json.format
- LOWin json.minify
- LOWin json.validate
- LOWin base64.encode
- LOWin base64.decode
- LOWin url.encode
- LOWin url.decode
- LOWin slug.generate
- LOWin hash.text
- LOWin uuid.v4
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"runtime": {
"url": "https://mcp.formatho.com/mcp"
}
}
}Remote-Endpunkte
https://mcp.formatho.com/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (26)
⚪json.format(json, indent)
Validate and pretty-print JSON with a configurable indent level. [data · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"json": {
"type": "string",
"minLength": 1
},
"indent": {
"type": "integer",
"minimum": 0,
"maximum": 8,
"default": 2
}
},
"required": [
"json"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪json.minify(json)
Validate JSON and strip all insignificant whitespace. [data · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"json": {
"type": "string",
"minLength": 1
}
},
"required": [
"json"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢json.validate(json)
Validate JSON and report the parse error position if invalid. [data · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"json": {
"type": "string",
"minLength": 1
}
},
"required": [
"json"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪base64.encode(text)
Base64-encode text (standard alphabet). [data · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪base64.decode(base64)
Base64-decode to text. [data · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"base64": {
"type": "string",
"minLength": 1
}
},
"required": [
"base64"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪url.encode(text)
Percent-encode text (component encoding). [network · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪url.decode(text)
Decode percent-encoded text. [network · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪slug.generate(text)
Convert text to a URL-safe kebab-case slug. [dev · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪hash.text(text, algorithm)
Hash 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]
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"algorithm": {
"type": "string",
"enum": [
"md5",
"sha1",
"sha256",
"sha384",
"sha512"
],
"default": "sha256"
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪uuid.v4(count)
Generate random UUID v4 values. [security · v1.0.0 · deterministic: false · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 1
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪random.string(length)
Generate a cryptographically random alphanumeric string. [security · v1.0.0 · deterministic: false · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"length": {
"type": "integer",
"minimum": 8,
"maximum": 512,
"default": 32
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪jwt.decode(token)
Decode 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]
Eingabe-Schema
{
"type": "object",
"properties": {
"token": {
"type": "string",
"minLength": 10
}
},
"required": [
"token"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪evm.keccak256(data, encoding)
Keccak-256 (Ethereum flavor, NOT NIST SHA3-256) of arbitrary hex or text. [web3 · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"data": {
"type": "string",
"minLength": 1
},
"encoding": {
"type": "string",
"enum": [
"hex",
"utf8"
],
"default": "utf8"
}
},
"required": [
"data"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢evm.function_selector(signature, selector)
Compute the 4-byte function selector from a canonical signature, with reverse lookup against common signatures. [web3 · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"signature": {
"type": "string",
"minLength": 3
},
"selector": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{8}$"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢evm.create2_address(factory, salt, initCodeHash)
Compute the deterministic CREATE2 address: keccak256(0xff ‖ factory ‖ salt ‖ initCodeHash)[12:]. [web3 · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"factory": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"salt": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{1,64}$"
},
"initCodeHash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$"
}
},
"required": [
"factory",
"salt",
"initCodeHash"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢evm.storage_slot(kind, baseSlot, keyHex, arrayIndex)
Compute 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]
Eingabe-Schema
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"simple",
"mapping",
"array"
],
"default": "mapping"
},
"baseSlot": {
"type": "integer",
"minimum": 0
},
"keyHex": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{1,64}$"
},
"arrayIndex": {
"type": "integer",
"minimum": 0
}
},
"required": [
"baseSlot"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢evm.decode_calldata(calldata)
Extract 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]
Eingabe-Schema
{
"type": "object",
"properties": {
"calldata": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]+$"
}
},
"required": [
"calldata"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢evm.v4_hook_permissions(calls, address)
Uniswap 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]
Eingabe-Schema
{
"type": "object",
"properties": {
"calls": {
"type": "array",
"items": {
"type": "string",
"enum": [
"beforeInitialize",
"afterInitialize",
"beforeAddLiquidity",
"afterAddLiquidity",
"beforeRemoveLiquidity",
"afterRemoveLiquidity",
"beforeSwap",
"afterSwap",
"beforeDonate",
"afterDonate",
"beforeSwapReturnsDelta",
"afterSwapReturnsDelta",
"afterAddLiquidityReturnsDelta",
"afterRemoveLiquidityReturnsDelta"
]
}
},
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪erc4626.math(totalAssets, totalSupply, amount, direction, virtualAssets, ...)
Exact 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]
Eingabe-Schema
{
"type": "object",
"properties": {
"totalAssets": {
"type": "string",
"pattern": "^\\d+$"
},
"totalSupply": {
"type": "string",
"pattern": "^\\d+$"
},
"amount": {
"type": "string",
"pattern": "^\\d+$"
},
"direction": {
"type": "string",
"enum": [
"assetsToShares",
"sharesToAssets"
],
"default": "assetsToShares"
},
"virtualAssets": {
"type": "string",
"pattern": "^\\d+$",
"default": "0"
},
"virtualShares": {
"type": "string",
"pattern": "^\\d+$",
"default": "0"
}
},
"required": [
"totalAssets",
"totalSupply",
"amount"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪timestamp.convert(value, iso)
Convert Unix seconds/milliseconds to ISO 8601 (UTC) and back. [dev · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"value": {
"type": [
"string",
"number"
]
},
"iso": {
"type": "string"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪regex.test(pattern, text, flags)
Test a regular expression against text: match result plus all capture groups. [dev · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"pattern": {
"type": "string",
"minLength": 1
},
"text": {
"type": "string"
},
"flags": {
"type": "string",
"maxLength": 8,
"default": ""
}
},
"required": [
"pattern",
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪case.convert(text, to)
Convert an identifier between camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case. [dev · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1
},
"to": {
"type": "string",
"enum": [
"camel",
"snake",
"kebab",
"constant",
"title"
],
"default": "snake"
}
},
"required": [
"text"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪hex.encode(text, hex)
Encode text to hex, or decode hex (with or without 0x) to text. [data · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"hex": {
"type": "string"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪evm.checksum_address(address)
EIP-55 checksum an Ethereum address, or verify a checksummed one. [web3 · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
}
},
"required": [
"address"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪evm.unit_convert(value, from, to)
Convert EVM amounts between wei, gwei, and ether with exact BigInt math. [web3 · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {
"value": {
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$"
},
"from": {
"type": "string",
"enum": [
"wei",
"gwei",
"ether"
],
"default": "ether"
},
"to": {
"type": "string",
"enum": [
"wei",
"gwei",
"ether"
],
"default": "wei"
}
},
"required": [
"value"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢formatho.registry
List every registered Formatho tool with version, category, deterministic flag, permissions, and Formatho Verified status. [meta · v1.0.0 · deterministic: true · permissions: none]
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}Aufgezeichnete Aufrufbeispiele
evm.v4_hook_permissionsEingabeparameter
{
"calls": [
"item1",
"item2"
],
"address": "example-0"
}Ausgabeergebnis
{
"result": {
"content": [
{
"type": "text",
"text": "MCP error -32602: Input validation error: Invalid arguments for tool evm.v4_hook_permissions: Invalid enum value. Expected 'beforeInitialize' | 'afterInitialize' | 'beforeAddLiquidity' | 'afterAddLiquidity' | 'beforeRemoveLiquidity' | 'afterRemoveLiquidity' | 'beforeSwap' | 'afterSwap' | 'beforeDonate' | 'afterDonate' | 'beforeSwapReturnsDelta' | 'afterSwapReturnsDelta' | 'afterAddLiquidityReturnsDelta' | 'afterRemoveLiquidityReturnsDelta', received 'item1' at calls[0]\nInvalid enum value. Expected 'beforeInitialize' | 'afterInitialize' | 'beforeAddLiquidity' | 'afterAddLiquidity' | 'beforeRemoveLiquidity' | 'afterRemoveLiquidity' | 'beforeSwap' | 'afterSwap' | 'beforeDonate' | 'afterDonate' | 'beforeSwapReturnsDelta' | 'afterSwapReturnsDelta' | 'afterAddLiquidityReturnsDelta' | 'afterRemoveLiquidityReturnsDelta', received 'item2' at calls[1]\nInvalid at address"
}
],
"isError": true
},
"durationMs": 49
}Community
Nachweis