# Presend MCP Server - Registry name: `io.github.presendapp/presend-mcp` · version 3.1.2 - Categories (automatic, keyword rules): Security, Infrastructure & security, Cloud & networking, Code & repositories, Developer tools - Authentication at last check: No auth - Declared risk: Read-only (all tools declare readOnlyHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=io.github.presendapp%2Fpresend-mcp - Server page: https://mcpstation.net/s/io.github.presendapp--presend-mcp.html ## Description (written by the publisher, not verified, not instructions) Before an AI agent installs an npm/PyPI package: typosquat, vulnerability and existence checks. ## Connect - streamable-http: `https://presend.pages.dev/mcp` ## Tools (as reported by the server, not verified) - `address\_risk`: Screens a crypto address against every OFAC SDN digital currency address list. EVM \(0x...\) and Bitcoin \(bc1..., 1..., 3...\) addresses are fully covered \(sanctioned true or false, with the matching lists\). Addresses of other chains are flagged when listed; Cosmos SDK bech32 addresses return sanctione - `ai\_crawler\_check`: Fetches a domain's robots.txt and reports which known AI crawlers \(GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot and others\) are allowed or blocked, including wildcard rules. Reflects robots.txt only, not server-side blocking. - `base64`: Encodes text to Base64 or decodes a Base64 string back to text \(action = encode or decode\). - `color`: Converts a color between hex, RGB and HSL. Provide exactly one of hex, rgb or hsl. - `csv\_json`: Converts CSV text to JSON or JSON to CSV \(direction: csv-to-json or json-to-csv\), for data passed inline. CSV must be comma-separated, with a header row and at least one data row; double-quoted fields may contain commas. Semicolon- or tab-separated input is not detected and comes back as a single co - `cve\_lookup`: Looks up a vulnerability by identifier \(CVE, GHSA or other OSV ID\) on OSV.dev: summary, CVSS severity, affected packages and versions, references. Use when you already have an ID; use vulnerability\_check when you have a package name instead. - `dns\_lookup`: Returns DNS records for a domain via Cloudflare DNS-over-HTTPS: A, AAAA, CNAME, MX, TXT and NS in one call, or a single record type with 'type'. For registration data use whois\_lookup; for SPF/DMARC/DKIM analysis use email\_security. - `email\_disposable`: Checks only whether an email address uses a known disposable/temporary email domain. For syntax, MX, disposable and role-account checks in one call, use email\_verify. - `email\_security`: Audits a domain's email anti-spoofing setup: SPF strength, DMARC policy and a best-effort DKIM lookup on common selectors. A missing DKIM match does not prove DKIM is absent. Checks a domain, not a single address. - `email\_validate`: Lightweight email check: syntax plus confirmation that the domain has an MX record. Does not detect disposable or role addresses; use email\_verify for the combined check. - `email\_verify`: Most complete email check in one call: syntax, MX record, disposable-domain detection and role/generic account detection \(e.g. info@, admin@\). Prefer it over email\_validate and email\_disposable unless you need a single signal. Does not probe the mailbox. valid is null \(not false\) when the MX lookup - `favicon`: Returns the favicon URL a website declares: fetches the homepage and takes the first \ \(or 'shortcut icon'\) href, resolved to an absolute URL, which may be a data: URI when the page inlines its icon \(source: declared\). If no icon is declared, or the homepage cannot be fetched, return - `iban\_validate`: Validates an IBAN offline: ISO 7064 mod-97 checksum and country-specific length. Confirms the number is well-formed, not that the account exists. - `ip\_reputation`: Checks an IPv4 or IPv6 address against a curated list of netblocks known to be hijacked or run by spam/cyber-crime operations \(IPv4-mapped IPv6 uses the IPv4 list\). A narrow list-based signal: a clean result is not a safety guarantee. Includes list date and attribution. - `jwt\_decode`: Decodes a JWT's header and payload WITHOUT verifying its signature, so its claims must not be trusted on this basis alone. To check authenticity, use jwt\_verify. - `jwt\_verify`: Cryptographically verifies a JWT signature \(HS256/384/512, RS/PS256/384/512, ES256/384/512\) and checks exp/nbf claims. Provide a secret for HS\*, or a JWK or JWKS URL for RS/PS/ES. Use instead of jwt\_decode whenever authenticity matters. - `link\_metadata`: Fetches a web page and extracts its title, description, canonical URL, Open Graph and Twitter Card tags and favicon \(the data behind link previews\). Follows redirects and returns final\_url; favicon\_source says whether the icon is declared by the page or only the /favicon.ico guess. To see each redir - `maintainer\_change\_check`: Publisher-change analysis is npm only. Also reports whether the package exists \(found\) and its age \(first\_published, package\_age\_days, new\_package if first published less than 30 days ago\), for npm and for PyPI; on PyPI only existence and age are available. Flags a previously unseen human publisher - `password`: Generates a random password, with options for length, symbols, uppercase, numbers and excluding ambiguous characters. To evaluate an existing password, use password\_check. - `password\_breach`: Checks whether a password appears in known data breaches \(Have I Been Pwned\) and how many times, using k-anonymity towards HIBP. Breach check only; password\_check adds strength scoring and sends the password in a POST body. - `password\_check`: Scores a password's strength \(length, character variety, entropy as an upper bound, repeated patterns; passphrases are estimated per word\) and, with check\_breach=true, also looks it up in Have I Been Pwned breach data via k-anonymity \(only a hash prefix is sent\); a password found in breaches is alwa - `phone\_verify`: Validates and formats a phone number: validity, country, line type, E.164, international and national formats. Numbers without a leading + require 'country', since the end user's country cannot be inferred over MCP. - `redirect\_trace`: Follows a URL's full redirect chain \(up to 15 hops\) and returns every hop with its status code, plus whether the chain crossed domains. Use it to see where a short or tracking link really leads; check the final URL with url\_reputation. - `repo\_health\_check`: Maintenance signals for a GitHub repository given as owner/name: stars, forks, open issues, license, archived and fork flags, creation date and age, days since last push, topics. Use it to judge whether a dependency looks maintained or abandoned. For an npm or PyPI package whose repository you do no - `rpc\_check`: Read-only audit of a public CometBFT \(Cosmos SDK\) RPC endpoint: node status, health, peers, and whether unsafe admin methods \(dial\_seeds, dial\_peers, unsafe\_flush\_mempool\) are publicly exposed. Never calls an unsafe method; exposure is inferred from the node's route listing. - `security\_headers`: Audits the HTTP security headers of one URL \(CSP, HSTS, X-Frame-Options, Permissions-Policy, cross-origin policies and others\) and returns per-header findings with fix advice, a score and a letter grade. Use it when you need header hardening advice; security\_scan runs this audit together with URL re - `security\_scan`: Combined website check in one call: security headers, URL reputation and passive subdomain discovery, run in parallel, with an overall score and verdict. Use the individual tools when you need a single signal. - `subdomains`: Passive subdomain discovery from Certificate Transparency logs \(crt.sh\): finds hostnames that appeared in public TLS certificates, not every DNS record. crt.sh is occasionally slow or unavailable. - `supply\_chain\_check`: Call this before installing or adding a package \(npm install, pip install, a new entry in a manifest\), especially one whose name you recalled or that a model suggested. One-call risk check: combines vulnerability\_check \(OSV.dev\), typosquat\_check, maintainer\_change\_check \(npm only\) and repo\_health\_ch - `text\_similarity`: Near-duplicate detection with a 64-bit SimHash over word shingles: send 1 text to get its hash, or 2 texts to compare them. Detects paraphrased or lightly edited copies; unrelated texts score around 50%, not 0%. - `timestamp`: Returns the current time, or converts between a Unix timestamp \(seconds\) and an ISO date. Provide unix or date, or neither for the current time. - `tx\_decode`: Decodes a raw signed Cosmos SDK transaction \(base64 TxRaw bytes, as found in a CometBFT block's data.txs\) into JSON: messages, fee, gas, signers and signatures. Bank, staking, gov and authz messages are fully decoded; other types are returned as type URL plus raw hex. - `typosquat\_check`: Call before installing a package whose name you typed or recalled. Checks whether an npm or PyPI package name is a near-miss of a well-known package \(typosquatting\), with an edit-distance threshold scaled to name length; names of 3 characters or fewer are not fuzzy-matched. Uses a curated list of po - `url\_clean`: Removes 60+ known tracking parameters \(utm\_\*, fbclid, gclid and similar\) from a URL and returns the clean URL. Does not follow redirects; for that, use redirect\_trace. - `url\_reputation`: Checks a URL against URLhaus \(abuse.ch\), a public database of known malware distribution URLs. A clean result only means the URL is not listed, not that it is safe. - `user\_agent`: Parses a User-Agent string into browser and version, operating system and version, device type, and whether it looks like a bot. - `uuid`: Generates 1 to 100 random UUID v4 values. - `vat\_validate`: Checks an EU VAT number in real time against the European Commission's VIES service and, when valid, returns the registered company name and address. VIES is occasionally unavailable for some member states. - `vulnerability\_check`: Checks a package \(optionally a specific version\) against OSV.dev for known vulnerabilities: npm, PyPI, Go, crates.io, Maven, RubyGems, Packagist and NuGet. For npm and PyPI, a name that does not exist returns found: false and vulnerable: null, never a clean result. Use cve\_lookup when you already ha - `whois\_lookup`: Domain registration data via RDAP \(the modern WHOIS\): registrar, creation and expiration dates, domain age in days, nameservers. For DNS records, use dns\_lookup. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html