MAD Synapse · Utils
What this MCP does
Provides developer utilities for hashing, encoding, JWT inspection, JSON Schema validation, diffs, Markdown conversion, cron schedules, QR codes, randomness, and unit conversion.
Tools
Input schema
{'type': 'object', 'required': ['expression'], 'properties': {'tz': {'type': 'string', 'default': 'UTC', 'description': 'IANA time zone for the next-run times. Default "UTC".'}, 'count': {'type': 'integer', 'default': 5, 'maximum': 50, 'minimum': 1, 'description': 'How many upcoming run times to list. Range 1-50. Default 5.'}, 'expression': {'type': 'string', 'description': 'Cron expression, 5 fields (or 6 with seconds), e.g. "*/15 9-17 * * 1-5".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'tz': {'type': ['string', 'null']}, 'valid': {'type': ['boolean', 'null']}, 'meaning': {'type': ['string', 'null']}, 'next_runs': {'type': 'array', 'items': {'type': ['object', 'null'], 'properties': {'utc': {'type': ['string', 'null']}, 'local': {'type': ['string', 'null']}}}}, 'expression': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'required': ['input'], 'properties': {'input': {'type': 'string', 'x-raw': True, 'description': 'Data to hash or re-encode.'}, 'hashes': {'type': 'array', 'items': {'type': 'string'}, 'default': ['sha256', 'keccak256'], 'maxItems': 12, 'description': 'sha256, sha512, sha3-256, sha3-512, keccak256, blake2b512, blake2s256, md5, sha1, ripemd160. 0-12 items. Default ["sha256","keccak256"].'}, 'hmac_key': {'type': 'string', 'description': 'if set, HMAC instead of plain hash (utf8 key)'}, 'input_encoding': {'enum': ['utf8', 'hex', 'base64', 'base58'], 'type': 'string', 'default': 'utf8', 'description': 'How the input string is encoded. One of "utf8", "hex", "base64", "base58". Default "utf8".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'bytes': {'type': ['number', 'null']}, 'hashes': {'type': ['object', 'null'], 'properties': {'sha256': {'type': ['string', 'null']}, 'keccak256': {'type': ['string', 'null']}, 'evm_selector': {'type': ['string', 'null']}}}, 'encodings': {'type': ['object', 'null'], 'properties': {'hex': {'type': ['string', 'null']}, 'utf8': {'type': ['string', 'null']}, 'base58': {'type': ['string', 'null']}, 'base64': {'type': ['string', 'null']}, 'base64url': {'type': ['string', 'null']}}}}}
Input schema
{'type': 'object', 'required': ['data', 'schema'], 'properties': {'data': {'description': 'any JSON value (or a JSON string with parse_strings=true)'}, 'schema': {'type': 'object', 'description': 'The JSON Schema to validate against.'}, 'parse_strings': {'type': 'boolean', 'default': False, 'description': 'true = if data is a string, parse it as JSON first. Default false.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'valid': {'type': ['boolean', 'null']}, 'errors': {'type': 'array', 'items': {'type': ['object', 'null'], 'properties': {'path': {'type': ['string', 'null']}, 'params': {'type': ['object', 'null']}, 'keyword': {'type': ['string', 'null']}, 'message': {'type': ['string', 'null']}}}}, 'error_count': {'type': ['number', 'null']}}}
Input schema
{'type': 'object', 'required': ['token'], 'properties': {'token': {'type': 'string', 'description': 'The JWT (three base64url parts). The signature is not verified.'}, 'secret': {'type': 'string', 'description': 'optional HMAC secret to verify HS* signatures'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'header': {'type': ['object', 'null'], 'properties': {'alg': {'type': ['string', 'null']}, 'typ': {'type': ['string', 'null']}}}, 'expired': {'type': ['boolean', 'null']}, 'payload': {'type': ['object', 'null'], 'properties': {'exp': {'type': ['number', 'null']}, 'iat': {'type': ['number', 'null']}, 'sub': {'type': ['string', 'null']}}}, 'issued_at': {'type': ['string', 'null']}, 'signature': {'type': ['string', 'null']}, 'expires_at': {'type': ['string', 'null']}, 'not_before': {}, 'seconds_left': {'type': ['number', 'null']}, 'alg_none_warning': {}}}
Input schema
{'type': 'object', 'required': ['input'], 'properties': {'to': {'enum': ['html', 'markdown'], 'type': 'string', 'default': 'html', 'description': 'Target format. One of "html", "markdown". Default "html".'}, 'input': {'type': 'string', 'x-raw': True, 'description': 'Markdown or HTML to convert.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'to': {'type': ['string', 'null']}, 'output': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'properties': {'dark': {'type': 'string', 'default': '#000000', 'pattern': '^#[0-9a-fA-F]{6}$', 'description': 'Foreground colour as #rrggbb. Default "#000000".'}, 'size': {'type': 'integer', 'default': 512, 'maximum': 2048, 'minimum': 64, 'description': 'Image width/height in pixels. Range 64-2048. Default 512.'}, 'text': {'type': 'string', 'x-raw': True, 'description': 'Text or URL to encode (ignored when wifi_ssid is set).'}, 'light': {'type': 'string', 'default': '#ffffff', 'pattern': '^#[0-9a-fA-F]{6}$', 'description': 'Background colour as #rrggbb. Default "#ffffff".'}, 'format': {'enum': ['png', 'svg'], 'type': 'string', 'default': 'png', 'description': 'PNG (base64 data URL) or SVG markup. One of "png", "svg". Default "png".'}, 'margin': {'type': 'integer', 'default': 2, 'maximum': 16, 'minimum': 0, 'description': 'Quiet-zone width in modules. Range 0-16. Default 2.'}, 'wifi_ssid': {'type': 'string', 'description': 'Wi-Fi network name; makes a join-network QR instead of text.'}, 'wifi_password': {'type': 'string', 'description': 'Wi-Fi password (with wifi_ssid; omit for open networks).'}, 'error_correction': {'enum': ['L', 'M', 'Q', 'H'], 'type': 'string', 'default': 'M', 'description': 'Error-correction level: L 7%, M 15%, Q 25%, H 30%. One of "L", "M", "Q", "H". Default "M".'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'svg': {'type': ['string', 'null']}, 'format': {'type': ['string', 'null']}, 'encoded': {'type': ['string', 'null']}}}
Input schema
{'type': 'object', 'properties': {'max': {'type': 'integer', 'default': 100, 'description': 'Highest integer (kind=int). Default 100.'}, 'min': {'type': 'integer', 'default': 1, 'description': 'Lowest integer (kind=int or dice sides). Default 1.'}, 'kind': {'enum': ['uuid4', 'uuid7', 'password', 'token', 'int', 'shuffle', 'pick', 'coin', 'dice'], 'type': 'string', 'default': 'uuid4', 'description': 'What to generate. One of "uuid4", "uuid7", "password", "token", "int", "shuffle", "pick", "coin", "dice". Default "uuid4".'}, 'count': {'type': 'integer', 'default': 1, 'maximum': 100, 'minimum': 1, 'description': 'How many values to generate. Range 1-100. Default 1.'}, 'items': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 1000, 'description': 'List to shuffle or pick from (kind=shuffle or pick). 0-1000 items.'}, 'length': {'type': 'integer', 'default': 20, 'maximum': 256, 'minimum': 4, 'description': 'Length for passwords and tokens. Range 4-256. Default 20.'}, 'symbols': {'type': 'boolean', 'default': True, 'description': 'Include symbols in passwords. Default true.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'kind': {'type': ['string', 'null']}, 'result': {'type': 'array', 'items': {'type': ['string', 'null']}}}}
Input schema
{'type': 'object', 'required': ['a', 'b'], 'properties': {'a': {'type': 'string', 'x-raw': True, 'description': 'Original text.'}, 'b': {'type': 'string', 'x-raw': True, 'description': 'Changed text.'}, 'mode': {'enum': ['lines', 'words'], 'type': 'string', 'default': 'lines', 'description': 'Diff granularity. One of "lines", "words". Default "lines".'}, 'context': {'type': 'integer', 'default': 3, 'maximum': 20, 'minimum': 0, 'description': 'Unchanged lines of context around each change in the patch. Range 0-20. Default 3.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'changes': {'type': 'array', 'items': {'type': ['object', 'null'], 'properties': {'op': {'type': ['string', 'null']}, 'text': {'type': ['string', 'null']}}}}, 'unified': {'type': ['string', 'null']}, 'identical': {'type': ['boolean', 'null']}, 'chars_added': {'type': ['number', 'null']}, 'chars_removed': {'type': ['number', 'null']}, 'similarity_pct': {'type': ['number', 'null']}}}
Input schema
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'x-raw': True, 'description': 'Text (or a URL when extract=true) to analyse.'}, 'extract': {'type': 'boolean', 'default': True, 'description': 'true = if text is a URL, fetch the page and analyse its readable text. Default true.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'lines': {'type': ['number', 'null']}, 'words': {'type': ['number', 'null']}, 'extracted': {'type': ['object', 'null'], 'properties': {'urls': {'type': 'array', 'items': {'type': ['string', 'null']}}, 'emails': {'type': 'array', 'items': {'type': ['string', 'null']}}, 'handles': {'type': 'array', 'items': {'type': ['string', 'null']}}, 'numbers': {'type': 'array'}, 'hashtags': {'type': 'array', 'items': {'type': ['string', 'null']}}, 'evm_addresses': {'type': 'array'}, 'solana_addresses': {'type': 'array'}}}, 'sentences': {'type': ['number', 'null']}, 'characters': {'type': ['number', 'null']}, 'paragraphs': {'type': ['number', 'null']}, 'readability': {'type': ['string', 'null']}, 'reading_minutes': {'type': ['number', 'null']}, 'estimated_tokens': {'type': ['number', 'null']}, 'flesch_reading_ease': {'type': ['number', 'null']}, 'characters_no_spaces': {'type': ['number', 'null']}}}
Input schema
{'type': 'object', 'required': ['value', 'from'], 'properties': {'to': {'type': 'string', 'description': 'omit to get every compatible unit'}, 'from': {'type': 'string', 'description': 'Source unit, e.g. "mi", "kg", "degF", "GB".'}, 'value': {'type': 'number', 'description': 'Number to convert.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'properties': {'to': {'type': ['string', 'null']}, 'from': {'type': ['string', 'null']}, 'value': {'type': ['number', 'null']}, 'result': {'type': ['number', 'null']}}}
Recent tool changes
Similar MCP servers
hyperion
Acts as a paid MCP tool marketplace and utility gateway with server discovery, HTTP and JavaScript tools, research, data conversi…
Vee3
Manages Clerk authentication infrastructure, including users, organizations, domains, sessions, tokens, OAuth, SSO, machines, per…
IA-QA — 130+ QA & Dev Tools for AI Agents
Provides deterministic QA, evaluation, testing, code analysis, prompt and RAG checks, model comparison, and web security diagnost…
validoria-mcp
Runs continuous website, API, and webshop tests covering security, SEO, performance, accessibility, browser journeys, and inciden…
HubVibe: Pay-per-Call Tools for AI Agents: Web Search, Email Verify, KYC, Stocks, Crypto, News, Data
Offers paid utilities for web audits, HTTP fetching and extraction, BigQuery analysis, LLM processing, code execution, blockchain…
developer-tools
Provides general-purpose developer utilities for encoding, hashing, encryption, JSON, HTML, CSS, networking, and related data tra…
Qiniso
Provides deterministic formatting, parsing, holiday and tax lookups, address handling, and checksum or structure validation for i…
ContrastAPI
Provides security research and assessment tools covering CVEs, IOCs, dependencies, secrets, injection risks, HTTP headers, domain…