whoismd-mcp-server
# whoismd-mcp-server
[](https://m8ven.ai/mcp/abubakar-27-whoismd-mcp-server-1d19tj)
[](https://mcpservers.org/servers/abubakar-27/whoismd-mcp-server)
> š”ļø **Verified Agentic Trust:** Vetted by [M8ven](https://glama.ai) with a **89/100 Trust Score** for secure, sandbox-safe execution.
Open-source native **MCP** (Model Context Protocol) server driver for [WhoisMD](https://whoismd.com) real-time internet intelligence routing. Give your AI agents the ability to run deep network forensics, verify domains, and analyze cyber threats natively inside your IDE.
š **Get Your API Key:** This server acts as an unprivileged client driver. Every tool call is safely delegated to the public WhoisMD REST API (`/v1/intel/lookup`) and requires your own API credentials. [Create an account on the WhoisMD Dashboard to get your `pg_live_...` API key](https://whoismd.com).
---
## š¤ How to Prompt Your AI Agent
Once configured, you don't need to write code. Just talk to your AI agent (Cursor, Windsurf, Claude) naturally:
* *"Check if this domain looks like a phishing variant of google.com using whoismd."*
* *"Run a bulk infrastructure look up on these 10 domains to find their threat risk scores."*
## Tools
| Tool | Description |
| ---------------- | ---------------------------------------------------------------------- |
| `whoismd_lookup` | Full domain intelligence lookup ā WHOIS/RDAP, DNS (A/AAAA/MX/NS/TXT), IP resolution, deterministic 0ā100 threat risk score. |
| `whoismd_bulk` | Batch lookup of up to 100 domains with bounded concurrency (5). |
Each lookup returns `riskScore`, `riskLevel`, `aiCleanSummary`, `creditsSpent`,
`creditsRemaining`, and the full `data` report. Calls are credit-metered by the
API key holder.
## Requirements
- Node.js **>= 20** (native `fetch` required)
- A WhoisMD API key (`pg_live_...`) ā generate one from the WhoisMD dashboard
after signup. Keys are scoped to the `live_lookup` tier and rate-limited to
20 requests/minute.
## Running
### Build & run directly
```bash
npm install
npm run build
WHOISMD_API_KEY=pg_live_... node dist/index.js
```
The server speaks MCP over **stdio** (JSON-RPC), so it must be launched by an
MCP-capable client ā not invoked interactively.
### Development
```bash
npm run dev # tsx watch, no build step
npm run typecheck # tsc --noEmit
```
## Environment variables
| Variable | Default | Required | Description |
| ------------------- | ---------------------------- | -------- | -------------------------------------------- |
| `WHOISMD_API_KEY` | ā | yes | Your `pg_live_...` API key. Never hard-code. |
| `WHOISMD_API_BASE` | `https://whoismd.com/api` | no | Overrides the API base URL (for testing). |
## Client configuration
### Cursor
`.cursor/mcp.json` in your project (or the global Cursor MCP config):
```json
{
"mcpServers": {
"whoismd": {
"command": "npx",
"args": ["-y", "whoismd-mcp-server"],
"env": {
"WHOISMD_API_KEY": "pg_live_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
To point at a local checkout instead:
```json
{
"mcpServers": {
"whoismd": {
"command": "node",
"args": ["/absolute/path/to/whoismd-mcp-server/dist/index.js"],
"env": {
"WHOISMD_API_KEY": "pg_live_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
### Windsurf
Windsurf uses the same MCP JSON shape. Add it via
`~/.codeium/windsurf/mcp_config.json`, or through **Settings ā MCP ā Add**:
```json
{
"mcpServers": {
"whoismd": {
"command": "npx",
"args": ["-y", "whoismd-mcp-server"],
"env": {
"WHOISMD_API_KEY": "pg_live_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
### Claude Desktop
`claude_desktop_config.json`:
```json
{
"mcpServers": {
"whoismd": {
"command": "npx",
"args": ["-y", "whoismd-mcp-server"],
"env": {
"WHOISMD_API_KEY": "pg_live_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
```
### Generic clients
```bash
npx -y whoismd-mcp-server
# or
node /absolute/path/to/whoismd-mcp-server/dist/index.js
```
The API key can also be exported in the environment of the client process instead
of the config `env` block ā how you inject it is up to your client's security
model. Prefer config-injected `env`, never shell history or commit.
## Security
- The API key is consumed from the environment / client config **only**; it is
never embedded, logged, or written to disk by this server.
- All traffic goes to the public WhoisMD endpoint over HTTPS.
- This driver is deliberately read-only and unprivileged: no private database,
no reverse footprint history, no admin surface.
## License
MIT
TDQS
Scored across 2 tools
The two tools are clearly distinct: one handles a single domain lookup, the other handles batch processing of many domains. There is no ambiguity in their purposes.
Both tools follow a consistent verb_noun pattern using snake_case with the same whoismd_ prefix: whoismd_lookup and whoismd_bulk. The naming is predictable and uniform.
With only two tools, the server is quite thin for a domain intelligence service. While each tool is useful, the absence of operations like historical data, reverse WHOIS, or alerting makes the count feel borderline minimal.
The server covers basic single and bulk lookups, but lacks other common domain intelligence operations such as historical WHOIS, reverse IP lookups, or real-time monitoring. These gaps may limit its usefulness for advanced workflows.