Skip to main content
Glama

Verificar autenticidad de un paquete (typosquatting / "slopsquatting")

check_package_authenticity

Revisa si un paquete (por ahora solo npm) tiene señales de ser un impostor recién publicado en vez de un paquete legítimo: nombre casi idéntico a uno de los paquetes más populares combinado con poco historial propio (typosquatting clásico), publicado hace muy poco con un número de versión inicial ya "maduro" como 35.x.y en vez de 0.x/1.x (el patrón documentado en campañas reales de 2026 de "slopsquatting": nombres diseñados para parecerse a los que un asistente de IA alucina al sugerir una dependencia), un script que se ejecuta solo al instalar (postinstall/preinstall) en un paquete reciente, o ausencia total de repositorio/homepage/README. Si el paquete NO existe en el registro, avisa que puede ser una alucinación del agente y del riesgo de que alguien lo registre después con malware. Distinto y complementario a check_known_vulnerabilities: esa herramienta busca CVEs ya publicados en un paquete probablemente legítimo; esta busca señales de que el paquete en sí es falso, aunque no tenga ningún CVE todavía. Requiere una llave de acceso válida (usos gratis o créditos) — ver POST /crear-llave.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "ecosistema": "<ecosistema>",
      "nombre": "<nombre>"
    },
    "name": "check_package_authenticity"
  }
}

Input Schema

NameRequiredDescriptionDefault
nombreYesNombre exacto del paquete tal como aparece en su registro (ej. "left-pad" en npm, o "@scope/paquete" para uno con alcance).
ecosistemaYesEcosistema del paquete. Por ahora solo se soporta: npm.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and mostly succeeds: it names the supported ecosystem ('por ahora solo npm'), discloses the authentication prerequisite and how to obtain a key, and explains the special case where the package does not exist. It stops short of describing the response shape or whether results are cached/rate-limited, which leaves a gap for a no-annotation tool.

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?

The core purpose is front-loaded, but the body is a single sprawling sentence with nested parentheticals and a long digression into 'slopsquatting' campaign history. The routing information and auth note would be easier to act on as separate sentences.

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 2-parameter read-only lookup with no output schema, the description covers ecosystem scope, auth requirements, detection heuristics, and the not-found case. Only the return format is unaddressed, since no output schema exists to absorb that burden.

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% and both parameters carry their own descriptions, including the '@scope/paquete' example. The description adds only the ecosystem constraint already stated in the schema, so 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 ('Revisa si un paquete ... tiene señales de ser un impostor') and enumerates the exact signals checked (near-identical name to a top package, mature 35.x version on a fresh publish, postinstall scripts, no repo/README). It also explicitly contrasts itself with check_known_vulnerabilities, so an agent can distinguish the two without opening either schema.

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?

Provides explicit routing: check_known_vulnerabilities is for already-published CVEs on a probably-legitimate package, this one is for whether the package itself is fake even with zero CVEs. It also gives a concrete secondary use case (nonexistent package → possible agent hallucination → future malicious registration), which tells the agent when this tool is the right call.

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