Skip to main content
Glama

Compuute MCP Security Scanner

scan_mcp_server

Scan a public GitHub MCP-server repository for security issues.

Clones the repo (shallow, <60s, <200 MB), runs compuute-scan v0.6.2 in
static analysis mode (no code execution from the target), and returns a
structured report with severity counts, a 0-100 score, and the 10 most
severe findings.

WHEN TO USE:
  - Before connecting to an unknown MCP server discovered via Anthropic
    Registry, Smithery, mcp.so, or a Discord recommendation.
  - Before installing a third-party MCP-server package into a production
    pipeline.
  - As part of an agent's pre-commit / pre-deploy due-diligence step
    when adding new dependencies.
  - As one input to a multi-source trust evaluation (combine with
    publisher reputation, package install count, last-update recency).

WHEN NOT TO USE:
  - For private repos. Use the on-prem CLI instead:
      `npx compuute-scan ./path-to-private-repo`
  - For deep exploitability assessment of a specific code path. This is
    pattern matching, not dataflow analysis. Book a manual L2-L4 audit
    at https://compuute.se/audit for that depth.
  - For non-GitHub hosts (GitLab, Bitbucket, self-hosted). v1 supports
    github.com only.
  - For repos > 200 MB or clone time > 60s. The endpoint returns a 413
    or 504 in those cases — fall back to local CLI.

EXPECTED RESPONSE TIME:
  - Median: ~1-2 seconds for small repos (<100 files).
  - p99: ~10 seconds for medium repos.
  - Hard timeout at clone=60s, scan=120s combined.

EXPECTED COST:
  - Free tier in MVP. Future Pro tier may charge per-scan or per-month.

DATA FRESHNESS:
  - Scanner version is reported in response.scanner.version.
  - L1 rule set freshness reflects compuute-scan releases — see
    github.com/Compuute/compuute-scan/CHANGELOG.md for the latest CVE
    and threat-intel response timeline.

EXAMPLES:

  Example 1 — scan an MCP server you're evaluating:
    github_url = "https://github.com/modelcontextprotocol/servers"
    → score: 0, summary: {critical: 1, high: 94, medium: 22}
    → top_findings include SSRF, eval, etc.
    → recommendation: "AVOID — 1 critical and 94 high finding(s)..."

  Example 2 — scan a clean reference implementation:
    github_url = "https://github.com/microsoft/azure-devops-mcp"
    → score: 90+, summary: {critical: 0, high: 1}
    → recommendation: "REVIEW — 1 high finding(s)..."

  Example 3 — scan your own dev MCP-server before publishing:
    github_url = "https://github.com/yourorg/your-mcp"
    → audit your own surface before others install it

OUTPUT FIELDS (stable schema):
  - repo_url (str): canonical URL of the scanned repo.
  - score (int): 0-100, higher safer. Coarse summary, not a precision claim.
  - summary (object): {critical, high, medium, low, info, files_scanned}.
  - recommendation (str): action guidance derived from severity counts.
  - findings_count (int): total raw findings (may include false positives).
  - top_findings (list): up to 10 most severe, each with {id, title,
    severity, file, line, owasp, cwe}.
  - l0_discovery (object): MCP transport, tool count, dependency pinning.
  - performance (object): clone_seconds, scan_seconds, repo_size_bytes.
  - scanner (object): {name, version, layers_covered}.
  - _disclaimer (str): MANDATORY triage disclaimer. Read it.

Args:
  github_url: Public GitHub HTTPS URL (e.g. https://github.com/org/repo).
              Must be public and < 200 MB. v1 is github.com only.

Returns:
  Structured scan result. On error, returns {"error": code, "message": ...}
  with HTTP-style code (invalid_url, clone_failed, scan_timeout, etc.).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
github_urlYes

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations present, the description fully discloses all behavioral traits: it clones shallowly (<60s, <200MB), runs static analysis (no code execution), returns a structured report including severity counts, score, and top findings. It also covers expected response time, cost, data freshness, and limitations (pattern matching, not dataflow analysis).

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 description is well-structured with labeled sections (WHEN TO USE, WHEN NOT TO USE, EXPECTED RESPONSE TIME, etc.), making it easy to scan. However, it is relatively long; while every section adds value, a slight reduction in examples or output field details could improve conciseness without losing clarity.

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 the tool's complexity (public repo cloning, static analysis, and reporting) and the absence of output schema or annotations, the description covers all necessary aspects: inputs, process, outputs (including full field list with types), error handling (413/504), examples, and even a disclaimer. No gaps are evident.

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

Parameters5/5

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

The single parameter `github_url` is given a complete semantic explanation in the description: required format ('Public GitHub HTTPS URL'), constraints ('public and <200 MB'), and usage scope ('v1 is github.com only'). This adds essential meaning beyond the schema's mere string type, compensating for the 0% schema description coverage.

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 begins with a specific action verb ('Scan') and a clearly defined resource ('public GitHub MCP-server repository'), immediately establishing the tool's core purpose. It distinguishes itself from alternatives like the on-prem CLI for private repos, and the scope is unambiguous.

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 includes dedicated 'WHEN TO USE' and 'WHEN NOT TO USE' sections with concrete scenarios (e.g., before connecting to unknown servers, pre-commit steps) and explicit exclusions (private repos, non-GitHub hosts, repos >200 MB). It also names a direct alternative (on-prem CLI) for disallowed use cases.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.9/5.0
Disambiguation5/5

Only one tool exists, so there is no ambiguity. The tool is clearly described with specific use cases and limitations.

Naming Consistency5/5

The single tool name 'scan_mcp_server' follows a consistent verb_noun pattern, which is clear and descriptive.

Tool Count4/5

One tool is appropriate for a focused security scanner. While additional tools like listing past scans could enhance coverage, the current count is reasonable for the stated purpose.

Completeness5/5

The tool fully covers its intended domain: scanning public GitHub MCP-server repos for security issues. The description explicitly states what it does and does not do, leaving no obvious gaps.