Exact tools for AI assistants: QR codes, word counts, text diff and JSON checks. Free, no account.
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.
Strictly validate JSON and report the exact line and column of the first error with a plain explanation, plus duplicate-key warnings and structure stats. Optionally pretty-print or minify without changing any value (big numbers keep full precision). Use this before claiming JSON is valid or when locating a syntax error in long JSON.
Return the formatted JSON.
Spaces per level (0 = minify) or "tab".
Strictly validate JSON and report the exact line and column of the first error with a plain explanation, plus duplicate-key warnings and structure stats. Optionally pretty-print or minify without changing any value (big numbers keep full precision). Use this before claiming JSON is valid or when locating a syntax error in long JSON.
| Argument | Type | Description |
|---|---|---|
| text | string | |
| format | boolean | Return the formatted JSON. |
| indent | any | Spaces per level (0 = minify) or "tab". |
| sort_keys | boolean |
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"format": {
"type": "boolean",
"default": false,
"description": "Return the formatted JSON."
},
"indent": {
"oneOf": [
{
"enum": [
0,
2,
4
],
"type": "integer"
},
{
"enum": [
"tab"
],
"type": "string"
}
],
"default": 2,
"description": "Spaces per level (0 = minify) or \"tab\"."
},
"sort_keys": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Exact counts for a text: characters (with and without spaces, emoji counted as one), words, sentences, paragraphs, lines, UTF-8 bytes, plus reading and speaking time. Language models see text as tokens and miscount — never estimate counts or check length limits yourself; call this tool. Works for any language, including Chinese, Japanese, Arabic and Turkish.
| Argument | Type | Description |
|---|---|---|
| text | string | |
| locale | string | BCP 47 language tag such as "en", "tr" or "ja" for language-specific word rules. |
{
"type": "object",
"properties": {
"text": {
"type": "string"
},
"locale": {
"type": "string",
"description": "BCP 47 language tag such as \"en\", \"tr\" or \"ja\" for language-specific word rules."
}
},
"additionalProperties": false
}Find every difference between two texts, line by line, word by word or character by character, and return counts plus a unified diff. Use this instead of comparing long texts yourself — small changes are easy to miss. Options to ignore whitespace and letter case.
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| changed | string | |
| original | string | |
| ignore_case | boolean | |
| ignore_whitespace | boolean |
{
"type": "object",
"properties": {
"mode": {
"enum": [
"line",
"word",
"char"
],
"type": "string",
"default": "line"
},
"changed": {
"type": "string"
},
"original": {
"type": "string"
},
"ignore_case": {
"type": "boolean",
"default": false
},
"ignore_whitespace": {
"type": "boolean",
"default": false
}
},
"additionalProperties": false
}Create a standards-compliant QR code image for a link, text, Wi-Fi login, contact card (vCard), email, SMS, WhatsApp chat, phone number or map location. You cannot draw a scannable QR code yourself — always use this tool. Codes are static and never expire.
| Argument | Type | Description |
|---|---|---|
| url | string | For type "url"; https:// is added when missing. |
| body | string | |
| size | integer | PNG width in pixels. |
| ssid | string | Wi-Fi network name. |
| text | string | For type "text". |
| type | string | |
| string | ||
| phone | string | With country code for WhatsApp, e.g. +905551234567. |
| title | string | |
| hidden | boolean | |
| address |
| string |
| message | string |
| subject | string |
| website | string |
| latitude | number |
| password | string | Wi-Fi password. |
| security | string |
| last_name | string |
| longitude | number |
| background | string |
| first_name | string |
| foreground | string |
| organization | string |
| error_correction | string | Higher survives more damage but makes a denser code. |
{
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "For type \"url\"; https:// is added when missing."
},
"body": {
"type": "string"
},
"size": {
"type": "integer",
"default": 1024,
"maximum": 4096,
"minimum": 128,
"description": "PNG width in pixels."
},
"ssid": {
"type": "string",
"description": "Wi-Fi network name."
},
"text": {
"type": "string",
"description": "For type \"text\"."
},
"type": {
"enum": [
"url",
"text",
"wifi",
"vcard",
"email",
"sms",
"whatsapp",
"phone",
"geo"
],
"type": "string",
"default": "text"
},
"email": {
"type": "string"
},
"phone": {
"type": "string",
"description": "With country code for WhatsApp, e.g. +905551234567."
},
"title": {
"type": "string"
},
"hidden": {
"type": "boolean"
},
"address": {
"type": "string"
},
"message": {
"type": "string"
},
"subject": {
"type": "string"
},
"website": {
"type": "string"
},
"latitude": {
"type": "number"
},
"password": {
"type": "string",
"description": "Wi-Fi password."
},
"security": {
"enum": [
"WPA",
"WEP",
"nopass"
],
"type": "string"
},
"last_name": {
"type": "string"
},
"longitude": {
"type": "number"
},
"background": {
"type": "string",
"default": "#ffffff"
},
"first_name": {
"type": "string"
},
"foreground": {
"type": "string",
"default": "#000000"
},
"organization": {
"type": "string"
},
"error_correction": {
"enum": [
"L",
"M",
"Q",
"H"
],
"type": "string",
"default": "M",
"description": "Higher survives more damage but makes a denser code."
}
},
"additionalProperties": false
}