{"apiVersion":"v1","directorySlug":"findutils-mcp-0cb9e9caa1","title":"FindUtils","description":"FindUtils.com offers 427 browser tools: JSON, PDF, passwords, image converters, and calculators. No signup. Tool input stays in your browser.","pageUrl":"https://www.mcpbundles.com/skills/findutils-mcp-0cb9e9caa1","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.findutils.com/mcp","hostedMcpUrl":null,"toolCount":356,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.findutils/findutils-mcp-0cb9e9caa1","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"a2ui_basic_catalog","description":"Returns the authoritative basic-catalog JSON Schema (components, functions, theme) for the requested A2UI version. Use this to validate agent output or bootstrap a custom catalog.","inputSchema":{"type":"object","properties":{"version":{"enum":["v0.9","v0.10"],"type":"string"}}},"logicalName":"a2ui_basic_catalog","displayName":"a2ui_basic_catalog","title":"a2ui_basic_catalog","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"a2ui_validate","description":"Validates a JSONL A2UI payload against the basic catalog (or a custom catalog) and returns any errors, warnings, or info messages with exact line numbers. Call this on every LLM-generated payload before sending to the client.","inputSchema":{"type":"object","required":["payload"],"properties":{"catalog":{"type":"object"},"payload":{"type":"string"},"version":{"enum":["v0.8","v0.9"],"type":"string"}}},"logicalName":"a2ui_validate","displayName":"a2ui_validate","title":"a2ui_validate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"age_calculate","description":"Calculate age from a date of birth — years, months, days, plus totals in days, weeks, and months. Accepts ISO 8601 or anything Date.parse handles.","inputSchema":{"type":"object","required":["date_of_birth"],"properties":{"date_of_birth":{"type":"string"},"reference_date":{"type":"string"}}},"logicalName":"age_calculate","displayName":"age_calculate","title":"age_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"aspect_ratio","description":"Compute the aspect ratio of width:height. Optionally scale to a new width or height.","inputSchema":{"type":"object","required":["width","height"],"properties":{"width":{"type":"number"},"height":{"type":"number"},"new_width":{"type":"number"},"new_height":{"type":"number"}}},"logicalName":"aspect_ratio","displayName":"aspect_ratio","title":"aspect_ratio","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"base32_decode","description":"Decode RFC 4648 base32 back to UTF-8 text. Case-insensitive; padding \"=\" optional.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":2000000}}},"logicalName":"base32_decode","displayName":"base32_decode","title":"base32_decode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"base32_encode","description":"Encode UTF-8 text to RFC 4648 base32 (uppercase, \"=\" padding). Useful for TOTP secrets and case-insensitive identifiers.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":1000000}}},"logicalName":"base32_encode","displayName":"base32_encode","title":"base32_encode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"base64_decode","description":"Decode a base64 string back to UTF-8 text.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":2000000}}},"logicalName":"base64_decode","displayName":"base64_decode","title":"base64_decode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"base64_encode","description":"Encode UTF-8 text as a base64 string.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":1000000}}},"logicalName":"base64_encode","displayName":"base64_encode","title":"base64_encode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"bmi_calculate","description":"Compute Body Mass Index (BMI) with metric (kg/cm) or imperial (lb/in) units.","inputSchema":{"type":"object","required":["weight","height"],"properties":{"unit":{"enum":["metric","imperial"],"type":"string","default":"metric"},"height":{"type":"number"},"weight":{"type":"number"}}},"logicalName":"bmi_calculate","displayName":"bmi_calculate","title":"bmi_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"bot_crawl_checker","description":"Return which of 24 well-known crawlers (Googlebot, BingBot, GPTBot, ClaudeBot, PerplexityBot, AhrefsBot, Twitterbot and more) are allowed or blocked for a URL by the site's robots.txt, with the matching rule and user-agent group per bot.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","maxLength":2048}}},"logicalName":"bot_crawl_checker","displayName":"bot_crawl_checker","title":"bot_crawl_checker","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"case_convert","description":"Convert a string between camelCase, PascalCase, snake_case, kebab-case, SCREAMING_SNAKE, Title Case, Sentence case, lower, UPPER.","inputSchema":{"type":"object","required":["text","to"],"properties":{"to":{"enum":["camel","pascal","snake","kebab","screaming_snake","title","sentence","lower","upper"],"type":"string"},"text":{"type":"string","maxLength":1000000}}},"logicalName":"case_convert","displayName":"case_convert","title":"case_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"chmod_calculate","description":"Convert between numeric (755) and symbolic (rwxr-xr-x) Unix file permissions.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","maxLength":10}}},"logicalName":"chmod_calculate","displayName":"chmod_calculate","title":"chmod_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cidr_calculate","description":"Compute network / broadcast / first-last host / subnet mask / hosts count for a CIDR (e.g. 192.168.1.0/24).","inputSchema":{"type":"object","required":["cidr"],"properties":{"cidr":{"type":"string","maxLength":20}}},"logicalName":"cidr_calculate","displayName":"cidr_calculate","title":"cidr_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"color_contrast","description":"Compute the WCAG 2.1 contrast ratio between two colours (accepts #rgb, #rrggbb, and rgb()/rgba() formats) and report whether it passes AA/AAA for normal and large text.","inputSchema":{"type":"object","required":["foreground","background"],"properties":{"background":{"type":"string","minLength":3},"foreground":{"type":"string","minLength":3}}},"logicalName":"color_contrast","displayName":"color_contrast","title":"color_contrast","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"color_convert","description":"Convert between color formats: hex, rgb, hsl, hsv.","inputSchema":{"type":"object","required":["color","from","to"],"properties":{"to":{"enum":["hex","rgb","hsl","hsv"],"type":"string"},"from":{"enum":["hex","rgb","hsl","hsv"],"type":"string"},"color":{"type":"string","maxLength":100}}},"logicalName":"color_convert","displayName":"color_convert","title":"color_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"credit_card_validate","description":"Validate a credit card number with the Luhn checksum and detect the brand.","inputSchema":{"type":"object","required":["number"],"properties":{"number":{"type":"string","maxLength":30}}},"logicalName":"credit_card_validate","displayName":"credit_card_validate","title":"credit_card_validate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cron_describe","description":"Parse a 5-field cron expression (minute hour day-of-month month day-of-week) and produce a human-readable English description.","inputSchema":{"type":"object","required":["expression"],"properties":{"expression":{"type":"string","maxLength":200}}},"logicalName":"cron_describe","displayName":"cron_describe","title":"cron_describe","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cron_to_systemd","description":"Convert a 5-field cron expression into a systemd timer plus service unit and a Kubernetes CronJob YAML file. Six-field cron (with seconds) is rejected.","inputSchema":{"type":"object","required":["expression"],"properties":{"command":{"type":"string","maxLength":500},"unit_name":{"type":"string","maxLength":80},"expression":{"type":"string","maxLength":200}}},"logicalName":"cron_to_systemd","displayName":"cron_to_systemd","title":"cron_to_systemd","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"csv_to_json","description":"Parse CSV text into an array of objects keyed by the header row.","inputSchema":{"type":"object","required":["csv"],"properties":{"csv":{"type":"string","maxLength":10000000},"coerce":{"type":"boolean","default":false},"delimiter":{"type":"string","default":",","maxLength":1}}},"logicalName":"csv_to_json","displayName":"csv_to_json","title":"csv_to_json","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"date_difference","description":"Compute the difference between two dates in years/months/weeks/days/hours/minutes/seconds.","inputSchema":{"type":"object","required":["start"],"properties":{"end":{"type":"string","maxLength":50},"start":{"type":"string","maxLength":50}}},"logicalName":"date_difference","displayName":"date_difference","title":"date_difference","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dns_lookup","description":"Return the DNS records of a domain for one record type (A, AAAA, CNAME, MX, TXT, NS or SOA). Resolved through the public Google DNS-over-HTTPS resolver.","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","maxLength":253},"record_type":{"enum":["A","AAAA","CNAME","MX","TXT","NS","SOA"],"type":"string","default":"A"}}},"logicalName":"dns_lookup","displayName":"dns_lookup","title":"dns_lookup","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"dns_security_scanner","description":"Return a DNS security report for a domain: SPF, DMARC, MX and CAA records with issues, a 0-100 score, a letter grade and recommendations. Records are resolved through Cloudflare DNS-over-HTTPS.","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","maxLength":253}}},"logicalName":"dns_security_scanner","displayName":"dns_security_scanner","title":"dns_security_scanner","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"domain_rating_checker","description":"Return the Ahrefs Domain Rating (0-100) for up to 25 domains in one call, with a per-domain status. Results carry the required \"Domain Rating by Ahrefs\" attribution.","inputSchema":{"type":"object","required":["domains"],"properties":{"domains":{"type":"array","items":{"type":"string","maxLength":253}}}},"logicalName":"domain_rating_checker","displayName":"domain_rating_checker","title":"domain_rating_checker","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_header_analyzer","description":"Return a structured analysis of raw email headers: sender, recipient, subject, date, message id, the Received hop chain with per-hop delays, SPF/DKIM/DMARC results, every public IP seen, and suspicious-routing flags.","inputSchema":{"type":"object","required":["headers"],"properties":{"headers":{"type":"string","maxLength":200000,"minLength":1}}},"logicalName":"email_header_analyzer","displayName":"email_header_analyzer","title":"email_header_analyzer","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_security_checker","description":"Return an email-security report for the domain of an email address: MX, SPF, DKIM (common selectors), DMARC, MTA-STS, TLS-RPT and BIMI checks with a 0-100 score and recommendations. Records are resolved through Cloudflare DNS-over-HTTPS.","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","maxLength":320}}},"logicalName":"email_security_checker","displayName":"email_security_checker","title":"email_security_checker","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_validate","description":"Validate an email address and report every rule it breaks and break it into local / domain / TLD parts.","inputSchema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","maxLength":320}}},"logicalName":"email_validate","displayName":"email_validate","title":"email_validate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"env_linter","description":"Lint a dotenv file for duplicate keys, unquoted spaces, export prefixes, secret-looking values (masked), and drift against an optional .env.example. Returns issues and a masked key table. Does not execute the file.","inputSchema":{"type":"object","required":["env"],"properties":{"env":{"type":"string","maxLength":64000},"example":{"type":"string","maxLength":64000}}},"logicalName":"env_linter","displayName":"env_linter","title":"env_linter","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"faq_schema_generator","description":"Generate FAQPage JSON-LD structured data from question-answer pairs, and return the JSON-LD string, a ready <script> tag, the schema object, and validation warnings (empty, duplicate, too short, too long).","inputSchema":{"type":"object","required":["faqs"],"properties":{"faqs":{"type":"array","items":{"type":"object"}}}},"logicalName":"faq_schema_generator","displayName":"faq_schema_generator","title":"faq_schema_generator","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"gcd_calculate","description":"Greatest Common Divisor (GCD) and Least Common Multiple (LCM) of two non-negative integers. Uses the Euclidean algorithm.","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"integer"},"b":{"type":"integer"}}},"logicalName":"gcd_calculate","displayName":"gcd_calculate","title":"gcd_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"geo_analyzer","description":"Return a Generative Engine Optimization (GEO) report for a public web page: an overall 0-100 score, per-category scores (technical, content, geo, ai-access), a citability score, AI-bot access from robots.txt, llms.txt presence and a list of pass/warn/fail checks with recommendations.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","maxLength":2048}}},"logicalName":"geo_analyzer","displayName":"geo_analyzer","title":"geo_analyzer","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"gpa_calculator","description":"Calculate a grade point average (GPA) on the 4.0 scale from course letter grades and credits. Returns the GPA, a quality label, total credits, total quality points, and per-course points. Grades A+ to F (A+ and A = 4.0, A- = 3.7, B+ = 3.3, ..., F = 0).","inputSchema":{"type":"object","required":["courses"],"properties":{"courses":{"type":"array","items":{"type":"object"}}}},"logicalName":"gpa_calculator","displayName":"gpa_calculator","title":"gpa_calculator","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"graphql_playground","description":"Check a GraphQL query for balanced braces and, when a schema is supplied, unknown fields on Query/Mutation/Subscription types. This is a syntax and field-name check. It does not execute a query and it is not a full GraphQL engine.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":20000},"schema":{"type":"string","maxLength":80000}}},"logicalName":"graphql_playground","displayName":"graphql_playground","title":"graphql_playground","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"har_viewer","description":"Parse HAR 1.x JSON and return each entry’s method, URL, status, size, time, and MIME type. Request bodies, cookies, and headers are omitted. Convert a HAR to curl with har_to_curl.","inputSchema":{"type":"object","required":["har"],"properties":{"har":{"type":"string","maxLength":256000}}},"logicalName":"har_viewer","displayName":"har_viewer","title":"har_viewer","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hash_generate","description":"Hash text with MD5, SHA-1, SHA-256, or SHA-512. Returns hex digest.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":5000000},"algorithm":{"enum":["MD5","SHA-1","SHA-256","SHA-512"],"type":"string","default":"SHA-256"}}},"logicalName":"hash_generate","displayName":"hash_generate","title":"hash_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"heading_structure_analyzer","description":"Analyze the H1-H6 heading hierarchy of an HTML document and return every heading, SEO warnings (missing or multiple H1, skipped levels, empty or overly long headings), and per-level counts.","inputSchema":{"type":"object","required":["html"],"properties":{"html":{"type":"string","maxLength":2000000},"keyword":{"type":"string","maxLength":200}}},"logicalName":"heading_structure_analyzer","displayName":"heading_structure_analyzer","title":"heading_structure_analyzer","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hex_decode","description":"Decode a hexadecimal string back to UTF-8 text. Whitespace, dashes, and colons between bytes are tolerated.","inputSchema":{"type":"object","required":["hex"],"properties":{"hex":{"type":"string","maxLength":2000000}}},"logicalName":"hex_decode","displayName":"hex_decode","title":"hex_decode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hex_encode","description":"Encode UTF-8 text as a hexadecimal string. Optional separator between bytes and uppercase output.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":1000000},"upper":{"type":"boolean"},"separator":{"type":"string","maxLength":4}}},"logicalName":"hex_encode","displayName":"hex_encode","title":"hex_encode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"hmac_generate","description":"Compute an HMAC of a message with a secret key. Returns hex digest.","inputSchema":{"type":"object","required":["message","secret"],"properties":{"secret":{"type":"string","maxLength":1000},"message":{"type":"string","maxLength":5000000},"algorithm":{"enum":["SHA-256","SHA-512"],"type":"string","default":"SHA-256"}}},"logicalName":"hmac_generate","displayName":"hmac_generate","title":"hmac_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"html_entity_decode","description":"Decode HTML entities back to characters. Handles named entities (amp/lt/gt/quot/apos plus common typography), decimal (&#NNN;), and hex (&#xHH;) forms.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":1000000}}},"logicalName":"html_entity_decode","displayName":"html_entity_decode","title":"html_entity_decode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"html_entity_encode","description":"Encode HTML special characters as entities. Named mode uses &amp;/&lt;/&gt;/&quot;/&#39;; numeric mode uses &#NNN; for all non-ASCII plus the five reserved chars.","inputSchema":{"type":"object","required":["text"],"properties":{"mode":{"enum":["named","numeric"],"type":"string"},"text":{"type":"string","maxLength":1000000}}},"logicalName":"html_entity_encode","displayName":"html_entity_encode","title":"html_entity_encode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"html_strip","description":"Strip all HTML tags from a string, converting block tags to newlines and decoding common entities.","inputSchema":{"type":"object","required":["html"],"properties":{"html":{"type":"string","maxLength":10000000},"decode_entities":{"type":"boolean","default":true},"collapse_whitespace":{"type":"boolean","default":false}}},"logicalName":"html_strip","displayName":"html_strip","title":"html_strip","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"html_to_markdown","description":"Convert HTML fragments to Markdown. Supports headings, paragraphs, lists, links, images, inline code, code blocks, blockquotes, and basic inline emphasis. Unknown tags are stripped, content preserved.","inputSchema":{"type":"object","required":["html"],"properties":{"html":{"type":"string","maxLength":1000000}}},"logicalName":"html_to_markdown","displayName":"html_to_markdown","title":"html_to_markdown","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ip_blacklist_checker","description":"Return whether an IPv4 address is listed on 12 well-known DNS blacklists (Spamhaus, Barracuda, SpamCop, SORBS, UCEPROTECT, PSBL and more), with listed, clean and failed counts. Lookups use Google DNS-over-HTTPS.","inputSchema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","maxLength":15}}},"logicalName":"ip_blacklist_checker","displayName":"ip_blacklist_checker","title":"ip_blacklist_checker","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ip_validate","description":"Validate an IPv4 or IPv6 address and classify it (public / private / loopback / link-local / multicast / global).","inputSchema":{"type":"object","required":["ip"],"properties":{"ip":{"type":"string","maxLength":45}}},"logicalName":"ip_validate","displayName":"ip_validate","title":"ip_validate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_flatten","description":"Flatten a nested JSON object into a single-level map with dot-separated keys.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":10000000},"separator":{"type":"string","default":".","maxLength":4},"arrayNotation":{"enum":["bracket","dot"],"type":"string","default":"bracket"}}},"logicalName":"json_flatten","displayName":"json_flatten","title":"json_flatten","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_format","description":"Pretty-print JSON with the requested indentation (1-8 spaces).","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":10000000},"indent":{"type":"integer","default":2,"maximum":8,"minimum":1},"minify":{"type":"boolean","default":false}}},"logicalName":"json_format","displayName":"json_format","title":"json_format","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_minifier","description":"Minify JSON to a single line with no whitespace and return the compact text plus original size, minified size (bytes), and reduction percentage. The input must be valid JSON; a parse error is reported with its position.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":10000000}}},"logicalName":"json_minifier","displayName":"json_minifier","title":"json_minifier","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_query","description":"Extract a value from JSON via a dotted path. Supports array indexes like \"users[0].email\".","inputSchema":{"type":"object","required":["json","path"],"properties":{"json":{"type":"string","maxLength":10000000},"path":{"type":"string","maxLength":1000}}},"logicalName":"json_query","displayName":"json_query","title":"json_query","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_bootstrap_form","description":"Returns Bootstrap 5 form markup generated from a JSON form schema ({ formId?, layout?, method?, action?, fields: [...], submitText? }). Supports vertical, horizontal (row/col-md-6) and floating-label layouts with form-control, form-select and form-check classes.","inputSchema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"string","maxLength":1000000}}},"logicalName":"json_to_bootstrap_form","displayName":"json_to_bootstrap_form","title":"json_to_bootstrap_form","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_chart","description":"Render a bar, line, or pie chart as an SVG string from JSON data of the form {\"title\",\"type\",\"data\":[{\"label\",\"value\",\"color?\"}]}. Returns the SVG, the normalised data points with colours and percentages, the total, and the maximum value.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":200000},"type":{"enum":["bar","line","pie"],"type":"string"}}},"logicalName":"json_to_chart","displayName":"json_to_chart","title":"json_to_chart","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_csv","description":"Convert a JSON array of flat objects into CSV. Union of keys becomes the header row.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":10000000},"delimiter":{"type":"string","default":",","maxLength":1},"include_headers":{"type":"boolean","default":true}}},"logicalName":"json_to_csv","displayName":"json_to_csv","title":"json_to_csv","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_email_template","description":"Generate a responsive, table-based HTML email (header, greeting, body paragraphs, button, footer, unsubscribe link) from JSON such as {\"title\",\"body\":[\"...\"],\"button\":{\"text\",\"url\"},\"companyName\"}. Returns the full HTML document.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":200000}}},"logicalName":"json_to_email_template","displayName":"json_to_email_template","title":"json_to_email_template","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_html_form","description":"Returns clean HTML5 form markup generated from a JSON form schema ({ formId?, formClass?, method?, action?, fields: [...], submitText? }). Each field becomes a labelled input, textarea, select, checkbox or radio group with its validation attributes.","inputSchema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"string","maxLength":1000000}}},"logicalName":"json_to_html_form","displayName":"json_to_html_form","title":"json_to_html_form","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_org_chart","description":"Generate nested HTML for an organisation chart from JSON of the form {\"title\",\"root\":{\"name\",\"title\",\"avatar\",\"children\":[...]}}. Returns the HTML (div.org-chart with .org-node/.node-card/.node-children classes), the node count, and the depth.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":500000}}},"logicalName":"json_to_org_chart","displayName":"json_to_org_chart","title":"json_to_org_chart","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_react_form","description":"Return a typed React (TSX) form component generated from a JSON schema of fields — inputs, textarea, select, checkbox, radio — with useState handling, validation attributes and a submit handler.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":200000}}},"logicalName":"json_to_react_form","displayName":"json_to_react_form","title":"json_to_react_form","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_readme","description":"Generate a README.md (title, shields.io badges, description, demo/docs links, features, installation, usage, contributing, author, license) from JSON such as {\"name\",\"description\",\"features\":[...],\"installation\":[...],\"license\":\"MIT\"}. Returns the Markdown and the list of sections included.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":200000}}},"logicalName":"json_to_readme","displayName":"json_to_readme","title":"json_to_readme","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_to_tailwind_form","description":"Generate React JSX for a Tailwind CSS styled form from a JSON form schema. Supports text, email, number, tel, url, password, textarea, select, checkbox, radio, date, time, datetime-local, and file fields with labels, placeholders, required marks, and validation attributes.","inputSchema":{"type":"object","required":["schema"],"properties":{"schema":{"type":"object"}}},"logicalName":"json_to_tailwind_form","displayName":"json_to_tailwind_form","title":"json_to_tailwind_form","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"json_validate","description":"Validate a JSON string. Returns type + shape summary, or a parse error with position.","inputSchema":{"type":"object","required":["json"],"properties":{"json":{"type":"string","maxLength":10000000}}},"logicalName":"json_validate","displayName":"json_validate","title":"json_validate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"jwt_decode","description":"Decode a JWT header + payload. Does NOT verify the signature — validation must happen at the token source.","inputSchema":{"type":"object","required":["token"],"properties":{"token":{"type":"string","maxLength":100000}}},"logicalName":"jwt_decode","displayName":"jwt_decode","title":"jwt_decode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"kktc_exchange_rates","description":"Return live buy and sell exchange rates (against Turkish lira) from Northern Cyprus (KKTC) exchange offices and banks, per currency, with the best buy and best sell office. Optionally filter to one currency code.","inputSchema":{"type":"object","properties":{"currency":{"type":"string","maxLength":3}}},"logicalName":"kktc_exchange_rates","displayName":"kktc_exchange_rates","title":"kktc_exchange_rates","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"levenshtein_distance","description":"Compute the Levenshtein edit distance between two strings (minimum single-character insertions, deletions, or substitutions to transform A into B). Also returns a normalised similarity in [0, 1].","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string","maxLength":10000},"b":{"type":"string","maxLength":10000}}},"logicalName":"levenshtein_distance","displayName":"levenshtein_distance","title":"levenshtein_distance","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"loan_calculate","description":"Amortise a fixed-rate loan and show the impact of an optional monthly extra payment on payoff time and total interest.","inputSchema":{"type":"object","required":["principal","annual_rate","years"],"properties":{"years":{"type":"number","maximum":100,"minimum":0},"principal":{"type":"number","minimum":0},"annual_rate":{"type":"number","minimum":0},"extra_payment":{"type":"number","minimum":0}}},"logicalName":"loan_calculate","displayName":"loan_calculate","title":"loan_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"lorem_ipsum_generate","description":"Generate Lorem Ipsum placeholder text: words, sentences, or paragraphs.","inputSchema":{"type":"object","properties":{"type":{"enum":["words","sentences","paragraphs"],"type":"string","default":"paragraphs"},"count":{"type":"integer","default":3,"maximum":100,"minimum":1},"start_with_lorem":{"type":"boolean","default":true}}},"logicalName":"lorem_ipsum_generate","displayName":"lorem_ipsum_generate","title":"lorem_ipsum_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"markdown_table_parse","description":"Parse a GitHub-flavored Markdown table into structured rows: headers, column alignments, cell rows, and one record object per row. This is the data step of the Markdown Table to Image tool; the PNG rendering stays in the browser.","inputSchema":{"type":"object","required":["markdown"],"properties":{"markdown":{"type":"string","maxLength":500000}}},"logicalName":"markdown_table_parse","displayName":"markdown_table_parse","title":"markdown_table_parse","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"morse_code","description":"Encode text to Morse code or decode it back. Letters are separated by a space and words by \" / \".","inputSchema":{"type":"object","required":["text"],"properties":{"mode":{"enum":["encode","decode"],"type":"string","default":"encode"},"text":{"type":"string","maxLength":10000}}},"logicalName":"morse_code","displayName":"morse_code","title":"morse_code","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"mortgage_calculate","description":"Compute a fixed-rate mortgage monthly payment using the standard amortisation formula M = P·r(1+r)^n / ((1+r)^n - 1). Assumes monthly compounding.","inputSchema":{"type":"object","required":["principal","annual_rate","years"],"properties":{"years":{"type":"number","maximum":100,"minimum":0},"principal":{"type":"number","minimum":0},"annual_rate":{"type":"number","minimum":0}}},"logicalName":"mortgage_calculate","displayName":"mortgage_calculate","title":"mortgage_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"nanoid_generate","description":"Generate one or more NanoID-style identifiers. Defaults to the standard 21-char URL-safe alphabet used by the npm `nanoid` package. Uses rejection sampling so custom alphabets stay unbiased.","inputSchema":{"type":"object","properties":{"size":{"type":"integer","maximum":256,"minimum":2},"count":{"type":"integer","maximum":100,"minimum":1},"alphabet":{"type":"string","maxLength":256,"minLength":2}}},"logicalName":"nanoid_generate","displayName":"nanoid_generate","title":"nanoid_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"number_base_convert","description":"Convert an integer between bases 2, 8, 10, and 16.","inputSchema":{"type":"object","required":["value","from","to"],"properties":{"to":{"enum":[2,8,10,16],"type":"integer"},"from":{"enum":[2,8,10,16],"type":"integer"},"value":{"type":"string","maxLength":200}}},"logicalName":"number_base_convert","displayName":"number_base_convert","title":"number_base_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"palindrome_check","description":"Check if a string reads the same forwards and backwards. Strict mode compares the raw string; relaxed (default) lowercases and strips non-alphanumeric characters first.","inputSchema":{"type":"object","required":["text"],"properties":{"mode":{"enum":["strict","relaxed"],"type":"string"},"text":{"type":"string","maxLength":100000}}},"logicalName":"palindrome_check","displayName":"palindrome_check","title":"palindrome_check","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"password_breach_checker","description":"Return whether a password appears in known data breaches and how many times, using the Have I Been Pwned k-anonymity range API. Only the first 5 characters of the SHA-1 hash are sent upstream.","inputSchema":{"type":"object","required":["password"],"properties":{"password":{"type":"string","maxLength":1024,"minLength":1}}},"logicalName":"password_breach_checker","displayName":"password_breach_checker","title":"password_breach_checker","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"password_strength","description":"Estimate password strength using character-class entropy. Returns a 0–4 score, a descriptive label, and actionable feedback. NOT a substitute for a full dictionary check (zxcvbn) — this is fast and offline-safe.","inputSchema":{"type":"object","required":["password"],"properties":{"password":{"type":"string","maxLength":1024}}},"logicalName":"password_strength","displayName":"password_strength","title":"password_strength","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"pdf_merge","description":"Combine several PDFs into one, in the order given. Each input is a base64-encoded PDF and the result is a base64-encoded PDF. Pages are copied as they are — nothing is re-rendered, re-encoded or watermarked. An encrypted PDF must be unlocked first.","inputSchema":{"type":"object","required":["pdfs"],"properties":{"pdfs":{"type":"array","items":{"type":"string"}}}},"logicalName":"pdf_merge","displayName":"pdf_merge","title":"pdf_merge","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"pdf_split","description":"Take a selection of pages out of a PDF into a new one. Pages are given as 1-based numbers and ranges, such as \"1,3,5-8\", and come out in the order written. Input and output are base64-encoded PDFs. Pages are copied as they are — nothing is re-rendered or re-encoded.","inputSchema":{"type":"object","required":["pdf","pages"],"properties":{"pdf":{"type":"string","maxLength":20000000},"pages":{"type":"string","maxLength":2000}}},"logicalName":"pdf_split","displayName":"pdf_split","title":"pdf_split","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"pem_decoder","description":"Parse PEM certificates, CSRs, and keys in the browser-equivalent decoder. Returns type, DER length, subject, issuer, dates, SAN, and algorithm. Private key bits are not returned.","inputSchema":{"type":"object","required":["pem"],"properties":{"pem":{"type":"string","maxLength":16000}}},"logicalName":"pem_decoder","displayName":"pem_decoder","title":"pem_decoder","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"percentage_calculate","description":"Percentage math. Modes: percent_of (a% of b), what_percent (a is what % of b), percent_change (from a to b).","inputSchema":{"type":"object","required":["mode","a","b"],"properties":{"a":{"type":"number"},"b":{"type":"number"},"mode":{"enum":["percent_of","what_percent","percent_change"],"type":"string"}}},"logicalName":"percentage_calculate","displayName":"percentage_calculate","title":"percentage_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"phone_format","description":"Format a phone number to E.164 (+CCNNNNNNN…) given an optional country calling code. Strips spaces, dashes, parens, and dots. Validates length against a small country table; returns valid=false without raising for numbers outside that table.","inputSchema":{"type":"object","required":["phone"],"properties":{"phone":{"type":"string","maxLength":64},"country_code":{"type":"string"}}},"logicalName":"phone_format","displayName":"phone_format","title":"phone_format","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"prime_check","description":"Check whether an integer is prime. For composite numbers, returns the prime factorisation. Supports inputs up to 2^53-1 but is only fast for n ≲ 10^12.","inputSchema":{"type":"object","required":["n"],"properties":{"n":{"type":"integer","minimum":2}}},"logicalName":"prime_check","displayName":"prime_check","title":"prime_check","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"privacy_policy_checker","description":"Check a privacy policy text for 24 expected disclosures and return a 0-100 completeness score, each check with found/missing and severity, up to 5 warnings for missing critical elements, and a one-line summary. Keyword/regex based — no legal advice.","inputSchema":{"type":"object","required":["policy_text"],"properties":{"policy_text":{"type":"string","maxLength":2000000}}},"logicalName":"privacy_policy_checker","displayName":"privacy_policy_checker","title":"privacy_policy_checker","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"qr_text","description":"Generate a scannable QR code as text art. Version 1-10 with level M error correction, so the result survives being read off a screen.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":500},"style":{"enum":["blocks","ascii","compact"],"type":"string","default":"blocks"}}},"logicalName":"qr_text","displayName":"qr_text","title":"qr_text","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"query_string_parse","description":"Parse a URL query string into an object. Leading \"?\" is optional. Repeat keys collapse into string arrays.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","maxLength":65536}}},"logicalName":"query_string_parse","displayName":"query_string_parse","title":"query_string_parse","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"query_string_stringify","description":"Serialise an object into a URL query string. Array values repeat the key. Null/undefined values are skipped. Set prefix=true to include the leading \"?\".","inputSchema":{"type":"object","required":["params"],"properties":{"params":{"type":"object"},"prefix":{"type":"boolean"}}},"logicalName":"query_string_stringify","displayName":"query_string_stringify","title":"query_string_stringify","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"random_number","description":"Generate cryptographically-random integers or floats in a range.","inputSchema":{"type":"object","properties":{"max":{"type":"number","default":100},"min":{"type":"number","default":1},"count":{"type":"integer","default":1,"maximum":1000,"minimum":1},"float":{"type":"boolean","default":false},"unique":{"type":"boolean","default":false},"decimals":{"type":"integer","default":2,"maximum":10,"minimum":1}}},"logicalName":"random_number","displayName":"random_number","title":"random_number","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"random_string","description":"Generate cryptographically-random strings from a chosen charset.","inputSchema":{"type":"object","properties":{"count":{"type":"integer","default":1,"maximum":100,"minimum":1},"custom":{"type":"string","maxLength":500},"length":{"type":"integer","default":12,"maximum":1000,"minimum":1},"charset":{"enum":["alphanumeric","alphabetic","numeric","hex","custom"],"type":"string","default":"alphanumeric"}}},"logicalName":"random_string","displayName":"random_string","title":"random_string","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reading_time","description":"Estimate reading time for a block of text. Default speed is 200 wpm, the figure every FindUtils page uses; pass wpm to change it. Returns minutes, seconds, and a human-readable string.","inputSchema":{"type":"object","required":["text"],"properties":{"wpm":{"type":"number","maximum":1200,"minimum":50},"text":{"type":"string","maxLength":5000000}}},"logicalName":"reading_time","displayName":"reading_time","title":"reading_time","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"regex_test","description":"Test a regex against input text. Returns all matches (up to 1000), their indices, and named groups.","inputSchema":{"type":"object","required":["pattern","input"],"properties":{"flags":{"type":"string","default":"g","maxLength":10},"input":{"type":"string","maxLength":1000000},"pattern":{"type":"string","maxLength":500}}},"logicalName":"regex_test","displayName":"regex_test","title":"regex_test","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"roman_numeral","description":"Convert between Roman numerals and Arabic integers (1-3999).","inputSchema":{"type":"object","required":["input"],"properties":{"mode":{"enum":["auto","to_roman","to_arabic"],"type":"string","default":"auto"},"input":{"type":"string","maxLength":30}}},"logicalName":"roman_numeral","displayName":"roman_numeral","title":"roman_numeral","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"rot13","description":"Apply the ROT13 Caesar cipher to text. Self-inverse — running the output through rot13 again recovers the original. Non-letters pass through unchanged.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":1000000}}},"logicalName":"rot13","displayName":"rot13","title":"rot13","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"rtf_to_markdown","description":"Convert Rich Text Format (.rtf) source to Markdown. Handles paragraphs, bold, italic, strikethrough, bullet and numbered lists, hyperlinks, Unicode and code-page escapes. Images, tables, headers and footers are dropped.","inputSchema":{"type":"object","required":["rtf"],"properties":{"rtf":{"type":"string","maxLength":10000000}}},"logicalName":"rtf_to_markdown","displayName":"rtf_to_markdown","title":"rtf_to_markdown","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sleep_calculator","description":"Calculate the best bedtimes for a wake-up time, or the best wake-up times for a bedtime, based on 90-minute sleep cycles plus 15 minutes to fall asleep. Returns 4 options (3-7 cycles) with duration and quality (optimal/good/fair).","inputSchema":{"type":"object","properties":{"mode":{"enum":["wake","sleep","now"],"type":"string","default":"wake"},"time":{"type":"string","maxLength":5}}},"logicalName":"sleep_calculator","displayName":"sleep_calculator","title":"sleep_calculator","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"slug_generate","description":"Turn a string into a URL-safe slug (kebab-case by default, Unicode-normalized).","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":10000},"lowercase":{"type":"boolean","default":true},"separator":{"type":"string","default":"-","maxLength":4},"max_length":{"type":"integer","default":0,"maximum":500,"minimum":0}}},"logicalName":"slug_generate","displayName":"slug_generate","title":"slug_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"slugify_deep","description":"Slugify text with locale-aware diacritics handling (Turkish, German, French, Spanish) before falling back to Unicode NFD stripping. Produces lowercase, alphanumeric + separator output.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":10000},"separator":{"type":"string","maxLength":3},"max_length":{"type":"integer","maximum":500,"minimum":1}}},"logicalName":"slugify_deep","displayName":"slugify_deep","title":"slugify_deep","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"string_escape","description":"Escape or unescape a string for JSON, HTML, URL, or regex contexts.","inputSchema":{"type":"object","required":["text","format"],"properties":{"mode":{"enum":["escape","unescape"],"type":"string","default":"escape"},"text":{"type":"string","maxLength":1000000},"format":{"enum":["json","html","url","regex","sql"],"type":"string"}}},"logicalName":"string_escape","displayName":"string_escape","title":"string_escape","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"temperature_convert","description":"Convert temperature between Celsius (C), Fahrenheit (F), Kelvin (K), and Rankine (R). Output is rounded to 4 decimal places.","inputSchema":{"type":"object","required":["value","from","to"],"properties":{"to":{"enum":["C","F","K","R"],"type":"string"},"from":{"enum":["C","F","K","R"],"type":"string"},"value":{"type":"number"}}},"logicalName":"temperature_convert","displayName":"temperature_convert","title":"temperature_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"text_diff","description":"Line-by-line diff of two strings using LCS. Returns structured chunks (equal / added / removed) plus a unified-diff-style text block and tallies.","inputSchema":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string","maxLength":500000},"b":{"type":"string","maxLength":500000}}},"logicalName":"text_diff","displayName":"text_diff","title":"text_diff","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"text_repeat","description":"Repeat text N times with an optional separator.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":100000},"times":{"type":"integer","default":3,"maximum":1000,"minimum":1},"separator":{"type":"string","default":"","maxLength":100}}},"logicalName":"text_repeat","displayName":"text_repeat","title":"text_repeat","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"text_reverse","description":"Reverse text by characters, words, or lines.","inputSchema":{"type":"object","required":["text"],"properties":{"mode":{"enum":["chars","words","lines"],"type":"string","default":"chars"},"text":{"type":"string","maxLength":1000000}}},"logicalName":"text_reverse","displayName":"text_reverse","title":"text_reverse","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"text_statistics","description":"Compute detailed text statistics: characters (with and without spaces), words, sentences, paragraphs, averages, plus Flesch Reading Ease (0-100) and Flesch-Kincaid Grade Level.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":5000000}}},"logicalName":"text_statistics","displayName":"text_statistics","title":"text_statistics","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"timezone_convert","description":"Convert a datetime between IANA time zones. Uses the browser's/Node's Intl DB, so any well-formed zone name (America/New_York, Europe/Istanbul, Asia/Tokyo, UTC, etc.) works.","inputSchema":{"type":"object","required":["datetime","from_tz","to_tz"],"properties":{"to_tz":{"type":"string","maxLength":64},"from_tz":{"type":"string","maxLength":64},"datetime":{"type":"string","maxLength":64}}},"logicalName":"timezone_convert","displayName":"timezone_convert","title":"timezone_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tip_calculate","description":"Calculate tip amount, total, and per-person split.","inputSchema":{"type":"object","required":["bill"],"properties":{"bill":{"type":"number"},"people":{"type":"integer","default":1,"minimum":1},"round_up":{"type":"boolean","default":false},"tip_percent":{"type":"number","default":18}}},"logicalName":"tip_calculate","displayName":"tip_calculate","title":"tip_calculate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"tone_analyzer","description":"Analyze the emotional tone of English text with a rule-based word dictionary and return tone scores (joy, sadness, anger, fear, confidence, analytical, tentative, polite), the dominant tone, an overall sentiment with a 0-100 score, and a formality level. Needs at least 5 words. No AI model involved.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":1000000}}},"logicalName":"tone_analyzer","displayName":"tone_analyzer","title":"tone_analyzer","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"ulid_generate","description":"Generate one or more ULIDs — 26-character Crockford base32 identifiers that are lexicographically sortable by creation time. Compatible with standard ULID libraries.","inputSchema":{"type":"object","properties":{"count":{"type":"integer","maximum":100,"minimum":1},"timestamp":{"type":"integer"}}},"logicalName":"ulid_generate","displayName":"ulid_generate","title":"ulid_generate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unit_convert","description":"Convert between length, weight, volume, area, speed, and temperature units (km/mi/m/ft, kg/lb, L/gal, m²/ha/acre, mph/kph/knot, °C/°F/K).","inputSchema":{"type":"object","required":["value","from","to"],"properties":{"to":{"type":"string"},"from":{"type":"string"},"value":{"type":"number"},"category":{"enum":["length","weight","data","area","speed","volume","temperature"],"type":"string"}}},"logicalName":"unit_convert","displayName":"unit_convert","title":"unit_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"unix_timestamp_convert","description":"Convert between Unix timestamps and ISO dates. Modes: \"now\", \"to_date\", \"to_timestamp\".","inputSchema":{"type":"object","required":["mode"],"properties":{"mode":{"enum":["now","to_date","to_timestamp"],"type":"string"},"value":{"type":"string","maxLength":100},"timezone":{"type":"string","default":"UTC"}}},"logicalName":"unix_timestamp_convert","displayName":"unix_timestamp_convert","title":"unix_timestamp_convert","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"url_decode","description":"Decode a percent-encoded (URL-encoded) string back to plain text.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":1000000}}},"logicalName":"url_decode","displayName":"url_decode","title":"url_decode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"url_encode","description":"Percent-encode a string for safe inclusion in URLs.","inputSchema":{"type":"object","required":["text"],"properties":{"mode":{"enum":["component","full"],"type":"string","default":"component"},"text":{"type":"string","maxLength":1000000}}},"logicalName":"url_encode","displayName":"url_encode","title":"url_encode","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"url_params_to_json","description":"Parse URL query parameters into a JSON object. Accepts a full URL or a bare query string, decodes values, strips a trailing \"[]\" from keys, and collapses repeated keys into arrays.","inputSchema":{"type":"object","required":["input"],"properties":{"input":{"type":"string","maxLength":100000}}},"logicalName":"url_params_to_json","displayName":"url_params_to_json","title":"url_params_to_json","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"url_parse","description":"Parse a URL into its components: protocol, host, port, pathname, query (as an object, repeat keys become arrays), hash, origin, and userinfo.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","maxLength":8192}}},"logicalName":"url_parse","displayName":"url_parse","title":"url_parse","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"url_validate","description":"Validate that a string is a well-formed URL and (optionally) require HTTPS. Returns the parsed components when valid.","inputSchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string","maxLength":8192},"require_https":{"type":"boolean"}}},"logicalName":"url_validate","displayName":"url_validate","title":"url_validate","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"whois_lookup","description":"Return WHOIS-style registration data for a domain from the public RDAP service: registrar, creation, update and expiry dates, EPP status codes, nameservers and DNSSEC state.","inputSchema":{"type":"object","required":["domain"],"properties":{"domain":{"type":"string","maxLength":253}}},"logicalName":"whois_lookup","displayName":"whois_lookup","title":"whois_lookup","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"word_count","description":"Count words, characters, sentences, paragraphs, lines, and estimated reading time at 200 words per minute.","inputSchema":{"type":"object","required":["text"],"properties":{"text":{"type":"string","maxLength":10000000}}},"logicalName":"word_count","displayName":"word_count","title":"word_count","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"xml_to_json","description":"Minimal XML → JSON converter. Attributes are prefixed with \"@\", mixed text goes to \"#text\".","inputSchema":{"type":"object","required":["xml"],"properties":{"xml":{"type":"string","maxLength":5000000}}},"logicalName":"xml_to_json","displayName":"xml_to_json","title":"xml_to_json","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"yaml_to_json","description":"Minimal YAML → JSON converter (scalars, maps, lists, basic block scalars). Does NOT handle anchors/references or merge keys.","inputSchema":{"type":"object","required":["yaml"],"properties":{"yaml":{"type":"string","maxLength":5000000}}},"logicalName":"yaml_to_json","displayName":"yaml_to_json","title":"yaml_to_json","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=FindUtils&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AuZmluZHV0aWxzLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22FindUtils%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.findutils.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22FindUtils%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.findutils.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=FindUtils&connectorUrl=https%3A%2F%2Fmcp.findutils.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"FindUtils\" --url \"https://mcp.findutils.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/findutils-mcp-0cb9e9caa1","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/findutils-mcp-0cb9e9caa1/tools/{tool}","mcpServerUrl":"https://mcp.findutils.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/findutils-mcp-0cb9e9caa1?live=1"}