关于 PreClick — An MCP-native URL preflight scanning service for autonomous agents (formerly URLCheck).
PreClick 是面向 AI Agent 和其他客户端的 URL 安全扫描 MCP 服务,可在访问前检测钓鱼、恶意软件等威胁,并结合访问意图判断目的地是否匹配。
主要功能
- 01检测钓鱼和恶意软件威胁
- 02按访问意图检查目的地匹配
- 03同步或异步提交扫描
- 04提供任务状态与结果查询
适用场景
- 01AI Agent 点击链接前进行检查
- 02自动化工作流扫描 URL
- 03筛查邮件或消息中的恶意链接
MCP 相关
通过 Streamable HTTP 提供 MCP 工具,用于扫描 URL、附带访问意图分析,以及异步任务状态和结果查询。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://urlcheck.ai/mcpclaude mcp add --transport http ai-urlcheck-urlcheck https://urlcheck.ai/mcp{"mcpServers":{"ai-urlcheck-urlcheck":{"type":"http","url":"https://urlcheck.ai/mcp"}}}在 Cursor 中打开{"servers":{"ai-urlcheck-urlcheck":{"type":"http","url":"https://urlcheck.ai/mcp"}}}在 VS Code 中打开{"mcpServers":{"ai-urlcheck-urlcheck":{"type":"http","url":"https://urlcheck.ai/mcp"}}}{"mcpServers":{"ai-urlcheck-urlcheck":{"serverUrl":"https://urlcheck.ai/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://urlcheck.ai/mcp需要授权工具
6| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要分析的 URL。必须使用 HTTP 或 HTTPS。如果未提供 scheme,则默认使用 https://。 |
详细介绍
PreClick MCP 服务
PreClick — 面向自主 Agent 的 MCP 原生 URL 预检扫描服务。它会扫描链接以检测威胁,并在执行前确认链接与预期任务相符。专为 Agent 工作流打造,提供高准确率、上下文感知的浏览治理能力,并支持自适应学习。
发布方: CybrLab.ai | 服务: PreClick
托管试用层级: 每天最多 100 次请求无需 API 密钥。如需更高限额和稳定配额,请使用 API 密钥(联系 [email protected])。
概述
PreClick 是一款 URL 安全扫描器和 MCP 服务,可让 AI Agent 及任何客户端在跳转前分析 URL,检测网络钓鱼、恶意软件和其他安全威胁。您可以通过下方的客户端库将其用作独立的 URL 扫描器,也可以通过 MCP 协议直接连接。
集成
客户端库(推荐)
这是将 URL 安全扫描添加到任何 AI Agent、自动化管道或应用程序的最快方式。这些独立的 URL 扫描器客户端开箱即用地处理连接、轮询和错误恢复,无需了解 MCP 协议或遵循其规范:
| Package | Language | Install | Repository |
|---|---|---|---|
preclick | Python(异步,3.10+) | pip install preclick | preclick-python |
@cybrlab/preclick-mcp-client | JavaScript/Node.js(20+) | npm install @cybrlab/preclick-mcp-client | preclick-mcp-client |
两个库都提供简单的、面向扫描的 URL 安全扫描 API(scan(url) / scanWithIntent(url, intent)),可直接返回结果——通过单次调用即可获得网络钓鱼检测、威胁分析和意图匹配结果。常见情况下,无需了解协议术语,无需编写 connect() 样板代码,也无需手动轮询。
框架适配器
| 集成 | 仓库 |
|---|---|
| OpenClaw 插件 | preclick-openclaw |
手动配置 MCP
对于直接使用该协议的 MCP 原生客户端,请参阅下方的快速开始。
身份验证模式
| 部署方式 | X-API-Key 要求 | 备注 |
|---|---|---|
托管(https://preclick.ai/mcp) | 每天最多 100 次请求可选 | 如需更高限额,建议使用 API 密钥 |
托管(https://preclick.ai/mcp) | 超出试用配额后必需 | 联系支持团队获取已配置的密钥 |
重要声明
此工具仅用于经授权的安全评估。仅可用于您拥有或已获得明确评估许可的系统或网站。严禁任何未经授权、违法或恶意的使用。您有责任确保遵守所有适用的法律、法规和合同义务。
使用场景
- 为 AI Agent 预先验证 URL
- 在工作流中自动执行 URL 安全扫描
- 检测电子邮件/消息中的恶意链接
快速开始
1. 配置 MCP 客户端
选择一个选项:
试用(托管版,无 API 密钥时每天最多 100 次请求):
{
"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. 可选:初始化会话(仅限有状态模式)
默认的托管用法是无状态的。客户端通过 POST /mcp 发送 JSON-RPC 消息。
部分 Streamable HTTP 客户端还可能通过 GET /mcp 请求 SSE 流。在无状态托管部署中,/mcp 不提供 SSE 流,并返回 HTTP 405 Method Not Allowed。客户端应将 405 视为“此端点没有 SSE 流”,并继续使用 POST /mcp。
客户端仍应发送标准的 MCP HTTP 标头:
- POST 请求中使用
Accept: application/json, text/event-stream - 所有非初始化请求中使用
MCP-Protocol-Version
为保证兼容性,托管部署目前会规范化缺失或不完整的 POST Accept 标头。为兼容注册表,它也允许仅用于发现的 POST 列表请求(tools/list、resources/list、prompts/list)缺少 MCP-Protocol-Version。客户端不应依赖这两种行为。
# 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(策略门控;风险评分不变)。
直接调用超时说明:同步工具调用使用有界的服务器等待时长,适用于仅支持直接调用的客户端(托管版默认 90s)。如果达到超时时限,服务器会返回 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 使用较短的托管阻塞等待时间(默认 30s)。如果超出此等待时间,服务端会返回 JSON-RPC -32603,其中包含 error.data.taskId 和 error.data.pollInterval。原生 Tasks 客户端应优先使用 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):每天最多 100 次请求可选用 API 密钥。 - 超出上述托管端点的试用配额:需要 API 密钥。
有关获取 API 密钥的详情,请参阅身份验证指南。
技术规格
| 属性 | 值 |
|---|---|
| 注册表 ID | ai.preclick/preclick-mcp |
| MCP 规范 | 2025-06-18 |
| 客户端协议 | 2025-06-18 |
| 传输方式 | Streamable HTTP |
| 端点 | https://preclick.ai/mcp |
| 典型扫描时间 | 因目标而异 |
| 支持的方案 | HTTP、HTTPS |
| URL 最大长度 | 由服务端强制执行 |
支持
- 发布者:CybrLab.ai
- 服务:PreClick
- 电子邮件:[email protected]
许可证
Apache License 2.0 - 详情请参阅 LICENSE。
版权所有 CybrLab.ai
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。