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
TDQS
Scored across 6 tools
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.
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.
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.
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 toolsurl_scanner_async_scanARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed. |
TDQS
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.
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.
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.
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.
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.
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_intentARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed. | |
| intent | No | Optional user intent for visiting the URL. Recommended for additional context. |
TDQS
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.
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.
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.
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.
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.
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_resultARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID to retrieve the result for. |
TDQS
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.
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.
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.
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.
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.
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_statusARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | The task ID to check status for. |
TDQS
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.
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.
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.
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.
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.
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_scanARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed. |
TDQS
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.
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.
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.
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.
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.
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_intentARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The URL to analyze. Must be HTTP or HTTPS. If no scheme provided, https:// is assumed. | |
| intent | No | Optional user intent for visiting the URL. Recommended for additional context. |
TDQS
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.
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.
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.
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.
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.
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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
4 tool updates
- Added
url_scanner_async_scan - Added
url_scanner_async_scan_with_intent - Added
url_scanner_async_task_result - Added
url_scanner_async_task_status
1 tool update
- Changed
url_scanner_scan_with_intent2 fields changed- removed
Input schema / properties / intent / nullableRemoved value: -true - changed
Input schema / properties / intent / typePrevious value: -"string"New value: +[ + "string", + "null" +]
2 tool updates
- First observed
url_scanner_scan - First observed
url_scanner_scan_with_intent
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity – fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge – works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge – works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
PreClick scans links for threats and confirms intent match with high accuracy before agents click.
Verify URLs, payees, and messages before acting: red/yellow/green trust verdicts for agents.
Choose HTTP, browser, machine endpoint, or avoid before an agent visits an unfamiliar URL.
AI-powered scam and threat verification for phone numbers, URLs, texts, and emails.
Related MCP Servers
FlicenseNot gradedqualityBmaintenanceEnables 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-
flagrixofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to scan GitHub repositories and user profiles for malware signals before cloning, providing risk verdicts pinned to specific commits.692MIT- AlicenseAqualityBmaintenanceProtects 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.121252Apache 2.0
- AlicenseNot gradedqualityDmaintenanceDetects financial fraud and AI agent transaction risks using machine learning, behavioral biometrics, network graph analysis, and agent-to-agent protection.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.