Skip to main content
Glama

Scan a site for malware

malware_scan

Quick malware check of a site (most thorough for Magento and WordPress; for the other kinds list_sites shows it checks the files, upload folders, cron and processes, not the database): backdoor patterns in PHP, PHP in upload folders, disguised and hidden PHP, recently changed code, scripts injected into the database (Magento design/head/includes, CMS blocks; WordPress options and posts), recent admin users, suspicious cron entries and processes, WordPress checksums, and 130 maintained rules: signatures of known skimmers and backdoors in files and stored content, Magento security patches that are missing, modules with known vulnerabilities, leftover archives and database tools, programs and cron jobs posing as system services. It runs in the background (about a minute per 40,000 files) and returns a job_id: call job_output with offset 0 until status is finished; the output is the JSON report. Findings are leads to read, not proof. Read the files it names before concluding anything.

Input Schema

NameRequiredDescriptionDefault
daysNoHow far back counts as recently changed. Default 14.
siteNoSite root folder, like /var/www/shop, or one of the site's domains. Optional when the server has one site (see list_sites).
serverNoServer name or id. Optional when the account has one server.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the asynchronous job model, a concrete throughput estimate ('about a minute per 40,000 files'), the polling protocol, that the output is a JSON report, and an important epistemic caveat that findings are leads requiring file inspection. This is exactly the operational context annotations cannot convey.

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

Conciseness3/5

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

Purpose is front-loaded, but the body is one enormous run-on sentence with nested parentheses and long comma lists, which is hard to parse at a glance. Most content is substantive, yet the Magento/WordPress coverage parenthetical is dense enough to obscure the operational instructions that follow.

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?

With no output schema, the description fully carries the return-value burden: it explains the job_id indirection, how to poll job_output, that the payload is a JSON report, and how to treat findings. Combined with coverage of runtime and scanning scope, an agent has everything needed to invoke and interpret the 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?

Schema description coverage is 100%, so all three parameters are already documented in the schema (days, site, server, with optionality rules). The description adds only indirect meaning ('recently changed code' gestures at days) and does not clarify formats, defaults, or domain-vs-path resolution beyond what the schema states. Baseline 3 applies.

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?

States a specific verb and resource ('Quick malware check of a site') and then enumerates concretely what is inspected: backdoor patterns in PHP, PHP in upload folders, injected scripts in the database, admin users, cron entries, WordPress checksums, 130 rules including skimmer signatures and missing Magento patches. An agent can tell this apart from sibling tools like site_audit or health_report without opening any schema.

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?

Gives a clear operating context and an explicit follow-up workflow: it runs in the background and 'returns a job_id: call job_output with offset 0 until status is finished.' It also tells the agent how to interpret results ('findings are leads to read, not proof. Read the files it names before concluding anything') and points at list_sites for site discovery. It never explicitly says when to prefer this over site_audit/health_report, so it stops short of a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources