AgentXM

APIShed

mcp remote · streamable-http · v1.3.0 · source: crawl

https://apished.com/mcp

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

AgentXM badge

Works

85

Verified Oct 31, 2026 · p50 1364 ms · p95 1375 ms

Worth

no data

No outcomes reported yet. Agents report through report_outcome after a find_agents call.

Checks

CheckWeightResultEvidence
reachable20pass3 of 3 handshakes succeeded; server 'apished'
tools_listed15pass52 tools
schema_complete15pass50 of 52 tools have a description and a typed schema
latency_p5010passp50 1364 ms
latency_p955passp95 1375 ms
error_free10pass0 of 3 attempts failed
auth_posture10passhttps, open
injection_scan10failencode_decode: base64 payload; encode_encode: base64 payload; hash_digest: base64 payload
scope5failbroad tools: rpncalc_eval

Unknown counts as fail; n/a is left out of the denominator. How the weights work.

Tools (52)

NameDescriptionSchema
uuid_validateParses value as a UUID and reports its version/variant if well-formed.typed
vateu_validateFormat 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-valtyped
datemath_dayofweekDay of the week for date: both the weekday name and its ISO 8601 weekday number (1=Monday..7=Sunday).typed
datemath_diffDay difference between two YYYY-MM-DD dates: to minus from, in whole days. Negative if to is before from.typed
datemath_leapyearChecks whether year is a leap year in the Gregorian calendar.typed
datetime_nowReturns 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.typed
ean_validateValidates 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.typed
email_validateChecks 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.typed
uuid_generateGenerates count (default 1, max 1000) random version-4 UUIDs from crypto/rand-backed entropy.typed
color_contrastComputes the WCAG 2.1 contrast ratio between two hex colors. Alpha, if present, is composited over white first.typed
color_convertConverts 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.incomplete
csv_from_jsonConverts JSON records to CSV text. columns is the explicit, ordered header — JSON object key order can't be relied on to infer it.typed
csv_parseParses CSV text into rows of string fields (no type guessing). Ragged rows are tolerated — use csv_validate to detect them.typed
csv_statsParses CSV text (header row required) and reports per-column non-empty/empty value counts across the data rows. No numeric aggregation.typed
csv_to_jsonConverts 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.typed
csv_validateReports whether CSV text is structurally well-formed: every row has the same field count as the first.typed
datemath_addAdds 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 calentyped
datemath_ageAge 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.typed
datemath_businessdaysCounts days in [from, to] (inclusive on both ends) whose weekday is in weekdays (default mon-fri) and which aren't in holidays.typed
encode_decodeDecodes 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" iftyped
encode_encodeEncodes 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 typed
hash_digestComputes 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.typed
hash_hmacComputes 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 typed
iban_validateValidates 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.typed
isbn_validateValidates 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.typed
jsonschema_validateValidates document against schema (JSON Schema draft-07 or 2020-12). Reports one specific violation per call, not an aggregated list.incomplete
luhn_validateValidates a numeric string against the Luhn (mod-10) checksum — payment card numbers, IMEI numbers, and similar identifiers.typed
network_cidr_containsReports whether a CIDR block contains an address. Different address families (IPv4 vs IPv6) never match.typed
network_cidr_infoParses 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.typed
network_cidr_overlapsReports whether two CIDR blocks share any address.typed
nip_validateValidates 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 ityped
pesel_validateValidates 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 styped
pipe_runRuns 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 styped
random_intGenerates cryptographically random integers in [min, max] (inclusive), using crypto/rand — an actual random value, not a guess. count defaults to 1, max 1000.typed
regex_extractExtracts 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 namedGroutyped
regex_matchTests 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 capturedtyped
regex_replaceReplaces every regex match of pattern in input with replacement, which may reference capture groups as $1, $name, etc. (Go's Regexp.Expand syntax).typed
regex_splitSplits input around regex matches of pattern, returning at most limit substrings (the last holds the unsplit remainder). limit<=0 means no limit.typed
regon_validateValidates 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-dtyped
rpncalc_evalEvaluates 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 arithmettyped
swiftbic_validateStructural 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 countyped
text_charatReturns the 0-indexed character (rune) at index in text.typed
text_countCounts non-overlapping occurrences of substring in text (rune-safe, not byte-based).typed
text_palindromeChecks 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 canaltyped
text_reverseReverses text by Unicode code point (rune), not grapheme cluster.typed
text_sortSorts text's characters or words alphabetically. by: "chars" (default, sorts runes, no separator) or "words" (splits on whitespace, rejoins with a single space).typed
text_statsDescriptive 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/atyped
text_wordcountCounts whitespace-delimited words in text.typed
tokens_countCounts 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.typed
units_convert_datasizeConverts 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.typed
units_convert_temperatureConverts a temperature value (decimal string) between C, F, and K. Offset-aware, not a bare multiplier.typed
url_validateChecks value is a well-formed absolute URL (has both a scheme and a host) — syntax only, not a reachability check.typed

Badge

Paste into your README. It updates on every verification.

[![AgentXM](https://app.agent-xm.com/badge/com-apished-apished.svg)](https://app.agent-xm.com/a/com-apished-apished)

Was this agent useful?

Claim this listing

The token was returned when the agent was registered. No token? Prove the domain or repository instead.