runtime

runtime: 26 детерминированных инструментов для разработки, безопасности и EVM

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноТолько чтение

Что умеет

  • Форматировать, минифицировать и валидировать JSON
  • Декодировать JWT и кодировать base64/URL
  • Считать keccak256, селекторы функций и адреса CREATE2
  • Декодировать calldata и хранилище EVM-контрактов
  • Генерировать UUID и случайные строки

Какие данные видит

Ассистент выполняет расчёты по данным, переданным пользователем; внешние сети не запрашиваются, авторизация не требуется.

Нужен ли аккаунт

Не нужен: сервер работает без входа

runtime — самостоятельно размещаемый MCP-сервер с утилитами для разработчиков: форматирование и валидация JSON, кодирование base64 и URL, работа с хэшами и JWT, а также инструменты для EVM — расчёт keccak256, селекторов функций, адресов CREATE2 и декодирование calldata. Полезен при отладке смарт-контрактов и повседневных задачах разработки.

Как подключить

Как подключить runtime к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://mcp.formatho.com/mcp

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить runtime к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://mcp.formatho.com/mcp

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить runtime к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://mcp.formatho.com/mcp

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (26)

Технические названия из tools/list. Нужны только разработчикам.

json.formatValidate and pretty-print JSON with a configurable indent level. [data · v1.0.0 · deterministic: true · permissions: none]
json.minifyValidate JSON and strip all insignificant whitespace. [data · v1.0.0 · deterministic: true · permissions: none]
json.validateValidate JSON and report the parse error position if invalid. [data · v1.0.0 · deterministic: true · permissions: none]
base64.encodeBase64-encode text (standard alphabet). [data · v1.0.0 · deterministic: true · permissions: none]
base64.decodeBase64-decode to text. [data · v1.0.0 · deterministic: true · permissions: none]
url.encodePercent-encode text (component encoding). [network · v1.0.0 · deterministic: true · permissions: none]
url.decodeDecode percent-encoded text. [network · v1.0.0 · deterministic: true · permissions: none]
slug.generateConvert text to a URL-safe kebab-case slug. [dev · v1.0.0 · deterministic: true · permissions: none]
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]
uuid.v4Generate random UUID v4 values. [security · v1.0.0 · deterministic: false · permissions: none]
random.stringGenerate a cryptographically random alphanumeric string. [security · v1.0.0 · deterministic: false · permissions: none]
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]
evm.keccak256Keccak-256 (Ethereum flavor, NOT NIST SHA3-256) of arbitrary hex or text. [web3 · v1.0.0 · deterministic: true · permissions: none]
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]
evm.create2_addressCompute the deterministic CREATE2 address: keccak256(0xff ‖ factory ‖ salt ‖ initCodeHash)[12:]. [web3 · v1.0.0 · deterministic: true · permissions: none]
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]
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]
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]
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]
timestamp.convertConvert Unix seconds/milliseconds to ISO 8601 (UTC) and back. [dev · v1.0.0 · deterministic: true · permissions: none]
regex.testTest a regular expression against text: match result plus all capture groups. [dev · v1.0.0 · deterministic: true · permissions: none]
case.convertConvert an identifier between camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case. [dev · v1.0.0 · deterministic: true · permissions: none]
hex.encodeEncode text to hex, or decode hex (with or without 0x) to text. [data · v1.0.0 · deterministic: true · permissions: none]
evm.checksum_addressEIP-55 checksum an Ethereum address, or verify a checksummed one. [web3 · v1.0.0 · deterministic: true · permissions: none]
evm.unit_convertConvert EVM amounts between wei, gwei, and ether with exact BigInt math. [web3 · v1.0.0 · deterministic: true · permissions: none]
formatho.registryList every registered Formatho tool with version, category, deterministic flag, permissions, and Formatho Verified status. [meta · v1.0.0 · deterministic: true · permissions: none]