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
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.
| Paquete | Lenguaje | Instalación | Repositorio |
|---|---|---|---|
preclick | Python (async, 3.10+) | pip install preclick | preclick-python |
@cybrlab/preclick-mcp-client | JavaScript/Node.js (20+) | npm install @cybrlab/preclick-mcp-client | preclick-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ón | Repositorio |
|---|---|
| OpenClaw plugin | preclick-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ón | Requisito X-API-Key | Notas |
|---|---|---|
Alojado (https://preclick.ai/mcp) | Opcional hasta 100 solicitudes/día | Se recomienda clave API para límites más altos |
Alojado (https://preclick.ai/mcp) | Requerido por encima de la cuota de prueba | Contacte 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-streamen POSTMCP-Protocol-Versionen 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
taskpara ejecución asíncrona - Directo: Omita el parámetro
taskpara 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
| Herramienta | Descripción | Modos de ejecución |
|---|---|---|
url_scanner_scan | Analizar URL en busca de amenazas de seguridad | Directo (síncrono), Tarea (asíncrono) |
url_scanner_scan_with_intent | Analizar URL con contexto de intención opcional | Directo (síncrono), Tarea (asíncrono) |
url_scanner_async_scan | Herramienta de envío asíncrono de compatibilidad | Asíncrono basado en herramienta |
url_scanner_async_scan_with_intent | Envío asíncrono de compatibilidad con intención | Asíncrono basado en herramienta |
url_scanner_async_task_status | Herramienta de sondeo de estado de compatibilidad | Asíncrono basado en herramienta |
url_scanner_async_task_result | Herramienta de sondeo de resultados de compatibilidad | Así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
| Propiedad | Valor |
|---|---|
| ID de registro | ai.preclick/preclick-mcp |
| Especificación MCP | 2025-06-18 |
| Protocolo de cliente | 2025-06-18 |
| Transporte | Streamable HTTP |
| Endpoint | https://preclick.ai/mcp |
| Tiempo de escaneo típico | Varía según el objetivo |
| Esquemas admitidos | HTTP, HTTPS |
| Longitud máxima de URL | Aplicado por el servidor |
Soporte
- Editor: CybrLab.ai
- Servicio: PreClick
- Correo electrónico: contact@cybrlab.ai
Licencia
Apache License 2.0 - Consulte LICENCIA para obtener detalles.
Derechos de autor CybrLab.ai