PreClick

Evalúa las URLs de destino para detectar posibles amenazas y su alineación con la intención de navegación del agente antes de la navegación.

Documentación

Servidor MCP PreClick

smithery badge

PreClick — Un servicio de escaneo previo de URL nativo de MCP para agentes autónomos. Escanea enlaces en busca de amenazas y confirma que coinciden con la tarea prevista antes de la ejecución. Diseñado para flujos de trabajo agénticos, proporciona gobernanza de navegación de alta precisión y consciente del contexto con aprendizaje adaptativo.

Editor: CybrLab.ai | Servicio: PreClick

Nivel de prueba alojado: No se requiere clave API para hasta 100 solicitudes/día. Para límites más altos y cuotas estables, use una clave API (contacte a contact@cybrlab.ai).


Resumen

PreClick es un escáner de seguridad de URL y servidor MCP que permite a agentes de IA y a cualquier cliente analizar URL en busca de phishing, malware y otras amenazas de seguridad antes de la navegación. Úselo como escáner de URL independiente mediante las bibliotecas de cliente a continuación, o conéctese directamente mediante el protocolo MCP.

Integraciones

Bibliotecas de cliente (Recomendadas)

La forma más rápida de agregar escaneo de seguridad de URL a cualquier agente de IA, pipeline de automatización o aplicación. Estos clientes de escáner de URL independientes manejan la conexión, el sondeo y la recuperación de errores de forma inmediata: no se requiere conocimiento ni conformidad con el protocolo MCP.

PaqueteLenguajeInstalaciónRepositorio
preclickPython (async, 3.10+)pip install preclickpreclick-python
@cybrlab/preclick-mcp-clientJavaScript/Node.js (20+)npm install @cybrlab/preclick-mcp-clientpreclick-mcp-client

Ambas bibliotecas proporcionan una API de escaneo de seguridad de URL simple y orientada al escaneo (scan(url) / scanWithIntent(url, intent)) que devuelve resultados directamente: detección de phishing, análisis de amenazas y alineación de intención en una sola llamada. Sin vocabulario de protocolo, sin código repetitivo connect(), sin sondeo manual para el caso común.

Adaptadores de marco

IntegraciónRepositorio
OpenClaw pluginpreclick-openclaw

Configuración manual de MCP

Para clientes nativos de MCP que hablan el protocolo directamente, consulte Inicio rápido a continuación.

Modos de autenticación

ImplementaciónRequisito X-API-KeyNotas
Alojado (https://preclick.ai/mcp)Opcional hasta 100 solicitudes/díaSe recomienda clave API para límites más altos
Alojado (https://preclick.ai/mcp)Requerido por encima de la cuota de pruebaContacte al soporte para claves aprovisionadas

Aviso importante

Esta herramienta está destinada únicamente a evaluaciones de seguridad autorizadas. Úsela solo en sistemas o sitios web que le pertenezcan o para los cuales tenga permiso explícito de evaluación. Cualquier uso no autorizado, ilegal o malicioso está estrictamente prohibido. Usted es responsable de garantizar el cumplimiento de todas las leyes, regulaciones y obligaciones contractuales aplicables.

Casos de uso

  • Validación de URL previa al vuelo para agentes de IA
  • Escaneo automatizado de seguridad de URL en flujos de trabajo
  • Detección de enlaces maliciosos en correos electrónicos/mensajes

Inicio rápido

1. Configure su cliente MCP

Elija una opción:

Prueba (alojado, hasta 100 solicitudes/día sin clave API):

{
  "mcpServers": {
    "preclick-mcp": {
      "transport": "streamable-http",
      "url": "https://preclick.ai/mcp"
    }
  }
}

Autenticado (recomendado para uso estable y de mayor volumen):

{
  "mcpServers": {
    "preclick-mcp": {
      "transport": "streamable-http",
      "url": "https://preclick.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

2. Opcional: Inicializar sesión (solo modo con estado)

El uso alojado predeterminado es sin estado. Los clientes envían mensajes JSON-RPC con POST /mcp. Algunos clientes HTTP Streamable también pueden sondear GET /mcp para un flujo SSE. En la implementación alojada sin estado, /mcp no ofrece un flujo SSE y devuelve HTTP 405 Method Not Allowed. Los clientes deben tratar 405 como "sin flujo SSE en este endpoint" y continuar usando POST /mcp.

Los clientes aún deben enviar los encabezados HTTP estándar de MCP:

  • Accept: application/json, text/event-stream en POST
  • MCP-Protocol-Version en todas las solicitudes que no sean de inicialización

La implementación alojada actualmente normaliza los encabezados POST Accept faltantes o incompletos para compatibilidad. También permite la falta de MCP-Protocol-Version en solicitudes de lista POST solo de descubrimiento (tools/list, resources/list, prompts/list) para compatibilidad de registro. Los clientes no deben depender de ninguno de los dos comportamientos.

# Only required if the server is running in stateful mode
curl -X POST https://preclick.ai/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-06-18",
      "capabilities": {},
      "clientInfo": {"name": "my-client", "version": "1.0"}
    }
  }'
# Response includes Mcp-Session-Id header - save it for subsequent requests

3. Iniciar un escaneo

url_scanner_scan admite dos modos de ejecución (los mismos modos se aplican a url_scanner_scan_with_intent):

  • Aumentado por tarea (recomendado): Incluya el parámetro task para ejecución asíncrona
  • Directo: Omita el parámetro task para ejecución síncrona
curl -X POST https://preclick.ai/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/call",
    "params": {
      "name": "url_scanner_scan",
      "arguments": {
        "url": "https://example.com"
      },
      "task": {
        "ttl": 720000
      }
    }
  }'
# If stateful mode is enabled, include: -H "Mcp-Session-Id: YOUR_SESSION_ID"

Respuesta (tarea enviada):

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "task": {
      "taskId": "550e8400-e29b-41d4-a716-446655440000",
      "status": "working",
      "statusMessage": "Queued for processing",
      "createdAt": "2026-01-18T12:00:00Z",
      "lastUpdatedAt": "2026-01-18T12:00:00Z",
      "ttl": 720000,
      "pollInterval": 2000
    }
  }
}

Opcional: Proporcione una intención de visita de URL para contexto adicional (recomendado pero no requerido):

curl -X POST https://preclick.ai/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tools/call",
    "params": {
      "name": "url_scanner_scan_with_intent",
      "arguments": {
        "url": "https://example.com",
        "intent": "Book a hotel room"
      },
      "task": {
        "ttl": 720000
      }
    }
  }'

Recomendación: Use url_scanner_scan_with_intent cuando pueda indicar su propósito (inicio de sesión, compra, reserva, pagos, descarga de archivos) para que el desajuste entre intención y contenido pueda considerarse como una señal adicional. De lo contrario, use url_scanner_scan. Longitud máxima de intención: 248 caracteres. Las cadenas de intención de baja información o similares a instrucciones se tratan como no proporcionadas. El resultado incluye intent_alignment (misaligned, no_mismatch_detected, inconclusive o not_provided). no_mismatch_detected solo se devuelve cuando el análisis de intención tuvo evidencia suficiente; si el análisis de intención no está disponible o la evidencia es limitada, el resultado es inconclusive. Cuando intent_alignment es misaligned y se confirma mediante un análisis exitoso de alta confianza, la directiva de respuesta es DENY con razón intent_inconsistent_destination (puerta de política; la puntuación de riesgo no cambia). Cuando el análisis de alta confianza confirma una afirmación de servicio de alto impacto no verificada con corroboración de identidad débil en un contexto de baja confianza, la directiva de respuesta también es DENY con razón insufficient_service_verification (puerta de política; la puntuación de riesgo no cambia). En casos adicionales de política contextual con baja evidencia, las respuestas pueden devolver DENY con razones como insufficient_service_verification o insufficient_trust_signals (puerta de política; la puntuación de riesgo no cambia).

Nota de tiempo de espera de llamada directa: las llamadas de herramientas síncronas usan una ventana de espera del servidor limitada diseñada para clientes solo directos (predeterminado alojado 90s). Si se alcanza el tiempo de espera, el servidor devuelve JSON-RPC -32603 con error.data.taskId y error.data.pollInterval para que pueda continuar mediante tasks/get / tasks/result.

Nota de compatibilidad: si su cliente MCP no puede llamar a los métodos nativos de Tasks (tasks/get / tasks/result), use url_scanner_async_scan o url_scanner_async_scan_with_intent para enviar trabajo y luego sondee con url_scanner_async_task_status / url_scanner_async_task_result. Llame a estas herramientas de compatibilidad solo como herramientas ordinarias; no incluya un parámetro nativo de MCP task.

4. Sondeo de resultados

tasks/result usa una espera de bloqueo alojada más corta (predeterminado 30s). Si se excede esta espera, el servidor devuelve JSON-RPC -32603 con error.data.taskId y error.data.pollInterval. Los clientes nativos de Tasks deben preferir sondear con tasks/get hasta que el estado sea completed, luego llamar a tasks/result para recuperar el resultado final de inmediato.

curl -X POST https://preclick.ai/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2025-06-18" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "jsonrpc": "2.0",
    "id": 3,
    "method": "tasks/result",
    "params": {
      "taskId": "550e8400-e29b-41d4-a716-446655440000"
    }
  }'
# If stateful mode is enabled, include: -H "Mcp-Session-Id: YOUR_SESSION_ID"

Respuesta (tarea completada — forma CallToolResult, igual que tools/call síncrono):

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"risk_score\":0.05,\"confidence\":0.95,\"analysis_complete\":true,\"agent_access_directive\":\"ALLOW\",\"agent_access_reason\":\"no_immediate_risk_detected\",\"intent_alignment\":\"not_provided\"}"
      }
    ],
    "isError": false
  }
}

Herramientas disponibles

HerramientaDescripciónModos de ejecución
url_scanner_scanAnalizar URL en busca de amenazas de seguridadDirecto (síncrono), Tarea (asíncrono)
url_scanner_scan_with_intentAnalizar URL con contexto de intención opcionalDirecto (síncrono), Tarea (asíncrono)
url_scanner_async_scanHerramienta de envío asíncrono de compatibilidadAsíncrono basado en herramienta
url_scanner_async_scan_with_intentEnvío asíncrono de compatibilidad con intenciónAsíncrono basado en herramienta
url_scanner_async_task_statusHerramienta de sondeo de estado de compatibilidadAsíncrono basado en herramienta
url_scanner_async_task_resultHerramienta de sondeo de resultados de compatibilidadAsíncrono basado en herramienta

Consulte Documentación completa de la API para esquemas y ejemplos detallados.


Autenticación

Los requisitos de autenticación dependen del modo de implementación:

  • Endpoint alojado (https://preclick.ai/mcp): la clave API es opcional para hasta 100 solicitudes/día.
  • Endpoint alojado por encima de la cuota de prueba: se requiere clave API.

Consulte Guía de autenticación para obtener detalles sobre cómo obtener claves API.


Especificaciones técnicas

PropiedadValor
ID de registroai.preclick/preclick-mcp
Especificación MCP2025-06-18
Protocolo de cliente2025-06-18
TransporteStreamable HTTP
Endpointhttps://preclick.ai/mcp
Tiempo de escaneo típicoVaría según el objetivo
Esquemas admitidosHTTP, HTTPS
Longitud máxima de URLAplicado por el servidor

Soporte


Licencia

Apache License 2.0 - Consulte LICENCIA para obtener detalles.

Derechos de autor CybrLab.ai