SkillTotal
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SKILLTOTAL_WORKERS | No | Processes a large scan uses (1 for one) | up to 4 |
| SKILLTOTAL_MAX_CLONE_MB | No | Largest git working tree cloned | 200 |
| SKILLTOTAL_CLONE_TIMEOUT | No | Seconds a git clone may take | 300 |
| SKILLTOTAL_MAX_ARCHIVE_MB | No | Largest archive downloaded or read | 150 |
| SKILLTOTAL_MAX_EXTRACT_MB | No | Largest total size an archive may extract to | 400 |
| SKILLTOTAL_MAX_READABLE_MB | No | Most text a scan reads | same as clone |
| SKILLTOTAL_MAX_ARCHIVE_MEMBERS | No | Most entries an archive may hold | 30000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| scan_componentA | Statically scan an AI component (agent skill, MCP server, npm/PyPI package, repository, local path or archive) for supply-chain risks, dangerous capabilities, prompt-injection surfaces, and exfiltration paths. Use this BEFORE installing or trusting a component. The scan is local, deterministic, and never executes the component's code. A local path is read in place; a git URL or npm:/pypi:/vscode:/openvsx: source is downloaded to a temp folder that is removed afterwards. A source over the size limit is refused with an error naming the setting that raises it. Decide on the verdict (level, headline, has_malicious_indicators), not on the number of findings: a finding whose threat_class is "capability" is something the component can do (run commands, read files, reach the network) and adds no risk; malicious_indicator and risky_construct findings are what the verdict and score rest on. Not checked: the code of the component's dependencies, known vulnerabilities (CVEs), and runtime behaviour. The default summary is a JSON object: component, verdict {level, headline, has_malicious_indicators}, decision (one line), risk_score, risk_level, why [{rule, threat_class, severity, title, evidence ["file:line snippet"]}] (risk findings first), capabilities [names], counts {findings_by_threat_class, needs_review}, check_manually [notes to read], not_checked [what this scan does not cover], engine {version, ruleset}. Pass detail="full" for the complete report. |
| diff_componentsA | Compare two versions of a component and report what changed. Use for upgrade reviews (is the new version riskier than the one already vetted?). Both sides accept the same sources as scan_component. The default summary gives each side's verdict, the verdict change, the risk-score delta, new and removed risk findings (in scan_component's why shape) and capability changes; detail="full" returns the complete diff with every new/resolved/changed finding. Decide on the verdict (level, headline, has_malicious_indicators), not on the number of findings: a finding whose threat_class is "capability" is something the component can do (run commands, read files, reach the network) and adds no risk; malicious_indicator and risky_construct findings are what the verdict and score rest on. Not checked: the code of the component's dependencies, known vulnerabilities (CVEs), and runtime behaviour. |
| list_rulesA | List SkillTotal detection rules: id, severity, category, title, threat class and capability. Use it to look up a rule id from a scan_component or diff_components result, or to see what SkillTotal checks before scanning. It reads the rule list bundled with this engine: offline, instant, no side effects. With no arguments it returns every rule. ids and query narrow the list and combine (a rule must match both); no match returns an empty array []. Pass verbose=true for each rule's description and recommendation. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 3 tools
Each tool has a clearly distinct purpose: scan_component evaluates one component, diff_components compares two versions, and list_rules looks up detection rules. There is no meaningful overlap in action or output, and the descriptions explicitly clarify when to use each.
All tool names follow a consistent snake_case verb_noun pattern: scan_component, diff_components, list_rules. The verbs accurately reflect the operations and no mixed conventions are present.
Three tools is a focused and coherent surface for a security scanning server, with each tool earning its place. It is slightly thin, as additional operations like batch scanning or report retrieval might be expected, but nothing feels extraneous.
The surface covers the core lifecycle: scanning a component, comparing versions, and inspecting rules behind findings. Minor gaps exist, such as no batch scanning, scan history, or direct export of reports, but these are workaroundable and not central to the stated purpose.