HostTracker

Servidor MCP oficial de HostTracker: ejecute comprobaciones de tiempo de actividad, SSL, DNS, listas negras y velocidad de página desde más de 300 ubicaciones globales, y gestione monitores, alertas, incidentes y páginas de estado.

Documentación

Servidor MCP de HostTracker

validate Smithery Glama score MIT

Conecta un asistente de IA a HostTracker mediante el Protocolo de Contexto de Modelo y permite que opere tu cuenta de monitoreo en conversación: ejecuta una verificación en vivo desde más de 300 ubicaciones globales, observa qué está caído, crea o pausa un monitor, programa una ventana de mantenimiento, revisa incidentes, gestiona quién recibe alertas, configura un webhook, publica una actualización de página de estado.

Endpoint   https://mcp.host-tracker.com/mcp
Transport  streamable HTTP
Auth       OAuth 2.1 (sign in when your client asks) - or Authorization: Bearer <HostTracker API token>

Este repositorio es la cara pública de ese servidor alojado: los metadatos de conexión (server.json), la guía de configuración por cliente (CLIENT.md) y la política de seguridad (SECURITY.md) - y, desde la versión 2.0.0, el código fuente del propio servidor en src/, para que puedas leer exactamente lo que se ejecuta detrás del endpoint o ejecutar una copia tú mismo (consulta "Ejecútalo tú mismo" más abajo).

Conéctate en dos minutos

Con OAuth (recomendado - Claude.ai, Claude Desktop, Claude Code, ChatGPT y cualquier cliente con un diálogo de conector compatible con OAuth):

  1. Añade el endpoint https://mcp.host-tracker.com/mcp como conector en tu cliente.
  2. Inicia sesión y aprueba. El cliente abre la página de inicio de sesión de HostTracker y luego una tarjeta de consentimiento que enumera los permisos que solicita (por defecto: ejecutar verificaciones + leer monitores). Pulsa Aprobar. Nunca aparece ningún token.
  3. Pregunta en lenguaje natural: "¿está example.com activo ahora mismo, verificado desde Europa y Asia?", "¿cuáles de mis monitores están caídos?", "pausa el monitor de staging hasta mañana".

Claude Code

Con OAuth (sin necesidad de token):

claude mcp add --transport http hosttracker https://mcp.host-tracker.com/mcp
# then, inside Claude Code: /mcp -> hosttracker -> Authenticate (opens the sign-in + consent page)

O con un token de portador en el encabezado:

.mcp.json en tu proyecto (o ~/.claude.json para un conector a nivel de usuario):

{
  "mcpServers": {
    "hosttracker": {
      "type": "http",
      "url": "https://mcp.host-tracker.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_HOSTTRACKER_API_TOKEN" }
    }
  }
}

O desde la línea de comandos:

claude mcp add --transport http hosttracker https://mcp.host-tracker.com/mcp \
  --header "Authorization: Bearer YOUR_HOSTTRACKER_API_TOKEN"

Claude.ai y Claude Desktop

Configuración -> Conectores -> Añadir conector personalizado -> pega https://mcp.host-tracker.com/mcp -> Conectar. El navegador abre la página de inicio de sesión y consentimiento de HostTracker; pulsa Aprobar y el conector estará activo. Esa es toda la configuración.

Para usar un token de portador en su lugar (por ejemplo, un token de larga duración con un conjunto de ámbitos seleccionado manualmente), Desktop también puede conectarse a través del puente mcp-remote. Edita claude_desktop_config.json:

{
  "mcpServers": {
    "hosttracker": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://mcp.host-tracker.com/mcp",
        "--header", "Authorization:${HT_AUTH}"
      ],
      "env": { "HT_AUTH": "Bearer YOUR_HOSTTRACKER_API_TOKEN" }
    }
  }
}

La indirección de ${HT_AUTH} es deliberada: algunas compilaciones de mcp-remote dividen un argumento en su primer espacio, lo que rompe un Authorization: Bearer ... literal. Se requiere Node.js 18 o superior.

Cursor

~/.cursor/mcp.json para cada proyecto, o .cursor/mcp.json para uno solo:

{
  "mcpServers": {
    "hosttracker": {
      "url": "https://mcp.host-tracker.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_HOSTTRACKER_API_TOKEN" }
    }
  }
}

VS Code (modo agente de GitHub Copilot)

.vscode/mcp.json en el espacio de trabajo. El bloque inputs mantiene el token fuera del archivo, solicitándolo una vez y almacenándolo en el almacenamiento secreto del editor:

{
  "inputs": [
    {
      "type": "promptString",
      "id": "ht-token",
      "description": "HostTracker API token",
      "password": true
    }
  ],
  "servers": {
    "hosttracker": {
      "type": "http",
      "url": "https://mcp.host-tracker.com/mcp",
      "headers": { "Authorization": "Bearer ${input:ht-token}" }
    }
  }
}

Windsurf

~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "hosttracker": {
      "serverUrl": "https://mcp.host-tracker.com/mcp",
      "headers": { "Authorization": "Bearer YOUR_HOSTTRACKER_API_TOKEN" }
    }
  }
}

Ejecútalo tú mismo (Docker)

El endpoint alojado es la forma normal de usar el servidor. Si prefieres ejecutar tu propia copia, para leer el código, auditarlo o mantener el salto MCP dentro de tu red, el repositorio lo compila desde el código fuente:

docker build -t hosttracker-mcp https://github.com/HostTracker/mcp.git
docker run --rm -p 8080:8080 hosttracker-mcp

Tu copia entonces responde en http://localhost:8080/mcp y acepta exactamente el mismo encabezado Authorization: Bearer: es un puente sin estado, por lo que no almacena nada y sigue hablando con la API pública de HostTracker v2 bajo tu token. Sin Docker, dotnet run --project src hace lo mismo en cualquier máquina con el SDK de .NET 10.

El mismo binario también habla stdio, para clientes que lanzan el servidor como un proceso hijo en lugar de conectarse a una URL. Añade --stdio y pasa tu token como variable de entorno HT_TOKEN (no hay encabezado de solicitud en stdio):

HT_TOKEN=YOUR_HOSTTRACKER_API_TOKEN dotnet run --project src -- --stdio
docker run -i --rm -e HT_TOKEN=YOUR_HOSTTRACKER_API_TOKEN hosttracker-mcp --stdio

Los registros van a stderr en ese modo, por lo que stdout permanece como un flujo de protocolo limpio.

ChatGPT y otros clientes

ChatGPT (modo desarrollador -> conectores): añade https://mcp.host-tracker.com/mcp; ChatGPT ofrece su paso de "vincular cuenta", que abre la página de inicio de sesión y consentimiento de HostTracker. Cualquier otro cliente con un diálogo de conector compatible con OAuth funciona de la misma manera: solo la URL.

Cualquier cliente que pueda enviar un encabezado estático también funciona con un token de portador: el endpoint https://mcp.host-tracker.com/mcp y el encabezado Authorization: Bearer YOUR_HOSTTRACKER_API_TOKEN. Cuando el formulario de conector de un cliente ofrece un modo de autenticación de clave API o encabezado personalizado, el token va allí.

Un puente genérico y sin dependencias para cualquier cosa que solo pueda lanzar un comando:

npx -y mcp-remote https://mcp.host-tracker.com/mcp --header "Authorization:${HT_AUTH}"

Guías más detalladas, comandos de verificación y solución de problemas se encuentran en CLIENT.md.

Qué puede hacer el asistente

El servidor expone la API REST de HostTracker v2 como herramientas MCP. Cada herramienta de lista acepta limit (máximo 50) y cursor y devuelve el siguiente cursor; cada marca de tiempo está en segundos Unix en ambas direcciones; los ids son cadenas opacas.

FamiliaQué cubre
VerificacionesEjecuta una verificación instantánea en cualquier URL desde más de 300 ubicaciones (HTTP/S, ping, puerto TCP, traceroute, DNS, lista negra, WHOIS, Web Risk, rastreo, velocidad de página), obtén su resultado, lista los tipos de verificación y dispositivos disponibles.
MonitoresLista, lee, crea, edita, copia, pausa, reanuda y elimina monitores, en forma individual o masiva, además del catálogo de tipos de monitor.
Resultados e incidentesResúmenes de disponibilidad, resultados de verificación sin procesar, la lista de incidentes, un incidente en detalle y comentarios sobre un incidente.
MantenimientoLista, crea, edita y elimina ventanas de mantenimiento para que el trabajo planificado no genere alertas.
ContactosGestiona contactos y grupos de contactos, envía y confirma una confirmación de contacto, y envía una alerta de prueba a uno.
SuscripcionesObserva quién recibe notificaciones para cada monitor y suscribe o cancela la suscripción de un contacto.
WebhooksGestiona endpoints de webhook, envía una entrega de prueba, revisa el registro de entregas y reenvía una fallida.
Páginas de estadoGestiona páginas de estado públicas, publica un incidente en una y publica actualizaciones de seguimiento.
InformesGenera un informe y lista los tipos de informe disponibles en tu plan.
TrabajosConsulta, espera, cancela o reanuda los trabajos asíncronos que devuelven las operaciones masivas y los informes.
CuentaSolo lectura: el perfil de la cuenta, su cuota y su uso actual. Útil para diagnosticar una llamada rechazada.
UbicacionesLista los grupos de puntos de control y las ubicaciones de monitoreo individuales a las que puedes dirigirte.
Puerta genéricadescribe_api busca las operaciones reales de v2 y api_request llama a una, para cualquier cosa sin una herramienta dedicada. No es un proxy de URL: la operación debe existir en la descripción publicada de la API, y la política de seguridad a continuación sigue aplicándose.
La lista completa de herramientas
FamiliaHerramientas
Verificacionesrun_instant_check, get_check_result, list_check_types
Monitoreslist_monitors, get_monitor, create_monitor, update_monitor, delete_monitor, pause_monitor, resume_monitor, copy_monitor, bulk_create_monitors, bulk_update_monitors, bulk_delete_monitors, list_monitor_types
Resultados e incidentesget_uptime_summary, list_monitor_results, list_incidents, get_incident, comment_incident
Mantenimientolist_maintenance, create_maintenance, update_maintenance, delete_maintenance
Contactoslist_contacts, get_contact, create_contact, update_contact, delete_contact, send_contact_confirmation, confirm_contact, test_contact, list_contact_groups, create_contact_group, update_contact_group, delete_contact_group
Suscripcioneslist_subscriptions, subscribe_contact, unsubscribe_contact
Webhookslist_webhooks, create_webhook, update_webhook, delete_webhook, test_webhook, list_webhook_deliveries, redeliver_webhook
Páginas de estadolist_status_pages, get_status_page, create_status_page, update_status_page, delete_status_page, create_status_page_incident, add_status_page_incident_update
Informesgenerate_report, list_report_types
Trabajosget_job, wait_for_job, cancel_job, resume_job
Cuentaget_account, get_account_quota, get_account_usage
Ubicacioneslist_locations
Puerta genéricadescribe_api, api_request

Tres comportamientos que vale la pena conocer antes de la primera llamada:

  • Las operaciones masivas validan primero. Una herramienta masiva devuelve un informe de validación; la escritura necesita una segunda llamada explícita con submit=true. La eliminación masiva además necesita confirmed=true y el recuento que la pasada de validación informó, por lo que una selección que se desvió mientras tanto es rechazada.
  • Las operaciones masivas y los informes son asíncronos. Responden con un id de trabajo; consúltalo con wait_for_job.
  • Eliminar cualquier cosa no se puede deshacer, por lo que siempre requiere dos llamadas. La primera llamada de una herramienta de eliminación no elimina nada: devuelve el recurso para que el asistente pueda mostrarte lo que está a punto de desaparecer, y solo una llamada repetida con confirmed=true elimina. La API devuelve un recibo que enumera lo que se eliminó.

Autenticación y ámbitos

Dos formas de acceso, mismo modelo de permisos:

  • OAuth (aplicaciones conectadas). El cliente se registra, tú inicias sesión una vez y apruebas un conjunto de ámbitos en la página de consentimiento, y el servidor emite tokens de acceso de corta duración (1 hora) con tokens de actualización rotativos (90 días) entre bastidores. Si el cliente no solicita ámbitos, obtiene check + monitor:read. La familia account nunca es otorgable a una aplicación conectada. Cada conexión aparece listada en Integraciones -> API -> Aplicaciones conectadas, donde un clic la revoca (la aplicación entonces tiene que volver a pedírtelo). Una herramienta que necesita un ámbito que la conexión no tiene responde missing_scope nombrando lo que se requiere: reconéctate y aprueba el conjunto más amplio.
  • Tokens de portador. Créalos en Integraciones -> API con un conjunto de ámbitos seleccionado manualmente, expiración y lista de permitidos de IP opcional; pásalos en el encabezado Authorization.

Los ámbitos son por familia con hojas :read y :write que no se implican entre sí; un nombre de familia solo satisface cada hoja bajo ella.

Quieres que el asistenteÁmbitos
Ejecute verificaciones instantáneascheck
Vea monitores, disponibilidad e incidentesmonitor:read
Cree, edite, pause o elimine monitores y mantenimientomonitor:write
Vea quién recibe notificacionescontact:read, subs:read
Gestione contactos y suscripcionescontact:write, subs:write
Gestione webhookswebhook:read, webhook:write
Gestione páginas de estado y publique incidentesstatuspage:read, statuspage:write
Lea cuota, uso y límitesaccount:read (solo tokens de portador: no se ofrece a conexiones OAuth)

Otorga el conjunto más restringido que cubra el trabajo. Nunca hay razón para otorgar account:write: el servidor rechaza cada escritura bajo /account independientemente de lo que permita el token. Si una llamada vuelve rechazada, pide al asistente que ejecute get_account_quota, que informa los ámbitos que el token realmente lleva.

Límites y cuota

  • El endpoint limita la velocidad de cada IP de cliente en /mcp. Una respuesta limitada lleva Retry-After, que el servidor transmite como un valor; nunca duerme ni reintenta en tu nombre, por lo que el asistente decide qué hacer.
  • La cuota de tu plan de API se aplica contra tu propio token, exactamente igual que para las llamadas REST directas. get_account_usage y get_account_quota informan dónde te encuentras. Detalles en la guía de errores y límites.
  • Los fallos de aplicación (sin token, ámbito incorrecto, cuota agotada, entrada no válida) vuelven como resultados de herramienta ordinarios con un mensaje accionable en lugar de un error de protocolo.

Seguridad

El servidor es stateless y no almacena nada: cada llamada se reenvía a la API con tu propio token, y toda la propiedad, cuota y control de tasa se aplican allí. Además, rechaza, en el servidor, independientemente del token: cualquier escritura bajo /account, y cualquier cosa que toque pagos, planes, contraseñas, inicio de sesión o la acuñación de tokens de API. El contenido que controla un objetivo verificado se envuelve en un bloque delimitado y con límite de longitud antes de llegar al modelo, por lo que un objetivo hostil no puede inyectar instrucciones en tu asistente. Política completa en SECURITY.md.

Enlaces

Licencia

El contenido de este repositorio (documentación y metadatos) se publica bajo la licencia MIT. El servidor MCP alojado y el propio servicio HostTracker son propietarios.