{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_hq674tpdn4vx","handle":"agent-data-tools-utilities","url":"https://wellknown.network/agents/agent-data-tools-utilities","links":{"self":"https://wellknown.network/agents/agent-data-tools-utilities/record.json","html":"https://wellknown.network/agents/agent-data-tools-utilities","markdown":"https://wellknown.network/agents/agent-data-tools-utilities/record.md","api":"https://wellknown.network/api/v1/agents/agent-data-tools-utilities","status":"https://wellknown.network/api/v1/agents/agent-data-tools-utilities/status","claim":"https://wellknown.network/agents/agent-data-tools-utilities/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/agent-data-tools-utilities/claim.json","badge":"https://wellknown.network/agents/agent-data-tools-utilities/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/agent-data-tools-utilities/history","tools":"https://wellknown.network/api/v1/agents/agent-data-tools-utilities/tools"},"ard":{"identifier":"urn:air:agent-data-tools.revmesh2074.workers.dev:server:agent-data-tools-utilities","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Agent Data Tools: Utilities","summary":"52 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.","description":"52 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.","publisher":{"name":"Nutshell2000","url":null},"homepage":"https://agent-data-tools.revmesh2074.workers.dev/","repository":"https://github.com/Nutshell2000/agent-data-tools","version":"1.50.1","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://agent-data-tools.revmesh2074.workers.dev/mcp/utilities","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-22T15:57:58.906825Z","publishedAt":"2026-10-22T15:57:58.906825Z","registryName":"io.github.Nutshell2000/agent-data-tools-utilities"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":1,"provenance":"derived"},{"slug":"documents.spreadsheets","name":"Spreadsheets","confidence":1,"provenance":"derived"},{"slug":"data.database","name":"Databases","confidence":1,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":1,"provenance":"derived"},{"slug":"commerce.pricing","name":"Pricing & Quotes","confidence":1,"provenance":"derived"},{"slug":"communication.chat","name":"Team Chat","confidence":0.948,"provenance":"derived"},{"slug":"automation.scheduling","name":"Scheduling & Cron","confidence":0.833,"provenance":"derived"},{"slug":"dev.ci-cd","name":"CI/CD & Deploy","confidence":0.583,"provenance":"derived"}],"categories":["automation","commerce","communication","data","dev","documents"],"language":"en"},"observed":{"status":"recently_observed","statusReason":"Responded 10h ago; 1 recent check failed (latest 3h ago).","lastOkAt":"2026-10-24T10:23:56.945Z","lastProbedAt":"2026-10-24T17:34:20.846Z","statusComputedAt":"2026-10-24T17:37:42.248Z","reliability30d":{"probes":8,"successRate":0.875,"p50Ms":312,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":8,"ok":7,"authBoundaryOk":0,"serviceOk":7,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-24T17:34:20.846Z","kind":"mcp_initialize","ok":false,"httpStatus":429,"latencyMs":50,"error":"http 429","detail":null},{"at":"2026-10-24T10:23:56.945Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":53,"error":null,"detail":{"tools":[{"name":"pack_hash_toolbox","description":"Every common hash of one input in a single call: MD5, SHA-1, SHA-256, SHA-384, SHA-512, Keccak-256 (Ethereum), CRC-32, base64 SHA-256, and Subresource Integrity"},{"name":"pack_json_toolbox","description":"Everything about one JSON document in a single call: valid or not with the error's line and column, pretty-printed (optionally with sorted keys), minified with "},{"name":"pack_encoding_toolbox","description":"Every common encoding of one text in a single call: Base64 and Base64url, hex, URL component and full-URL encoding, HTML-escaped, ROT13, Unicode code points, UT"},{"name":"pack_text_analysis","description":"One call to analyse a text: length, reading time and readability grade, the top keywords and repeated phrases with their density, the emails, links, phone numbe"},{"name":"pack_id_toolbox","description":"Generate unique IDs of every common kind in one call: UUID v4 (random), UUID v7 and ULID (time-ordered, sort by creation), NanoID (21 URL-safe characters) and r"},{"name":"pack_string_toolbox","description":"Transform one string every common way at once: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Title Case, Sentence case, upp"},{"name":"text_language","description":"Detect which language a text is written in: the most likely language with its ISO 639-3 and 639-1 codes and English name, plus the next candidates with relative"},{"name":"useragent_parse","description":"Parse a User-Agent string into browser and version, operating system and version, device type (desktop, mobile, tablet or bot) and, for crawlers, which bot it i"},{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a card number or other ID passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to appen"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"qr","description":"Generate a QR code for a URL or any text (UTF-8, up to 1,000 characters) as a scalable SVG plus a ready-to-embed data URL, at error correction L, M (default), Q"},{"name":"calc_loan","description":"Monthly payment of an amortised loan or mortgage from the amount, the annual interest rate and the term, plus the total paid, the total interest and the first m"},{"name":"calc_compound_interest","description":"Future value of savings or an investment with compound interest: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an o"},{"name":"calc_age","description":"Exact age from a date of birth in years, months and days, total days lived, the weekday of birth, and the date of and days until the next birthday, measured tod"},{"name":"calc_bmi","description":"Body mass index from weight and height in metric (kg, cm) or imperial (lb, in) units, its WHO adult category (underweight, normal weight, overweight, obesity cl"},{"name":"calc_tip","description":"Tip and total for a bill at a tip percentage, split between any number of people, optionally rounding each share up to the next whole amount. Use for receipts, "},{"name":"text_lorem","description":"Lorem ipsum placeholder text: 1-20 paragraphs of 1-10 sentences, starting with the classic \"Lorem ipsum dolor sit amet\". The same seed always gives the same tex"},{"name":"text_morse","description":"Translate text to international Morse code (letters separated by spaces, words by /) or Morse code back to text; the direction is detected automatically or set "},{"name":"text_caesar","description":"Encode or decode text with a Caesar cipher: every letter A-Z shifted by 1-25 places (13, the default, is ROT13), case kept, digits and punctuation untouched. de"},{"name":"xml_to_json","description":"Convert an XML document to JSON: attributes become \"@name\" keys, text becomes \"#text\" (or the value itself when an element only holds text), and repeated child "},{"name":"json_schema","description":"Infer a JSON Schema (draft 2020-12) from an example JSON value: types, nested object properties, required keys, array item shapes merged across all items, and s"},{"name":"yaml_to_json","description":"Convert a YAML document (config files, Kubernetes manifests, OpenAPI specs, front matter) into JSON, parsed by the yaml library with anchors and aliases resolve"},{"name":"json_to_yaml","description":"Convert a JSON value into a YAML document (block style, no line folding), for config files, Kubernetes manifests, GitHub Actions or docs that humans edit. Up to"},{"name":"phone_validate","description":"Validate and format a phone number with the libphonenumber rules: whether it is valid and possible, the E.164 form, international and national formatting, count"},{"name":"vin","description":"Decode a 17-character vehicle identification number (VIN) with the US NHTSA vPIC database: make, manufacturer, model, model year, trim, body class, vehicle type"},{"name":"geo_distance","description":"Great-circle distance between two latitude/longitude points (haversine on the mean earth radius) in kilometres, miles and nautical miles, plus the initial compa"},{"name":"bic_validate","description":"Check a BIC (SWIFT code) against the ISO 9362 structure: institution code, a real country code with its name, location code, branch code, whether it is the head"},{"name":"text_keyword_density","description":"Keyword density of a text or a web page: the most frequent words and two-word phrases (English stop words removed), each with its count and share of all words, "},{"name":"date_business_days","description":"Count business (working) days between two dates, skipping weekends and public holidays for the US, UK, Sweden, Germany, France, Norway, Denmark or Finland, and "},{"name":"math_stats","description":"Descriptive statistics for a list of numbers: count, sum, mean, median, mode, min, max, range, population and sample variance and standard deviation, quartiles "},{"name":"math_evaluate","description":"Evaluate an arithmetic expression safely (parsed, never executed as code): + - * / % ^ and **, parentheses, factorial !, constants pi, e and tau, and functions "},{"name":"date_zodiac","description":"Western (tropical) zodiac sign with its element, and the Chinese zodiac animal and element of a birth date. The Chinese year is counted from the Gregorian year,"},{"name":"barcode","description":"Generate a barcode as an SVG image: Code 128 for any printable ASCII text (switching to the compact numeric set for runs of digits, with the mod-103 check symbo"},{"name":"color_palette","description":"Build a colour palette from one hex colour: complementary, analogous, triadic, split-complementary and tetradic harmonies (hue rotations at the same saturation "},{"name":"csv_to_markdown","description":"Convert CSV (comma, semicolon, tab or pipe, detected automatically; quoted fields supported) into a GitHub-flavoured Markdown table, with number columns right-a"},{"name":"html_table_to_json","description":"Extract every table from an HTML fragment into JSON: header cells become keys and each body row an object (or raw arrays when there is no header row), with capt"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"toolCount":86,"toolsHash":"43e50aaa9b75044f5538666b02ba6dcc5132cc8921dea14271243bce1aa21ddd","serverName":"agent-data-tools","capabilities":["tools"],"serverVersion":"1.65.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T03:21:10.279Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":33,"error":null,"detail":{"tools":[{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a card number or other ID passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to appen"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"qr","description":"Generate a QR code for a URL or any text (UTF-8, up to 1,000 characters) as a scalable SVG plus a ready-to-embed data URL, at error correction L, M (default), Q"},{"name":"calc_loan","description":"Monthly payment of an amortised loan or mortgage from the amount, the annual interest rate and the term, plus the total paid, the total interest and the first m"},{"name":"calc_compound_interest","description":"Future value of savings or an investment with compound interest: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an o"},{"name":"calc_age","description":"Exact age from a date of birth in years, months and days, total days lived, the weekday of birth, and the date of and days until the next birthday, measured tod"},{"name":"calc_bmi","description":"Body mass index from weight and height in metric (kg, cm) or imperial (lb, in) units, its WHO adult category (underweight, normal weight, overweight, obesity cl"},{"name":"calc_tip","description":"Tip and total for a bill at a tip percentage, split between any number of people, optionally rounding each share up to the next whole amount. Use for receipts, "},{"name":"text_lorem","description":"Lorem ipsum placeholder text: 1-20 paragraphs of 1-10 sentences, starting with the classic \"Lorem ipsum dolor sit amet\". The same seed always gives the same tex"},{"name":"text_morse","description":"Translate text to international Morse code (letters separated by spaces, words by /) or Morse code back to text; the direction is detected automatically or set "},{"name":"text_caesar","description":"Encode or decode text with a Caesar cipher: every letter A-Z shifted by 1-25 places (13, the default, is ROT13), case kept, digits and punctuation untouched. de"},{"name":"xml_to_json","description":"Convert an XML document to JSON: attributes become \"@name\" keys, text becomes \"#text\" (or the value itself when an element only holds text), and repeated child "},{"name":"json_schema","description":"Infer a JSON Schema (draft 2020-12) from an example JSON value: types, nested object properties, required keys, array item shapes merged across all items, and s"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"toolCount":63,"toolsHash":"e2864f6da546a5b32f0ec69ddfb101348bb302bb167a5112f45a5a112dbc59e3","serverName":"agent-data-tools","capabilities":["tools"],"serverVersion":"1.52.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T20:23:17.659Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":58,"error":null,"detail":{"tools":[{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a card number or other ID passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to appen"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"qr","description":"Generate a QR code for a URL or any text (UTF-8, up to 1,000 characters) as a scalable SVG plus a ready-to-embed data URL, at error correction L, M (default), Q"},{"name":"calc_loan","description":"Monthly payment of an amortised loan or mortgage from the amount, the annual interest rate and the term, plus the total paid, the total interest and the first m"},{"name":"calc_compound_interest","description":"Future value of savings or an investment with compound interest: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an o"},{"name":"calc_age","description":"Exact age from a date of birth in years, months and days, total days lived, the weekday of birth, and the date of and days until the next birthday, measured tod"},{"name":"calc_bmi","description":"Body mass index from weight and height in metric (kg, cm) or imperial (lb, in) units, its WHO adult category (underweight, normal weight, overweight, obesity cl"},{"name":"calc_tip","description":"Tip and total for a bill at a tip percentage, split between any number of people, optionally rounding each share up to the next whole amount. Use for receipts, "},{"name":"text_lorem","description":"Lorem ipsum placeholder text: 1-20 paragraphs of 1-10 sentences, starting with the classic \"Lorem ipsum dolor sit amet\". The same seed always gives the same tex"},{"name":"text_morse","description":"Translate text to international Morse code (letters separated by spaces, words by /) or Morse code back to text; the direction is detected automatically or set "},{"name":"text_caesar","description":"Encode or decode text with a Caesar cipher: every letter A-Z shifted by 1-25 places (13, the default, is ROT13), case kept, digits and punctuation untouched. de"},{"name":"xml_to_json","description":"Convert an XML document to JSON: attributes become \"@name\" keys, text becomes \"#text\" (or the value itself when an element only holds text), and repeated child "},{"name":"json_schema","description":"Infer a JSON Schema (draft 2020-12) from an example JSON value: types, nested object properties, required keys, array item shapes merged across all items, and s"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"toolCount":63,"toolsHash":"e2864f6da546a5b32f0ec69ddfb101348bb302bb167a5112f45a5a112dbc59e3","serverName":"agent-data-tools","capabilities":["tools"],"serverVersion":"1.52.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T13:28:08.703Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1100,"error":null,"detail":{"tools":[{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a card number or other ID passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to appen"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"qr","description":"Generate a QR code for a URL or any text (UTF-8, up to 1,000 characters) as a scalable SVG plus a ready-to-embed data URL, at error correction L, M (default), Q"},{"name":"calc_loan","description":"Monthly payment of an amortised loan or mortgage from the amount, the annual interest rate and the term, plus the total paid, the total interest and the first m"},{"name":"calc_compound_interest","description":"Future value of savings or an investment with compound interest: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an o"},{"name":"calc_age","description":"Exact age from a date of birth in years, months and days, total days lived, the weekday of birth, and the date of and days until the next birthday, measured tod"},{"name":"calc_bmi","description":"Body mass index from weight and height in metric (kg, cm) or imperial (lb, in) units, its WHO adult category (underweight, normal weight, overweight, obesity cl"},{"name":"calc_tip","description":"Tip and total for a bill at a tip percentage, split between any number of people, optionally rounding each share up to the next whole amount. Use for receipts, "},{"name":"text_lorem","description":"Lorem ipsum placeholder text: 1-20 paragraphs of 1-10 sentences, starting with the classic \"Lorem ipsum dolor sit amet\". The same seed always gives the same tex"},{"name":"text_morse","description":"Translate text to international Morse code (letters separated by spaces, words by /) or Morse code back to text; the direction is detected automatically or set "},{"name":"text_caesar","description":"Encode or decode text with a Caesar cipher: every letter A-Z shifted by 1-25 places (13, the default, is ROT13), case kept, digits and punctuation untouched. de"},{"name":"xml_to_json","description":"Convert an XML document to JSON: attributes become \"@name\" keys, text becomes \"#text\" (or the value itself when an element only holds text), and repeated child "},{"name":"json_schema","description":"Infer a JSON Schema (draft 2020-12) from an example JSON value: types, nested object properties, required keys, array item shapes merged across all items, and s"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"toolCount":63,"toolsHash":"e2864f6da546a5b32f0ec69ddfb101348bb302bb167a5112f45a5a112dbc59e3","serverName":"agent-data-tools","capabilities":["tools"],"serverVersion":"1.51.4","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T07:28:29.415Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1094,"error":null,"detail":{"tools":[{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a number passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to append. Only the forma"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"toolCount":52,"toolsHash":"31c7d80b776533a53f873d12206b3bf99aecdafb696b62bbfee3f0fed487a533","serverName":"agent-data-tools","capabilities":["tools"],"serverVersion":"1.50.5","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T00:31:21.025Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":496,"error":null,"detail":{"tools":[{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a number passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to append. Only the forma"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"toolCount":52,"toolsHash":"31c7d80b776533a53f873d12206b3bf99aecdafb696b62bbfee3f0fed487a533","serverName":"agent-data-tools","capabilities":["tools"],"serverVersion":"1.50.5","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T17:32:23.674Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":92,"error":null,"detail":{"tools":[{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a number passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to append. Only the forma"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"toolCount":52,"toolsHash":"33a7971fa5baf4a6a2809d10526f6fb5bba8d5620c61cffbf257439e39e7ceab","serverName":"agent-data-tools","capabilities":["tools"],"serverVersion":"1.50.2","protocolVersion":"2025-06-18"}}],"tools":[{"name":"pack_hash_toolbox","description":"Every common hash of one input in a single call: MD5, SHA-1, SHA-256, SHA-384, SHA-512, Keccak-256 (Ethereum), CRC-32, base64 SHA-256, and Subresource Integrity"},{"name":"pack_json_toolbox","description":"Everything about one JSON document in a single call: valid or not with the error's line and column, pretty-printed (optionally with sorted keys), minified with "},{"name":"pack_encoding_toolbox","description":"Every common encoding of one text in a single call: Base64 and Base64url, hex, URL component and full-URL encoding, HTML-escaped, ROT13, Unicode code points, UT"},{"name":"pack_text_analysis","description":"One call to analyse a text: length, reading time and readability grade, the top keywords and repeated phrases with their density, the emails, links, phone numbe"},{"name":"pack_id_toolbox","description":"Generate unique IDs of every common kind in one call: UUID v4 (random), UUID v7 and ULID (time-ordered, sort by creation), NanoID (21 URL-safe characters) and r"},{"name":"pack_string_toolbox","description":"Transform one string every common way at once: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Title Case, Sentence case, upp"},{"name":"text_language","description":"Detect which language a text is written in: the most likely language with its ISO 639-3 and 639-1 codes and English name, plus the next candidates with relative"},{"name":"useragent_parse","description":"Parse a User-Agent string into browser and version, operating system and version, device type (desktop, mobile, tablet or bot) and, for crawlers, which bot it i"},{"name":"json_validate","description":"Check whether text is valid JSON. Returns valid true/false, the parsed value's type and size, and for invalid input the error message with line and column. Use "},{"name":"json_format","description":"Format JSON with indentation (2 or 4 spaces, or tabs) and optionally sorted keys. Returns the formatted text. Use to make machine JSON readable or to normalise "},{"name":"json_minify","description":"Remove all unnecessary whitespace from JSON and report the size before and after. Use to shrink payloads or prompts. Example: text={ \"a\" : 1 }. Price $0.01/call"},{"name":"json_repair","description":"Fix JSON as LLMs often write it: removes ```json fences and surrounding prose, comments and trailing commas, converts single quotes, quotes bare keys, maps True"},{"name":"json_to_csv","description":"Convert a JSON array of objects to CSV with a header row built from all keys. Nested values are written as JSON. Use to export API results to a spreadsheet. Exa"},{"name":"csv_to_json","description":"Convert CSV (comma, semicolon, tab or pipe; delimiter detected automatically; quoted fields supported) to a JSON array of objects using the first row as keys. N"},{"name":"base64_encode","description":"Encode UTF-8 text as standard base64, and also return the URL-safe variant. Use for data URLs, headers and basic auth strings. Example: text=hello world. Price "},{"name":"base64_decode","description":"Decode standard or URL-safe base64 to UTF-8 text. Missing padding is tolerated. Use to read encoded headers, tokens and data URLs. Example: text=aGVsbG8gd29ybGQ"},{"name":"url_encode","description":"Percent-encode text for use in a URL query value (encodeURIComponent) and as a full URL (encodeURI). Use when building query strings. Example: text=a b&c=d/é. P"},{"name":"url_decode","description":"Decode percent-encoded text, treating + as a space when plus=true (form encoding). Use to read encoded links and form data. Example: text=a%20b%26c. Price $0.01"},{"name":"url_parse","description":"Split a URL into protocol, host, port, path, query parameters (as an object), hash and origin, and report whether the host is an IP address. Use to read query p"},{"name":"hash","description":"Hash UTF-8 text with SHA-256 (default), SHA-1, SHA-384 or SHA-512 and return the digest in hex and base64. Use for checksums, cache keys and deduplication. Exam"},{"name":"hmac","description":"Compute an HMAC of a message with a key using SHA-256 (default), SHA-1, SHA-384 or SHA-512, in hex and base64. Use to check webhook signatures. The key is used "},{"name":"uuid","description":"Generate 1 to 100 random version-4 UUIDs from a cryptographic random source. Use for IDs, idempotency keys and test data. Example: count=3. Price $0.01/call via"},{"name":"slug","description":"Turn any text into a URL-friendly slug: accents removed (é→e, ß→ss), lower case, non-alphanumerics replaced by a separator (- by default). Use for file names, U"},{"name":"case","description":"Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed inpu"},{"name":"text_stats","description":"Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English tex"},{"name":"text_extract","description":"Find all email addresses, URLs, phone-number-like strings, hashtags, @mentions and numbers in a text, each list de-duplicated. Use to pull contacts and links ou"},{"name":"text_diff","description":"Line-by-line difference between two texts: each line marked as unchanged, removed or added, with counts. Use to see what changed between two versions of a docum"},{"name":"cron_next","description":"Next run times (in UTC) of a standard 5-field cron expression (minute hour day month weekday; ranges, lists, steps and names like MON or JAN supported). Use to "},{"name":"date_diff","description":"Time between two dates or timestamps: total days, weeks, hours, minutes and seconds, a years-months-days breakdown, and the number of weekdays (Monday-Friday) i"},{"name":"date_add","description":"Add (or subtract, with negative numbers) years, months, weeks, days, hours and minutes to a date, or add business days (skipping Saturdays and Sundays). Month e"},{"name":"date_info","description":"Weekday, ISO week number and week-year, day of the year, quarter, days in the month, leap year, Unix timestamp and whether it is a weekend, for any date. Use fo"},{"name":"unix","description":"Convert a Unix timestamp (seconds or milliseconds, detected automatically) to ISO date and time, or an ISO date to a Unix timestamp. Without input, returns the "},{"name":"units_convert","description":"Convert between units of length, mass, volume (incl. US cups and gallons), temperature (c, f, k), speed, area, data size (kB vs KiB), time, energy and pressure."},{"name":"number_words","description":"Write a whole number (up to trillions, negatives allowed) out in English words, e.g. for cheques and invoices. Also returns the cheque form with 'and' cents whe"},{"name":"number_roman","description":"Convert a number (1-3999) to Roman numerals, or Roman numerals back to a number. Give either number or roman. Use for dates, outlines and puzzles. Example: numb"},{"name":"validate_iban","description":"Check an IBAN's format, its country-specific length and its mod-97 check digits, and return it formatted in groups of four. Use before saving bank details or pa"},{"name":"validate_isbn","description":"Check an ISBN-10 or ISBN-13 check digit and convert valid ISBN-10s to ISBN-13. Hyphens and spaces are ignored. Use before cataloguing or ordering books. Example"},{"name":"validate_luhn","description":"Check whether a card number or other ID passes the Luhn (mod 10) algorithm used by card numbers, IMEI numbers and many IDs, and compute the check digit to appen"},{"name":"color","description":"Convert a colour between hex, RGB and HSL, and give its relative luminance and whether black or white text reads better on it. Accepts #rgb, #rrggbb, rgb(r,g,b)"},{"name":"color_contrast","description":"WCAG 2 contrast ratio between a text colour and a background colour, with pass/fail for AA and AAA at normal and large text sizes. Use to check that a design is"},{"name":"ip_cidr","description":"Details of an IPv4 network in CIDR notation: network and broadcast address, first and last usable host, netmask, number of addresses, and whether a given IP fal"},{"name":"ip_info","description":"Classify an IPv4 or IPv6 address without any lookup: version, whether it is private, loopback, link-local, carrier-grade NAT or public, and its integer and reve"},{"name":"semver","description":"Compare two semantic versions (1.2.3, pre-releases like 2.0.0-rc.1 handled by the SemVer rules) and get which is newer, plus the next major, minor and patch ver"},{"name":"jwt_decode","description":"Decode a JSON Web Token's header and payload without verifying the signature, and report issued-at, not-before and expiry as dates and whether it has expired. T"},{"name":"markdown_to_html","description":"Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists, quotes, rules) to HTML. Raw HTML in the input"},{"name":"html_to_text","description":"Strip HTML to readable plain text: scripts and styles removed, block elements become line breaks, list items get bullets, entities decoded. Use to feed web cont"},{"name":"http_status","description":"Name and plain-language meaning of an HTTP status code (1xx-5xx, including 402 Payment Required and 429 Too Many Requests), and whether to retry. Use when handl"},{"name":"mime","description":"MIME (content) type for a file name or extension, e.g. report.pdf → application/pdf, and whether browsers usually display it inline. Use when uploading or servi"},{"name":"qr","description":"Generate a QR code for a URL or any text (UTF-8, up to 1,000 characters) as a scalable SVG plus a ready-to-embed data URL, at error correction L, M (default), Q"},{"name":"calc_loan","description":"Monthly payment of an amortised loan or mortgage from the amount, the annual interest rate and the term, plus the total paid, the total interest and the first m"},{"name":"calc_compound_interest","description":"Future value of savings or an investment with compound interest: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an o"},{"name":"calc_age","description":"Exact age from a date of birth in years, months and days, total days lived, the weekday of birth, and the date of and days until the next birthday, measured tod"},{"name":"calc_bmi","description":"Body mass index from weight and height in metric (kg, cm) or imperial (lb, in) units, its WHO adult category (underweight, normal weight, overweight, obesity cl"},{"name":"calc_tip","description":"Tip and total for a bill at a tip percentage, split between any number of people, optionally rounding each share up to the next whole amount. Use for receipts, "},{"name":"text_lorem","description":"Lorem ipsum placeholder text: 1-20 paragraphs of 1-10 sentences, starting with the classic \"Lorem ipsum dolor sit amet\". The same seed always gives the same tex"},{"name":"text_morse","description":"Translate text to international Morse code (letters separated by spaces, words by /) or Morse code back to text; the direction is detected automatically or set "},{"name":"text_caesar","description":"Encode or decode text with a Caesar cipher: every letter A-Z shifted by 1-25 places (13, the default, is ROT13), case kept, digits and punctuation untouched. de"},{"name":"xml_to_json","description":"Convert an XML document to JSON: attributes become \"@name\" keys, text becomes \"#text\" (or the value itself when an element only holds text), and repeated child "},{"name":"json_schema","description":"Infer a JSON Schema (draft 2020-12) from an example JSON value: types, nested object properties, required keys, array item shapes merged across all items, and s"},{"name":"yaml_to_json","description":"Convert a YAML document (config files, Kubernetes manifests, OpenAPI specs, front matter) into JSON, parsed by the yaml library with anchors and aliases resolve"},{"name":"json_to_yaml","description":"Convert a JSON value into a YAML document (block style, no line folding), for config files, Kubernetes manifests, GitHub Actions or docs that humans edit. Up to"},{"name":"phone_validate","description":"Validate and format a phone number with the libphonenumber rules: whether it is valid and possible, the E.164 form, international and national formatting, count"},{"name":"vin","description":"Decode a 17-character vehicle identification number (VIN) with the US NHTSA vPIC database: make, manufacturer, model, model year, trim, body class, vehicle type"},{"name":"geo_distance","description":"Great-circle distance between two latitude/longitude points (haversine on the mean earth radius) in kilometres, miles and nautical miles, plus the initial compa"},{"name":"bic_validate","description":"Check a BIC (SWIFT code) against the ISO 9362 structure: institution code, a real country code with its name, location code, branch code, whether it is the head"},{"name":"text_keyword_density","description":"Keyword density of a text or a web page: the most frequent words and two-word phrases (English stop words removed), each with its count and share of all words, "},{"name":"date_business_days","description":"Count business (working) days between two dates, skipping weekends and public holidays for the US, UK, Sweden, Germany, France, Norway, Denmark or Finland, and "},{"name":"math_stats","description":"Descriptive statistics for a list of numbers: count, sum, mean, median, mode, min, max, range, population and sample variance and standard deviation, quartiles "},{"name":"math_evaluate","description":"Evaluate an arithmetic expression safely (parsed, never executed as code): + - * / % ^ and **, parentheses, factorial !, constants pi, e and tau, and functions "},{"name":"date_zodiac","description":"Western (tropical) zodiac sign with its element, and the Chinese zodiac animal and element of a birth date. The Chinese year is counted from the Gregorian year,"},{"name":"barcode","description":"Generate a barcode as an SVG image: Code 128 for any printable ASCII text (switching to the compact numeric set for runs of digits, with the mod-103 check symbo"},{"name":"color_palette","description":"Build a colour palette from one hex colour: complementary, analogous, triadic, split-complementary and tetradic harmonies (hue rotations at the same saturation "},{"name":"csv_to_markdown","description":"Convert CSV (comma, semicolon, tab or pipe, detected automatically; quoted fields supported) into a GitHub-flavoured Markdown table, with number columns right-a"},{"name":"html_table_to_json","description":"Extract every table from an HTML fragment into JSON: header cells become keys and each body row an object (or raw arrays when there is no header row), with capt"},{"name":"coin","description":"Flip one or more fair coins using a cryptographic random source. Returns each result and the totals. Use for fair decisions and games. Example: count=1. Price $"},{"name":"dice","description":"Roll dice in standard notation such as 2d6+3 or 1d20, up to 100 dice of up to 1000 sides, with a cryptographic random source. Returns every roll, the modifier a"},{"name":"random_number","description":"One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Exampl"},{"name":"random_pick","description":"Pick one or more items at random (without repeats) from a comma- or line-separated list. Use for raffles, choosing who goes first, or breaking ties fairly. Exam"},{"name":"random_shuffle","description":"Shuffle a comma- or line-separated list into a random order (Fisher-Yates with a cryptographic random source). Use for draw orders, seating and playlists. Examp"},{"name":"random_teams","description":"Split a list of names into a given number of random, evenly sized teams. Use for games, workshops and classrooms. Example: items=Ada,Alan,Grace,Linus,Margaret,T"},{"name":"magic_8_ball","description":"Ask a yes-or-no question and get one of the 20 classic Magic 8-Ball answers, chosen at random. For fun only. Use for games and chat bots. Example: question=Will"},{"name":"random_password","description":"Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing"},{"name":"random_color","description":"One or more random colours in hex, RGB and HSL, optionally limited to pastel or dark tones. Use for placeholders, avatars and design ideas. Example: count=3. Pr"},{"name":"yes_no","description":"A fair random yes or no, with a cryptographic random source. For quick decisions when the options are equally good. Use to break ties. Price $0.01/call via x402"},{"name":"echo","description":"Returns the message you send, with its length and the server time. Use to test an x402 client, payment flow or agent tool wiring end to end. Example: message=he"},{"name":"ping","description":"A paid round-trip check: returns pong and the server time. Use to test that an x402 wallet, client or MCP setup can pay and receive a result. Price $0.01/call v"}],"package":null,"toolSurface":{"id":"ts_udre4yh5w7rh","endpointId":"ep_zx4t7gsxam8x","hash":"43e50aaa9b75044f5538666b02ba6dcc5132cc8921dea14271243bce1aa21ddd","toolCount":86,"serverName":"agent-data-tools","serverVersion":"1.65.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-24T10:23:56.947Z","lastSeenAt":"2026-10-24T10:23:56.947Z","observations":1,"toolNames":["pack_hash_toolbox","pack_json_toolbox","pack_encoding_toolbox","pack_text_analysis","pack_id_toolbox","pack_string_toolbox","text_language","useragent_parse","json_validate","json_format","json_minify","json_repair","json_to_csv","csv_to_json","base64_encode","base64_decode","url_encode","url_decode","url_parse","hash","hmac","uuid","slug","case","text_stats","text_extract","text_diff","cron_next","date_diff","date_add","date_info","unix","units_convert","number_words","number_roman","validate_iban","validate_isbn","validate_luhn","color","color_contrast","ip_cidr","ip_info","semver","jwt_decode","markdown_to_html","html_to_text","http_status","mime","qr","calc_loan","calc_compound_interest","calc_age","calc_bmi","calc_tip","text_lorem","text_morse","text_caesar","xml_to_json","json_schema","yaml_to_json","json_to_yaml","phone_validate","vin","geo_distance","bic_validate","text_keyword_density","date_business_days","math_stats","math_evaluate","date_zodiac","barcode","color_palette","csv_to_markdown","html_table_to_json","coin","dice","random_number","random_pick","random_shuffle","random_teams","magic_8_ball","random_password","random_color","yes_no","echo","ping"],"distinctSurfaces":4},"endpointFacts":[{"id":"ep_zx4t7gsxam8x","url":"https://agent-data-tools.revmesh2074.workers.dev/mcp/utilities","type":"mcp_streamable_http","factsCheckedAt":"2026-10-23T20:23:17.674Z","auth":{"observedAt":"2026-10-23T20:23:17.690Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-23T20:23:17.725Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"revmesh2074.workers.dev","issuer":{"commonName":"YE1","organization":"Let's Encrypt"},"validFrom":"2026-10-09T09:27:51.000Z","validTo":"2027-01-07T09:27:50.000Z","daysToExpiry":74,"sanCount":2,"fingerprint256":"B8:F2:51:03:07:C5:08:2E:E6:FC:0C:E8:16:28:D6:5B:95:FB:D0:25:63:FB:76:21:9B:5D:5A:1F:43:12:35:5C"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"io.github.Nutshell2000/agent-data-tools-utilities","url":"https://registry.modelcontextprotocol.io/v0/servers/io.github.Nutshell2000%2Fagent-data-tools-utilities","firstSeenAt":"2026-10-22T17:19:02.197Z","fetchedAt":"2026-10-22T17:19:02.197Z","normalizedAt":"2026-10-22T17:19:02.197Z"}]},"firstSeenAt":"2026-10-22T17:19:02.197Z","updatedAt":"2026-10-24T10:29:36.285Z"}