Skip to content
Back to search
100
MCP live MCP 2025-11-25 streamable-http

APIShed

com.apished/apished

Validates PESEL/NIP/REGON/IBAN/Luhn/ISBN/EAN/BIC/VAT; RPN, dates, hash, tokens, random, encode, time

Watch this dependency

Get before/after evidence when observed tools, schemas, authentication access, availability or the endpoint changes.

Inspect evidence and set up a watch Share public evidence report
Uptime
80.0%
5 direct probes · 30d
Response
330ms
last probe
Tools
52
callable
Resources
0
readable
Prompts
0
available
Score: 100/100
Handshake verified by our own probe.
why this score
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
52 tools, 0 resources, 0 prompts returned.
pass 3 or more catalogue items 10/10
52 items in total; 3 or more earns these points.
pass Describes itself 10/10
100 characters; more than 30 earns these points.

Tools · 52

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 calen…

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…

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 …

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 …

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 i…

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 s…

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 s…

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 namedGrou…

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…

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-d…

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 arithmet…

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 coun…

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…

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/a…

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-val…

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "apished": {
      "url": "https://apished.com/mcp",
      "transport": "streamable-http"
    }
  }
}