Skip to main content
Glama

scan_skill

Analyze an AI agent skill for prompt injection, malware patterns, and OWASP LLM Top 10 issues BEFORE installing it (SecurityScan).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
skill_urlYesURL of the skill to analyze (e.g. a GitHub skill URL).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed17 schema fields changed
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / skill_url / description
      Added value: +"URL of the skill to analyze (e.g. a GitHub skill URL)."
    • removedInput schema / properties / skill_url / title
      Removed value: -"Skill Url"
    • removedInput schema / title
      Removed value: -"scan_skillArguments"
    • removedOutput schema / description
      Removed value: -"Security scan result"
    • removedOutput schema / properties / cached
      Removed value: -{
      -  "description": "Whether this result was from cache",
      -  "title": "Cached",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / issues
      Removed value: -{
      -  "description": "List of detected security issues",
      -  "items": {},
      -  "title": "Issues",
      -  "type": "array"
      -}
    • removedOutput schema / properties / issues_count
      Removed value: -{
      -  "description": "Number of security issues found",
      -  "title": "Issues Count",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / recommendation
      Removed value: -{
      -  "description": "SAFE, CAUTION, or DANGEROUS",
      -  "title": "Recommendation",
      -  "type": "string"
      -}
    • addedOutput schema / properties / result
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / scan_id
      Removed value: -{
      -  "description": "Unique identifier for this scan",
      -  "title": "Scan Id",
      -  "type": "string"
      -}
    • removedOutput schema / properties / scans_remaining
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "integer"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Remaining scans this month (null if unlimited)",
      -  "title": "Scans Remaining"
      -}
    • removedOutput schema / properties / score
      Removed value: -{
      -  "description": "Security score from 0-100 (higher is safer)",
      -  "title": "Score",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / skill_url
      Removed value: -{
      -  "description": "URL that was scanned",
      -  "title": "Skill Url",
      -  "type": "string"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "scan_id",
      -  "skill_url",
      -  "score",
      -  "recommendation",
      -  "issues_count",
      -  "issues",
      -  "cached"
      -]New value: +[
      +  "result"
      +]
    • removedOutput schema / title
      Removed value: -"ScanResult"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  2. Changed2 schema fields changed
    • addedOutput schema / properties / scans_remaining / default
      Added value: +null
    • changedOutput schema / required
      Previous value: -[
      -  "scan_id",
      -  "skill_url",
      -  "score",
      -  "recommendation",
      -  "issues_count",
      -  "issues",
      -  "cached",
      -  "scans_remaining"
      -]New value: +[
      +  "scan_id",
      +  "skill_url",
      +  "score",
      +  "recommendation",
      +  "issues_count",
      +  "issues",
      +  "cached"
      +]
  3. Changed2 schema fields changed
    • addedOutput schema / properties / scans_remaining
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Remaining scans this month (null if unlimited)",
      +  "title": "Scans Remaining"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "scan_id",
      -  "skill_url",
      -  "score",
      -  "recommendation",
      -  "issues_count",
      -  "issues",
      -  "cached"
      -]New value: +[
      +  "scan_id",
      +  "skill_url",
      +  "score",
      +  "recommendation",
      +  "issues_count",
      +  "issues",
      +  "cached",
      +  "scans_remaining"
      +]
  4. First observed

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the responsibility of conveying behavior. It indicates that this is an analysis/scan rather than an installation, and names the categories checked, but it does not explicitly state whether the tool downloads the skill, executes it, or only inspects it, nor what limitations apply.

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 one tight sentence that front-loads the action and key security concerns. Every element contributes: the subject, the danger categories, and the timing advisory. There is no filler or redundant phrasing.

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?

The tool has only one well-documented parameter and an output schema, so the description does not need to explain return values. It covers the essential context, including the security concerns and the pre-install timing, though a brief note on non-execution or side-effect-free behavior would make it fully complete.

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 skill_url is already fully documented in the input schema with an example, giving 100% schema description coverage. The description repeats the concept of analyzing a skill but adds no material semantic detail beyond the schema, so the baseline score of 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 (Analyze), a clear resource (AI agent skill), and concrete objectives (prompt injection, malware patterns, OWASP LLM Top 10). It also adds the important context of running it before installation, which clearly distinguishes it from sibling scanning tools like network_scan, scan_secrets, or audit_mcp_server_config.

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 phrase 'BEFORE installing it' gives a clear when-to-use signal, and the threat categories make it evident this is a skill-safety pre-flight check. It implicitly differentiates itself from sibling tools that target other artifact types, but it does not explicitly list exclusions or when to prefer a sibling tool.

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.

TDQS

A3.8/5.0
Disambiguation3/5

Most tools target distinct scan types (MCP config, dependencies, skills, network, secrets), but full_stack_audit deliberately overlaps with five of them, creating ambiguity about whether to call the umbrella tool or a focused scanner. The descriptions mitigate this by clarifying scope, but the redundant surface makes selection less crisp.

Naming Consistency3/5

Names are mostly descriptive and action-oriented, but they mix conventions: scan_secrets and scan_skill use a verb_noun pattern, audit_mcp_server_config and check_dependencies use different verbs, network_scan and full_stack_audit are non-verb phrases, and securityscan_checkout/securityscan_pricing use a brand prefix. This is readable but not a consistent, predictable pattern.

Tool Count5/5

With 8 tools, the server is well-scoped for its security-scanning purpose. Each focused tool covers a meaningful threat surface, and full_stack_audit adds value as a correlation layer rather than pure bloat.

Completeness4/5

The toolset covers the core security lifecycle for an agent environment: configuration auditing, dependency health, skill vetting, network scanning, and secret/PII redaction, plus a full-stack correlation option. Minor gaps exist around remediation actions and persistent scan history, but these are not clearly required by the server's stated purpose.

Resources