Tool tree
gradeNot graded
page: Every page
scan_images_c2paAnswer
Scan every <img> on the current page for C2PA Content Credentials (content provenance metadata) and return a per-image summary: whether a manifest is present, the claim generator (the tool that produced or edited the image), the title, and the signer name. Use this to find which images on a page carry provenance data. Note: provenance is decoded but NOT cryptographically verified.
View tool JSON
{
"name": "scan_images_c2pa",
"kind": "answer",
"impl": "imperative",
"description": "Scan every <img> on the current page for C2PA Content Credentials (content provenance metadata) and return a per-image summary: whether a manifest is present, the claim generator (the tool that produced or edited the image), the title, and the signer name. Use this to find which images on a page carry provenance data. Note: provenance is decoded but NOT cryptographically verified.",
"inputSchema": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25,
"description": "Maximum number of images to fetch and scan (default 25, max 100)."
}
},
"required": []
},
"page": "/"
}inspect_image_c2paAnswer
Fetch a single image (by CSS selector or URL) and return its fully decoded C2PA manifest store: every manifest's claim, assertions (e.g. c2pa.actions edit history, schema.org authorship), and the COSE signature details (algorithm and signing-certificate identity). Provide exactly one of `selector` or `url`. Note: the signature is decoded but NOT cryptographically verified.
View tool JSON
{
"name": "inspect_image_c2pa",
"kind": "answer",
"impl": "imperative",
"description": "Fetch a single image (by CSS selector or URL) and return its fully decoded C2PA manifest store: every manifest's claim, assertions (e.g. c2pa.actions edit history, schema.org authorship), and the COSE signature details (algorithm and signing-certificate identity). Provide exactly one of `selector` or `url`. Note: the signature is decoded but NOT cryptographically verified.",
"inputSchema": {
"type": "object",
"properties": {
"selector": {
"type": "string",
"maxLength": 8192,
"description": "CSS selector for an <img> element on the page."
},
"url": {
"type": "string",
"maxLength": 8192,
"description": "Same-origin image URL (absolute same-origin, or relative to the current page) to fetch and inspect. Cross-origin URLs are rejected."
}
},
"required": []
},
"page": "/"
}find_toolAnswer
List the tools on 𓁹𓁹 (text, code, images, randomness, time, sharing) with the address of each. Give words to narrow the list. Each tool's page offers its own actions to agents once it is open.
View tool JSON
{
"name": "find_tool",
"kind": "answer",
"impl": "imperative",
"description": "List the tools on 𓁹𓁹 (text, code, images, randomness, time, sharing) with the address of each. Give words to narrow the list. Each tool's page offers its own actions to agents once it is open.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words to look for, such as \"password\" or \"time zone\". Leave out to list every tool."
}
}
},
"page": "/"
}make_qr_codeAction
[Site-provided MCP tool — executes with your session credentials.] Make a QR code for text or a link, black on white with a one-module border: a PNG image to show or save, and the same code as SVG markup. Higher error correction survives more damage but holds less text. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "make_qr_code",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Make a QR code for text or a link, black on white with a one-module border: a PNG image to show or save, and the same code as SVG markup. Higher error correction survives more damage but holds less text. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 7089,
"description": "The text or link to encode."
},
"size": {
"type": "integer",
"enum": [
192,
256,
384,
512
],
"default": 256,
"description": "The image's width and height in pixels, border included."
},
"errorCorrection": {
"type": "string",
"enum": [
"low",
"medium",
"quartile",
"high"
],
"default": "medium",
"description": "How much of the code may be damaged and still scan: about 7%, 15%, 25% or 30%."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "https://eyes.tools",
"size": 256,
"errorCorrection": "medium"
}
]
},
"page": "/"
}make_ean13_barcodeAction
[Site-provided MCP tool — executes with your session credentials.] Make an EAN-13 retail barcode from 12 digits (the check digit is added) or 13 (the check digit is verified). For a 12-digit UPC-A code, put a 0 in front. Returns the number, the barcode as a PNG image to show or print, and the same barcode as svg markup. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "make_ean13_barcode",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Make an EAN-13 retail barcode from 12 digits (the check digit is added) or 13 (the check digit is verified). For a 12-digit UPC-A code, put a 0 in front. Returns the number, the barcode as a PNG image to show or print, and the same barcode as svg markup. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"digits": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"description": "12 or 13 digits; spaces and hyphens are ignored."
}
},
"required": [
"digits"
],
"additionalProperties": false,
"examples": [
{
"digits": "400638133393"
}
]
},
"page": "/"
}clean_up_linesAction
[Site-provided MCP tool — executes with your session credentials.] Tidy a list of lines: trim each, drop empty ones, remove duplicates, and sort (natural order, so item2 comes before item10) or reverse. On the scratchpad's page, the pad's own text is used when none is given, and the pad is left as it is. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "clean_up_lines",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Tidy a list of lines: trim each, drop empty ones, remove duplicates, and sort (natural order, so item2 comes before item10) or reverse. On the scratchpad's page, the pad's own text is used when none is given, and the pad is left as it is. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 2000000,
"description": "Lines to tidy. On the scratchpad's page, leave it out to use the pad's text."
},
"order": {
"type": "string",
"enum": [
"keep",
"asc",
"desc",
"reverse"
],
"default": "keep",
"description": "keep the order, sort asc or desc (natural: item2 before item10), or reverse it."
},
"dedupe": {
"type": "boolean",
"default": true,
"description": "Keep the first of each line that repeats."
},
"trim": {
"type": "boolean",
"default": true,
"description": "Take spaces off both ends of each line."
},
"removeEmpty": {
"type": "boolean",
"default": true,
"description": "Drop lines left empty."
},
"ignoreCase": {
"type": "boolean",
"default": false,
"description": "For duplicates and sorting."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "pear\napple\n\npear\nApple",
"order": "asc",
"ignoreCase": true
}
]
},
"page": "/"
}search_directoryAnswer
[Site-provided MCP tool — executes with your session credentials.] Search a hand-picked directory of 118 long-lived websites (reference, archives, tools, learning, reading, maps and data, directories, the weird web) by name, description, address or group. Leave out the query to list them all. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "search_directory",
"kind": "answer",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Search a hand-picked directory of 118 long-lived websites (reference, archives, tools, learning, reading, maps and data, directories, the weird web) by name, description, address or group. Leave out the query to list them all. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"maxLength": 200,
"description": "Words that must all appear, such as \"public domain books\". Every site when left out."
}
},
"additionalProperties": false,
"examples": [
{
"query": "maps"
}
]
},
"page": "/"
}base64_encodeAction
[Site-provided MCP tool — executes with your session credentials.] Encode text (as UTF-8) to base64, optionally the url-safe alphabet without padding. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "base64_encode",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Encode text (as UTF-8) to base64, optionally the url-safe alphabet without padding. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 5000000,
"description": "The text to encode, as its UTF-8 bytes."
},
"urlSafe": {
"type": "boolean",
"description": "Use - and _ and drop the = padding.",
"default": false
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "héllo"
},
{
"text": "subjects?_d",
"urlSafe": true
}
]
},
"page": "/"
}base64_decodeAction
[Site-provided MCP tool — executes with your session credentials.] Decode standard or url-safe base64 back to UTF-8 text. Refuses input that is not base64 or does not decode to UTF-8 text. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "base64_decode",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Decode standard or url-safe base64 back to UTF-8 text. Refuses input that is not base64 or does not decode to UTF-8 text. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"base64": {
"type": "string",
"maxLength": 7000000,
"description": "Standard or url-safe base64; spaces, line breaks and missing padding are fine."
}
},
"required": [
"base64"
],
"additionalProperties": false,
"examples": [
{
"base64": "aMOpbGxv"
}
]
},
"page": "/"
}hash_textAction
[Site-provided MCP tool — executes with your session credentials.] Compute the md5, sha-1, sha-256, sha-384 and sha-512 digests of a text's UTF-8 bytes, in hex or base64, and check one against a digest you have. md5 is fine for spotting accidental corruption but broken for security. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "hash_text",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Compute the md5, sha-1, sha-256, sha-384 and sha-512 digests of a text's UTF-8 bytes, in hex or base64, and check one against a digest you have. md5 is fine for spotting accidental corruption but broken for security. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text; its UTF-8 bytes are hashed, as they are, with no trimming."
},
"encoding": {
"type": "string",
"enum": [
"hex",
"base64"
],
"default": "hex",
"description": "How each digest is written."
},
"uppercase": {
"type": "boolean",
"default": false,
"description": "Uppercase hex; base64 has no case to choose."
},
"compare": {
"type": "string",
"maxLength": 1000,
"description": "A digest to check against, such as one a download page lists: hex or base64, alone or as a line of a checksum file (\"sha256: …\", \"SHA256 (file) = …\"). Its length says which algorithm it is."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "hello",
"encoding": "hex",
"compare": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824"
}
]
},
"page": "/"
}hash_fileAction
[Site-provided MCP tool — executes with your session credentials.] Compute the md5, sha-1, sha-256, sha-384 and sha-512 digests of a file, such as a download whose checksum you want to check, and compare one with the digest you were given. Send the file as base64, up to 10 MB; on the hash page the file the visitor chose is hashed when none is sent, at any size, without leaving the browser. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "hash_file",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Compute the md5, sha-1, sha-256, sha-384 and sha-512 digests of a file, such as a download whose checksum you want to check, and compare one with the digest you were given. Send the file as base64, up to 10 MB; on the hash page the file the visitor chose is hashed when none is sent, at any size, without leaving the browser. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"file": {
"type": "string",
"contentEncoding": "base64",
"maxLength": 14000000,
"description": "The file, as base64 or a data: URL. On the hash page, leave it out to use the file the visitor chose."
},
"encoding": {
"type": "string",
"enum": [
"hex",
"base64"
],
"default": "hex",
"description": "How each digest is written."
},
"uppercase": {
"type": "boolean",
"default": false,
"description": "Uppercase hex; base64 has no case to choose."
},
"compare": {
"type": "string",
"maxLength": 1000,
"description": "A digest to check against, such as one a download page lists: hex or base64, alone or as a line of a checksum file (\"sha256: …\", \"SHA256 (file) = …\"). Its length says which algorithm it is."
}
},
"required": [
"file"
],
"additionalProperties": false,
"examples": [
{
"file": "aGVsbG8=",
"compare": "5d41402abc4b2a76b9719d911017c592"
}
]
},
"page": "/"
}generate_idsAction
[Site-provided MCP tool — executes with your session credentials.] Make a batch of ids from Web Crypto randomness: uuid v4 (random), uuid v7 (time-ordered), ulid (time-ordered, 26 characters), or short ids from an alphabet of your choosing. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "generate_ids",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Make a batch of ids from Web Crypto randomness: uuid v4 (random), uuid v7 (time-ordered), ulid (time-ordered, 26 characters), or short ids from an alphabet of your choosing. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"v4",
"v7",
"ulid",
"short"
],
"default": "v4",
"description": "v4: random uuid. v7: uuid that sorts by time. ulid: 26 characters, sorts by time. short: like nanoid, from an alphabet."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 1000,
"default": 1,
"description": "How many ids."
},
"length": {
"type": "integer",
"minimum": 1,
"maximum": 64,
"description": "Short ids only; 21 when left out."
},
"alphabet": {
"type": "string",
"minLength": 2,
"maxLength": 256,
"description": "Short ids only; the characters to draw from, each equally likely. Letters, digits, _ and - when left out."
},
"uppercase": {
"type": "boolean",
"default": false,
"description": "uuids only."
},
"braces": {
"type": "boolean",
"default": false,
"description": "uuids only: wrap in {}."
},
"hyphens": {
"type": "boolean",
"default": true,
"description": "uuids only."
}
},
"additionalProperties": false,
"examples": [
{
"kind": "v7",
"count": 3
},
{
"kind": "short",
"length": 12,
"alphabet": "0123456789abcdef"
}
]
},
"page": "/"
}generate_passwordsAction
[Site-provided MCP tool — executes with your session credentials.] Make passwords (letters, digits and symbols, easily confused ones left out), passphrases (hyphen-joined words) or numeric pins, from Web Crypto randomness. Returns the values and their strength in bits. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "generate_passwords",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Make passwords (letters, digits and symbols, easily confused ones left out), passphrases (hyphen-joined words) or numeric pins, from Web Crypto randomness. Returns the values and their strength in bits. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"password",
"passphrase",
"pin"
],
"default": "password",
"description": "password: letters, digits and symbols, easily confused ones left out. passphrase: words joined by hyphens. pin: digits."
},
"length": {
"type": "integer",
"minimum": 4,
"maximum": 128,
"description": "Characters, or words for a passphrase. 20, 12 and 6 when left out."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 1,
"description": "How many to make."
}
},
"additionalProperties": false,
"examples": [
{
"kind": "password",
"length": 24
},
{
"kind": "passphrase",
"length": 6,
"count": 3
}
]
},
"page": "/"
}clean_codeAction
[Site-provided MCP tool — executes with your session credentials.] Format code as its language's usual formatter would: Prettier for JavaScript, TypeScript, HTML, CSS, Markdown, YAML and the rest of the web; ruff for Python; gofmt for Go; clang-format for C, C++, C#, Java and Objective-C; sql-formatter for twenty SQL dialects; and more, named by the language's id. Code that does not parse returns the formatter's error. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "clean_code",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Format code as its language's usual formatter would: Prettier for JavaScript, TypeScript, HTML, CSS, Markdown, YAML and the rest of the web; ruff for Python; gofmt for Go; clang-format for C, C++, C#, Java and Objective-C; sql-formatter for twenty SQL dialects; and more, named by the language's id. Code that does not parse returns the formatter's error. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"minLength": 1,
"maxLength": 1000000,
"description": "The code to clean."
},
"language": {
"type": "string",
"enum": [
"javascript",
"jsx",
"typescript",
"tsx",
"flow",
"html",
"css",
"scss",
"less",
"vue",
"angular",
"svelte",
"lwc",
"graphql",
"markdown",
"mdx",
"handlebars",
"astro",
"jinja",
"twig",
"nunjucks",
"vento",
"mustache",
"json",
"json5",
"jsonc",
"yaml",
"toml",
"xml",
"svg",
"ini",
"properties",
"nginx",
"protobuf",
"python",
"go",
"rust",
"c",
"cpp",
"csharp",
"java",
"objectivec",
"php",
"lua",
"zig",
"shell",
"bash",
"verilog",
"latex",
"sql",
"postgresql",
"mysql",
"mariadb",
"sqlite",
"tsql",
"plsql",
"bigquery",
"snowflake",
"redshift",
"clickhouse",
"duckdb",
"spark",
"hive",
"trino",
"db2",
"db2i",
"tidb",
"singlestoredb",
"n1ql"
],
"description": "The language's id, such as python, typescript, cpp, postgresql or yaml."
},
"indent": {
"type": "string",
"enum": [
"usual",
"2",
"4",
"tab"
],
"default": "usual",
"description": "usual keeps the formatter's own: 4 spaces for Python, tabs for Go."
}
},
"required": [
"code",
"language"
],
"additionalProperties": false,
"examples": [
{
"code": "def f( a ):\n return a",
"language": "python"
},
{
"code": "select a,b from t where x=1",
"language": "postgresql",
"indent": "4"
}
]
},
"page": "/"
}format_jsonAction
[Site-provided MCP tool — executes with your session credentials.] Check that text is valid JSON and lay it out with 2 or 4 spaces or tabs, or minify it. Numbers, key order and duplicate keys are kept exactly as written. Invalid JSON returns the parser's error. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "format_json",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Check that text is valid JSON and lay it out with 2 or 4 spaces or tabs, or minify it. Numbers, key order and duplicate keys are kept exactly as written. Invalid JSON returns the parser's error. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"json": {
"type": "string",
"minLength": 1,
"maxLength": 2000000,
"description": "The JSON text."
},
"indent": {
"type": "string",
"enum": [
"2",
"4",
"tab",
"minify"
],
"default": "2",
"description": "Indentation, or minify for one line."
}
},
"required": [
"json"
],
"additionalProperties": false,
"examples": [
{
"json": "{\"a\":[1,2],\"b\":{\"c\":true}}",
"indent": "2"
}
]
},
"page": "/"
}escape_json_stringAction
[Site-provided MCP tool — executes with your session credentials.] Turn text into a JSON string literal, quotes and escapes included, ready to paste into JSON or JavaScript. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "escape_json_string",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Turn text into a JSON string literal, quotes and escapes included, ready to paste into JSON or JavaScript. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 2000000,
"description": "Any text, line breaks and quotes included."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "She said \"hi\"\nthen left"
}
]
},
"page": "/"
}unescape_json_stringAction
[Site-provided MCP tool — executes with your session credentials.] Turn a JSON string literal, in double quotes, back into the text it stands for. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "unescape_json_string",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Turn a JSON string literal, in double quotes, back into the text it stands for. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"json": {
"type": "string",
"minLength": 1,
"maxLength": 2000000,
"description": "A JSON string literal, quotes included."
}
},
"required": [
"json"
],
"additionalProperties": false,
"examples": [
{
"json": "\"She said \\\"hi\\\"\\nthen left\""
}
]
},
"page": "/"
}parse_urlAction
[Site-provided MCP tool — executes with your session credentials.] Split an absolute URL into scheme, user, host, port, path, query, fragment and decoded query parameters. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "parse_url",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Split an absolute URL into scheme, user, host, port, path, query, fragment and decoded query parameters. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"minLength": 1,
"maxLength": 100000,
"description": "An absolute URL, scheme included."
}
},
"required": [
"url"
],
"additionalProperties": false,
"examples": [
{
"url": "https://user@example.com:8080/a/b?q=one%20two&q=3#top"
}
]
},
"page": "/"
}percent_encodeAction
[Site-provided MCP tool — executes with your session credentials.] Percent-encode text so it can sit in a URL path segment or query value. With form encoding, spaces become + as in submitted forms. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "percent_encode",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Percent-encode text so it can sit in a URL path segment or query value. With form encoding, spaces become + as in submitted forms. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 1000000,
"description": "The text to encode."
},
"formEncoding": {
"type": "boolean",
"default": false,
"description": "Spaces as +, as a submitted form writes them."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "café & crème"
}
]
},
"page": "/"
}percent_decodeAction
[Site-provided MCP tool — executes with your session credentials.] Decode percent-encoded text from a URL. With form encoding, + is read as a space. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "percent_decode",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Decode percent-encoded text from a URL. With form encoding, + is read as a space. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 1000000,
"description": "The percent-encoded text."
},
"formEncoding": {
"type": "boolean",
"default": false,
"description": "Read + as a space, as a submitted form means it."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "caf%C3%A9+%26+cr%C3%A8me",
"formEncoding": true
}
]
},
"page": "/"
}convert_caseAction
[Site-provided MCP tool — executes with your session credentials.] Rewrite text or an identifier in every common case at once: camel, pascal, snake, kebab, constant, dot, path, title, sentence, lower and upper. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "convert_case",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Rewrite text or an identifier in every common case at once: camel, pascal, snake, kebab, constant, dot, path, title, sentence, lower and upper. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 1000000,
"description": "The text or identifier to rewrite, such as \"user id\", userId or USER_ID."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "hello World"
}
]
},
"page": "/"
}convert_colorAction
[Site-provided MCP tool — executes with your session credentials.] Give a color as hex, rgb, hsl and oklch, each ready to paste into CSS. Accepts opaque hex, rgb(), hsl() and CSS color names such as rebeccapurple; the color page also reads oklch() and every other CSS color. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "convert_color",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Give a color as hex, rgb, hsl and oklch, each ready to paste into CSS. Accepts opaque hex, rgb(), hsl() and CSS color names such as rebeccapurple; the color page also reads oklch() and every other CSS color. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"color": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "The color, such as #1e90ff, rgb(30 144 255), hsl(210 100% 56%) or tomato."
}
},
"required": [
"color"
],
"additionalProperties": false,
"examples": [
{
"color": "#1e90ff"
},
{
"color": "rebeccapurple"
}
]
},
"page": "/"
}resize_imageAction
[Site-provided MCP tool — executes with your session credentials.] Resize an image, convert it between png, jpeg and webp, or both, and get it back as an image, with its size in pixels and bytes before and after. Give a width or a height to keep its proportions, or both to set each; give neither to only convert. A photo is turned upright as its orientation tag says. Send the image as base64, up to 10 MB and 16 megapixels: png, jpeg, webp or gif (its first frame). On the img page, the image the visitor chose is used when none is sent, the browser reads more formats, and avif can be written where it can. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "resize_image",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Resize an image, convert it between png, jpeg and webp, or both, and get it back as an image, with its size in pixels and bytes before and after. Give a width or a height to keep its proportions, or both to set each; give neither to only convert. A photo is turned upright as its orientation tag says. Send the image as base64, up to 10 MB and 16 megapixels: png, jpeg, webp or gif (its first frame). On the img page, the image the visitor chose is used when none is sent, the browser reads more formats, and avif can be written where it can. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"image": {
"type": "string",
"contentEncoding": "base64",
"contentMediaType": "image/*",
"maxLength": 14000000,
"description": "The image, as base64 or a data: URL. On the img page, leave it out to use the image the visitor chose."
},
"width": {
"type": "integer",
"minimum": 1,
"maximum": 12000,
"description": "The new width in pixels."
},
"height": {
"type": "integer",
"minimum": 1,
"maximum": 12000,
"description": "The new height in pixels."
},
"format": {
"type": "string",
"enum": [
"png",
"jpeg",
"webp",
"avif"
],
"description": "What to write; the image's own format when left out (a gif becomes png). avif only on the img page, in a browser that writes it."
},
"quality": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 82,
"description": "For jpeg, webp and avif: higher is sharper and larger."
}
},
"required": [
"image"
],
"additionalProperties": false,
"examples": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVR4nGP4z8DwHwyBNAMQMDAwAABK0gX7HD1MvAAAAABJRU5ErkJggg==",
"width": 1,
"format": "webp",
"quality": 80
}
]
},
"page": "/"
}diff_textAction
[Site-provided MCP tool — executes with your session credentials.] Compare two texts line by line and return a unified listing: two spaces before a line both share, + before a line only in after, - before a line only in before. Up to 5,000 lines a side. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "diff_text",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Compare two texts line by line and return a unified listing: two spaces before a line both share, + before a line only in after, - before a line only in before. Up to 5,000 lines a side. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"before": {
"type": "string",
"maxLength": 2000000,
"description": "The old text."
},
"after": {
"type": "string",
"maxLength": 2000000,
"description": "The new text."
},
"ignoreSurroundingSpaces": {
"type": "boolean",
"default": false,
"description": "Treat lines that differ only in leading or trailing spaces as the same."
}
},
"required": [
"before",
"after"
],
"additionalProperties": false,
"examples": [
{
"before": "apples\npears\nplums",
"after": "apples\nplums\ncherries"
}
]
},
"page": "/"
}convert_timestampAction
[Site-provided MCP tool — executes with your session credentials.] Turn a unix timestamp (seconds or milliseconds) or a date such as 2026-08-21T12:00:00Z into UTC, ISO 8601 and both unix forms. Leave value out for the current moment. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "convert_timestamp",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Turn a unix timestamp (seconds or milliseconds) or a date such as 2026-08-21T12:00:00Z into UTC, ISO 8601 and both unix forms. Leave value out for the current moment. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"value": {
"type": "string",
"maxLength": 100,
"description": "A date, such as 2026-08-21T12:00:00Z, or a unix timestamp in seconds or milliseconds. The current moment when left out."
},
"unit": {
"type": "string",
"enum": [
"auto",
"seconds",
"milliseconds"
],
"default": "auto",
"description": "How to read a bare number; auto picks by size."
}
},
"additionalProperties": false,
"examples": [
{
"value": "1767225600"
},
{
"value": "2026-08-21T12:00:00Z"
}
]
},
"page": "/"
}count_textAnswer
[Site-provided MCP tool — executes with your session credentials.] Count words, characters (as a person sees them), characters without spaces, Unicode code points, UTF-8 bytes, lines and sentences in a text, and estimate its reading time at 200 words a minute. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "count_text",
"kind": "answer",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Count words, characters (as a person sees them), characters without spaces, Unicode code points, UTF-8 bytes, lines and sentences in a text, and estimate its reading time at 200 words a minute. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 10000000,
"description": "The text to count."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "Hello, world. How are you?"
}
]
},
"page": "/"
}generate_lorem_ipsumAction
[Site-provided MCP tool — executes with your session credentials.] Make lorem ipsum placeholder text: a number of paragraphs (short, medium or long), sentences or words. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "generate_lorem_ipsum",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Make lorem ipsum placeholder text: a number of paragraphs (short, medium or long), sentences or words. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"default": 3,
"description": "How many paragraphs, sentences or words; at most 100, 1,000 and 10,000."
},
"unit": {
"type": "string",
"enum": [
"paragraphs",
"sentences",
"words"
],
"default": "paragraphs"
},
"paragraphLength": {
"type": "string",
"enum": [
"short",
"medium",
"long"
],
"default": "medium",
"description": "For paragraphs: how many sentences each has."
}
},
"additionalProperties": false,
"examples": [
{
"count": 2,
"unit": "paragraphs",
"paragraphLength": "short"
},
{
"count": 12,
"unit": "words"
}
]
},
"page": "/"
}random_numbersAction
[Site-provided MCP tool — executes with your session credentials.] Pick up to 100 whole numbers between a minimum and a maximum, inclusive, optionally without repeats. The source is csrng (Web Crypto, fit for secrets; the default), trng (a public drand beacon whose signature is verified, so anyone can check the round later; needs the network) or prng (Math.random, not for security). Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "random_numbers",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Pick up to 100 whole numbers between a minimum and a maximum, inclusive, optionally without repeats. The source is csrng (Web Crypto, fit for secrets; the default), trng (a public drand beacon whose signature is verified, so anyone can check the round later; needs the network) or prng (Math.random, not for security). Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"min": {
"type": "integer",
"default": 1,
"description": "The smallest number that may come up."
},
"max": {
"type": "integer",
"default": 100,
"description": "The largest; at least min."
},
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 1,
"description": "How many numbers."
},
"unique": {
"type": "boolean",
"default": false,
"description": "Never pick the same number twice; then count can be no more than the range holds."
},
"source": {
"type": "string",
"enum": [
"csrng",
"trng",
"prng"
],
"default": "csrng",
"description": "csrng: Web Crypto, fit for secrets. trng: a drand beacon, verified, that anyone can check later by its round; reaches the network. prng: Math.random, predictable."
}
},
"additionalProperties": false,
"examples": [
{
"min": 1,
"max": 49,
"count": 6,
"unique": true
}
]
},
"page": "/"
}roll_diceAction
[Site-provided MCP tool — executes with your session credentials.] Roll up to 100 dice of 2 to 1,000,000 sides. The source is csrng (Web Crypto; the default), trng (a public drand beacon whose signature is verified, so anyone can check the round later; needs the network) or prng (Math.random, predictable). Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "roll_dice",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Roll up to 100 dice of 2 to 1,000,000 sides. The source is csrng (Web Crypto; the default), trng (a public drand beacon whose signature is verified, so anyone can check the round later; needs the network) or prng (Math.random, predictable). Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"dice": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 1,
"description": "How many dice."
},
"sides": {
"type": "integer",
"minimum": 2,
"maximum": 1000000,
"default": 6,
"description": "Sides on each, numbered from 1."
},
"source": {
"type": "string",
"enum": [
"csrng",
"trng",
"prng"
],
"default": "csrng",
"description": "csrng: Web Crypto, fit for secrets. trng: a drand beacon, verified, that anyone can check later by its round; reaches the network. prng: Math.random, predictable."
}
},
"additionalProperties": false,
"examples": [
{
"dice": 2,
"sides": 6
},
{
"dice": 1,
"sides": 20,
"source": "trng"
}
]
},
"page": "/"
}flip_coinsAction
[Site-provided MCP tool — executes with your session credentials.] Flip up to 100 coins. The source is csrng (Web Crypto; the default), trng (a public drand beacon whose signature is verified, so anyone can check the round later; needs the network) or prng (Math.random, predictable). Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "flip_coins",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Flip up to 100 coins. The source is csrng (Web Crypto; the default), trng (a public drand beacon whose signature is verified, so anyone can check the round later; needs the network) or prng (Math.random, predictable). Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"count": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 1,
"description": "How many coins."
},
"source": {
"type": "string",
"enum": [
"csrng",
"trng",
"prng"
],
"default": "csrng",
"description": "csrng: Web Crypto, fit for secrets. trng: a drand beacon, verified, that anyone can check later by its round; reaches the network. prng: Math.random, predictable."
}
},
"additionalProperties": false,
"examples": [
{
"count": 3
},
{
"count": 1,
"source": "trng"
}
]
},
"page": "/"
}inspect_textAction
[Site-provided MCP tool — executes with your session credentials.] List every character in a text with its code point and UTF-8 bytes, naming the ones that are invisible or look like a space (zero-width, no-break, direction marks, control characters). With the ascii set, codes are ascii decimals and anything past 127 is marked. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "inspect_text",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] List every character in a text with its code point and UTF-8 bytes, naming the ones that are invisible or look like a space (zero-width, no-break, direction marks, control characters). With the ascii set, codes are ascii decimals and anything past 127 is marked. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 1000000,
"description": "The text to look through, such as a line that should match another but does not."
},
"set": {
"type": "string",
"enum": [
"unicode",
"ascii"
],
"default": "unicode",
"description": "ascii gives ascii decimals and marks anything past 127."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "a bc"
}
]
},
"page": "/"
}look_up_characterAction
[Site-provided MCP tool — executes with your session credentials.] Find one character from the character itself, a decimal number, a U+ or 0x code, an html entity such as © or ©, or an ascii control name such as LF, and give its decimal, code point, UTF-8 bytes, html, javascript, css and url forms. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "look_up_character",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Find one character from the character itself, a decimal number, a U+ or 0x code, an html entity such as © or ©, or an ascii control name such as LF, and give its decimal, code point, UTF-8 bytes, html, javascript, css and url forms. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"description": "One character, or a code or name for one: é, 233, U+00E9, 0xE9, é, é or LF."
},
"set": {
"type": "string",
"enum": [
"unicode",
"ascii"
],
"default": "unicode",
"description": "ascii refuses anything past 127."
}
},
"required": [
"query"
],
"additionalProperties": false,
"examples": [
{
"query": "U+00E9"
},
{
"query": "LF",
"set": "ascii"
}
]
},
"page": "/"
}read_image_metadataAnswer
[Site-provided MCP tool — executes with your session credentials.] Read the metadata inside an image: camera, lens, exposure, dates, gps position, color profile, dimensions and more, from exif, iptc, icc and the file's own headers, as "group · tag" fields. Reads jpeg, tiff, png, webp, heic, avif, gif and jpeg xl. Send the image as base64, up to 10 MB. On the metadata page, xmp is read too, and the image the visitor chose is used when none is sent. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "read_image_metadata",
"kind": "answer",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Read the metadata inside an image: camera, lens, exposure, dates, gps position, color profile, dimensions and more, from exif, iptc, icc and the file's own headers, as \"group · tag\" fields. Reads jpeg, tiff, png, webp, heic, avif, gif and jpeg xl. Send the image as base64, up to 10 MB. On the metadata page, xmp is read too, and the image the visitor chose is used when none is sent. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"image": {
"type": "string",
"contentEncoding": "base64",
"contentMediaType": "image/*",
"maxLength": 14000000,
"description": "The image, as base64 or a data: URL. On the metadata page, leave it out to use the image the visitor chose."
}
},
"required": [
"image"
],
"additionalProperties": false,
"examples": [
{
"image": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4nGP4z8DwHwAFAAH/q842iQAAAABJRU5ErkJggg=="
}
]
},
"page": "/"
}make_spectrogramAction
[Site-provided MCP tool — executes with your session credentials.] Draw a sound's spectrogram: time left to right, frequency from 0 at the bottom to half the sample rate at the top, louder as brighter (white on black, 80 dB of range). Returns the picture as a PNG image with the sound's length, sample rate and channels. Send the sound as base64, up to 10 MB and about six minutes of stereo: wav, mp3, flac, ogg vorbis or opus. On the spectrogram page, the browser reads more formats (m4a, aac, webm) and the file the visitor chose is drawn when none is sent. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "make_spectrogram",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Draw a sound's spectrogram: time left to right, frequency from 0 at the bottom to half the sample rate at the top, louder as brighter (white on black, 80 dB of range). Returns the picture as a PNG image with the sound's length, sample rate and channels. Send the sound as base64, up to 10 MB and about six minutes of stereo: wav, mp3, flac, ogg vorbis or opus. On the spectrogram page, the browser reads more formats (m4a, aac, webm) and the file the visitor chose is drawn when none is sent. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"audio": {
"type": "string",
"contentEncoding": "base64",
"contentMediaType": "audio/*",
"maxLength": 14000000,
"description": "The sound, as base64 or a data: URL. On the spectrogram page, leave it out to use the file the visitor chose."
},
"width": {
"type": "integer",
"minimum": 64,
"maximum": 2048,
"default": 960,
"description": "Pixels across: one column of the transform each."
},
"height": {
"type": "integer",
"minimum": 64,
"maximum": 1024,
"default": 480,
"description": "Pixels from 0 Hz to the top frequency."
}
},
"required": [
"audio"
],
"additionalProperties": false,
"examples": [
{
"audio": "data:audio/wav;base64,UklGRiQCAABXQVZFZm10IBAAAAABAAEAQB8AAIA+AAACABAAZGF0YQACAAAAACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3gAAJSHgLiUhAADb3iDR294AACUh4C4lIQAA294g0dveAAAlIeAuJSEAANveINHb3g==",
"width": 256,
"height": 128
}
]
},
"page": "/"
}convert_time_zoneAction
[Site-provided MCP tool — executes with your session credentials.] Say what a local date and time in one IANA time zone is in another, handling daylight saving: a time that never happens (the clock skipped it) is refused, and one that happens twice (the clock went back) uses the first unless told otherwise. Leave out dateTime for now. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "convert_time_zone",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Say what a local date and time in one IANA time zone is in another, handling daylight saving: a time that never happens (the clock skipped it) is refused, and one that happens twice (the clock went back) uses the first unless told otherwise. Leave out dateTime for now. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"dateTime": {
"type": "string",
"maxLength": 40,
"description": "Local date and time in the from zone, as YYYY-MM-DDTHH:MM. Now when left out."
},
"from": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "IANA zone such as America/Chicago, or UTC."
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "IANA zone such as Asia/Tokyo."
},
"occurrence": {
"type": "string",
"enum": [
"earlier",
"later"
],
"default": "earlier",
"description": "Which one, when the local time happens twice."
}
},
"required": [
"from",
"to"
],
"additionalProperties": false,
"examples": [
{
"dateTime": "2026-03-14T09:30",
"from": "America/New_York",
"to": "Europe/London"
}
]
},
"page": "/"
}calculateAction
[Site-provided MCP tool — executes with your session credentials.] Evaluate an arithmetic expression: + - × ÷ (or * /), ^ for powers, parentheses, sqrt, abs, round, floor, ceil, pi and e. A percent divides by 100, so 200 * 10% is 20. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "calculate",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Evaluate an arithmetic expression: + - × ÷ (or * /), ^ for powers, parentheses, sqrt, abs, round, floor, ceil, pi and e. A percent divides by 100, so 200 * 10% is 20. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"expression": {
"type": "string",
"minLength": 1,
"maxLength": 1000,
"description": "Such as (125 + 75) * 1.08, 2^10 or sqrt(2)."
}
},
"required": [
"expression"
],
"additionalProperties": false,
"examples": [
{
"expression": "(125 + 75) * 1.08"
}
]
},
"page": "/"
}convert_unitsAction
[Site-provided MCP tool — executes with your session credentials.] Convert a number between units of one quantity. Units, by symbol: length m cm mm km in ft yd mi; weight kg g mg lb oz t; temperature °C °F K; area m² km² ft² ha ac; volume L mL m³ gal qt pt cup fl oz; speed km/h mph m/s kn; duration s ms min h d wk; data B bit kB MB GB TB KiB MiB GiB TiB. Names such as "miles" work too. Volume units are US liquid; kB, MB and GB are powers of 1,000 and KiB, MiB and GiB of 1,024. Runs on the eyes.tools server, which keeps nothing it is sent.
View tool JSON
{
"name": "convert_units",
"kind": "act",
"impl": "imperative",
"description": "[Site-provided MCP tool — executes with your session credentials.] Convert a number between units of one quantity. Units, by symbol: length m cm mm km in ft yd mi; weight kg g mg lb oz t; temperature °C °F K; area m² km² ft² ha ac; volume L mL m³ gal qt pt cup fl oz; speed km/h mph m/s kn; duration s ms min h d wk; data B bit kB MB GB TB KiB MiB GiB TiB. Names such as \"miles\" work too. Volume units are US liquid; kB, MB and GB are powers of 1,000 and KiB, MiB and GiB of 1,024. Runs on the eyes.tools server, which keeps nothing it is sent.",
"inputSchema": {
"type": "object",
"properties": {
"value": {
"type": "number",
"description": "The amount to convert."
},
"from": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"description": "Unit symbol or name, such as km or kilometers."
},
"to": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"description": "A unit of the same quantity, by symbol or name."
}
},
"required": [
"value",
"from",
"to"
],
"additionalProperties": false,
"examples": [
{
"value": 5,
"from": "km",
"to": "mi"
}
]
},
"page": "/"
}page: Qr
make_qr_codeAction
Make a QR code for text or a link, black on white with a one-module border: a PNG image to show or save, and the same code as SVG markup. Higher error correction survives more damage but holds less text.
View tool JSON
{
"name": "make_qr_code",
"kind": "act",
"impl": "imperative",
"description": "Make a QR code for text or a link, black on white with a one-module border: a PNG image to show or save, and the same code as SVG markup. Higher error correction survives more damage but holds less text.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"minLength": 1,
"maxLength": 7089,
"description": "The text or link to encode."
},
"size": {
"type": "integer",
"enum": [
192,
256,
384,
512
],
"default": 256,
"description": "The image's width and height in pixels, border included."
},
"errorCorrection": {
"type": "string",
"enum": [
"low",
"medium",
"quartile",
"high"
],
"default": "medium",
"description": "How much of the code may be damaged and still scan: about 7%, 15%, 25% or 30%."
}
},
"required": [
"text"
],
"additionalProperties": false,
"examples": [
{
"text": "https://eyes.tools",
"size": 256,
"errorCorrection": "medium"
}
]
},
"page": "/qr"
}page: Barcode
make_ean13_barcodeAction
Make an EAN-13 retail barcode from 12 digits (the check digit is added) or 13 (the check digit is verified). For a 12-digit UPC-A code, put a 0 in front. Returns the number, the barcode as a PNG image to show or print, and the same barcode as svg markup.
View tool JSON
{
"name": "make_ean13_barcode",
"kind": "act",
"impl": "imperative",
"description": "Make an EAN-13 retail barcode from 12 digits (the check digit is added) or 13 (the check digit is verified). For a 12-digit UPC-A code, put a 0 in front. Returns the number, the barcode as a PNG image to show or print, and the same barcode as svg markup.",
"inputSchema": {
"type": "object",
"properties": {
"digits": {
"type": "string",
"minLength": 1,
"maxLength": 40,
"description": "12 or 13 digits; spaces and hyphens are ignored."
}
},
"required": [
"digits"
],
"additionalProperties": false,
"examples": [
{
"digits": "400638133393"
}
]
},
"page": "/barcode"
}page: Dump
read_scratchpadAnswer
Read the text in the visitor's scratchpad, which is kept in this browser and autosaves.
View tool JSON
{
"name": "read_scratchpad",
"kind": "answer",
"impl": "imperative",
"description": "Read the text in the visitor's scratchpad, which is kept in this browser and autosaves.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/dump"
}add_to_scratchpadAction
Add text at the end of the visitor's scratchpad, on a new line, and save it in this browser. What is already there is kept.
View tool JSON
{
"name": "add_to_scratchpad",
"kind": "act",
"impl": "imperative",
"description": "Add text at the end of the visitor's scratchpad, on a new line, and save it in this browser. What is already there is kept.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"required": [
"text"
]
},
"page": "/dump"
}clean_up_linesAction
Tidy a list of lines: trim each, drop empty ones, remove duplicates, and sort (natural order, so item2 comes before item10) or reverse. On the scratchpad's page, the pad's own text is used when none is given, and the pad is left as it is.
View tool JSON
{
"name": "clean_up_lines",
"kind": "act",
"impl": "imperative",
"description": "Tidy a list of lines: trim each, drop empty ones, remove duplicates, and sort (natural order, so item2 comes before item10) or reverse. On the scratchpad's page, the pad's own text is used when none is given, and the pad is left as it is.",
"inputSchema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"maxLength": 2000000,
"description": "Lines to tidy. On the scratchpad's page, leave it out to use the pad's text."
},
"order": {
"type": "string",
"enum": [
"keep",
"asc",
"desc",
"reverse"
],
"default": "keep",
"description": "keep the order, sort asc or desc (natural: item2 before item10), or reverse it."
},
"dedupe": {
"type": "boolean",
"default": true,
"description": "Keep the first of each line that repeats."
},
"trim": {
"type": "boolean",
"default": true,
"description": "Take spaces off both ends of each line."
},
"removeEmpty": {
"type": "boolean",
"default": true,
"description": "Drop lines left empty."
},
"ignoreCase": {
"type": "boolean",
"default": false,
"description": "For duplicates and sorting."
}
},
"required": [],
"additionalProperties": false,
"examples": [
{
"text": "pear\napple\n\npear\nApple",
"order": "asc",
"ignoreCase": true
}
]
},
"page": "/dump"
}