What the evolveguard MCP server does
The evolveguard MCP server is intended to let an AI coding agent request safety checks for Claude Agent Skills and Claude Code MEMORY.md files. Its underlying CLI records a baseline from a skill file and labeled fixtures, then checks an edited version for behavioral drift.
The analysis is static. It reads YAML frontmatter fields such as declared tools, network access, filesystem permissions, scope, and hooks. It also scans the skill body and hook scripts for evidence of network activity or filesystem writes. The resulting capability surface combines declared and inferred behavior without running the skill, invoking eval, starting subprocesses, or executing hook scripts.
How it works
A typical workflow has two stages. First, record analyzes a skill and an optional fixtures JSON file, writing .evolveguard-baseline.json. After the file changes, check compares the edited file with that baseline and writes a report. Drift normally produces a nonzero exit status, which allows a pre-commit hook or CI job to block the change.
Fixtures can identify prompts and expected tool-call shapes. When expectedToolCalls is present, the check evaluates the capabilities relevant to that fixture. It also compares the complete capability surface separately, so a new or widened capability can be reported even when no fixture explicitly covers it. JSON output includes a stable, schemaVersion-tagged structure for programmatic consumers.
Tools and capabilities
The evolveguard MCP server corresponds to three CLI operations documented by the project:
record creates a golden-transcript baseline for a skill and its fixtures.
check re-analyzes the current file and reports fixture-level and surface-level drift.
report prints an existing evolveguard-report.json file.
Both the npm TypeScript package and the PyPI Python package implement the same frontmatter format and produce compatible baseline and report JSON. Hook paths are checked against the skill directory, including a symlink-escape validation after lexical containment checks. The CLI supports --json for all three operations.
Setup and configuration
The repository documents installation through either npm install -g evolveguard-cli or pip install evolveguard-cli. Node.js 20.12 or newer is indicated for the Node distribution. A fixtures file is a JSON array containing an id, a prompt, and optional expectedToolCalls; scopeMatches can narrow a filesystem expectation to a glob such as ./workspace/**.
The supplied material does not document MCP transport configuration, a server command, an MCP manifest, or environment variables. It identifies the mcp CLI subcommand as coming soon, so developers should verify the repository's current implementation before depending on MCP-specific setup.
Limitations and notes
The evolveguard MCP server does not replay a live LLM conversation or predict how an agent will respond to a prompt. It detects changes in what a skill declares or shows itself capable of doing. The labeled benchmark described in the README contains two non-breaking and three breaking examples, so its reported false-positive result applies only to that small corpus. The tool runs locally and does not require hosted infrastructure.