skilllint — vet an agent skill before you install it
RemoteAbout skilllint — vet an agent skill before you install it
skilllint is an MCP service that checks agent skill files (SKILL.md) locally, for people vetting structure, triggers, and risks before installation. Its verdict is tied to the file’s SHA-256 hash, supporting later verification of the checked artifact.
Key features
- 01Checks SKILL.md structure and metadata
- 02Detects secret-shaped literals and injection markers
- 03Finds dead instructions and missing file references
- 04Compares multiple skill candidates
- 05Returns verdict, score, hash, and findings
Use cases
- 01Inspect an unfamiliar agent skill before installation
- 02Screen skill files for secrets or injection risks
- 03Compare skill candidates from different registries
MCP support
skilllint provides the lint_skill, compare_skills, and lint_rules MCP tools. It can run over stdio or Streamable HTTP and also lists a hosted MCP endpoint.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://rta.lat/skilllint/mcpclaude mcp add --transport http lat-rta-skilllint https://rta.lat/skilllint/mcp{"mcpServers":{"lat-rta-skilllint":{"type":"http","url":"https://rta.lat/skilllint/mcp"}}}Open in Cursor{"servers":{"lat-rta-skilllint":{"type":"http","url":"https://rta.lat/skilllint/mcp"}}}Open in VS Code{"mcpServers":{"lat-rta-skilllint":{"type":"http","url":"https://rta.lat/skilllint/mcp"}}}{"mcpServers":{"lat-rta-skilllint":{"serverUrl":"https://rta.lat/skilllint/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEskilllint
Private lint of agent skills (SKILL.md). Nothing leaves the machine.
Existing scanners (for example NVIDIA SkillSpector - 71 patterns, AST, YARA, CVE lookup) answer "is this artifact dangerous", and they ship the inspected content to their provider. We do something narrower and complementary:
- privacy - the check runs locally; only a verdict, a score and a hash go out;
- reproducibility - the verdict is bound to a sha256 of the file, so it can be signed and verified later;
- comparison - rank several candidates from different registries instead of scanning one artifact at a time.
Rules
| id | severity | check |
|---|---|---|
| R-001 | critical | frontmatter missing |
| R-002 | high | name missing or invalid |
| R-003 | high | description missing or too long |
| R-004 | medium | no trigger ("when to use") in description |
| R-005 | medium | dead instructions (TODO / deprecated / placeholder) |
| R-006 | critical | secret-shaped literals |
| R-007 | critical | prompt-injection / exfiltration markers |
| R-008 | medium | references to files that do not exist |
| R-009 | low | file larger than 60 KB |
| R-010 | high | world-writable scripts |
| R-011 | medium | unbounded autonomy instructions |
Verdict: PASS (>=80, no critical) | WARN | FAIL (any critical).
Use it
python3 mcp_server.py # stdio
python3 mcp_server.py --http 8191 # streamable http
npx -y mcp-remote https://rta.lat/skilllint/mcp # hosted
Tools: lint_skill(path) | compare_skills(paths) | lint_rules()
Signed verdicts
lint_skill returns {verdict, score, sha256, findings[]}. That hash is what attest signs and drift enforces as an allowlist - see Verified Tool Registry.
Locales: en, hi. India (Bharata) is supported from day one; legal claims require official sources, otherwise report pending.
License: MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.