Skip to main content
Glama

SkillTriage

Server Details

Scan AI agent skills, MCP server packages and MCP configs before you install them. Static analysis.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.3/5.0

Scored across 4 tools

Disambiguation4/5

The four tools target distinct inputs: a catalogue query by name, a pasted config, a published package, and a single skill file. The main risk is lookup_verdict versus scan_package, since both are about a package, but the descriptions clearly separate a cached verdict lookup from a fresh download-and-scan.

Naming Consistency5/5

All names follow a clean snake_case verb_noun pattern (lookup_verdict, scan_mcp_config, scan_package, scan_skill). The shared 'scan_' prefix for the three analysis tools reinforces the distinction between them and the lookup tool.

Tool Count4/5

Four tools is on the lean side but each covers a genuinely different artifact (verdict catalogue, config, package, skill). Nothing feels redundant or bloated for a triage-focused server.

Completeness4/5

The surface covers the core triage paths: checking an existing verdict, scanning a package, a config, and a skill file, with a clear verdict taxonomy and permalinks. Minor gaps include no batch/multi-package scan or an explicit tool to fetch the reputation feed, though agents can work around these.

Available Tools

4 tools
lookup_verdictLook up a published MCP server verdictA
Read-onlyIdempotent
Inspect

Look up the verdict the public catalogue has published for an MCP server package on npm or PyPI. Returns found:false when the catalogue has no published verdict for that name; that is not a clean result. Nothing is downloaded or scanned. This request names the package to the server; to match without naming it, download /api/reputation-feed.json and match on your side.

NameRequiredDescriptionDefault
nameYesThe package name
versionNoOptional: the version you plan to install; the reply says whether the published verdict is for it
ecosystemYesThe package registry

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the read-only, idempotent, non-destructive annotations, the description discloses important behavior: found:false means no published verdict rather than a clean result, nothing is downloaded or scanned, and the request names the package to the server. That last point gives useful privacy/behavior context not covered by annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the critical found:false caveat are front-loaded, and the alternative feed approach is relevant. The description is appropriately sized, though the final sentence is somewhat dense and could be split more cleanly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only lookup with strong annotations and full schema coverage, the description covers the key semantics: what is looked up, what found:false means, and that no scanning occurs. It does not describe the shape of a positive verdict result, which is the main remaining gap in the absence of an output schema.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the package name, optional version, and ecosystem enum. The description reinforces that the request names a package but adds little parameter-level detail beyond the existing 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 states a specific verb and resource: looking up a published catalogue verdict for an MCP server package on npm or PyPI. It also distinguishes this from scanning by saying nothing is downloaded or scanned, which separates it from the scan_* siblings.

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?

It clearly establishes the lookup context and gives an explicit alternative for matching without naming the package: downloading /api/reputation-feed.json. It also warns that found:false is not a clean result, but it does not explicitly name sibling tools or state all cases where a scan tool should be used instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_mcp_configCheck an MCP client configA
Read-onlyIdempotent
Inspect

Check a pasted MCP client config (.mcp.json, claude_desktop_config.json, mcp.json, Codex config.toml). Reports each npm or PyPI launch by its position and how its version is pinned (exact, @latest, a tag or range, none), flags releases on the known-compromised list, and runs static analysis over the text. Server names, package names, arguments, env and header values are never returned or stored; remove secrets before sending anyway. Static analysis only; nothing is run or fetched. Returns a verdict (CLEAN, CAUTION, REVIEW, DO-NOT-INSTALL or NAME-NOT-PUBLISHED), the pinning advice and a permalink.

NameRequiredDescriptionDefault
textYesThe config file's text
filenameNoThe config's filename, ending in .json or .toml (default .mcp.json)

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds substantial context: what is never returned or stored (server names, package names, arguments, env and header values), that analysis is static with nothing fetched or run, and the exact verdict set it can return. That is exactly the value-add beyond structured fields the dimension rewards.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense and front-loaded, leading with the check and its accepted inputs before the privacy and verdict details. A few clauses are packed tightly with semicolons, but every sentence carries information an agent needs.

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?

No output schema exists, and the description compensates by naming the verdict values and mentioning the pinning advice and permalink that come back. Combined with the two-parameter schema and full annotation coverage, nothing essential is missing.

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?

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by enumerating the recognized config filenames (.mcp.json, claude_desktop_config.json, mcp.json, config.toml) and by framing the text parameter around pasted config content, which helps the agent pick the right filename value.

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?

States a specific verb and resource ('Check a pasted MCP client config') and enumerates the concrete file types it accepts (.mcp.json, claude_desktop_config.json, mcp.json, Codex config.toml). This clearly separates it from scan_package, which deals with packages rather than config text.

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?

Gives clear usage context: paste config text, remove secrets first, and it is static-only so nothing is run or fetched. It does not explicitly name scan_package or lookup_verdict as alternatives or state when to prefer them, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_packageScan an MCP server or skill packageA
Read-onlyIdempotent
Inspect

Download one published package and run static analysis on its code with MoorAI's open-source engine. npm and PyPI packages also get ten MCP pre-install checks on their registry metadata, a reputation score and a known-compromised release check. Static analysis only: the package is never installed and the server is never run. Returns a verdict (CLEAN, CAUTION, REVIEW, DO-NOT-INSTALL or NAME-NOT-PUBLISHED), content-free findings (threat ids, categories, file paths, hashes; never file contents) and a permalink. The package name and version are sent to its registry. A completed analysis is reused for 24 hours; a new one can take a minute and runs one at a time.

NameRequiredDescriptionDefault
refYesnpm:<name>[@version], pypi:<name>[==version] or github:<owner>/<repo>/<path>[@ref] (a folder, not a whole repository)

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent/openWorld annotations: it discloses that nothing is installed or run, that the package name and version are sent to its registry, that results are cached for 24 hours, that a fresh scan takes about a minute and runs one at a time, and that findings are content-free (ids, paths, hashes only).

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?

Front-loaded with the core action, then safety posture, return shape, external side effects, and caching. Every sentence carries distinct information with no restatement of the title or schema.

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?

With no output schema, the description still enumerates the verdict values, the finding fields, and the permalink, and covers latency, rate limits, and data-sharing. An agent has everything needed to call it and interpret the result.

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

Parameters3/5

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

Schema coverage is 100% for the single ref parameter, so the schema already documents the accepted syntax. The description adds only the framing that the ref must resolve to a published package, which is useful but marginal against a fully documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource: 'Download one published package and run static analysis on its code.' The ref formats (npm/pypi/github) and the phrase 'one published package' implicitly separate it from scan_skill and scan_mcp_config, but no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the described scope ('one published package', static analysis only), and the 24-hour reuse note hints at repeat-call behavior. However, the description never states when to prefer this over lookup_verdict or scan_skill, nor any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scan_skillScan an agent skill fileA
Read-onlyIdempotent
Inspect

Scan one agent skill or instruction file (SKILL.md, AGENTS.md, a tool.json, any text file) with MoorAI's open-source engine. Static analysis only; nothing is run. The text is written to a temporary directory, scanned and deleted; only its hash, the verdict and content-free findings are kept. Returns a verdict (CLEAN, CAUTION, REVIEW, DO-NOT-INSTALL or NAME-NOT-PUBLISHED), the findings and a permalink.

NameRequiredDescriptionDefault
textYesThe file's text
filenameNoThe file's name, which sets how it is analysed (default SKILL.md)

TDQS

A4.9/5.0
Behavior5/5

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

The description goes far beyond the 'readOnlyHint' by detailing the execution behavior, such as writing files to a temporary directory and deleting them after scanning. It also lists the specific possible verdicts, providing comprehensive behavioral context.

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?

The description is extremely dense and efficient, successfully combining the tool's scope, operational mechanism, safety guarantees, and expected outcomes into a single, logical paragraph without unnecessary filler.

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?

Given that the output is not fully structured in a schema, the description provides all necessary context by detailing the expected return components: a verdict from a defined set (e.g., CLEAN, CAUTION), the findings, and a permalink.

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?

While schema coverage is 100%, the description adds crucial semantic meaning to the 'filename' parameter, clarifying that it 'sets how it is analysed (default SKILL.md)', which aids agent decision-making regarding optional arguments.

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 purpose is explicitly stated: to scan agent skill or instruction files. It clearly defines the resource (skill/instruction files) and its function (static analysis), making its distinction from package or configuration scanning tools immediately clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides critical usage guidelines by stating that the analysis is 'Static analysis only; nothing is run.' It also specifies which file types are acceptable (e.g., SKILL.md, tool.json), which prevents misuse.

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.

  1. 4 tool updates
    • First observedlookup_verdict
    • First observedscan_mcp_config
    • First observedscan_package
    • First observedscan_skill

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Local-first security scanner for AI agent skills, plugins, hooks and MCP servers. Read-only, offline tools to scan a skill or MCP server before installing it, audit the installed setup and review proxy pins.
    5
    498 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Security scanner for third-party AI agent-skill files: SKILL.md manifests, hooks, and bundled scripts, exposed via an MCP tool.
    1
    54 npm
    3
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources