Skip to main content
Glama

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

Server Details

PreClick scans links for threats and confirms intent match with high accuracy before agents click.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
cybrlab-ai/preclick-mcp
GitHub Stars
6
Server Listing
PreClick MCP Server

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.5/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct purpose: sync vs async scan, with/without intent, and task status vs result retrieval. The descriptions explicitly clarify when to use each, leaving no ambiguity about which tool to select.

Naming Consistency4/5

Names follow a predictable url_scanner_ prefix pattern with consistent suffixes for intent ('_with_intent') and sync/async distinction. The minor inconsistency is mixing 'async_scan' for submission with 'async_task_status'/'async_task_result' for polling, but the pattern remains readable and understandable.

Tool Count5/5

Six tools is well-scoped for a URL scanning service: it covers the sync/async dimension, intent context, and the full task lifecycle (submit, check status, get result). No redundant or missing categories for the core purpose.

Completeness4/5

The core scan lifecycle is fully covered (sync and async, with intent, status polling, result retrieval). The only notable gap is the lack of a cancel operation for async tasks, which could be useful for long-running scans, but this is a minor omission not likely to cause agent failures.

Available Tools

6 tools
url_scanner_async_scanA
Read-only
Inspect

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 support.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: the asynchronous nature, immediate return with task_id, and the required polling sequence. It doesn't discuss failure modes or edge cases, but the core behavior is transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with zero waste. The first sentence states the core function and return, the second explains the workflow and the alternative case. All content is essential and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with full schema coverage and clear annotations, the description provides everything needed: the action, the async workflow, the sibling relationships, and the reason to choose this tool. The lack of an output schema is compensated by mentioning task_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage for the sole parameter 'url', including the default scheme behavior. The description adds nothing about the parameter itself, so the schema carries the full burden. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Submit a URL for asynchronous security analysis') and names the return value (task_id). It distinguishes itself from siblings by explicitly labeling itself as the async counterpart of url_scanner_scan and referencing the polling/result tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidance: when to use this tool ('for clients without native MCP Tasks support') and the full workflow (poll with url_scanner_async_task_status, then retrieve with url_scanner_async_task_result). This directly addresses when to use it versus alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_scanner_async_scan_with_intentA
Read-only
Inspect

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_intent for clients without native MCP Tasks support.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
intentNoOptional user intent for visiting the URL. Recommended for additional context.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, destructiveHint), the description discloses the asynchronous behavior: it returns immediately with a task_id rather than the result, requiring polling. This is valuable context not captured in annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core action and result, followed by the polling process and a comparative note. Every sentence contributes meaning with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameter schema, rich annotations, and the existence of sibling tools, the description fully explains the async workflow, the role of this tool, and how to retrieve results. No output schema is needed because the description itself guides the follow-up steps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides full descriptions for both parameters (100% coverage). The description adds the notion 'optional user intent' but does not introduce new parameter details beyond what the schema states, so a baseline score is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool submits a URL with optional user intent for asynchronous security analysis and immediately returns a task_id. It distinguishes from the synchronous counterpart and the async version without intent by name and behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says to use this tool when clients do not have native MCP Tasks support, and prescribes the polling workflow with url_scanner_async_task_status and url_scanner_async_task_result. This differentiates it from the synchronous and non-intent variants.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_scanner_async_task_resultA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to retrieve the result for.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial behavioral context: it distinguishes between completed and running states, provides the retry mechanism, and states non-blocking behavior. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each adding value: defines the action, describes the two possible outcomes, and gives a retry instruction. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple async polling tool with one parameter and no output schema, the description covers the key scenarios (completed vs running), retry timing, and example result fields. It is sufficient for an agent to use the tool correctly, though it does not address error cases or invalid task IDs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with the single parameter task_id fully described. The description does not add parameter-specific details, but the schema already carries the meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb 'Retrieve' and names the resource 'result of an asynchronous scan task'. It clearly distinguishes from sibling tools by stating it returns the full scan result when complete, unlike url_scanner_async_task_status which likely only provides status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly explains the polling pattern: if still running, it returns retry_after_ms and tells the agent to call again after that interval. It also notes 'non-blocking'. However, it does not explicitly name alternatives like task_status for status-only use, but the guidance is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_scanner_async_task_statusA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to check status for.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds that it uses native MCP task semantics with specific statuses and that it is non-blocking—valuable behavioral context for an agent deciding how to poll. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences that front-load the purpose and add only necessary behavioral and usage details. Every sentence contributes, with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter status-check tool with no output schema, the description sufficiently covers purpose, return semantics, and next steps. It even provides the possible status values, making it self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter task_id is fully described in the schema ('The task ID to check status for.'), giving 100% schema description coverage. The tool description does not add additional parameter details, but the baseline of 3 applies because the schema handles it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Check') and resource ('status of an asynchronous scan task'), clearly distinguishing it from starting scans or retrieving results. It even lists the status values, reinforcing its distinct role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly directs the agent to use url_scanner_async_task_result for result retrieval after completion, providing a clear alternative and implying this tool is not for retrieving results. This matches the 'explicit alternatives' criterion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_scanner_scanA
Read-only
Inspect

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, prefer url_scanner_async_scan which returns immediately with a task_id for polling via url_scanner_async_task_result.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint, openWorldHint, destructiveHint), the description adds valuable behavioral context: synchronous blocking behavior, return data (risk score, confidence, agent access guidance), and the caveat that intent_alignment is always 'not_provided'. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. Every sentence provides necessary information—the blocking behavior, return fields, and alternative tools—with no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter synchronous tool with no output schema, the description covers purpose, behavior, return fields, and alternative tools. Annotations cover safety profile, so no critical information is missing for an agent to select and invoke this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema description fully covers the single 'url' parameter, including format requirements and default scheme handling. The tool description adds no additional parameter meaning, so the baseline of 3 is appropriate given 100% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes a URL for security threats, with an explicit note that it is synchronous and blocks until completion. It also distinguishes itself from sibling tools by mentioning url_scanner_async_scan and url_scanner_scan_with_intent, making the specific resource and scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use alternatives: prefer url_scanner_async_scan for long-running scans, and use url_scanner_scan_with_intent when intent context is needed. This directly addresses when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

url_scanner_scan_with_intentA
Read-only
Inspect

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 immediately with a task_id for polling via url_scanner_async_task_result.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed.
intentNoOptional user intent for visiting the URL. Recommended for additional context.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations establish the operation as read-only and non-destructive. The description adds valuable behavioral context beyond annotations by stating it is synchronous, blocks until completion or timeout, and returns specific fields (risk score, confidence, agent access guidance, intent_alignment). It does not cover all edge cases like timeout behavior or error responses, but with annotations this is sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. The first sentence states the core action, synchronous behavior, and return fields; the second clearly pivots to the async alternative. Every word earns its place with no redundancy or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is a single URL scanner with two parameters, no output schema, and no nested objects, the description is complete. It covers the synchronous behavior, names the return fields, and directs users to the async flow for long-running scans. The annotations and schema fill in the remaining safety and parameter details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described (url and intent), so the schema does the heavy lifting. The description adds a general mention of 'optional user intent context' but does not provide additional parameter-specific meaning beyond what the schema already conveys. Baseline of 3 is appropriate per the rubric.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool analyzes a URL for security threats with optional user intent, using a specific verb and resource. It distinguishes itself from the async variant by explicitly noting it is synchronous and blocks until completion or timeout, and from the non-intent sibling by mentioning the optional intent context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit guidance on when to use this tool versus the async alternative: 'For long-running scans, prefer url_scanner_async_scan_with_intent which returns immediately with a task_id for polling via url_scanner_async_task_result.' This clearly directs the user to the appropriate tool based on scan duration.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • F
    license
    -
    quality
    B
    maintenance
    Enables agents to verify the authenticity of inbound email messages via SPF, DKIM, DMARC, and ARC checks, detect sender spoofing and malicious links/attachments, and obtain signed, verifiable attestations of the verdict.
    1
  • A
    license
    -
    quality
    B
    maintenance
    Enables AI agents to scan GitHub repositories and user profiles for malware signals before cloning, providing risk verdicts pinned to specific commits.
    72
    2
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Protects AI agents from threats like prompt injection, jailbreaks, and SQL injection through a multi-layer scanning pipeline. It also enables PII redaction and rehydration to ensure data privacy during LLM interactions.
    12
    127
    1
    Apache 2.0

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.