Agent Data Tools: Utilities
mcp remote · streamable-http · v1.82.9 · source: crawl
https://agent-data-tools.revmesh2074.workers.dev/mcp/utilities
https://github.com/Nutshell2000/agent-data-tools
92 tools: JSON repair, CSV, hashes, cron, dates, units, validators. 25 free calls.
Works
90
Verified Oct 31, 2026 · p50 533 ms · p95 568 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'agent-data-tools' |
| tools_listed | 15 | pass | 92 tools |
| schema_complete | 15 | pass | 92 of 92 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 533 ms |
| latency_p95 | 5 | pass | p95 568 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | fail | pack_hash_toolbox: base64 payload; pack_encoding_toolbox: base64 payload; base64_encode: base64 payload; base64_decode: base64 payload; hash: base64 payload; hmac: base64 payload |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (92)
| Name | Description | Schema |
|---|---|---|
uuid | 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 x402 USDC or a card key (/credits), fir | typed |
useragent_parse | 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 is: Googlebot, Bingbot, GPTBot, ClaudeBot | typed |
json_validate | 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 before parsing an LLM's or an API's outp | typed |
memory_set | Save a value (up to 8,000 characters of text or JSON) under a key in your own namespace, so an agent can remember facts, preferences or task state between runs. Overwrites an existing key; expires aft | typed |
memory_get | Read the value saved under a key in your namespace with /memory/set, with when it was saved and when it expires. A key that was never saved or has expired is a 404 and is not charged. Values are kept | typed |
recommend | Describe a task in plain words and get the best-matching paid API calls for it from a catalog of 320 tools (web search and page reading, LLM chat, token prices and chain reads on 5 networks, sanctions | typed |
pack_hash_toolbox | 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 strings (sha256-, sha384-, sha512-) for | typed |
pack_json_toolbox | 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 the bytes saved, an inferred JSON Schema | typed |
pack_encoding_toolbox | 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, UTF-8 byte count and Punycode for internat | typed |
pack_text_analysis | 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 numbers, hashtags and mentions it contains, a | typed |
pack_id_toolbox | 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 random base62 and hex strings, up to 20 o | typed |
pack_string_toolbox | Transform one string every common way at once: camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, dot.case, path/case, Title Case, Sentence case, upper and lower; a URL slug (accents remove | typed |
text_language | 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 scores, using trigram statistics for 82 | typed |
json_format | 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 it for diffs. Example: text={"b":2,"a":1 | typed |
json_minify | 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 via x402 USDC or a card key (/credits), | typed |
json_repair | 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/False/None, and closes unclosed bracket | typed |
json_to_csv | 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. Example: text=[{"name":"Ada","age":36},{"na | typed |
csv_to_json | 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. Numbers stay as text unless numbers=true. | typed |
base64_encode | 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 $0.01/call via x402 USDC or a card key ( | typed |
base64_decode | 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=. Price $0.01/call via x402 USDC or a c | typed |
url_encode | 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/é. Price $0.01/call via x402 USDC or a card | typed |
url_decode | 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/call via x402 USDC or a card key (/cred | typed |
url_parse | 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 parameters or check a link's host. Exampl | typed |
hash | 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. Example: text=hello. Price $0.01/call via x4 | typed |
hmac | 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 only for this call and is not stored. Ex | typed |
slug | 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, URLs and IDs. Example: text=Crème Brûlée | typed |
case | Convert text or identifiers between camelCase, PascalCase, snake_case, kebab-case, CONSTANT_CASE, Title Case, Sentence case, UPPER and lower. Handles mixed input like 'userID_value'. Use when renaming | typed |
text_stats | Count characters, words, sentences and paragraphs, estimate reading and speaking time, and compute the Flesch reading-ease score and grade level for English text. Use to check the length and readabili | typed |
text_extract | 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 out of scraped pages or messages. Example: | typed |
text_diff | 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 document, config or prompt. Example: a=one tw | typed |
regex_test | Run a JavaScript regular expression against a text and return every match with its index and capture groups (named groups included). Pattern up to 300 characters, text up to 5,000; patterns with neste | typed |
cron_next | 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 check a schedule before deploying it. Ex | typed |
date_diff | 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) in between. Use for deadlines, ages and d | typed |
date_add | 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 ends are clamped (31 Jan + 1 month = 28/2 | typed |
date_info | 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 for calendar and reporting logic. Example: | typed |
unix | 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 current time in both forms. Use to read | typed |
units_convert | 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. Example units: km, mi, lb, kg, floz, ml | typed |
number_words | 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 when given a decimal amount. Use when amoun | typed |
number_roman | 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: number=2026. Price $0.01/call via x402 USDC | typed |
validate_iban | 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 paying out. Example: iban=SE45 5000 0000 0 | typed |
validate_isbn | 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: isbn=0-306-40615-2. Price $0.01/call v | typed |
validate_luhn | 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 append. Only the format is checked; nothing i | typed |
color | 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) and hsl(h,s%,l%). Use for theming and d | typed |
color_contrast | 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 readable. Example: fg=#767676, bg=#ffff | typed |
ip_cidr | 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 falls inside. Use for firewall rules and al | typed |
ip_info | 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 reverse-DNS forms (IPv4). Use to triage IPs | typed |
semver | 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 versions of the first. Use to decide whethe | typed |
jwt_decode | 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. The token is not stored. Do not use the r | typed |
markdown_to_html | Convert Markdown (headings, paragraphs, bold, italic, strikethrough, links, images, inline and fenced code, lists and task lists, tables, quotes, rules) to HTML. Raw HTML in the input is escaped, so t | typed |
html_to_text | 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 content or emails to an LLM. Example: html=< | typed |
http_status | 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 handling API errors. Example: code=429. Price | typed |
mime | 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 serving files. Example: file=report.xlsx. Pri | typed |
qr | 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 or H. Use to put a link, Wi-Fi string o | typed |
calc_loan | 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 months of the repayment schedule (princip | typed |
json_schema | 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 string formats (date-time, date, email, u | typed |
calc_compound_interest | Future value of savings or an investment with compound interest: starting amount, annual rate, years, compounding (yearly, quarterly, monthly or daily) and an optional contribution at the end of each | typed |
calc_age | 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 today (UTC) or on any date you give. Use fo | typed |
calc_bmi | 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 class I-III) and the weight range that cou | typed |
calc_tip | 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, expense apps and group payments. Example | typed |
text_lorem | 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 text. Use to fill mock-ups, templates and t | typed |
text_morse | 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 with mode. Letters, digits and common pu | typed |
text_caesar | 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. decode=true shifts back. Use for puzzles, | typed |
xml_to_json | 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 elements become arrays. DOCTYPEs and ext | typed |
yaml_to_json | Convert a YAML document (config files, Kubernetes manifests, OpenAPI specs, front matter) into JSON, parsed by the yaml library with anchors and aliases resolved (alias expansion capped against billio | typed |
json_to_yaml | 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 100 KB of JSON. Use when a tool or pers | typed |
phone_validate | Validate and format a phone number with the libphonenumber rules: whether it is valid and possible, the E.164 form, international and national formatting, country, calling code and line type (mobile, | typed |
vin | Decode a 17-character vehicle identification number (VIN) with the US NHTSA vPIC database: make, manufacturer, model, model year, trim, body class, vehicle type, doors, drive, fuel and electrification | typed |
geo_distance | Great-circle distance between two latitude/longitude points (haversine on the mean earth radius) in kilometres, miles and nautical miles, plus the initial compass bearing and the midpoint. Accurate to | typed |
bic_validate | 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 office (XXX or 8 characters), a test BI | typed |
text_keyword_density | 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, plus total and unique word counts. Give | typed |
random_password | Generate strong random passwords or passphrase-style strings: choose length and character sets, from a cryptographic random source. Generated on demand; nothing is stored or logged. Use when creating | typed |
date_business_days | Count business (working) days between two dates, skipping weekends and public holidays for the US, UK, Sweden, Germany, France, Norway, Denmark or Finland, and list the holidays skipped; or give add=N | typed |
math_stats | Descriptive statistics for a list of numbers: count, sum, mean, median, mode, min, max, range, population and sample variance and standard deviation, quartiles with IQR, and the 90th, 95th and 99th pe | typed |
math_evaluate | Evaluate an arithmetic expression safely (parsed, never executed as code): + - * / % ^ and **, parentheses, factorial !, constants pi, e and tau, and functions sqrt, cbrt, abs, round, floor, ceil, exp | typed |
date_zodiac | 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, so dates in January and early February | typed |
barcode | 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 symbol), or EAN-13 for 12 or 13 digits (the c | typed |
color_palette | Build a colour palette from one hex colour: complementary, analogous, triadic, split-complementary and tetradic harmonies (hue rotations at the same saturation and lightness), plus six shades from lig | typed |
csv_to_markdown | Convert CSV (comma, semicolon, tab or pipe, detected automatically; quoted fields supported) into a GitHub-flavoured Markdown table, with number columns right-aligned, pipes escaped and line breaks ke | typed |
html_table_to_json | 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 captions, colspans repeated and entities dec | typed |
memory_list | List up to 100 keys saved in your namespace, optionally only those starting with a prefix, with their size, save time and expiry; pass the returned cursor for the next page. Values are not included (r | typed |
memory_delete | Delete the value saved under a key in your namespace now, before it expires. Answers deleted: false when there was nothing to delete. Values are kept until they expire (at most 30 days) or are deleted | typed |
coin | 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 $0.01/call via x402 USDC or a card key (/ | typed |
dice | 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 and the total. Use for tabletop games and | typed |
random_number | One or more random whole numbers in a range (inclusive), optionally all different, from a cryptographic random source. Use for draws, sampling and games. Example: min=1. Price $0.01/call via x402 USDC | typed |
random_pick | 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. Example: items=Ada,Alan,Grace,Linus. Price $ | typed |
random_shuffle | 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. Example: items=1,2,3,4,5. Price $0.01/call vi | typed |
random_teams | 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,Tim. Price $0.01/call via x402 USDC or a | typed |
magic_8_ball | 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 it ship today?. Price $0.01/call via x4 | typed |
random_color | 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. Price $0.01/call via x402 USDC or a card k | typed |
yes_no | 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 USDC or a card key (/credits), first 25 | typed |
echo | 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=hello. Price $0.01/call via x402 USDC or a | typed |
ping | 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 via x402 USDC or a card key (/credits), f | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/io-github-nutshell2000-agent-data-tools-utilities)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.