Skip to main content
Glama

Scan extension

scan_extension
Read-onlyIdempotent

Check a VS Code extension or a Claude Skill before installing or trusting it. For a VS Code extension (which runs with full Node.js access and no permission model to scope): publisher domain-verification status weighed against install count, and known-bad-signature checks on its description. For a Claude Skill: hidden-instruction and obfuscated-payload detection on the SKILL.md body (the same engine scan_content uses), unscoped or credential-referencing tool grants in its allowed-tools/disallowed-tools frontmatter, inline shell execution baked into the file itself, and pattern matching on any bundled script files for credential-exfiltration signatures. Semantic prompt-injection detection on a skill's body runs too on Pro.

Input Schema

NameRequiredDescriptionDefault
skillContentNoA Claude Skill's SKILL.md content, pasted directly
marketplaceIdNoVS Code Marketplace id, e.g. "nrwl.angular-console"
scriptContentsNoOptional: bundled script file contents to check alongside a skill, filename -> content

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?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description clears the lowered bar by adding genuinely new behavior: the extension threat model ('full Node.js access and no permission model to scope'), the specific checks performed, and the tier gating that semantic prompt-injection detection 'runs too on Pro'.

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

Conciseness4/5

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

The lead sentence is front-loaded with the action and the pre-install framing. The remainder is dense and heavily parenthesized, but nearly every clause names a distinct check, so the length is largely earned rather than padded.

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?

Inputs and the full set of checks are well covered for a 3-parameter, 0-required tool. With no output schema, the description does not describe the return shape (findings list, pass/fail, severity), which is the one meaningful gap for an agent interpreting results.

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 the baseline is 3. The description maps parameters to modes (extension vs skill) and pairs skillContent with scriptContents, but adds no syntax or format detail beyond what the schema already provides for each field.

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 (check/scan) and two named resources (VS Code extension, Claude Skill), then enumerates the exact signals inspected for each. It even differentiates itself from the sibling scan_content by noting the skill-body scan uses 'the same engine scan_content uses', so an agent can place it relative to siblings without opening schemas.

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?

'Check ... before installing or trusting it' gives clear usage context, and the description implicitly separates the two modes (marketplaceId for extensions, skillContent for skills). It does not, however, explicitly say when to prefer this over scan_content or scan_mcp_server, so routing is inferred rather than stated.

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