PreClick
Avaliar URLs de destino quanto a ameaças potenciais e alinhamento com a intenção de navegação do agente antes da navegação.
Documentação
PreClick MCP Server
PreClick — Um serviço de verificação prévia de URLs nativo do MCP para agentes autônomos. Ele verifica links em busca de ameaças e confirma que correspondem à tarefa pretendida antes da execução. Projetado para fluxos de trabalho agênticos, oferece governança de navegação de alta precisão e sensível ao contexto, com aprendizado adaptativo.
Publicador: CybrLab.ai | Serviço: PreClick
Camada de Teste Hospedada: Nenhuma chave de API necessária para até 100 solicitações/dia. Para limites maiores e cotas estáveis, use uma chave de API (contate contact@cybrlab.ai).
Visão Geral
PreClick é um scanner de segurança de URLs e servidor MCP que permite que agentes de IA e qualquer cliente analisem URLs em busca de phishing, malware e outras ameaças de segurança antes da navegação. Use-o como um scanner de URLs independente por meio das bibliotecas de cliente abaixo, ou conecte-se diretamente via protocolo MCP.
Integrações
Bibliotecas de Cliente (Recomendado)
A maneira mais rápida de adicionar verificação de segurança de URLs a qualquer agente de IA, pipeline de automação ou aplicação. Esses clientes de scanner de URLs independentes lidam com conexão, polling e recuperação de erros prontos para uso — sem necessidade de conhecimento ou conformidade com o protocolo MCP:
| Pacote | Linguagem | Instalação | Repositório |
|---|---|---|---|
preclick | Python (assíncrono, 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 as bibliotecas fornecem uma API simples de verificação de segurança de URLs orientada a verificação (scan(url) / scanWithIntent(url, intent)) que retorna resultados diretamente — detecção de phishing, análise de ameaças e alinhamento de intenção em uma única chamada. Sem vocabulário de protocolo, sem código boilerplate connect(), sem polling manual para o caso comum.
Adaptadores de Framework
| Integração | Repositório |
|---|---|
| Plugin OpenClaw | preclick-openclaw |
Configuração Manual do MCP
Para clientes nativos do MCP que falam o protocolo diretamente, consulte Início Rápido abaixo.
Modos de Autenticação
| Implantação | Requisito X-API-Key | Notas |
|---|---|---|
Hospedado (https://preclick.ai/mcp) | Opcional até 100 solicitações/dia | Chave de API recomendada para limites maiores |
Hospedado (https://preclick.ai/mcp) | Necessária acima da cota de teste | Contate o suporte para chaves provisionadas |
Aviso Importante
Esta ferramenta destina-se apenas a avaliação de segurança autorizada. Use-a somente em sistemas ou sites que você possui ou para os quais tenha permissão explícita de avaliação. Qualquer uso não autorizado, ilegal ou malicioso é estritamente proibido. Você é responsável por garantir a conformidade com todas as leis, regulamentos e obrigações contratuais aplicáveis.
Casos de Uso
- Validação prévia de URLs para agentes de IA
- Verificação automatizada de segurança de URLs em fluxos de trabalho
- Detecção de links maliciosos em e-mails/mensagens
Início Rápido
1. Configure Seu Cliente MCP
Escolha uma opção:
Teste (hospedado, até 100 solicitações/dia sem chave de API):
{
"mcpServers": {
"preclick-mcp": {
"transport": "streamable-http",
"url": "https://preclick.ai/mcp"
}
}
}
Autenticado (recomendado para uso estável e de maior volume):
{
"mcpServers": {
"preclick-mcp": {
"transport": "streamable-http",
"url": "https://preclick.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}
2. Opcional: Inicializar Sessão (somente modo com estado)
O uso hospedado padrão é sem estado. Os clientes enviam mensagens JSON-RPC com POST /mcp.
Alguns clientes HTTP Streamable também podem sondar GET /mcp por um stream SSE. Na implantação hospedada sem estado, /mcp não oferece um stream SSE e retorna HTTP 405 Method Not Allowed. Os clientes devem tratar 405 como "sem stream SSE neste endpoint" e continuar usando POST /mcp.
Os clientes ainda devem enviar os cabeçalhos HTTP padrão do MCP:
Accept: application/json, text/event-streamem POSTMCP-Protocol-Versionem todas as solicitações não-inicialização
A implantação hospedada atualmente normaliza cabeçalhos POST Accept ausentes ou incompletos para compatibilidade. Também permite ausência de MCP-Protocol-Version em solicitações POST de listagem somente descoberta (tools/list, resources/list, prompts/list) para compatibilidade com registro. Os clientes não devem depender de nenhum desses comportamentos.
# 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 uma Verificação
url_scanner_scan suporta dois modos de execução (os mesmos modos se aplicam a url_scanner_scan_with_intent):
- Aumentado por Tarefa (recomendado): Inclua o parâmetro
taskpara execução assíncrona - Direto: Omita o parâmetro
taskpara execução 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"
Resposta (tarefa 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: Forneça uma intenção de visita de URL para contexto adicional (recomendado, mas não obrigatório):
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
}
}
}'
Recomendação: Use url_scanner_scan_with_intent quando você puder declarar seu propósito (login, compra, reserva, pagamentos, download de arquivo) para que a incompatibilidade intenção/conteúdo possa ser considerada como um sinal adicional. Caso contrário, use url_scanner_scan.
Comprimento máximo da intenção: 248 caracteres.
Strings de intenção com pouca informação ou semelhantes a instruções são tratadas como não fornecidas.
O resultado inclui intent_alignment (misaligned, no_mismatch_detected, inconclusive ou not_provided).
no_mismatch_detected só é retornado quando a análise de intenção teve evidências suficientes; se a análise de intenção não estiver disponível ou as evidências forem limitadas, o resultado é inconclusive.
Quando intent_alignment é misaligned e confirmado por análise bem-sucedida de alta confiança, a diretiva de resposta é DENY com motivo intent_inconsistent_destination (portão de política; a pontuação de risco não é alterada).
Quando a análise de alta confiança confirma uma alegação não verificada de serviço de alto impacto com corroboração fraca de identidade em um contexto de baixa confiança, a diretiva de resposta também é DENY com motivo insufficient_service_verification (portão de política; a pontuação de risco não é alterada).
Em casos adicionais de política contextual com poucas evidências, as respostas podem retornar DENY com motivos como insufficient_service_verification ou insufficient_trust_signals (portão de política; a pontuação de risco não é alterada).
Nota de timeout de chamada direta: chamadas síncronas de ferramentas usam uma janela de espera limitada do servidor dimensionada para clientes somente diretos (padrão hospedado 90s). Se o timeout for atingido, o servidor retorna JSON-RPC -32603 com error.data.taskId e error.data.pollInterval para que você possa continuar via tasks/get / tasks/result.
Nota de compatibilidade: se o seu cliente MCP não puder chamar métodos nativos de Tasks (tasks/get / tasks/result), use url_scanner_async_scan ou url_scanner_async_scan_with_intent para enviar trabalho e depois faça polling com url_scanner_async_task_status / url_scanner_async_task_result. Chame essas ferramentas de compatibilidade apenas como ferramentas comuns; não inclua um parâmetro MCP nativo task.
4. Fazer Polling de Resultados
tasks/result usa uma espera de bloqueio hospedada mais curta (padrão 30s). Se essa espera for excedida, o servidor retorna JSON-RPC -32603 com error.data.taskId e error.data.pollInterval. Clientes nativos de Tasks devem preferir fazer polling com tasks/get até que o status seja completed, então chamar tasks/result para recuperar o resultado final imediatamente.
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"
Resposta (tarefa concluída — formato CallToolResult, igual ao síncrono tools/call):
{
"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
}
}
Ferramentas Disponíveis
| Ferramenta | Descrição | Modos de Execução |
|---|---|---|
url_scanner_scan | Analisar URL em busca de ameaças de segurança | Direto (síncrono), Tarefa (assíncrono) |
url_scanner_scan_with_intent | Analisar URL com contexto de intenção opcional | Direto (síncrono), Tarefa (assíncrono) |
url_scanner_async_scan | Ferramenta de envio assíncrono de compatibilidade | Assíncrono baseado em ferramenta |
url_scanner_async_scan_with_intent | Envio assíncrono de compatibilidade com intenção | Assíncrono baseado em ferramenta |
url_scanner_async_task_status | Ferramenta de polling de status de compatibilidade | Assíncrono baseado em ferramenta |
url_scanner_async_task_result | Ferramenta de polling de resultado de compatibilidade | Assíncrono baseado em ferramenta |
Consulte a Documentação Completa da API para esquemas e exemplos detalhados.
Autenticação
Os requisitos de autenticação dependem do modo de implantação:
- Endpoint hospedado (
https://preclick.ai/mcp): a chave de API é opcional para até 100 solicitações/dia. - Endpoint hospedado acima da cota de teste: chave de API necessária.
Consulte o Guia de Autenticação para obter detalhes sobre como obter chaves de API.
Especificações Técnicas
| Propriedade | Valor |
|---|---|
| ID de Registro | ai.preclick/preclick-mcp |
| Especificação MCP | 2025-06-18 |
| Protocolo do Cliente | 2025-06-18 |
| Transporte | HTTP Streamable |
| Endpoint | https://preclick.ai/mcp |
| Tempo Típico de Verificação | Varia conforme o alvo |
| Esquemas Suportados | HTTP, HTTPS |
| Comprimento Máximo de URL | Imposto pelo servidor |
Suporte
- Publicador: CybrLab.ai
- Serviço: PreClick
- E-mail: contact@cybrlab.ai
Licença
Licença Apache 2.0 - Consulte LICENSE para obter detalhes.
Direitos autorais CybrLab.ai