CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

PreClick — An MCP-native URL preflight scanning service for autonomous agents.

cybrlab-ai/preclick-mcp
66 toolsauthHTTPregistry active
Summary

Scans URLs for phishing, malware, and other threats before your agent clicks through, with optional intent matching to verify the link actually leads where your task expects. Exposes `url_scanner_scan` and `url_scanner_scan_with_intent` tools over streamable HTTP. Works in stateless mode by default at preclick.ai/mcp with a 100 request/day trial tier, no key required. Task-augmented mode queues scans asynchronously and returns a task ID you poll for results. Also ships standalone Python and Node clients if you want scan results without managing MCP protocol details. Useful when you're building agents that navigate the web autonomously and need a security layer before following links scraped from emails, search results, or user input.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

Public tool metadata for what this MCP can expose to an agent.

6 tools
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
urlstring
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
urlstring
The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
intentstring
Optional user intent for visiting the URL. Recommended for additional context.
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_idstring
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_idstring
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
urlstring
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
urlstring
The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
intentstring
Optional user intent for visiting the URL. Recommended for additional context.

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)

The fastest way to add URL security scanning to any AI agent, automation pipeline, or application. These standalone URL scanner clients handle connection, polling, and error recovery out of the box — no MCP protocol knowledge or conformance required:

PackageLanguageInstallRepository
preclickPython (async, 3.10+)pip install preclickpreclick-python
@cybrlab/preclick-mcp-clientJavaScript/Node.js (20+)npm install @cybrlab/preclick-mcp-clientpreclick-mcp-client

Both libraries provide a simple scan-oriented URL security scanning API (scan(url) / scanWithIntent(url, intent)) that returns results directly — phishing detection, threat analysis, and intent alignment in a single call. No protocol vocabulary, no connect() boilerplate, no manual polling for the common case.

Framework Adapters

IntegrationRepository
OpenClaw pluginpreclick-openclaw

Manual MCP Configuration

For MCP-native clients that speak the protocol directly, see Quick Start below.

Authentication Modes

DeploymentX-API-Key RequirementNotes
Hosted (https://preclick.ai/mcp)Optional up to 100 requests/dayAPI key recommended for higher limits
Hosted (https://preclick.ai/mcp)Required above trial quotaContact support for provisioned keys

Important Notice

This tool is intended for authorized security assessment only. Use it solely on systems or websites that you own or for which you have got explicit permission to assess. Any unauthorized, unlawful, or malicious use is strictly prohibited. You are responsible for ensuring compliance with all applicable laws, regulations, and contractual obligations.

Use Cases

  • Pre-flight URL validation for AI agents
  • Automated URL security scanning in workflows
  • Malicious link detection in emails/messages

Quick Start

1. Configure Your MCP Client

Choose one option:

Trial (hosted, up to 100 requests/day without API key):

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

Authenticated (recommended for stable and higher-volume usage):

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

2. Optional: Initialize Session (stateful mode only)

Default hosted usage is stateless. Clients send JSON-RPC messages with POST /mcp. Some Streamable HTTP clients may also probe GET /mcp for an SSE stream. On the stateless hosted deployment, /mcp does not offer an SSE stream and returns HTTP 405 Method Not Allowed. Clients should treat 405 as "no SSE stream on this endpoint" and continue using POST /mcp.

Clients should still send the standard MCP HTTP headers:

  • Accept: application/json, text/event-stream on POST
  • MCP-Protocol-Version on all non-initialize requests

The hosted deployment currently normalizes missing or incomplete POST Accept headers for compatibility. It also allows missing MCP-Protocol-Version on discovery-only POST list requests (tools/list, resources/list, prompts/list) for registry compatibility. Clients should not rely on either behavior.

# 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. Start a Scan

url_scanner_scan supports two execution modes (the same modes apply to url_scanner_scan_with_intent):

  • Task-augmented (recommended): Include the task parameter for async execution
  • Direct: Omit the task parameter for synchronous execution
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"

Response (task submitted):

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

Optional: Provide an url visiting intent for additional context (recommended but not required):

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

Recommendation: Use url_scanner_scan_with_intent when you can state your purpose (login, purchase, booking, payments, file download) so intent/content mismatch can be considered as an additional signal. Otherwise use url_scanner_scan. Max intent length: 248 characters. Low-information or instruction-like intent strings are treated as not provided. Result includes intent_alignment (misaligned, no_mismatch_detected, inconclusive, or not_provided). no_mismatch_detected is only returned when intent analysis had sufficient evidence; if intent analysis is unavailable or evidence is limited, result is inconclusive. When intent_alignment is misaligned and confirmed by successful high-confidence analysis, the response directive is DENY with reason intent_inconsistent_destination (policy gate; risk score is unchanged). When high-confidence analysis confirms an unverified high-impact service claim with weak identity corroboration in a low-confidence context, the response directive is also DENY with reason insufficient_service_verification (policy gate; risk score is unchanged). In additional contextual low-evidence policy cases, responses may return DENY with reasons such as insufficient_service_verification or insufficient_trust_signals (policy gate; risk score is unchanged).

Direct-call timeout note: synchronous tool calls use a bounded server wait window sized for direct-only clients (hosted default 90s). If timeout is reached, the server returns JSON-RPC -32603 with error.data.taskId and error.data.pollInterval so you can continue via tasks/get / tasks/result.

Compatibility note: if your MCP client cannot call native Tasks methods (tasks/get / tasks/result), use url_scanner_async_scan or url_scanner_async_scan_with_intent to submit work and then poll with url_scanner_async_task_status / url_scanner_async_task_result. Call these compatibility tools as ordinary tools only; do not include a native MCP task parameter.

4. Poll for Results

tasks/result uses a shorter hosted blocking wait (default 30s). If this wait is exceeded, the server returns JSON-RPC -32603 with error.data.taskId and error.data.pollInterval. Native Tasks clients should prefer polling with tasks/get until status is completed, then call tasks/result to retrieve the final result immediately.

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"

Response (completed task — CallToolResult shape, same as synchronous 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
  }
}

Available Tools

ToolDescriptionExecution Modes
url_scanner_scanAnalyze URL for security threatsDirect (sync), Task (async)
url_scanner_scan_with_intentAnalyze URL with optional intent contextDirect (sync), Task (async)
url_scanner_async_scanCompatibility async submit toolTool-based async
url_scanner_async_scan_with_intentCompatibility async submit with intentTool-based async
url_scanner_async_task_statusCompatibility status polling toolTool-based async
url_scanner_async_task_resultCompatibility result polling toolTool-based async

See Full API Documentation for detailed schemas and examples.


Authentication

Authentication requirements depend on deployment mode:

  • Hosted endpoint (https://preclick.ai/mcp): API key is optional for up to 100 requests/day.
  • Hosted endpoint above trial quota: API key required.

See Authentication Guide for details on getting API keys.


Technical Specifications

PropertyValue
Registry IDai.preclick/preclick-mcp
MCP Spec2025-06-18
Client Protocol2025-06-18
TransportStreamable HTTP
Endpointhttps://preclick.ai/mcp
Typical Scan TimeVaries by target
Supported SchemesHTTP, HTTPS
Max URL LengthEnforced by server

Support

  • Publisher: CybrLab.ai
  • Service: PreClick
  • Email: contact@cybrlab.ai

License

Apache License 2.0 - See LICENSE for details.

Copyright CybrLab.ai

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Registryactive
TransportHTTP
AuthRequired
UpdatedApr 3, 2026
View on GitHub