{"name":"io.github.presendapp/presend-mcp","slug":"presendapp-presend-mcp","title":"Presend MCP Server","description":"Free MCP server: 36 security & dev API tools -- WHOIS, DNS, CVE, IP reputation, Cosmos SDK.","url":"https://mcp.market/server/presendapp-presend-mcp","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"security","tags":["security"],"presence":{"score":23,"stars":1,"forks":0,"downloads_week":null,"last_push_at":"2026-09-19T09:37:48.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/presendapp/presend","website":null,"version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://presend.pages.dev/mcp"}],"packages":[],"tools":[{"name":"address_risk","description":"Check a crypto address against the OFAC sanctions list (EVM)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"address":{"type":"string","description":"EVM address (0x + 40 hex chars) or Cosmos SDK bech32 address to check against the OFAC SDN sanctions list."}},"required":["address"]}},{"name":"ai_crawler_check","description":"Check which AI crawlers are allowed by robots.txt","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to check, e.g. example.com. robots.txt is fetched from https://<domain>/robots.txt."}},"required":["domain"]}},{"name":"base64","description":"Encode or decode Base64","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"action":{"type":"string","description":"Either \\\"encode\\\" or \\\"decode\\\"."},"text":{"type":"string","description":"Text to encode, or Base64 string to decode."}},"required":["action","text"]}},{"name":"color","description":"Convert color formats","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"hex":{"type":"string","description":"Hex color code, e.g. #ff0000 or ff0000. Provide exactly one of hex, rgb, or hsl."},"rgb":{"type":"string","description":"RGB color, e.g. 255,0,0. Provide exactly one of hex, rgb, or hsl."},"hsl":{"type":"string","description":"HSL color, e.g. 0,100%,50%. Provide exactly one of hex, rgb, or hsl."}},"required":[]}},{"name":"csv_json","description":"Convert between JSON and CSV (GET)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"direction":{"type":"string","description":"Either \\\"csv-to-json\\\" or \\\"json-to-csv\\\"."},"data":{"type":"string","description":"The CSV or JSON text to convert, matching the chosen direction."}},"required":["direction","data"]}},{"name":"dns_lookup","description":"DNS record lookup (A, AAAA, CNAME, MX, TXT, NS)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to look up, e.g. example.com."},"type":{"type":"string","description":"Narrow to a single record type. Omit to get all 6 at once."}},"required":["domain"]}},{"name":"email_disposable","description":"Detect disposable email domains","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"email":{"type":"string","description":"Email address to check against a list of known disposable/temporary email domains."}},"required":["email"]}},{"name":"email_security","description":"Domain email anti-spoofing check (SPF/DMARC/DKIM)","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to check SPF, DKIM, and DMARC records for, e.g. example.com."}},"required":["domain"]}},{"name":"email_validate","description":"Validate an email address","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"email":{"type":"string","description":"Email address to validate for correct syntax and a resolvable domain."}},"required":["email"]}},{"name":"email_verify","description":"Combined email verification","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"email":{"type":"string","description":"Email address to run through combined syntax, disposable-domain, and MX-record checks."}},"required":["email"]}},{"name":"favicon","description":"Fetch a domain's favicon URL","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to fetch the favicon URL for, e.g. example.com."}},"required":["domain"]}},{"name":"ip","description":"Get caller IP geolocation","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[]}},{"name":"ip_reputation","description":"IP reputation check (Spamhaus DROP)","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"ip":{"type":"string","description":"IPv4 address to check against the Spamhaus DROP list of known spam/hijacker netblocks."}},"required":["ip"]}},{"name":"jwt_decode","description":"Decode a JWT","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string","description":"The JWT to decode. Decodes header and payload only -- does not verify the signature (use /jwt-verify for that)."}},"required":["token"]}},{"name":"jwt_verify","description":"Verify a JWT's cryptographic signature","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"token":{"type":"string","description":"The JWT to verify. Checks the cryptographic signature -- use /jwt-decode if you only need to read the header and payload."},"secret":{"type":"string","description":"Required for HS256/384/512."},"jwk":{"type":"object","description":"Public key in JWK format, for RS/PS/ES algorithms."},"jwks_url":{"type":"string","description":"URL to a JWKS document; the key is matched by the token's \"kid\" header."}},"required":["token"]}},{"name":"maintainer_change_check","description":"Detect a suspicious npm package maintainer change","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ecosystem":{"type":"string","description":"Currently only \\\"npm\\\" is supported."},"package":{"type":"string","description":"Package name, e.g. lodash"}},"required":["ecosystem","package"]}},{"name":"password","description":"Generate a secure password","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"length":{"type":"string","description":"Desired password length. Defaults to a reasonable secure length if omitted."},"symbols":{"type":"string","description":"Whether to include symbol characters. 1 for yes, 0 for no."},"uppercase":{"type":"string","description":"Whether to include uppercase letters. 1 for yes, 0 for no."},"numbers":{"type":"string","description":"Whether to include numeric digits. 1 for yes, 0 for no."},"exclude_ambiguous":{"type":"string","description":"Whether to exclude visually ambiguous characters (e.g. 0/O, 1/l). 1 for yes, 0 for no."}},"required":[]}},{"name":"password_breach","description":"Check if a password has been breached","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"password":{"type":"string","description":"Password to check against known data-breach corpora. Checked via k-anonymity (only a partial hash prefix is sent) -- the full password is never transmitted."}},"required":["password"]}},{"name":"password_check","description":"Combined password strength + breach check","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"password":{"type":"string","description":"Password to evaluate for strength (length, character variety, common patterns)."},"check_breach":{"type":"boolean","description":"Whether to also check the password against known data-breach corpora via k-anonymity. true or false."}},"required":["password"]}},{"name":"phone_verify","description":"Validate and format a phone number","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"number":{"type":"string","description":"Phone number to validate and format, ideally in E.164 format (e.g. +14155552671)."},"country":{"type":"string","description":"ISO 3166-1 alpha-2 country code (e.g. US, FR), used to interpret a number with no leading +."}},"required":["number"]}},{"name":"redirect_trace","description":"Full redirect chain trace","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to follow the full redirect chain for, hop by hop."}},"required":["url"]}},{"name":"repo_health_check","description":"GitHub repository health signals","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"repo":{"type":"string","description":"GitHub repository in owner/name format, e.g. lodash/lodash."}},"required":["repo"]}},{"name":"rpc_check","description":"Audit a CometBFT RPC endpoint (health, peers, unsafe-method exposure)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"Base URL of a CometBFT RPC endpoint to audit, e.g. https://rpc.cosmos.network:443."}},"required":["url"]}},{"name":"security_headers","description":"Audit HTTP security headers","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to audit HTTP security headers for (CSP, HSTS, X-Frame-Options, etc.)."}},"required":["url"]}},{"name":"security_scan","description":"Combined security posture report","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to run a combined security posture check against (headers, reputation, and related signals)."}},"required":["url"]}},{"name":"subdomains","description":"Passive subdomain discovery","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to passively discover subdomains for via Certificate Transparency logs, e.g. example.com."}},"required":["domain"]}},{"name":"supply_chain_check","description":"Combined supply-chain risk check (maintainer-change + vulnerability + typosquat + repo-health)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ecosystem":{"type":"string","description":"Package ecosystem, e.g. npm. maintainer-change-check only runs for npm."},"package":{"type":"string","description":"Package name to check."}},"required":["ecosystem","package"]}},{"name":"text_similarity","description":"Text similarity via SimHash (1 or 2 texts)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"texts":{"type":"array","description":"1 text (hash only) or 2 texts (compare). Max 200,000 characters each."}},"required":["texts"]}},{"name":"timestamp","description":"Convert timestamps","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"unix":{"type":"string","description":"Unix timestamp (seconds since epoch) to convert to a human-readable date. Provide either unix or date, not both."},"date":{"type":"string","description":"Date/time string to convert to a Unix timestamp. Provide either unix or date, not both."}},"required":[]}},{"name":"tx_decode","description":"Decode a raw signed Cosmos SDK transaction (protobuf)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tx":{"type":"string","description":"Base64-encoded Cosmos SDK TxRaw protobuf bytes, as returned by a chain's CometBFT RPC /block or /tx_search endpoints."}},"required":["tx"]}},{"name":"typosquat_check","description":"Package name typosquatting check","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ecosystem":{"type":"string","description":"Package ecosystem, e.g. npm or PyPI."},"package":{"type":"string","description":"Package name to check for likely typosquatting of a well-known package in the given ecosystem."}},"required":["ecosystem","package"]}},{"name":"url_clean","description":"Clean a single URL","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to strip tracking parameters from (utm_*, fbclid, gclid, and similar)."}},"required":["url"]}},{"name":"url_reputation","description":"Check URL against malware/phishing database","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"url":{"type":"string","description":"URL to check against known phishing/malware URL databases."}},"required":["url"]}},{"name":"user_agent","description":"Parse a User-Agent string","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ua":{"type":"string","description":"User-Agent string to parse. If omitted, the request's own User-Agent header is parsed instead."}},"required":[]}},{"name":"uuid","description":"Generate UUIDs","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"count":{"type":"string","description":"Number of UUIDs (v4) to generate. Defaults to 1 if omitted."}},"required":[]}},{"name":"vulnerability_check","description":"Package vulnerability check (OSV.dev)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"ecosystem":{"type":"string","description":"Package ecosystem, e.g. npm, PyPI, Go, crates.io, Maven, RubyGems, Packagist, or NuGet."},"package":{"type":"string","description":"Package name to check against OSV.dev for known CVEs."},"version":{"type":"string","description":"Omit to check all versions of the package."}},"required":["ecosystem","package"]}},{"name":"whois_lookup","description":"Domain registration lookup (WHOIS via RDAP)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain to look up registration details for via RDAP, e.g. example.com."}},"required":["domain"]}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-09-19T09:53:25.456Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T09:53:25.449Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 619ms"]},"poisoning":{"score":15,"max":15,"notes":["37 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 5 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":6,"max":10,"notes":["registry namespace matches repository owner"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://presend.pages.dev/mcp","reachable":true,"authRequired":false,"latencyMs":619,"serverInfo":{"name":"presend-mcp","version":"2.0.0"}}],"packages":[],"repo":{"found":true,"owner":"presendapp","repo":"presend","archived":false,"pushedAt":"2026-09-19T09:37:48Z","stars":1,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/300177977?v=4","ownerCreatedAt":"2026-07-05T16:43:21Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/300177977?v=4&s=128","source":"github"},"presence":{"stars":1,"forks":0,"downloadsWeek":null,"license":"MIT","lastPushAt":"2026-09-19T09:37:48.000Z","score":23}}}},"grade_history":[],"reviews":[]}