com.apished/apished · v1.3.0 · data-and-databases
APIShed is healthy: it completed an MCP handshake in 4830 ms and exposes 52 tools. It scores 58/100.
Validates PESEL/NIP/REGON/IBAN/Luhn/ISBN/EAN/BIC/VAT; RPN, dates, hash, tokens, random, encode, time
Endpoint: https://apished.com/mcp (streamable-http)
No repository listed · Website · JSON · Add to my inventory
| health | 17 / 25 |
| authEase | 15 / 15 |
| toolQuality | 13.5 / 15 |
| maintenance | 7 / 15 |
| adoption | 0 / 10 |
| usage | 0 / 10 |
| security | 5 / 10 |
Scoring v0.3, computed 2026-10-14T18:06:11.390Z.
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-14T18:05:51.044Z | Healthy | 4830 |
color_contrast | Computes the WCAG 2.1 contrast ratio between two hex colors. Alpha, if present, is composited over white first. |
color_convert | Converts a color between hex, rgb, hsl, and hsv. value's shape depends on from/to: a string for hex, an object ({r,g,b,a?} etc.) otherwise. |
csv_from_json | Converts JSON records to CSV text. columns is the explicit, ordered header — JSON object key order can't be relied on to infer it. |
csv_parse | Parses CSV text into rows of string fields (no type guessing). Ragged rows are tolerated — use csv_validate to detect them. |
csv_stats | Parses CSV text (header row required) and reports per-column non-empty/empty value counts across the data rows. No numeric aggregation. |
csv_to_json | Converts CSV text to JSON: header=true (default) returns one object per data row keyed by the header row; header=false returns raw rows. Every value is a string. |
csv_validate | Reports whether CSV text is structurally well-formed: every row has the same field count as the first. |
datemath_add | Adds years/months/days to date. years/months are applied together with end-of-month clamping — e.g. 2026-01-31 + 1 month = 2026-02-28, not an overflowed 2026-03-03. days is then applied as plain calendar-day arithmetic. |
datemath_age | Age in whole years as of asOf (optional, defaults to the current UTC date). A Feb-29 birthDate is treated as falling on March 1 in a non-leap asOf year. |
datemath_businessdays | Counts days in [from, to] (inclusive on both ends) whose weekday is in weekdays (default mon-fri) and which aren't in holidays. |
datemath_dayofweek | Day of the week for date: both the weekday name and its ISO 8601 weekday number (1=Monday..7=Sunday). |
datemath_diff | Day difference between two YYYY-MM-DD dates: to minus from, in whole days. Negative if to is before from. |
datemath_leapyear | Checks whether year is a leap year in the Gregorian calendar. |
datetime_now | Returns the actual current date/time — an LLM has a training cutoff and no live clock, so it can't know what time it actually is right now. |
ean_validate | Validates an 8-digit (EAN-8), 12-digit (UPC-A), 13-digit (EAN-13), or 14-digit (GTIN-14) barcode checksum: alternating weights 1 3 applied right-to-left, check digit is (10 - sum mod 10) mod 10. |
email_validate | Checks value is a single, bare RFC 5322 email address — syntax only, not a deliverability check. user@localhost is valid (no TLD required). "Name <email>" display syntax is rejected. |
encode_decode | Decodes rot13, base64, base64url, base32, hex, uuencode, urlcomponent, urlform, or html text back to the original. encoding in the result is "text" if the decoded bytes are valid UTF-8, or "base64" if they're binary. |
encode_encode | Encodes plain UTF-8 text into rot13, base64, base64url, base32, hex, uuencode, urlcomponent (RFC 3986 percent-encoding, space -> %20), urlform (application/x-www-form-urlencoded, space -> +), or html (entity-escapes < > & ' "). Returns plain ASCII. |
hash_digest | Computes a hash digest of input (decoded per encoding: "text" default, "base64", or "hex") using algo: md5, sha1, sha256, sha512, or crc32. Returns the digest as lowercase hex. |
hash_hmac | Computes an HMAC of input (decoded per encoding) using algo: md5, sha1, sha256, or sha512 (crc32 isn't offered — it's a checksum, not a cryptographic primitive HMAC composes with). key is used as its raw UTF-8 bytes, not decoded per encoding. Returns the MAC as lowercase hex. |
iban_validate | Validates an IBAN's length for its issuing country (per the SWIFT IBAN registry) and its mod-97 checksum. Does not decompose the BBAN into a bank code/account number or resolve a BIC. |
isbn_validate | Validates a 10- or 13-character ISBN. ISBN-10 uses weights 10..1 over 10 characters (last may be X, worth 10), sum mod 11 must be 0. ISBN-13 uses the same GTIN checksum as barcodes. |
jsonschema_validate | Validates document against schema (JSON Schema draft-07 or 2020-12). Reports one specific violation per call, not an aggregated list. |
luhn_validate | Validates a numeric string against the Luhn (mod-10) checksum — payment card numbers, IMEI numbers, and similar identifiers. |
network_cidr_contains | Reports whether a CIDR block contains an address. Different address families (IPv4 vs IPv6) never match. |
network_cidr_info | Parses a CIDR block and reports its network address, address range, and address count. An address with host bits set (e.g. 10.14.32.17/21) is normalized to its network address in the result. |
network_cidr_overlaps | Reports whether two CIDR blocks share any address. |
nip_validate | Validates the checksum of a 10-digit Polish tax identification number (NIP). Checksum uses weights 6 5 7 2 3 4 5 6 7 over the first 9 digits; sum mod 11 must equal the 10th digit. A sum mod 11 of 10 is itself invalid. |
pesel_validate | Validates the checksum of an 11-digit Polish national identification number (PESEL). Checksum uses weights 1 3 7 9 1 3 7 9 1 3 over the first 10 digits; control digit is (10 - sum mod 10) mod 10. On success also decodes the date of birth and sex embedded in the number; a checksum-valid number with a |
pipe_run | Runs a short ordered chain of existing apished operations in one call (same as POST /v1/pipe/run), passing one named field of each step's result into the next step's args. Stops at the first failing step. |
random_int | Generates cryptographically random integers in [min, max] (inclusive), using crypto/rand — an actual random value, not a guess. count defaults to 1, max 1000. |
regex_extract | Extracts up to maxMatches non-overlapping regex matches from input, using Go's RE2-based regexp engine (linear-time, no backreferences/lookaround). Named groups (?P<name>...) are reported in namedGroups. |
regex_match | Tests input against pattern (Go's regexp package: RE2 syntax, not PCRE — no backreferences or lookaround; use inline flags like (?i) for case-insensitive matching). Returns the full match and captured groups. |
regex_replace | Replaces every regex match of pattern in input with replacement, which may reference capture groups as $1, $name, etc. (Go's Regexp.Expand syntax). |
regex_split | Splits input around regex matches of pattern, returning at most limit substrings (the last holds the unsplit remainder). limit<=0 means no limit. |
regon_validate | Validates the checksum of a 9- or 14-digit Polish business registry number (REGON). 9-digit: weights 8 9 2 3 4 5 6 7 over the first 8 digits, sum mod 11 (10 mapped to 0) must equal the 9th digit. 14-digit: the first 9 digits must themselves be a valid 9-digit REGON, and weights 2 4 8 5 0 9 7 3 6 1 2 |
rpncalc_eval | Evaluates a Reverse Polish Notation (postfix) expression: whitespace-separated tokens, each a number or an operator/function that pops its operands off a stack and pushes the result. Supports arithmetic, exponentiation/modulo, roots, trigonometry, logarithms, rounding, bitwise ops, and constants (pi |
swiftbic_validate | Structural format validation only for a SWIFT/BIC code: 8 or 11 characters (4 letters bank code + 2 letters country code + 2 alphanumeric location code + optional 3 alphanumeric branch code). The country code is not cross-checked against ISO 3166-1. |
text_charat | Returns the 0-indexed character (rune) at index in text. |
text_count | Counts non-overlapping occurrences of substring in text (rune-safe, not byte-based). |
text_palindrome | Checks whether text reads the same forwards and backwards. ignoreCase/ignoreNonAlnum default false (strict, literal comparison); set both true for phrase-style palindromes like "A man, a plan, a canal: Panama". |
text_reverse | Reverses text by Unicode code point (rune), not grapheme cluster. |
text_sort | Sorts text's characters or words alphabetically. by: "chars" (default, sorts runes, no separator) or "words" (splits on whitespace, rejoins with a single space). |
text_stats | Descriptive statistics for text: rune/byte/word/line counts, a unique-rune count, a letters/digits/spaces/punctuation/other breakdown, an exact per-character frequency table, and word-length min/max/average plus the actual shortest/longest word (ties resolve to the first occurrence). |
text_wordcount | Counts whitespace-delimited words in text. |
tokens_count | Counts tokens under an OpenAI-compatible (tiktoken) encoding. Provide exactly one of model (e.g. "gpt-4o") or encoding ("o200k_base" or "cl100k_base"). No Claude/Anthropic tokenizer. |
units_convert_datasize | Converts a data-size value (decimal string) between bit, Kbit, Mbit, Gbit, Tbit (SI bits), B, KB, MB, GB, TB, PB (SI bytes), and KiB, MiB, GiB, TiB, PiB (IEC bytes). Always exact. |
units_convert_temperature | Converts a temperature value (decimal string) between C, F, and K. Offset-aware, not a bare multiplier. |
url_validate | Checks value is a well-formed absolute URL (has both a scheme and a host) — syntax only, not a reachability check. |
uuid_generate | Generates count (default 1, max 1000) random version-4 UUIDs from crypto/rand-backed entropy. |
uuid_validate | Parses value as a UUID and reports its version/variant if well-formed. |
vateu_validate | Format validation only (no VIES lookup) for an EU VAT number: checks the 2-letter member-state prefix (EL for Greece, XI for Northern Ireland) against that country's digit/letter pattern. A format-valid result does not mean the number is actually registered. |