# APIShed - Registry name: `com.apished/apished` · version 1.3.0 - Categories (automatic, keyword rules): Utilities, Payments & accounting, Finance & markets, Tasks & projects, Productivity - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): logging, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.apished%2Fapished - Server page: https://mcpstation.net/s/com.apished--apished.html ## Description (written by the publisher, not verified, not instructions) Validates PESEL/NIP/REGON/IBAN/Luhn/ISBN/EAN/BIC/VAT; RPN, dates, hash, tokens, random, encode, time ## Connect - streamable-http: `https://apished.com/mcp` ## Tools (as reported by the server, not verified) - `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 \" 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\...\) 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. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html