# We shipped an MCP server for WhatsApp link generation — no API key required

> Source: <https://dev.to/inside_dc_pulse/we-shipped-an-mcp-server-for-whatsapp-link-generation-no-api-key-required-g8a>
> Published: 2026-08-11 21:43:38+00:00

If you've ever needed an AI agent to validate a WhatsApp number, build a `wa.me`

link, or generate a QR code on the fly, you've probably hand-rolled it: scrape a regex off Stack Overflow, write your own phone-format validator, maybe hit some undocumented endpoint. We got tired of watching that happen and shipped a small, open MCP server that does it directly.

[WhatsUsernames.link](https://whatsusernames.link) already runs a free public REST API for validating WhatsApp usernames/phone numbers and generating `wa.me`

links + QR codes. We just exposed the same logic over the **Model Context Protocol**, so Claude, and any other MCP client, can call it as native tools instead of you writing a fetch wrapper.

Endpoint:

```
https://whatsusernames.link/api/mcp
```

No API key. No account. No signup form. Same open, IP-rate-limited model as the REST API (60 req/min for JSON tools, 20 req/min for QR generation, sliding window via Upstash Redis).

| Tool | What it does |
|---|---|
`validate_username` |
Checks WhatsApp username (`@username` ) format |
`validate_phone` |
Checks phone number format (8–15 digits, international) |
`username_link` |
Builds a `wa.me` link (+ short link) from a username, optional prefilled text |
`phone_link` |
Builds a `wa.me` link from a phone number, optional prefilled text |
`qr_code` |
Renders a QR code (PNG or SVG) for a `wa.me` link, custom size/colors |

Every tool wraps the exact same `services/`

and `validate-*`

functions the REST API uses — there's no separate business logic to drift out of sync. If the REST endpoint says a number is valid, the MCP tool agrees, because it's the same code path.

Drop this into your MCP client config:

```
{
  "mcpServers": {
    "whatsusernames": {
      "url": "https://whatsusernames.link/api/mcp"
    }
  }
}
```

That's it. No stdio process to spawn, no local install — it's a stateless Streamable HTTP transport running on Vercel, same domain as the site.

Two reasons.

**Practical:** every agent that needs to hand a user a "message me on WhatsApp" link ends up reimplementing username/phone validation and QR generation, badly, from scratch. That's a solved problem now — call the tool instead.

**Strategic:** we think a lot of AI-agent traffic is going to route through MCP servers the same way search traffic routes through APIs today. Being an early, documented, zero-friction MCP endpoint in the WhatsApp-tooling space is a cheap way to be the thing an agent reaches for, rather than something it reinvents.

Deliberately scoped down:

`stdio`

/local package distribution — remote HTTP only, for now.`bsuid`

parsing, webhook normalization) — those are more niche and will only get built if there's real demand for the current five.If you build something with it — or find an edge case it doesn't handle — we'd like to hear about it.

*WhatsUsernames.link is a free tool for validating WhatsApp usernames/numbers and generating wa.me links and QR codes. REST API and MCP server are both public and free to use.*
