Security-Gated Skill Management for AI Coding Assistants

Every skill is scanned against 101 regex threat patterns before it installs; critical matches are blocked.

101 regex threat patterns · 13 MCP tools · config docs for 7 clients

npx -y @stranzwersweb2/skillsync-mcp

Research · Experimental · Synthetic data

Experimental detector: 99.2% attack detection on Boundary Pairs synthetic test data

Experimental detector: 99.2% attack detection on Boundary Pairs synthetic test data, in each of three training runs (119/120 attacks each). Average benign false-alarm rate 3.9% (per-run 2.5%, 4.2%, 5.0%). 10 held-out scenarios from one synthetic generator; not evidence of real-world protection. Shipped rule-based scanner is separate.

  • Fine-tuned DeBERTa-v3-base classifier; the unmodified base model caught 31/120 attacks with 4 false alarms on the same test set.
  • Benign false alarms: 3, 5 and 6 of 120 across the three runs. With 120 benign examples, a low false-alarm rate cannot be certified.
  • Not included in the npm package and not used by the install gate.

Works With Any MCP Client

Claude Code OpenClaw Cursor Windsurf GitHub Copilot Zed nanobot

Why SkillSync?

Capability Raw git clone SkillSync MCP
Security scan before install No Regex scan — 101 patterns
Blocks critical findings No Critical pattern match blocks install
Multi-client support N/A Config docs for 7 clients
Marketplace search Manual Keyword + semantic (SkillsMP API)
Query subscriptions No Local config, pulls from SkillsMP
Startup verification No fs.watch + content hash
Output sanitization No Strips hidden Unicode controls

Features

Security Scanning

101 regex threat patterns across 19 categories: prompt injection (including Unicode homoglyph and hidden-character tricks), reverse shells, credential theft, supply chain attacks, crypto mining, RCE, obfuscation, privilege escalation, and more. Installs that match a critical pattern are blocked. Regex heuristics can miss novel or obfuscated attacks and can flag benign text.

Subscription Sync

Subscribe to search queries stored in a local config file; a sync run pulls matching skills from the SkillsMP API and installs them through the same security gate. Configurable risk thresholds, conflict policies, and dry-run previews. Managed vs manual skill tracking with lock files. SkillSync does not store your skills or data in its own cloud.

Marketplace Search

Keyword and semantic search across the SkillsMP marketplace through the third-party SkillsMP API (SkillsMP states its semantic search uses Cloudflare AI; the model is not disclosed). Search queries, and an API key if you set one, are sent to skillsmp.com; suggestions also send the names of up to 10 installed skills and your optional context. Results are untrusted third-party content. Suggestions based on your installed skills and side-by-side comparison with security diffs.

Skill Management

Install, uninstall, list, and audit skills. Startup verification with fs.watch and SHA-256 content hashing. TOCTOU protection. npm install with --ignore-scripts for supply chain safety.

13 MCP Tools

Search & Discovery

skillsmp_search — Keyword Search

Search the SkillsMP marketplace by keyword. Returns skill names, descriptions, authors, star counts, and GitHub links. Supports sorting by stars or recency. All results are sanitized against prompt injection.

skillsmp_ai_search — AI Semantic Search

Natural language search through the SkillsMP ai-search API (hosted by SkillsMP; it states it uses Cloudflare AI). Returns relevance-scored results that are treated as untrusted content.

skillsmp_search_safe — Search + Auto-Scan

Combines keyword search with automatic security scanning of the top N results. Shows risk levels and threat summaries inline with search results.

skillsmp_suggest — AI Suggestions

Recommends new skills based on what you already have installed and optional context about your current project. Filters out already-installed skills automatically. Privacy note: the query sent to SkillsMP includes the names of up to 10 of your installed skills and your optional context (up to 200 characters).

Security

skillsmp_scan_skill — Security Scan

Scans a GitHub skill repository against 101 regex threat patterns across prompt injection, reverse shells, credential theft, supply chain attacks, crypto mining, and more. Returns a risk level, threat list, content hash, and recommendation.

skillsmp_compare — Side-by-Side Compare

Compare two skills by GitHub URL or installed name. Shows risk levels, threat counts, categories, and a recommendation for which is safer.

skillsmp_audit_installed — Deep Audit

Forces a fresh security scan on a specific installed skill. Shows detailed threat report, file count, total size, content hash, and SKILL.md status.

Skill Management

skillsmp_install_skill — Install

Scans a GitHub skill, then installs it to ~/.claude/skills/. Installs matching a critical pattern are blocked. Medium/high risk requires force=true. Runs npm install with --ignore-scripts.

skillsmp_uninstall_skill — Uninstall

Removes an installed skill directory and updates the in-memory registry. Restart your MCP client to apply changes.

skillsmp_list_installed — List Installed

Lists all installed skills with risk levels, file counts, SKILL.md status, and last scan timestamps. Supports forced refresh and re-sync.

Subscription Sync

skillsync_configure — Configure Sync

Manage sync subscriptions and settings. Add or remove search subscriptions, set sync interval, risk threshold, and conflict policy (skip, overwrite, or unmanage).

skillsync_sync_now — Run Sync

Polls subscriptions, diffs against installed skills, and installs/updates/removes as needed. Supports dryRun=true to preview changes before applying.

skillsync_status — Sync Status

Shows sync engine state: managed vs manual skills, subscription count, last sync time, next scheduled sync, and per-skill details.

Quick Start

Add SkillSync to your MCP client configuration:

Claude Code

Add to ~/.claude/settings.json:

{
  "mcpServers": {
    "skillsmp": {
      "command": "npx",
      "args": ["-y", "@stranzwersweb2/skillsync-mcp"]
    }
  }
}
OpenClaw

Add to ~/.openclaw/mcp.json:

{
  "mcpServers": {
    "skillsmp": {
      "version": "1.4.1",
      "autoUpdate": false,
      "command": "npx",
      "args": ["-y", "@stranzwersweb2/skillsync-mcp@1.4.1"]
    }
  }
}

OpenClaw uses the same SKILL.md format as Claude Code. Pin versions and review tool policies per the security hardening guide.

Cursor

Add to .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "skillsmp": {
      "command": "npx",
      "args": ["-y", "@stranzwersweb2/skillsync-mcp"]
    }
  }
}
Windsurf

Add to ~/.windsurf/mcp.json:

{
  "mcpServers": {
    "skillsmp": {
      "command": "npx",
      "args": ["-y", "@stranzwersweb2/skillsync-mcp"]
    }
  }
}
GitHub Copilot

Add to .github/copilot-mcp.json in your project root, or ~/.github/copilot-mcp.json for global:

{
  "mcpServers": {
    "skillsync": {
      "command": "npx",
      "args": ["-y", "@stranzwersweb2/skillsync-mcp"],
      "env": {
        "SKILLSMP_API_KEY": "your-api-key"
      }
    }
  }
}
Zed

Add to ~/.config/zed/settings.json under "context_servers":

{
  "context_servers": {
    "skillsync": {
      "command": {
        "path": "npx",
        "args": ["-y", "@stranzwersweb2/skillsync-mcp"],
        "env": {
          "SKILLSMP_API_KEY": "your-api-key"
        }
      }
    }
  }
}
Global Install (npm)
npm install -g @stranzwersweb2/skillsync-mcp

Then reference skillsync-mcp as the command in any MCP config:

{
  "mcpServers": {
    "skillsmp": {
      "command": "skillsync-mcp"
    }
  }
}

Client Compatibility

Client Config Path Skill Format
Claude Code~/.claude/settings.jsonSKILL.md in ~/.claude/skills/
OpenClaw~/.openclaw/mcp.jsonSKILL.md (same format)
Cursor.cursor/mcp.jsonMCP tools only
Windsurf~/.windsurf/mcp.jsonMCP tools only
GitHub Copilot.github/copilot-mcp.jsonMCP tools only
Zed~/.config/zed/settings.jsonMCP tools only
nanobotMCP configMCP tools only

Security Model

Every installation is gated by a rule-based, multi-level security scan. It is a regex heuristic, not a guarantee: it can miss novel or obfuscated attacks and can flag benign text.

Risk Levels

LevelBehavior
Safe / LowInstall proceeds with warnings shown
Medium / HighBlocked — requires force=true to override
CriticalPermanently blocked — no override possible

19 Threat Categories

101 patterns: 47 critical line patterns, 3 critical multi-line patterns, and 51 warning patterns. Red categories contain critical (install-blocking) patterns; amber categories contain warning patterns only.

Prompt Injection (incl. Unicode homoglyphs) Destructive Shell Remote Code Execution Reverse Shells Credential Theft Supply Chain Privilege Escalation Exfiltration Obfuscation Code Execution Shell Execution Network Crypto Mining Dotfile Poisoning Filesystem Prototype Pollution Time Bomb Environment Input Capture

Scanner Flow

  1. Fetch skill source from GitHub (SSRF-gated: only github.com accepted)
  2. Validate file count (≤ 50) and total size (≤ 2MB)
  3. Skip binary files, flag suspicious filenames (postinstall.sh, .env, etc.)
  4. Scan each text file line-by-line against 98 single-line regex patterns
  5. Run 3 multi-line patterns against full file content
  6. Skip lines over 2000 chars (ReDoS protection)
  7. Compute SHA-256 content hash for TOCTOU verification
  8. Assign risk level: safe → low → medium → high → critical
  9. Gate installation based on risk level

Additional Safety Guards

  • Path traversal prevention on skill names and filenames
  • SSRF prevention — only github.com URLs accepted
  • npm install --ignore-scripts blocks postinstall attacks
  • Max 50 files, 512KB per file, 2MB total size limit
  • Content hash for TOCTOU (time-of-check-to-time-of-use) verification
  • Output sanitization — strips zero-width Unicode and bidi overrides
  • 15-minute scan cache with 100-entry LRU eviction
  • fs.watch startup verification with debounced re-scanning