Scans datasets/models for PII/secrets, redacts, and packages a public-release bundle via MCP.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Install β’ Quickstart β’ CLI reference β’ Library API β’ Comparison β’ FAQ
Scan a dataset or model directory for PII and secrets with Presidio, redact what you find, and generate a public-release bundle, a Hugging Face dataset/model card plus an EU AI Act Art. 53(1)(d) training-data summary, in one command.
ReleaseGuard is not a PII detector. It's the glue between "I have a dataset I want to publish" and "I have a sanitized bundle with the paperwork already drafted." Detection is entirely Presidio's, an actively maintained open-source project with 10,000+ GitHub stars. ReleaseGuard chains Presidio's scan straight into redaction and into the two documents almost every public dataset/model release actually needs, instead of you writing a script to do it yourself.
en_core_web_sm is spaCy's small English model and Presidio's own quickstart default. For higher-accuracy detection, install the larger model instead and pass --spacy-model:
This is a real, unedited run against a two-row sample CSV, not a mockup:
That URL: 3 line is a real Presidio quirk worth calling out rather than hiding: its regex-based URL recognizer also fires on the domain portion of an email address (example.com inside alice.rivera@example.com), so email-heavy text double-counts as both EMAIL_ADDRESS and URL. This is Presidio's own recognizer behavior, unmodified, and it's worth noting entity counts can shift slightly between Presidio/spaCy versions since detection is NLP-based, not a fixed lookup table (this run used presidio-analyzer 2.2.364 with en_core_web_sm 3.8.0). Filter it out with --entities if you only care about email addresses:

Redact, then package a release bundle in one command:
bundle/eu-ai-act-training-summary.md opens like this, real scan counts filled in, everything else left as an explicit placeholder for a human to complete:
--json on every command switches to machine-readable output for scripts and agents.

| Command | Purpose |
|---|---|
scan PATH | Scans a file or directory (CSV, JSON/JSONL, plain text) with Presidio. --entities, --score-threshold, --spacy-model, --json. |
redact PATH --output DIR | Scans, then writes a redacted copy to DIR. Never touches PATH. --strategy mask|hash|remove, --overwrite. |
package PATH --output DIR | Scans (and by default redacts first), then writes a Hugging Face dataset/model card plus the EU AI Act Art. 53(1)(d) summary to DIR. --kind dataset|model|both, --redact-first/--no-redact-first. |
mcp | Starts an MCP server (stdio) exposing scan_directory_tool, redact_directory_tool, package_release_tool. Requires pip install "releaseguard-cli[mcp]" on Python 3.10+. |
Every command supports --json. Full flag reference: releaseguard <command> --help.
PIIDetector (releaseguard.detectors.base) and FileReader (releaseguard.readers.base) are the two extension points. Presidio is currently the only detector shipped; CSV, JSON/JSONL, and plain text are currently the three readers shipped. Both are registries, not hardcoded calls, specifically so a new format or a second detection backend is a scoped addition later. See CONTRIBUTING.md.
ReleaseGuard ships a Model Context Protocol server so an AI agent (Claude, Cursor, or any MCP-compatible client) can scan, redact, and package a dataset or model directory directly, without a human invoking the CLI by hand.
Install the extra:
Start it directly with the mcp subcommand:
Add it to your MCP client's config (for Claude Desktop, claude_desktop_config.json). The server
is started via a subcommand of the published releaseguard console script, not a separate
console script of its own:
Transport is stdio, so there is nothing to host: the MCP client spawns the server as a local
subprocess. Source: src/releaseguard/mcp_server.py.
The server exposes three tools, each returning the same JSON shape as the matching CLI --json
output:
| Tool | Purpose |
|---|---|
scan_directory_tool(path, spacy_model=None, score_threshold=0.35) | Scan a directory for PII and secrets with Presidio. |
redact_directory_tool(path, output, strategy="mask", overwrite=False) | Scan, then write a redacted copy to output. Never mutates path. strategy is "mask", "hash", or "remove". |
package_release_tool(path, output, kind="dataset", redact_first=True, strategy="mask") | Scan, optionally redact, and write a release bundle (dataset/model card plus the EU AI Act Art. 53(1)(d) summary) to output. |
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/releaseguard)<a href="https://allmcps.com/mcp/releaseguard"><img src="https://allmcps.com/api/badge/releaseguard?style=directory" alt="Releaseguard on AllMCPs" /></a>