URL安全扫描服务

PreClick是一个URL安全扫描服务,用于在导航前分析URL是否存在钓鱼、恶意软件等安全威胁,适用于AI代理和自动化工作流程。

  • by cybrlab-ai
  • 混合部署
  • 6 星标
  • 更新于
在 GitHub 查看 cybrlab-ai/url-scanner-mcp

使用说明

预点击MCP服务器

PreClick——一种用于自主代理的MCP原生URL飞行前扫描服务。它扫描链接以查找威胁,并在执行前确认它们与预期任务相匹配。它专为代理工作流而构建,通过自适应学习提供高精度、上下文感知的浏览治理。

出版商: CybrLab.ai | 服务: 预点击

托管试用级别: 每天最多100个请求不需要API密钥。对于更高的限制和稳定的配额,请使用API密钥(联系 contact@cybrlab.ai).


概述

PreClick是一个URL安全扫描程序和MCP服务器,使AI代理和任何客户端能够在导航前分析URL中的钓鱼、恶意软件和其他安全威胁。通过下面的客户端库将其用作独立的URL扫描器,或直接通过MCP协议连接。

集成

客户端库(推荐)

将URL安全扫描添加到任何AI代理、自动化管道或应用程序的最快方法。这些独立的URL扫描器客户端可以开箱即用地处理连接、轮询和错误恢复,不需要MCP协议知识或一致性:

包 语言 安装 存储库
preclick Python(异步,3.10+) pip install preclick 预点击python
@cybrlab/preclick-mcp-client JavaScript/Node.js(20+) npm install @cybrlab/preclick-mcp-client 预点击mcp客户端

这两个库都提供了一个简单的面向扫描的URL安全扫描API(scan(url) / scanWithIntent(url, intent))它直接返回结果——钓鱼检测、威胁分析和意图对齐。没有协议词汇,没有 connect() 样板,常见情况下没有手动轮询。

框架适配器

集成 存储库
OpenClaw插件 预点击张开爪

手动MCP配置

对于直接使用协议的MCP本机客户端,请参阅 快速开始 在......下面

身份验证模式

部署 X-API-Key 要求 注意事项
托管(https://preclick.ai/mcp) 可选,每天最多100个请求 建议使用API密钥以获得更高的限制
托管(https://preclick.ai/mcp) 试用配额以上需要 联系支持人员获取已配置的密钥

重要通知

此工具仅用于授权的安全评估。仅在您拥有的系统或网站上使用它,或者您有明确的权限对其进行评估。严禁任何未经授权、非法或恶意使用。您有责任确保遵守所有适用的法律、法规和合同义务。

用例

  • AI代理的飞行前URL验证
  • 工作流中的自动URL安全扫描
  • 电子邮件/消息中的恶意链接检测

快速开始

1.配置您的MCP客户端

选择一个选项:

试用版(托管,每天最多100个请求,无API密钥):

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

经过身份验证(建议用于稳定和更高容量的使用):

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

2.可选:初始化会话(仅限状态模式)

默认的托管使用是无状态的。客户端发送JSON-RPC消息 POST /mcp. 一些流式HTTP客户端也可能进行探测 GET /mcp 对于SSE流。在无状态托管部署上, /mcp 不提供SSE流并返回HTTP 405 Method Not Allowed.客户应 405 设为“此端点上没有SSE流”并继续使用 POST /mcp.

客户端仍应发送标准MCP HTTP标头:

  • Accept: application/json, text/event-stream POST
  • MCP-Protocol-Version 在所有非初始化请求上

托管部署当前对缺失或不完整的POST进行了规范化 Accept 为了兼容性。它也允许失踪 MCP-Protocol-Version 仅发现POST列表请求(tools/list, resources/list, prompts/list)为了注册表兼容性。客户不应依赖任何一种行为。

# 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.开始扫描

url_scanner_scan 支持两种执行模式(相同的模式适用于 url_scanner_scan_with_intent):

  • 任务增强(推荐):包括 task 异步执行参数
  • 直接的:省略 task 同步执行参数
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"

响应(任务已提交):

{
  "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
    }
  }
}

可选:为其他上下文提供url访问意图(推荐但不是必需的):

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
      }
    }
  }'

建议:使用 url_scanner_scan_with_intent 当你可以陈述你的目的(登录、购买、预订、付款、文件下载)时,意图/内容不匹配可以被视为一个额外的信号。否则使用 url_scanner_scan. 最大意图长度:248个字符。 低信息或指令类意图字符串被视为未提供。 结果包括 intent_alignment (misaligned, no_mismatch_detected, inconclusive,或 not_provided). no_mismatch_detected 只有在意图分析有足够证据时才返回;如果意图分析不可用或证据有限,结果是 inconclusive. 当 intent_alignment 是 misaligned 并通过成功的高置信度分析证实,响应指令为 DENY 有道理 intent_inconsistent_destination (保单门;风险评分不变)。 当高置信度分析在低置信度背景下证实了未经证实的高影响服务声明,且身份证实较弱时,响应指令也是 DENY 有道理 insufficient_service_verification (保单门;风险评分不变)。 在其他背景低证据政策案件中,回应可能会返回 DENY 原因如下 insufficient_service_verification 或 insufficient_trust_signals (保单门;风险评分不变)。

直接调用超时注意事项:同步工具调用使用一个有界的服务器等待窗口,其大小仅适用于直接客户端(托管默认值为90秒)。如果达到超时,服务器将返回JSON-RPC -32603 随着 error.data.taskId 和 error.data.pollInterval 所以你可以继续通过 tasks/get / tasks/result.

兼容性说明:如果您的MCP客户端无法调用本机Tasks方法(tasks/get / tasks/result),使用 url_scanner_async_scan 或 url_scanner_async_scan_with_intent 提交作品,然后进行投票 url_scanner_async_task_status / url_scanner_async_task_result.仅将这些兼容性工具称为普通工具;不包括本机MCP task 参数。

4.投票结果

tasks/result 使用更短的托管阻塞等待时间(默认30秒)。如果超过此等待时间,服务器将返回JSON-RPC -32603 随着 error.data.taskId 和 error.data.pollInterval本地任务客户端应更倾向于使用以下方式进行轮询 tasks/get 直到状态为 completed,然后致电 tasks/result 以立即检索最终结果。

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"

响应(已完成任务--CallToolResult形状,与同步相同 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
  }
}

可用工具

工具 说明 执行模式
url_scanner_scan 分析URL的安全威胁 直接(同步)、任务(异步)
url_scanner_scan_with_intent 使用可选意图上下文分析URL 直接(同步)、任务(异步)
url_scanner_async_scan 兼容性异步提交工具 基于工具的异步
url_scanner_async_scan_with_intent 兼容性异步提交意图 基于工具的异步
url_scanner_async_task_status 兼容性状态轮询工具 基于工具的异步
url_scanner_async_task_result 兼容性结果轮询工具 基于工具的异步

看 API完整文档 查看详细的模式和示例。


认证

身份验证要求取决于部署模式:

  • 托管端点(https://preclick.ai/mcp):API密钥是可选的,每天最多可处理100个请求。
  • 超过试用配额的托管终结点:需要API密钥。

看 身份验证指南 获取有关获取API密钥的详细信息。


技术规格

财产 价值
注册表ID ai.preclick/preclick-mcp
MCP规范 2025-06-18
客户端协议 2025-06-18
传输 流式HTTP
端点 https://preclick.ai/mcp
典型扫描时间 因目标而异
支持的方案 HTTP、HTTPS
最大URL长度 服务器强制

支持


许可证

Apache许可证2.0-请参阅 许可证 了解详情。

版权所有CybrLab.ai