Skip to content
Formatho logo

Formatho MCP server

Which servers in the official MCP registry are Formatho's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-19

← Back to Formatho

Whose server it is
  • Registry namecom.formatho/runtimeverified in the MCP registry

The registry name sits under formatho.com. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-19
  • Stateanswerschecked 2026-10-19
  • Tools26
  • Server calls itselfformatho-runtime
  • Server version0.3.0
  • Protocol version2025-06-18

On 2026-10-19 the server answered initialize and tools/list without a sign-in. First answer in 440 ms.

Measured dailydaily checks: 2, the first on 2026-10-19
  • Answeredmeasuring2 of the 7 daily checks it takes to print a share
  • Median first answer402 ms
  • Space in an agent's context≈ 2,823 tokensthe definitions of all its tools (26), which an agent carries on every turn
  • Tool definitionsC · 67 of 100
  • Parameters without a description: in 25 of 26
  • Not saying whether it only reads or can destroy: 26 of 26

Worth a look

None of the five warning signs in these definitions.

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The state of vendors' MCP servers: method and numbers →

Tools it offers26 tools · read 2026-10-19
  • json.format

    Validate and pretty-print JSON with a configurable indent level. [data · v1.0.0 · deterministic: true · permissions: none]

  • json.minify

    Validate JSON and strip all insignificant whitespace. [data · v1.0.0 · deterministic: true · permissions: none]

  • json.validate

    Validate JSON and report the parse error position if invalid. [data · v1.0.0 · deterministic: true · permissions: none]

  • base64.encode

    Base64-encode text (standard alphabet). [data · v1.0.0 · deterministic: true · permissions: none]

  • base64.decode

    Base64-decode to text. [data · v1.0.0 · deterministic: true · permissions: none]

  • url.encode

    Percent-encode text (component encoding). [network · v1.0.0 · deterministic: true · permissions: none]

  • url.decode

    Decode percent-encoded text. [network · v1.0.0 · deterministic: true · permissions: none]

  • slug.generate

    Convert text to a URL-safe kebab-case slug. [dev · v1.0.0 · deterministic: true · permissions: none]

  • hash.text

    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]

  • uuid.v4

    Generate random UUID v4 values. [security · v1.0.0 · deterministic: false · permissions: none]

  • random.string

    Generate a cryptographically random alphanumeric string. [security · v1.0.0 · deterministic: false · permissions: none]

  • jwt.decode

    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]

  • evm.keccak256

    Keccak-256 (Ethereum flavor, NOT NIST SHA3-256) of arbitrary hex or text. [web3 · v1.0.0 · deterministic: true · permissions: none]

  • evm.function_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]

  • evm.create2_address

    Compute the deterministic CREATE2 address: keccak256(0xff ‖ factory ‖ salt ‖ initCodeHash)[12:]. [web3 · v1.0.0 · deterministic: true · permissions: none]

  • evm.storage_slot

    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]

  • evm.decode_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]

  • evm.v4_hook_permissions

    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]

  • erc4626.math

    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]

  • timestamp.convert

    Convert Unix seconds/milliseconds to ISO 8601 (UTC) and back. [dev · v1.0.0 · deterministic: true · permissions: none]

  • regex.test

    Test a regular expression against text: match result plus all capture groups. [dev · v1.0.0 · deterministic: true · permissions: none]

  • case.convert

    Convert an identifier between camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case. [dev · v1.0.0 · deterministic: true · permissions: none]

  • hex.encode

    Encode text to hex, or decode hex (with or without 0x) to text. [data · v1.0.0 · deterministic: true · permissions: none]

  • evm.checksum_address

    EIP-55 checksum an Ethereum address, or verify a checksummed one. [web3 · v1.0.0 · deterministic: true · permissions: none]

  • evm.unit_convert

    Convert EVM amounts between wei, gwei, and ether with exact BigInt math. [web3 · v1.0.0 · deterministic: true · permissions: none]

  • 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]

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "runtime": {
      "type": "http",
      "url": "https://mcp.formatho.com/mcp"
    }
  }
}

Also shipped through: oci

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.