Prototipo · Versión preliminar: todos los servidores del registro oficial, sincronizados cada 30 minutos. Las reseñas y las cuentas llegarán en una etapa posterior.
PopNx MCPServidores MCP para quienes usan IA · explicados con palabras sencillas

WHOIS

de KincaidYangversión 1.5.0i★ –iSe ejecuta en la nube
Nombre en el registroio.github.KincaidYang/whois

Instalar

Resumen

Descripción del creador (original en inglés)

Query WHOIS/RDAP information for domains, IP addresses, CIDR prefixes and ASNs. Self-hostable.

Los tres pilares de PopNx MCP

Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.

Qué puedes hacer con él

Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.

  • Conexión: Se ejecuta en la nube
  • Transporte: Streamable HTTP
  • Categoría: Otros

Instalación

Elige la app de IA que usas y copia la configuración.

Antes de instalar

Necesitas

¿Qué app usas?

Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.

Funciona en Claude para web, escritorio y móvil:

  1. Abre Settings → Connectors
  2. Presiona Add custom connector
  3. Pega la dirección de abajo y presiona Add
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Add2https://…3
https://whois.ddnsip.cn/mcp

Ejecuta esto en tu terminal

claude mcp add --transport http whois https://whois.ddnsip.cn/mcp

Abrir en Cursor

O copia la configuración tú

Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json

{
  "mcpServers": {
    "whois": {
      "url": "https://whois.ddnsip.cn/mcp"
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

Abrir en VS Code

O copia la configuración tú

Pégalo en .vscode/mcp.json de tu proyecto

{
  "servers": {
    "whois": {
      "type": "http",
      "url": "https://whois.ddnsip.cn/mcp"
    }
  }
}

Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.

ChatGPT solo se conecta a servidores en internet:

  1. Abre ChatGPT en la web → Settings → Connectors (Apps)
  2. Presiona Create o Add (en algunos planes primero hay que activar Developer mode en Advanced)
  3. Pega la dirección de abajo, ponle un nombre y guarda
  4. Si te pide iniciar sesión, inicia sesión en el servicio del creador
SettingsConnectors1+ Create2https://…3
https://whois.ddnsip.cn/mcp

Los nombres de los menús pueden variar un poco según el plan y con el tiempo.

Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.

Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.

Qué puede hacer

El servidor no respondió la última vez que lo revisamos, así que no pudimos leer sus herramientas.

Revisiones básicasi

Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026

  • ✓ Superada

    El creador coincide con el repo

    El nombre en el registro se verificó con la cuenta de GitHub KincaidYang, dueña del repo

  • … Aún sin revisar

    Sigue en mantenimiento

    Todavía no hemos leído este repo en GitHub

  • … Aún sin revisar

    Tiene licencia

    Todavía no hemos leído este repo en GitHub

  • ✕ No superada

    El endpoint responde

    No respondió en 6 segundos cuando lo revisamos

  • – No aplica

    Inicio de sesión con OAuth

    No respondió en 6 segundos cuando lo revisamos

  • … Aún sin revisar

    Sin instrucciones ocultas en las descripciones de herramientas

    Aún sin revisar; leemos la lista de herramientas cuando revisamos el endpoint

Comparado con otros en Otrosi

  • Más estrellas que el 0% de los otros 32709 servidores de esta categoría
  • Publicado en el registro más recientemente que el 73% de los otros 32709 servidores de esta categoría
  • Revisiones básicas iguales o mejores que el 28% de los otros 32709 servidores de esta categoría

Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.

Preguntas frecuentes

¿Es seguro WHOIS?

Superó 1 de 2 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.

¿Qué claves o códigos necesita?

El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.

¿Se ejecuta en mi computadora o en la nube?

Se ejecuta en la nube del creador. Te conectas por internet sin instalar nada, pero lo que envías pasa por los servidores del creador.

¿Sigue en mantenimiento?

El repo de GitHub cambió por última vez –, y la última versión (1.5.0) llegó al registro hace 14 días.

¿Qué apps pueden usarlo?

Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. Se conecta por URL, así que también funcionan las apps que aceptan servidores MCP remotos, como ChatGPT en modo desarrollador.

¿Qué puedo usar en su lugar?

En la misma categoría: Spec Driven Development, Remote Desktop Commander, SwarmMemo

Alternativas

Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.

Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi

Spec Driven Development

de formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

Se ejecuta en tu computadora★ 440MITActualizado hace 14 meses
Instalar

Remote Desktop Commander

de desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

Se ejecuta en la nube★ 211Actualizado anteayer
Instalar

SwarmMemo

de Hugo0

Talk with agent swarms: rooms, private messages and paid tasks for AI agents

Se ejecuta en la nubeActualizado hoy
Instalar

README del creador

Abrir el README

Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.

English

介绍

基于 Golang 实现的域名 Whois 查询工具,支持所有允许公开查询的 TLD 后缀的域名、IPv4/v6、ASN 的 Whois 信息查询。 根据 ICANN 《通用顶级域名注册数据临时政策细则(Temporary Specification for gTLD Registration Data)》和欧盟《通用数据保护条例》合规要求,在查询域名信息时,程序只返回了部分必要的信息(详见下方返回结果示例),不会返回所有者的联系方式、地址、电话、邮箱等字段。

演示站点:

使用方法

Docker部署
# 安装 Redis

docker run -d --name redis -p 6379:6379 redis:latest

运行 whois

docker run -d --name whois -p 8043:8043 --link redis:redis jinzeyang/whois

运行 whois(大陆推荐)

docker run -d --name whois -p 8043:8043 --link redis:redis docker.cnb.cool/kincaidyang/whois

下载
使用二进制文件

您可从 Release 页面下载对应平台的二进制文件。

从源码编译
git clone https://github.com/KincaidYang/whois.git

cd whois go build

### 安装依赖

本程序默认使用内存缓存,可直接运行;生产环境或多实例部署建议搭配 Redis 使用,您可参照 https://redis.io/docs/install/install-redis/install-redis-on-linux/ 进行安装。

编辑配置文件
vim config.yaml

⚠️ 配置项按功能分组,键名为 camelCase(与 API 响应字段风格一致)。未知键或旧版(v0.9 之前)的扁平键会在启动时报错并给出迁移提示,不会再静默回退到默认值。

server:

port: 8043 # 服务监听端口 rateLimit: 60 # 最大并发处理请求数,超出返回 429 upstreamLimit: 60 # 程序向上游 WHOIS/RDAP 服务器发起的最大并发查询数(默认等于 rateLimit,批量与 MCP 查询同样计入)

metricsAddr: "127.0.0.1:9100" # 设置后 /metrics 改在此地址单独提供(不需要密钥),主端口不再提供;留空(默认)则仍在主端口

log: level: "info" # 日志级别:debug、info、warn、error(默认:info)

cache: expiration: 3600 # 缓存过期时间,单位:秒(默认:3600) negativeExpiration: 60 # “未找到/被拒”结果的缓存时间,单位:秒(默认: 60;设为负数则禁用) requireRedis: false # false=允许Redis失败时降级到内存缓存,true=Redis必须可用否则程序退出 memoryMaxSize: 10000 # 内存缓存最大条目数,超过此数量按 LRU 淘汰最久未使用条目(默认: 10000) memoryMaxBytes: 268435456 # 内存缓存最大总字节数(键+值),超过此数量按 LRU 淘汰,即使未超过条目数上限(默认: 268435456,即 256 MiB) memoryCleanInterval: 300 # 内存缓存过期数据清理间隔,单位:秒(默认: 300)

redis: addr: "redis:6379" # Redis服务器地址 password: "" # Redis密码,如无密码则留空 db: 0 # Redis数据库编号 tls: false # 通过不可信网络连接 Redis 时建议开启 TLS tlsSkipVerify: false # 跳过证书校验(不推荐,仅自签名证书场景使用)

proxy: server: "" # 代理服务器地址,留空表示不使用代理 username: "" # 代理服务器用户名(如需认证) password: "" # 代理服务器密码(如需认证) suffixes: [] # 需要使用代理的TLD后缀列表;填 ["all"] 表示全部走代理

bootstrap: interval: 86400 # RDAP 服务器列表从 IANA 刷新间隔,单位:秒;0 则禁用(推荐:86400)

auth: keys: [] # API 密钥列表。留空(默认)则服务完全开放;配置一个或多个密钥后,除 /health 和 /ready 外的所有端点都需要认证,请求时通过 "Authorization: Bearer " 或 "X-API-Key: " 携带密钥

列表项支持纯字符串,也支持对象形式(可命名、可按 key 限流):

keys:

- "plain-secret" # 匿名 key,自动命名 key1/key2/…

- key: "another-secret"

name: "ci" # 显示名:出现在日志 client 字段和 Prometheus 指标中

rateLimit: 120 # 该 key 的速率限制(次/分钟);0 或缺省=不限

batch: enabled: false # POST /batch 批量查询端点(含 MCP 批量 tool),默认关闭;建议与 auth.keys 一起开启 maxItems: 10 # 单批最多查询条数

mcp: localhostProtection: false # /mcp 端点的 DNS rebinding 保护:开启后只接受 Host 为 localhost 的请求。反向代理部署保持 false;本机直连部署建议设为 true

环境变量

所有配置项均可通过环境变量覆盖(优先级高于配置文件),适合 Docker/Kubernetes 等不便挂载配置文件的部署方式:

环境变量对应配置项默认值说明
WHOIS_PORTserver.port8043服务监听端口
WHOIS_RATE_LIMITserver.rateLimit100最大并发请求数
WHOIS_UPSTREAM_LIMITserver.upstreamLimit同 rateLimit最大并发上游查询数
WHOIS_METRICS_ADDRserver.metricsAddr空/metrics 的独立监听地址(如 127.0.0.1:9100)
WHOIS_LOG_LEVELlog.levelinfo日志级别:debug、info、warn、error
WHOIS_CACHE_EXPIRATIONcache.expiration3600缓存过期时间(秒)
WHOIS_NEGATIVE_CACHE_EXPIRATIONcache.negativeExpiration60负向缓存时间(秒),负数禁用
WHOIS_REQUIRE_REDIScache.requireRedisfalsetrue/1 时 Redis 不可用则启动失败
WHOIS_MEMORY_MAX_SIZEcache.memoryMaxSize10000内存缓存最大条目数
WHOIS_MEMORY_MAX_BYTEScache.memoryMaxBytes268435456内存缓存最大总字节数
WHOIS_MEMORY_CLEAN_INTERVALcache.memoryCleanInterval300内存缓存清理间隔(秒)
WHOIS_REDIS_ADDRredis.addr未设置Redis 地址;显式设为空(WHOIS_REDIS_ADDR=)则禁用 Redis 仅用内存缓存,配置后不可用时自动降级到内存缓存(除非开启 requireRedis)
WHOIS_REDIS_PASSWORDredis.password空Redis 密码
WHOIS_REDIS_DBredis.db0Redis 数据库编号
WHOIS_REDIS_TLSredis.tlsfalsetrue/1 启用 Redis TLS
WHOIS_REDIS_TLS_SKIP_VERIFYredis.tlsSkipVerifyfalsetrue/1 跳过证书校验(不推荐)
WHOIS_PROXY_SERVERproxy.server空代理服务器地址,空则不使用代理
WHOIS_PROXY_USERNAMEproxy.username空代理用户名
WHOIS_PROXY_PASSWORDproxy.password空代理密码
WHOIS_PROXY_SUFFIXESproxy.suffixes空走代理的 TLD 列表,逗号分隔(all 表示全部)
WHOIS_BOOTSTRAP_INTERVALbootstrap.interval0(禁用)IANA RDAP 列表刷新间隔(秒);配置文件示例为 86400
WHOIS_AUTH_KEYSauth.keys空API 密钥,逗号分隔(仅纯 key 形式;命名/按 key 限流需配置文件)
WHOIS_BATCH_ENABLEDbatch.enabledfalsetrue/1 开启批量查询端点
WHOIS_BATCH_MAX_ITEMSbatch.maxItems10单批最多查询条数
WHOIS_MCP_LOCALHOST_PROTECTIONmcp.localhostProtectionfalsetrue/1 启用 /mcp 的 DNS rebinding 保护

布尔型变量只认 true 和 1,其余值视为 false。数值型变量解析失败时静默忽略并沿用配置文件/默认值。

纯环境变量部署示例(不挂载配置文件):

docker run -d --name whois -p 8043:8043 \

-e WHOIS_REDIS_ADDR=redis:6379 \ -e WHOIS_BOOTSTRAP_INTERVAL=86400 \ -e WHOIS_AUTH_KEYS=secret1,secret2 \ --link redis:redis jinzeyang/whois

配置说明:

  • Redis配置:建议使用Redis以获得更好的性能和多实例缓存共享能力
  • 缓存过期时间:根据查询频率调整,建议3600秒
  • 内存缓存:Redis 不可用时的兜底,达到上限后按 LRU(最近最少使用)淘汰
  • 负向缓存:将“未找到/被拒”的查询结果短时间缓存,避免对不存在的资源反复请求上游;默认 60 秒
  • 并发限制:控制向上游服务器的请求频率,避免被限流。
  • 代理配置:某些TLD可能需要代理访问,可配置特定后缀使用代理
  • 日志级别:debug 会输出每次缓存命中和上游查询,流量大时噪声较高;生产环境建议保持 info
  • RDAP 刷新间隔:服务启动时会立即从 IANA 拉取最新 RDAP 服务器列表,之后按此间隔定期刷新;编译进二进制的数据作为拉取失败时的兜底
  • API 认证:默认关闭。配置 auth.keys 后即启用,未携带有效密钥的请求返回 401(RFC 9457 problem+json);仅 /health 和 /ready 豁免,便于存活/就绪探针工作。/metrics 里有 whois_client_requests_total{client},任何一个密钥都能看到所有调用方的名称和请求量;把密钥分发给多个下游时,建议设置 server.metricsAddr,让 /metrics 只在内网地址上提供
  • key 命名与按 key 限流:auth.keys 的对象形式可为每个 key 设置显示名和速率限制。显示名出现在请求日志的 client 字段和 Prometheus 指标 whois_client_requests_total{client,status_code} 中,便于区分调用方;速率限制为 token bucket(次/分钟,允许一次性用完整分钟额度),超限返回 429 + Retry-After 头。批量查询按条数计入额度:一批 N 条消耗 N 个请求额度;/mcp 收到的 JSON-RPC 批量请求同样按其中的工具调用数计入
  • 批量查询:默认关闭。建议与 auth.keys 一起开启——开放实例提供批量查询等于放大被滥用打上游注册局的能力

⚠️ Warning: 限频针对的是程序向 whois 服务器发起的请求,而非用户向本程序发起的请求。例如,您将 server.upstreamLimit 设置为 50,那么程序同时向注册局 whois/RDAP 服务器发起的查询将不会超过 50 个,但是用户向本程序发起的请求不受限制。请您通过 Nginx 等工具对本程序进行限流,或为每个 API key 配置 rateLimit,以防止恶意请求。

运行
./whois

注意: 本程序默认监听 8043 端口。

健康检查端点

服务提供以下健康检查端点:

端点描述
GET /health存活检查 - 服务运行即返回 200
GET /ready就绪检查 - 检查缓存和并发容量状态
GET /info运行时信息 - 版本、运行时间、Go 版本等
GET /metricsPrometheus 指标 - 请求计数、延迟、缓存命中率、上游查询耗时(指标清单与告警建议见 docs/metrics.md);设置 server.metricsAddr 后改在该地址提供
GET /openapi.jsonOpenAPI 3.1 规范 - 全部端点与响应 schema 的机器可读描述
POST /mcpMCP Streamable HTTP 端点 - 供 AI 助手集成使用
POST /batch批量查询 - 一次提交多个域名/IP/ASN(默认关闭,见 batch.enabled)

示例:

curl http://localhost:8043/health
{

"status": "ok", "timestamp": "2026-02-05T01:32:05Z", "uptime": "10s", "checks": { "cache": {"status": "ok", "message": "redis"} } }

进程守护(可选)

您可以使用 systemd 等工具将本程序设置为守护进程,以便在系统重启后自动运行。

vim /etc/systemd/system/whois.service
[Unit]

Description=whois After=network.target

[Service] Type=simple User=www-data Group=www-data ExecStart=/path/to/whois/whois WorkingDirectory=/path/to/whois Restart=on-failure

[Install] WantedBy=multi-user.target

### 使用

GET 请求

浏览器访问

部署后直接通过浏览器访问http://ip:端口/你想查的域名或ip或asn,默认端口8043,示例http://1.2.3.4:8043/examlpe.com,详细示例请参考下方

支持直接查询国际化域名(IDN,含中文、带变音符号等 Unicode 域名),程序会自动转换为 Punycode 后查询,例如 http://1.2.3.4:8043/例子.cn。

类型化查询路径

除根路径自动识别外,还提供 RFC 9082 风格的类型化路径,适合程序化调用——资源类型不匹配时直接返回 400,不会被识别成其他类型:

curl http://localhost:8043/domain/example.com

curl http://localhost:8043/ip/192.0.2.1 curl http://localhost:8043/autnum/205794 # 也接受 as205794 / AS205794

IP 查询支持 CIDR 前缀(根路径和 /ip/ 均可):

curl http://localhost:8043/ip/192.0.2.0/24

curl http://localhost:8043/2001:db8::/32

OpenAPI 规范

服务在 /openapi.json 提供 OpenAPI 3.1 描述文档,包含全部端点、响应 schema(RDAP 词汇)和错误格式,可直接导入 Postman/Swagger UI 等工具。

缓存与跨域
  • 成功响应带 X-Cache 头标识缓存状态:HIT(命中服务端缓存)、MISS(回源注册局)、REFRESH(?refresh 强制回源),以及 Cache-Control: public, max-age=<缓存秒数> 供客户端/CDN 缓存。
  • 成功响应(200)带强 ETag 头;请求时携带 If-None-Match: 可做条件重验证,内容未变化时返回 304 Not Modified(无响应体),/openapi.json 同样支持。
  • 所有响应带 Access-Control-Allow-Origin: *,可直接在浏览器前端跨域调用。
查询域名 Whois 信息
curl http://localhost:8043/example.com

返回结果

{

"objectClassName": "domain", "ldhName": "example.com", "registrar": "RESERVED-Internet Assigned Numbers Authority", "registrarIanaId": "376", "status": [ "client delete prohibited", "client transfer prohibited", "client update prohibited" ], "registrationDate": "1995-08-14T04:00:00Z", "expirationDate": "2026-08-13T04:00:00Z", "lastChangedDate": "2025-08-14T07:01:34Z", "nameservers": [ "a.iana-servers.net", "b.iana-servers.net" ], "secureDNS": { "delegationSigned": true, "dsData": [ { "keyTag": 370, "algorithm": 13, "digestType": 2, "digest": "BE74359954660069D5C63D200C39F5603827D7DD02B56F120EE9F3A86764247C" } ] }, "lastUpdateOfRdapDb": "2026-01-16T10:26:40Z" }

字段名与词汇遵循 RDAP(RFC 9083)规范:objectClassName 标识对象类型(domain / ip network / autnum),日期统一为 RFC 3339 UTC 格式。查询 IDN 域名时会额外返回 unicodeName 字段。对于无法解析的 ccTLD,返回 {"objectClassName": "domain", "unparsed": true, "rawText": "..."}。

查询域名原始 WHOIS 文本

添加 ?raw=1 参数可获取未解析的 WHOIS 原文(text/plain),仅支持域名查询(IP/ASN 走 RDAP,无原文形式)。原文查询直接访问 WHOIS 服务器(跳过 RDAP),若该 TLD 没有已知 WHOIS 服务器则返回 404。

curl "http://localhost:8043/example.com?raw=1"
强制刷新缓存

添加 ?refresh=1 参数可跳过服务端缓存、强制向注册局查询并用新结果覆盖缓存(响应带 X-Cache: REFRESH),适合域名转移/续费后立即查看新状态。仅在开启 API 认证的实例上可用:未配置 auth.keys 的实例返回 403(refresh-requires-auth)——否则任何人都能借此击穿缓存刷上游注册局。可与 ?raw 叠加使用。

curl -H "X-API-Key: your-secret-key" "http://localhost:8043/example.com?refresh=1"
批量查询

POST /batch 一次提交多个查询(域名/IP/CIDR/ASN 可混排,自动识别类型),逐项返回结果。默认关闭,需配置 batch.enabled: true;单批条数上限 batch.maxItems(默认 10)。

curl -X POST -H "X-API-Key: your-secret-key" -H "Content-Type: application/json" \

-d '{"queries": ["example.com", "8.8.8.8", "AS15169"]}' \ http://localhost:8043/batch

响应恒为 200,逐项给出状态:成功项的 data 是常规响应对象,失败项的 error 是 problem+json 对象:

{

"results": [ {"query": "example.com", "status": 200, "data": {"objectClassName": "domain", "ldhName": "example.com"}}, {"query": "nx.invalid", "status": 404, "error": {"type": "...#not-foun

Solo se muestra el principio; lee el resto en el repo

Pregunta a PopNx