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
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):
- Añade el endpoint
https://mcp.host-tracker.com/mcpcomo conector en tu cliente. - 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.
- 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.
| Familia | Qué cubre |
|---|---|
| Verificaciones | Ejecuta 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. |
| Monitores | Lista, 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 incidentes | Resúmenes de disponibilidad, resultados de verificación sin procesar, la lista de incidentes, un incidente en detalle y comentarios sobre un incidente. |
| Mantenimiento | Lista, crea, edita y elimina ventanas de mantenimiento para que el trabajo planificado no genere alertas. |
| Contactos | Gestiona contactos y grupos de contactos, envía y confirma una confirmación de contacto, y envía una alerta de prueba a uno. |
| Suscripciones | Observa quién recibe notificaciones para cada monitor y suscribe o cancela la suscripción de un contacto. |
| Webhooks | Gestiona endpoints de webhook, envía una entrega de prueba, revisa el registro de entregas y reenvía una fallida. |
| Páginas de estado | Gestiona páginas de estado públicas, publica un incidente en una y publica actualizaciones de seguimiento. |
| Informes | Genera un informe y lista los tipos de informe disponibles en tu plan. |
| Trabajos | Consulta, espera, cancela o reanuda los trabajos asíncronos que devuelven las operaciones masivas y los informes. |
| Cuenta | Solo lectura: el perfil de la cuenta, su cuota y su uso actual. Útil para diagnosticar una llamada rechazada. |
| Ubicaciones | Lista los grupos de puntos de control y las ubicaciones de monitoreo individuales a las que puedes dirigirte. |
| Puerta genérica | describe_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
| Familia | Herramientas |
|---|---|
| Verificaciones | run_instant_check, get_check_result, list_check_types |
| Monitores | list_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 incidentes | get_uptime_summary, list_monitor_results, list_incidents, get_incident, comment_incident |
| Mantenimiento | list_maintenance, create_maintenance, update_maintenance, delete_maintenance |
| Contactos | list_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 |
| Suscripciones | list_subscriptions, subscribe_contact, unsubscribe_contact |
| Webhooks | list_webhooks, create_webhook, update_webhook, delete_webhook, test_webhook, list_webhook_deliveries, redeliver_webhook |
| Páginas de estado | list_status_pages, get_status_page, create_status_page, update_status_page, delete_status_page, create_status_page_incident, add_status_page_incident_update |
| Informes | generate_report, list_report_types |
| Trabajos | get_job, wait_for_job, cancel_job, resume_job |
| Cuenta | get_account, get_account_quota, get_account_usage |
| Ubicaciones | list_locations |
| Puerta genérica | describe_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 necesitaconfirmed=truey 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=trueelimina. 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 familiaaccountnunca 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 respondemissing_scopenombrando 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áneas | check |
| Vea monitores, disponibilidad e incidentes | monitor:read |
| Cree, edite, pause o elimine monitores y mantenimiento | monitor:write |
| Vea quién recibe notificaciones | contact:read, subs:read |
| Gestione contactos y suscripciones | contact:write, subs:write |
| Gestione webhooks | webhook:read, webhook:write |
| Gestione páginas de estado y publique incidentes | statuspage:read, statuspage:write |
| Lea cuota, uso y límites | account: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 llevaRetry-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_usageyget_account_quotainforman 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
- Descripción general del servidor MCP
- Acuñar un token de API
- Referencia de API v2 y guías
- Todas las integraciones
- Clientes oficiales: JavaScript · Python · Go · .NET · CLI · Descripción de OpenAPI · Acción de GitHub
- Soporte: ht2support@host-tracker.com
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.