Self-hosted MCP server: 26 deterministic dev, security, and EVM tools.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Base64-decode to text. [data · v1.0.0 · deterministic: true · permissions: none]
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Base64-decode to text. [data · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| base64* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"base64"
],
"properties": {
"base64": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Base64-encode text (standard alphabet). [data · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}Convert an identifier between camelCase, snake_case, kebab-case, CONSTANT_CASE, and Title Case. [dev · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| to | string | |
| text* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"to": {
"enum": [
"camel",
"snake",
"kebab",
"constant",
"title"
],
"type": "string",
"default": "snake"
},
"text": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}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]
| Argument | Type | Description |
|---|---|---|
| amount* | string | |
| direction | string | |
| totalAssets* | string | |
| totalSupply* | string | |
| virtualAssets | string | |
| virtualShares | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"totalAssets",
"totalSupply",
"amount"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^\\d+$"
},
"direction": {
"enum": [
"assetsToShares",
"sharesToAssets"
],
"type": "string",
"default": "assetsToShares"
},
"totalAssets": {
"type": "string",
"pattern": "^\\d+$"
},
"totalSupply": {
"type": "string",
"pattern": "^\\d+$"
},
"virtualAssets": {
"type": "string",
"default": "0",
"pattern": "^\\d+$"
},
"virtualShares": {
"type": "string",
"default": "0",
"pattern": "^\\d+$"
}
},
"additionalProperties": false
}EIP-55 checksum an Ethereum address, or verify a checksummed one. [web3 · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| address* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
}
},
"additionalProperties": false
}Compute the deterministic CREATE2 address: keccak256(0xff ‖ factory ‖ salt ‖ initCodeHash)[12:]. [web3 · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| salt* | string | |
| factory* | string | |
| initCodeHash* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"factory",
"salt",
"initCodeHash"
],
"properties": {
"salt": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{1,64}$"
},
"factory": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
},
"initCodeHash": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{64}$"
}
},
"additionalProperties": false
}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]
| Argument | Type | Description |
|---|---|---|
| calldata* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"calldata"
],
"properties": {
"calldata": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]+$"
}
},
"additionalProperties": false
}Compute the 4-byte function selector from a canonical signature, with reverse lookup against common signatures. [web3 · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| selector | string | |
| signature | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"selector": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{8}$"
},
"signature": {
"type": "string",
"minLength": 3
}
},
"additionalProperties": false
}Keccak-256 (Ethereum flavor, NOT NIST SHA3-256) of arbitrary hex or text. [web3 · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| data* | string | |
| encoding | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"data"
],
"properties": {
"data": {
"type": "string",
"minLength": 1
},
"encoding": {
"enum": [
"hex",
"utf8"
],
"type": "string",
"default": "utf8"
}
},
"additionalProperties": false
}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]
| Argument | Type | Description |
|---|---|---|
| kind | string | |
| keyHex | string | |
| baseSlot* | integer | |
| arrayIndex | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"baseSlot"
],
"properties": {
"kind": {
"enum": [
"simple",
"mapping",
"array"
],
"type": "string",
"default": "mapping"
},
"keyHex": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{1,64}$"
},
"baseSlot": {
"type": "integer",
"minimum": 0
},
"arrayIndex": {
"type": "integer",
"minimum": 0
}
},
"additionalProperties": false
}Convert EVM amounts between wei, gwei, and ether with exact BigInt math. [web3 · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| to | string | |
| from | string | |
| value* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"value"
],
"properties": {
"to": {
"enum": [
"wei",
"gwei",
"ether"
],
"type": "string",
"default": "wei"
},
"from": {
"enum": [
"wei",
"gwei",
"ether"
],
"type": "string",
"default": "ether"
},
"value": {
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$"
}
},
"additionalProperties": false
}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]
| Argument | Type | Description |
|---|---|---|
| calls | array | |
| address | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"calls": {
"type": "array",
"items": {
"enum": [
"beforeInitialize",
"afterInitialize",
"beforeAddLiquidity",
"afterAddLiquidity",
"beforeRemoveLiquidity",
"afterRemoveLiquidity",
"beforeSwap",
"afterSwap",
"beforeDonate",
"afterDonate",
"beforeSwapReturnsDelta",
"afterSwapReturnsDelta",
"afterAddLiquidityReturnsDelta",
"afterRemoveLiquidityReturnsDelta"
],
"type": "string"
}
},
"address": {
"type": "string",
"pattern": "^0x[0-9a-fA-F]{40}$"
}
},
"additionalProperties": false
}List every registered Formatho tool with version, category, deterministic flag, permissions, and Formatho Verified status. [meta · v1.0.0 · deterministic: true · permissions: none]
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}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]
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| algorithm | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
},
"algorithm": {
"enum": [
"md5",
"sha1",
"sha256",
"sha384",
"sha512"
],
"type": "string",
"default": "sha256"
}
},
"additionalProperties": false
}Encode text to hex, or decode hex (with or without 0x) to text. [data · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| hex | string | |
| text | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"hex": {
"type": "string"
},
"text": {
"type": "string"
}
},
"additionalProperties": false
}Validate and pretty-print JSON with a configurable indent level. [data · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| json* | string | |
| indent | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"json"
],
"properties": {
"json": {
"type": "string",
"minLength": 1
},
"indent": {
"type": "integer",
"default": 2,
"maximum": 8,
"minimum": 0
}
},
"additionalProperties": false
}Validate JSON and strip all insignificant whitespace. [data · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| json* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"json"
],
"properties": {
"json": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Validate JSON and report the parse error position if invalid. [data · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| json* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"json"
],
"properties": {
"json": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}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]
| Argument | Type | Description |
|---|---|---|
| token* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"minLength": 10
}
},
"additionalProperties": false
}Generate a cryptographically random alphanumeric string. [security · v1.0.0 · deterministic: false · permissions: none]
| Argument | Type | Description |
|---|---|---|
| length | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"length": {
"type": "integer",
"default": 32,
"maximum": 512,
"minimum": 8
}
},
"additionalProperties": false
}Test a regular expression against text: match result plus all capture groups. [dev · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| text* | string | |
| flags | string | |
| pattern* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"pattern",
"text"
],
"properties": {
"text": {
"type": "string"
},
"flags": {
"type": "string",
"default": "",
"maxLength": 8
},
"pattern": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Convert text to a URL-safe kebab-case slug. [dev · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"minLength": 1
}
},
"additionalProperties": false
}Convert Unix seconds/milliseconds to ISO 8601 (UTC) and back. [dev · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| iso | string | |
| value | string | number |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"iso": {
"type": "string"
},
"value": {
"type": [
"string",
"number"
]
}
},
"additionalProperties": false
}Decode percent-encoded text. [network · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}Percent-encode text (component encoding). [network · v1.0.0 · deterministic: true · permissions: none]
| Argument | Type | Description |
|---|---|---|
| text* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false
}Generate random UUID v4 values. [security · v1.0.0 · deterministic: false · permissions: none]
| Argument | Type | Description |
|---|---|---|
| count | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"count": {
"type": "integer",
"default": 1,
"maximum": 100,
"minimum": 1
}
},
"additionalProperties": false
}