Wraps the evolveguard CLI as a single generic MCP tool for agent-skill file safety checks.
MCPpedia last refreshed this data
io.github.RudrenduPaul/evolveguard is an MCP server that wraps the evolveguard CLI as a single generic MCP tool for agent-skill file safety checks. Its tool list has not been published yet over stdio and sse, requires no API key, and scores 90/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"io-github-rudrendupaul-evolveguard": {
"args": [
"-y",
"vitest"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Catch behavioral drift when a Claude Agent Skill or a Claude Code MEMORY.md file edits itself, before the edit ships.
Run this in your terminal to verify the server starts. Then let us know if it worked — your result helps other developers.
npx -y 'vitest' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories — click any category to see the underlying evidence.
When Vitest UI server is listening, arbitrary file can be read and executed
### Summary Arbitrary file can be read on Windows when Vitest UI server is listening, especially when exposed to the network. ### Impact Only users that match either of the following conditions are affected: - explicitly exposes the Vitest UI server to the network (using `--api.host` or [`api.host` config option](https://vitest.dev/config/api.html)) - running the Vitest UI or Browser Mode on Windows ### Details The API handler for `/__vitest_attachment__` uses the deprecated `isFileServingAll
Vitest allows Remote Code Execution when accessing a malicious website while Vitest API server is listening
### Summary Arbitrary remote Code Execution when accessing a malicious website while Vitest API server is listening by Cross-site WebSocket hijacking (CSWSH) attacks. ### Details When [`api` option](https://vitest.dev/config/#api) is enabled (Vitest UI enables it), Vitest starts a WebSocket server. This WebSocket server did not check Origin header and did not have any authorization mechanism and was vulnerable to CSWSH attacks. https://github.com/vitest-dev/vitest/blob/9a581e1c43e5c02b11e2a8026
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in other
Transport for TMCP using STDIO
The graph based agentic IDE
Compress tool outputs, logs, files, and RAG chunks before they reach the LLM. 60-95% fewer tokens, same answers. Library, proxy, MCP server.
Buddhist canon tools: search, passages, cross-canon parallels, dictionaries — all URN-cited.
MCP Security Weekly
Get CVE alerts and security updates for io.github.RudrenduPaul/evolveguard and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
What it does • Quickstart • CLI reference • Agent-native usage • MCP server • How it compares • FAQ
Catch behavioral drift when a Claude Agent Skill or a Claude Code MEMORY.md file edits itself, before the edit ships.

# PyPI -- Python CLI + library (genuine port, not a Node wrapper)
pip install evolveguard-cli
# npm -- JavaScript/TypeScript CLI + library
npm install -g evolveguard-cli
[!NOTE] Both packages are live and named consistently:
evolveguard-clion PyPI andevolveguard-clion npm (renamed 2026-07-19 from the old plainevolveguard, which is now deprecated on both registries).npm install -g evolveguard-cliandpip install evolveguard-cliboth work today; the demo GIFs below were recorded against the published packages, not a local build.
evolveguard record ./SKILL.md --fixtures ./fixtures.json
# ... skill gets edited, by a human or an agent ...
evolveguard check ./SKILL.md
EvolveGuard v0.1.4 -- Regression Check
skill: monorepo-scanner baseline: 2026-07-15 fixtures: 1
[DRIFT] fixture: "scan a monorepo" new tool call: fs.write (baseline had none)
-> new tool call: fs.write (baseline had none) -- this edit introduces a
capability the baseline never used
0 PASS, 1 DRIFT, 0 FAIL
exit code 1 (DRIFT blocks merge by default; override with --allow-drift)
That's real output from this repo's own fixtures/labeled-non-breaking-edits/case-03-add-write-capability/
test case, wired to filesystem: read-only becoming read-write in the skill's frontmatter.
Reproduce it yourself: evolveguard record the before/SKILL.md in that folder against its
fixtures.json, then evolveguard check the after/SKILL.md.

Static analysis, not a live agent run. record parses a skill file's YAML
frontmatter (declared tools, network, filesystem, scope, and any bundled
hooks), scans the skill's body text and hook scripts for evidence of network calls
or filesystem writes, and combines both into a capability surface. check re-parses
the edited file with the same logic and diffs the result. Neither command runs
eval, shells out to a subprocess, or executes a skill's hook scripts, in either the
TypeScript or the Python distribution.
Two-level diffing catches drift a single fixture can miss. Each fixture's
expectedToolCalls filters the recorded capability surface down to what that fixture
cares about, but check also diffs the skill's whole capability surface separately.
A new capability that no fixture's expectedToolCalls happens to cover still shows