cybrlab-ai avatar

PreClick — An MCP-native URL preflight scanning service for autonomous agents (formerly URLCheck).

cybrlab-ai/preclick-mcp

PreClick sits between your AI agent and the open web, scanning URLs for phishing, malware, and intent mismatches before navigation happens. It exposes two main tools via MCP: url_scanner_scan for basic threat analysis and url_scanner_scan_with_intent when you want to verify a link actually matches what your agent is trying to do (like confirming a booking URL is really for hotels, not a lookalike). The hosted endpoint at preclick.ai/mcp runs stateless over streamable-http with a 100 request daily trial, no key required. For tighter integration there are standalone Python and Node clients that handle the async polling without touching MCP protocol details. Reach for this when your agent browses autonomously and you need a security gate that understands context, not just pattern matching.

GitHub stars
6
tools
6
auth
Secret needed
transport
HTTP
last updated
Mar 10, 2026

Install

From registry metadata
$ npx add-mcp https://urlcheck.ai/mcp --name urlcheck-mcp --header 'X-API-Key: ${X_API_KEY}'

Run in your terminal. add-mcp asks which agents to add it to, then asks for each value it needs. Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http urlcheck-mcp https://urlcheck.ai/mcp --header 'X-API-Key: YOUR_X_API_KEY'

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 6 tools

Verified live against the running server on Nov 6, 2026.

url_scanner_async_scanSubmit a URL for asynchronous security analysis. Returns immediately with a task_id. Poll with url_scanner_async_task_status to check progress, then url_scanner_async_task_result to get the scan result. Async counterpart of url_scanner_scan for clients without native MCP Tasks...1 params

Submit a URL for asynchronous security analysis. Returns immediately with a task_id. Poll with url_scanner_async_task_status to check progress, then url_scanner_async_task_result to get the scan result. Async counterpart of url_scanner_scan for clients without native MCP Tasks...

Parameters* required
url*string
The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
url_scanner_async_scan_with_intentSubmit a URL with optional user intent for asynchronous security analysis. Returns immediately with a task_id. Poll with url_scanner_async_task_status to check progress, then url_scanner_async_task_result to get the scan result. Async counterpart of url_scanner_scan_with_inten...2 params

Submit a URL with optional user intent for asynchronous security analysis. Returns immediately with a task_id. Poll with url_scanner_async_task_status to check progress, then url_scanner_async_task_result to get the scan result. Async counterpart of url_scanner_scan_with_inten...

Parameters* required
intentstring
Optional user intent for visiting the URL. Recommended for additional context.
url*string
The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
url_scanner_async_task_resultRetrieve the result of an asynchronous scan task. If completed, returns the full scan result (risk_score, confidence, agent_access_directive, etc.). If still running, returns status with retry_after_ms — call again after that interval. Non-blocking.1 params

Retrieve the result of an asynchronous scan task. If completed, returns the full scan result (risk_score, confidence, agent_access_directive, etc.). If still running, returns status with retry_after_ms — call again after that interval. Non-blocking.

Parameters* required
task_id*string
The task ID to retrieve the result for.
url_scanner_async_task_statusCheck the status of an asynchronous scan task. Returns the current task status using native MCP task semantics (working, completed, failed, cancelled) without blocking. Use url_scanner_async_task_result to retrieve the result once completed.1 params

Check the status of an asynchronous scan task. Returns the current task status using native MCP task semantics (working, completed, failed, cancelled) without blocking. Use url_scanner_async_task_result to retrieve the result once completed.

Parameters* required
task_id*string
The task ID to check status for.
url_scanner_scanAnalyze a URL for security threats (synchronous, blocks until complete or timeout). Returns risk score, confidence, agent access guidance, and intent_alignment (always not_provided for this tool; use url_scanner_scan_with_intent for intent context). For long-running scans, pre...1 params

Analyze a URL for security threats (synchronous, blocks until complete or timeout). Returns risk score, confidence, agent access guidance, and intent_alignment (always not_provided for this tool; use url_scanner_scan_with_intent for intent context). For long-running scans, pre...

Parameters* required
url*string
The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
url_scanner_scan_with_intentAnalyze a URL for security threats with optional user intent context (synchronous, blocks until complete or timeout). Returns risk score, confidence, agent access guidance, and intent_alignment. For long-running scans, prefer url_scanner_async_scan_with_intent which returns im...2 params

Analyze a URL for security threats with optional user intent context (synchronous, blocks until complete or timeout). Returns risk score, confidence, agent access guidance, and intent_alignment. For long-running scans, prefer url_scanner_async_scan_with_intent which returns im...

Parameters* required
intentstring
Optional user intent for visiting the URL. Recommended for additional context.
url*string
The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.

Sponsors

Readme

PreClick MCP Server

smithery badge

PreClick — An MCP-native URL preflight scanning service for autonomous agents. It scans links for threats and confirms they match the intended task before execution. Built for agentic workflows, it provides high-accuracy, context-aware browsing governance with adaptive learning.

Publisher: CybrLab.ai | Service: PreClick

Hosted Trial Tier: No API key required for up to 100 requests/day. For higher limits and stable quotas, use an API key (contact contact@cybrlab.ai).


Overview

PreClick is a URL security scanner and MCP server that enables AI agents and any client to analyze URLs for phishing, malware, and other security threats before navigation. Use it as a standalone URL scanner via the client libraries below, or connect directly via the MCP protocol.

Integrations

Client Libraries (Recommended)


View the full README on GitHub

Details

Repository
github.com/cybrlab-ai/preclick-mcp
Website
preclick.ai
Transport
HTTP
Auth
Required
Registry
MCP registry, active
Tools verified
Nov 6, 2026

More from cybrlab-ai