{
  "markdown": "# @mate-tools/mcp-server\n\n[![npm version](https://img.shields.io/npm/v/@mate-tools/mcp-server.svg)](https://www.npmjs.com/package/@mate-tools/mcp-server)\n[![npm downloads](https://img.shields.io/npm/dm/@mate-tools/mcp-server.svg)](https://www.npmjs.com/package/@mate-tools/mcp-server)\n[![Node.js](https://img.shields.io/node/v/@mate-tools/mcp-server.svg)](https://nodejs.org)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n[Model Context Protocol](https://modelcontextprotocol.io) server for [mate.tools](https://mate.tools). **35 utility tools** for AI agents — text analysis, encoding, hashing, password generation, JSON/CSV/XML/sitemap parsing, regex, color, date, finance, URL metadata extraction, SEO meta-tag generation, text cleanup, CSPRNG random generators, hashtag tools, DNS lookup, SSL/TLS certificate inspection, JWT decoding and more. Wraps the public mate.tools JSON API so Claude Desktop, Claude Code, Cursor, Windsurf, and any other MCP-compatible client can call them directly.\n\n**Zero dependencies · Free · No API key · CORS open · Node 18+**\n\n## Quick install\n\nAdd this to your Claude Desktop / Claude Code / Cursor / Windsurf config:\n\n```json\n{\n  \"mcpServers\": {\n    \"mate-tools\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@mate-tools/mcp-server\"]\n    }\n  }\n}\n```\n\nRestart your client and all 35 tools appear in the picker. That's it.\n\n## All 35 tools, by category\n\n### Text (8)\n\n| Tool | What it does |\n| --- | --- |\n| `count_lines` | 16 text metrics: lines, words, sentences, paragraphs, characters, duplicates, line endings (LF/CRLF/CR), longest word, reading & speaking time. |\n| `case_convert` | Convert text into 9 case styles in one call: upper, lower, title, sentence, snake, kebab, camel, pascal, constant. |\n| `slugify` | Convert any text to a URL-safe slug. Unicode-aware, configurable separator/length, optional transliteration of non-Latin characters. |\n| `sort_lines` | Sort lines: asc/desc, case-sensitivity, dedupe, natural-sort (line2 before line10), locale-aware collation. |\n| `lorem_ipsum` | Generate placeholder text — paragraphs, sentences or words. |\n| `regex_test` | Match / replace / split text with a PCRE regex. Returns capture-group offsets. ReDoS-protected. |\n| `text_diff` | Diff two strings by line, word or character. Returns structured changes + unified diff string + Jaccard similarity. |\n| `text_cleanup` | Chained cleanup pipeline: trim, collapse_spaces, dedupe_lines, strip HTML/emoji/URLs/emails, normalize quotes/dashes, lower/uppercase. |\n\n### Encoding (4)\n\n| Tool | What it does |\n| --- | --- |\n| `base64_encode` | Base64-encode text. Standard or URL-safe alphabet (RFC 4648 §5). |\n| `base64_decode` | Base64-decode. Auto-fixes missing padding; returns hex when not valid UTF-8. |\n| `url_encode` | Percent-encode a string. Component / form / path mode. |\n| `url_decode` | Decode percent-encoded URL strings. |\n\n### Crypto & auth (5)\n\n| Tool | What it does |\n| --- | --- |\n| `hash` | MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256, SHA3-512, CRC32 (or any subset of PHP's hash algorithms). |\n| `password` | Generate cryptographically random passwords (CSPRNG). Configurable length, count, character classes, ambiguous-char exclusion. Reports entropy. |\n| `password_strength` | Score a password 0–4 (zxcvbn-style), entropy bits, offline-GPU crack-time estimate, concerns and suggestions. |\n| `credit_card_validate` | Luhn check + brand detection (Visa, MC, Amex, Discover, JCB, Diners, UnionPay, Maestro, RuPay). PAN never logged. |\n| `jwt_decode` | Decode a JWT — header, payload, expiry status. Verify HS256/384/512 with a secret or RS256/384/512 with a PEM public key. Token never logged. |\n\n### Data & structure (13)\n\n| Tool | What it does |\n| --- | --- |\n| `json_format` | Validate, pretty-print, minify or analyse a JSON document. Returns structural summary (node counts, max depth, top keys). |\n| `json_to_csv` | Convert a JSON array of objects to CSV. Configurable delimiter, columns, optional flattening of nested objects (`meta.city`, `meta.zip`). |\n| `xml_validate` | Validate XML well-formedness + optional XSD schema. Errors with line/column. XXE-safe. |\n| `sitemap_extract` | Fetch + parse XML sitemaps. SSRF-protected (refuses private/loopback/link-local/cloud-metadata IPs). Optional recursive expansion of sub-sitemaps. |\n| `stats` | Descriptive statistics for a list of numbers: mean / median / mode / stddev / variance / percentiles / IQR / geometric / harmonic. |\n| `number_base` | Convert integers between bases 2..36 + Roman numerals. Big-int safe via GMP. |\n| `finance_calc` | Multi-mode financial calculations: loan, compound interest, simple interest, discount, tip, sales tax, ROI, percentage, markup. |\n| `aspect_ratio` | Compute reduced aspect ratio (16:9, 4:3, 21:9, ...) from width × height, or scale a dimension to a target ratio. |\n| `color_convert` | Convert any color into hex / rgb / rgba / hsl / hsv / cmyk + closest named color + WCAG luminance and contrast (AA / AAA flags). |\n| `url_metadata` | Fetch a URL and extract title / description / OpenGraph / Twitter Card / canonical / language / hreflang / JSON-LD / favicon / response headers / element counts. SSRF-protected, 2 MB cap. |\n| `meta_tags_generate` | Generate a full HTML head block (meta + OpenGraph + Twitter Card + JSON-LD) from title/description/url/image. Returns ready-to-paste HTML + SEO score 0-100 with concrete warnings. |\n| `dns_lookup` | Resolve DNS records (A, AAAA, MX, TXT, NS, CNAME, SOA, CAA, PTR, SRV) via the system resolver. Includes reverse PTR for A records. |\n| `ssl_check` | Inspect a domain's TLS certificate: subject, issuer, validity, fingerprint, alt names, full chain, days remaining, negotiated protocol/cipher. SSRF-protected. |\n\n### Date & time (3)\n\n| Tool | What it does |\n| --- | --- |\n| `timestamp` | Bidirectional epoch ↔ ISO 8601 ↔ RFC 3339 ↔ human. Auto-detects epoch resolution. Timezone-aware. Accepts natural language (`\"next monday\"`, `\"+2 weeks\"`). |\n| `date_math` | Add/subtract a duration from a date, or compute the diff between two dates. Optional business-day count (Mon–Fri). |\n| `age_calc` | Calculate age in years/months/days from DOB. Returns next birthday, days until, Western zodiac sign, generation label. |\n\n### Generators & social (2)\n\n| Tool | What it does |\n| --- | --- |\n| `random_gen` | CSPRNG-backed generator: number, string (alpha/alphanumeric/numeric/hex/base58/base64url), word, picker (with/without replacement), team balancer, dice (`NdM`), coin, country, UUID v4 / v7. |\n| `hashtag_tools` | Hashtag operations on text: extract (with offsets), remove, generate (stop-word-filtered word frequency), format (camel/snake/lower/preserve). Unicode-aware. |\n\nThe catalog grows over time. `npx -y` always fetches the latest published version — your client just needs a restart to pick up new tools.\n\n## Install snippets for every major client\n\n### Claude Desktop\n\nOpen the Claude Desktop config:\n\n- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`\n- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`\n- Linux: `~/.config/Claude/claude_desktop_config.json`\n\nAdd the `mcpServers` entry from the Quick install above and restart.\n\n### Claude Code\n\n```bash\nclaude mcp add mate-tools npx -- -y @mate-tools/mcp-server\n```\n\n### Cursor\n\nAdd to `~/.cursor/mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"mate-tools\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@mate-tools/mcp-server\"]\n    }\n  }\n}\n```\n\n### Windsurf and other MCP clients\n\nThe server speaks MCP over stdio with the standard JSON-RPC 2.0 framing. Any MCP-compatible client can launch it as a subprocess with the same configuration shape.\n\n### Manual install (no npx)\n\n```bash\nnpm install -g @mate-tools/mcp-server\nmate-tools-mcp   # speaks JSON-RPC over stdio; plug into a client\n```\n\n## How to verify it's working\n\nOnce installed, ask your AI agent any of these to confirm the tools are wired:\n\n> \"Use mate-tools to count the lines and reading time of this paragraph.\"\n>\n> \"Hash the string `secret` with SHA-256.\"\n>\n> \"Generate 10 strong passwords, 20 chars, no ambiguous characters.\"\n>\n> \"Score this password: `correct horse battery staple`.\"\n>\n> \"Convert `#ff5733` to all color spaces and tell me the WCAG contrast vs white.\"\n>\n> \"What's the aspect ratio of 3840 × 2160?\"\n>\n> \"Diff these two paragraphs for me.\"\n>\n> \"What's the monthly payment on a $300k loan at 6.5% APR over 30 years?\"\n>\n> \"How old is someone born on 1990-04-15? What's their zodiac sign?\"\n>\n> \"Extract all URLs from `https://example.com/sitemap.xml` recursively.\"\n>\n> \"Fetch the metadata and OpenGraph tags from `https://example.com` for me.\"\n>\n> \"Generate SEO meta tags for an article titled `…` and score the result.\"\n>\n> \"Roll 4d6 drop lowest, six times, for me.\"\n>\n> \"Suggest hashtags for this caption.\"\n>\n> \"Look up the MX and TXT records for example.com.\"\n>\n> \"Is the SSL certificate on github.com valid? When does it expire?\"\n>\n> \"Decode this JWT and tell me if it's expired.\"\n\nThe agent will pick the right tool automatically.\n\n## How it works\n\nThe server is a single ~600-line zero-dependency Node script. Every tool call:\n\n1. Receives a JSON-RPC `tools/call` request from the MCP client.\n2. Forwards the arguments to the public mate.tools API at `https://mate.tools/api/v1/{tool}.php`.\n3. Returns a human-readable summary plus the full JSON response back to the client.\n\nNothing runs locally besides the JSON-RPC plumbing. Computation runs on mate.tools' servers behind Cloudflare. Every endpoint is rate-limited at 60 req/min and 600 req/hour per IP.\n\n## Configuration\n\nOverride the API endpoint (e.g. for testing against a staging deployment):\n\n```bash\nMATE_TOOLS_API_BASE=https://staging.mate.tools/api/v1 npx -y @mate-tools/mcp-server\n```\n\n## Privacy\n\nEach tool call:\n- ✅ Sends only the arguments you provide to the MCP tool.\n- ✅ Hits HTTPS in transit.\n- ✅ Is processed in memory and not logged with content.\n- ❌ Does not collect telemetry.\n- ❌ Does not require an account, API key or sign-in.\n\nThe mate.tools server logs only request method, hashed-IP (rotating daily salt), endpoint name and duration — never request content.\n\n`credit_card_validate` and `password_strength` are explicitly engineered so the sensitive input never leaves request-handler memory. Only the validation outcome and metrics are returned.\n\n`sitemap_extract`, `url_metadata`, and `ssl_check` refuse to fetch / connect to any host whose name resolves to a private (RFC 1918), loopback, link-local, or cloud-metadata IP. For HTTP-based tools, each redirect destination is re-validated, so SSRF tricks via 302 don't work. `url_metadata` additionally caps the response body at 2 MB. `ssl_check` uses a 5-second connect timeout.\n\n`jwt_decode` never logs the token. Decoding runs entirely in request-handler memory; only the algorithm name, signature verification outcome, and request duration are written to the per-day access log. Use it confidently with production tokens.\n\n`regex_test` enforces a hard PCRE backtrack ceiling (100,000 steps) per request — catastrophic regex patterns return a clean 422 rather than hanging the server.\n\n`random_gen` is backed by PHP's `random_int` / `random_bytes` (CSPRNG) — never the Mersenne Twister. UUIDs are RFC 4122 v4 with proper version/variant bits, or v7 with millisecond-precision timestamp.\n\n## Source and documentation\n\n- **npm:** <https://www.npmjs.com/package/@mate-tools/mcp-server>\n- **Source code (single file):** <https://mate.tools/api/mcp/server.js>\n- **Install guide with screenshots:** <https://mate.tools/api/mcp>\n- **JSON API reference:** <https://mate.tools/api>\n- **OpenAPI 3.1 spec:** <https://mate.tools/api/openapi.json>\n- **llms.txt:** <https://mate.tools/llms.txt>\n\n## Issues / feedback\n\nOpen an issue at the [mate.tools contact form](https://mate.tools/contact) — please mention \"@mate-tools/mcp-server\" in the subject line. New tools land roughly every 1–2 weeks; if there's a specific utility you want exposed, just ask.\n\n## License\n\nMIT — free for personal and commercial use. See [LICENSE](LICENSE).\n",
  "bytes": 12075,
  "sha": "de5c44fbeabd85f65f9ccf6e8c3b083cab0e0190c2508b05a59f53c3924674f6",
  "repo_slug": "matetools/mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_matetools_mcp_server_4f350153/readme"
}