Skills Development Harness MCP Static Security Scan

Harness MCP Static Security Scan

v20260927
harness-mcp-scan
This tool performs static security scanning of declared MCP surfaces using the `harness mcp-scan` command. It reads configuration files like `.mcp/servers.json` and `.harness/claims.json` without executing any tools. The tool flags policy, permission, and dependency issues, exiting with code 1 if findings meet the specified severity threshold. It supports CI integration and graceful degradation when the harness binary is unavailable.
Get Skill
311 downloads
Overview

Calls harness mcp-scan to enumerate every declared MCP server + tool
and flag policy / permission / dependency issues. Never executes any
tool; pure static analysis.

Algorithm

Implementation: scripts/mcp-scan.mjs.

  1. Invoke the pinned harness binary (metaharness@~0.4.1, resolved from a

local install or the one-time ~/.ruflo/metaharness-cache-<pin> cache —
never @latest): harness mcp-scan <path> --json.

  1. Parse findings[] with { severity, id, server, tool, message }.
  2. --fail-on <severity>: exit 1 when any finding is at or above that

level. Default high.

  1. Output JSON (default) or markdown table.

Severity rank

SeverityRank
low1
medium2
high3

--fail-on high (default) only fails on HIGH; --fail-on medium also
fails on MEDIUM; --fail-on low fails on any finding.

CI integration

- name: MCP static scan
  run: node plugins/ruflo-metaharness/scripts/mcp-scan.mjs --fail-on high

The exit code is the only thing CI watches; the JSON output goes to
artifacts for human review.

Graceful degradation

When harness binary is unavailable (no network, blocked registry),
emits structured { degraded: true, reason: 'metaharness-not-available' }
and exits 0. Ruflo continues — ADR-150 architectural constraint.

Info
Category Development
Name harness-mcp-scan
Version v20260927
Size 1.68KB
Updated At 2026-09-28
Language