Skip to main content
Glama
epistemedeus

SkillGuard

by epistemedeus

SkillGuard

Scan a Claude Code skill, plugin, or MCP server for malware before you install it. One command, no install, no account.

npx github:epistemedeus/skillguard https://github.com/owner/repo
# or a local folder:
npx github:epistemedeus/skillguard ./my-skill
SkillGuard report  · 3 text files scanned

DANGER (4)
  SKILL.md
    ■ Prompt-injection / data-exfil instruction in text   [prompt-injection]
  index.js
    ■ Possible env/secret exfiltration (sensitive env var near a network call)   [env-exfil]
    ■ Hardcoded suspicious exfiltration endpoint (webhook/pastebin/raw-IP)        [exfil-host]
    ■ Obfuscated/dynamic code execution (eval(atob), curl|bash)                   [obfuscation]

✗ DANGEROUS — do NOT install without reviewing the flagged files.

Why

The Claude Code / MCP ecosystem is exploding — and so is the attack surface. Researchers have found 71 malicious skills in the wild, ~26% of published skills carry vulnerabilities, and 30+ MCP CVEs landed in 60 days. The most common payloads:

  • Environment-variable / secret exfiltration (ANTHROPIC_API_KEY, AWS_SECRET_ACCESS_KEY, ~/.env) shipped off to a webhook.

  • Install-time shell hooks (postinstall) that run code the moment you npm install.

  • Prompt injection in tool descriptions / SKILL.md ("ignore previous instructions", "do not tell the user", "always auto-approve").

  • Committed binaries and obfuscated eval(atob(...)) / curl | bash payloads.

  • Auto-approve-all / skip-permissions configs that disarm your safeguards.

SkillGuard catches these patterns in seconds, so you can vet a third-party skill or MCP server before trusting it with your machine and your keys.

Related MCP server: vibescan-mcp-server

Safe by design

SkillGuard does static analysis only. It clones with git clone (hooks disabled) and reads files — it never runs npm install, never executes build/postinstall scripts, and never runs the target code. Scanning a malicious package can't harm you. (A scanner that executed what it's inspecting would be the very risk it's meant to prevent.)

What it checks

Check

Catches

env-exfil

A sensitive env var read next to a network call

exfil-host

Hardcoded webhook / pastebin / raw-IP / Telegram exfil endpoints

obfuscation

eval(atob(...)), curl | bash, subprocess on encoded data

prompt-injection

Data-exfil / "ignore instructions" / auto-approve text in SKILL.md, tool descriptions, prompts

secret-literal

API keys / private keys committed to the repo

committed-binary

Compiled ELF / Mach-O / PE executables in the tree

forced-artifact

The honeypot pattern: a build step that generates + commits an encrypted blob

dangerous-perms

Auto-approve-all, sandbox-disabling, --dangerously-skip-permissions

install-hook

pre/postinstall scripts that run on install

Exit code: 0 clean · 2 suspicious · 3 dangerous — so you can gate CI on it.

Use it in CI (GitHub Action)

Gate your CI on skill/MCP supply-chain safety:

- uses: epistemedeus/skillguard@v1
  with:
    path: .            # path or git URL to scan
    fail-on: dangerous # or "suspicious"

Use it as an MCP server

Give your agent the ability to vet a skill/MCP server before installing it. Add to your Claude Code / MCP client config:

{
  "mcpServers": {
    "skillguard": {
      "command": "npx",
      "args": ["-y", "github:epistemedeus/skillguard", "mcp"]
    }
  }
}

It exposes one tool, scan_skill(target), where target is a local path or a git/GitHub URL. Your agent can then check anything it's about to install. (Static-only — it never runs the scanned code.)

Show that you passed

If your skill or MCP server comes back clean, earn a badge for your README:

npx github:epistemedeus/skillguard . --badge

It prints a Markdown badge you can paste in — a signal to your users that you ran a malware scan:

SkillGuard: no known malware

Free vs. paid

The CLI is free and MIT-licensed — run it as often as you like. If you install third-party skills/MCPs regularly and want to stop worrying:

  • One-time deep audit ($29) — we manually review a skill/MCP/plugin you're about to depend on and send you a written risk report, same day.

  • Watch mode ($12/mo) — we re-scan the skills + MCP servers you depend on every time they ship an upstream release, and alert you the moment new risk appears (the rug-pull / mutable-tool problem).

samedaydesk.com/skillguard

Limitations

Heuristics catch known-bad patterns; a determined, novel attack can evade any static scanner. SkillGuard is a fast first line of defense, not a guarantee. Always review code from untrusted authors.


MIT · by SameDayDesk · issues + PRs welcome.

Available Tools

1 tool
scan_skillA

Statically scan a Claude Code skill, plugin, or MCP server (a local path or a git/GitHub URL) for malware patterns BEFORE installing it: secret/env exfiltration to suspicious hosts, install-time (pre/postinstall) hooks, obfuscated remote execution (eval(atob), base64|sh), prompt injection in tool descriptions/SKILL.md, committed binaries, and auto-approve/skip-permission configs. Static-only — it clones and reads files, never executes the target code, so scanning something malicious is safe. Returns a verdict (clean/suspicious/dangerous) with the flagged files.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYesA local path or a git/GitHub URL to scan, e.g. https://github.com/owner/repo or ./my-skill

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description fully bears the burden. It discloses that the tool is static-only, never executes code, and is safe to use on malicious targets. It lists the exact patterns checked and the return verdict types (clean/suspicious/dangerous).

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?

Single, dense paragraph that efficiently conveys purpose, usage, safety, patterns, and output. Every sentence adds value without redundancy.

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?

Despite no output schema, the description details the return format (verdict with flagged files). It covers what the tool scans, how it works, and its safety. The single parameter is well-explained. No missing context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter (target) has 100% schema coverage, and the description adds practical examples (e.g., https://github.com/owner/repo or ./my-skill) and clarifies it can be a local path or git URL, adding value beyond the schema.

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 clearly states the verb (statically scan), the resource (Claude Code skill, plugin, or MCP server), and the scope (for malware patterns before installing). It distinguishes itself from execution-based scanners by noting it is static-only.

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 description explicitly tells when to use the tool (before installing) and contrasts with execution ('never executes the target code'). No sibling tools exist, so no alternative comparisons needed. It provides clear context for usage.

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.

  1. 1 tool updatev0.1.0
    • First observedscan_skill

TDQS

A4.7/5.0
Disambiguation5/5

With only one tool, there is no possibility of confusion between tools. The single tool has a clearly distinct purpose.

Naming Consistency5/5

With a single tool, naming consistency is perfect by definition. 'scan_skill' follows a clear verb_noun pattern.

Tool Count4/5

One tool is below the typical 3-15 range, but it is appropriate for a focused security scanner. A single comprehensive tool suffices for the stated purpose.

Completeness5/5

The tool covers all listed malware patterns (secret exfiltration, install hooks, obfuscated execution, prompt injection, committed binaries, auto-approve configs) with a static approach. No obvious gaps within its scope.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables scanning MCP server configurations for security risks like prompt injection, hardcoded secrets, and dangerous commands, providing risk scores and detailed reports before connecting to an AI coding assistant.
    18
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/epistemedeus/skillguard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server