wardcat-mcp
wardcat-mcp is a local, privacy-preserving server that detects and anonymizes PII in text, acting as an on-premise guardrail for AI agents and pipelines.
scan(text, entities?): Detect PII in text and receive a sanitized version along with a PII-free summary of violations (entity types, actions taken, confidence scores). Optionally narrow detection to specific entity types (e.g.,EMAIL,IBAN).redact(text, action, entities?): Detect and anonymize PII using one of four actions:redact— removes the value entirely (e.g.,[EMAIL])mask— keeps a partial hint (e.g.,b***@acme.com)hash— replaces with a stable salted pseudonym (e.g.,[EMAIL:3245e00b…])warn— leaves text untouched but reports what was found
is_sensitive(text): Use an on-premise LLM to holistically determine whether text contains sensitive information — useful as a gate before forwarding text to external services.server_info(): Query the server to discover enabled entity types, the default anonymization action, valid actions, and whether the NER and LLM layers are active — allowing agents to self-configure without trial and error.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@wardcat-mcpscan this: 'My SSN is 123-45-6789'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
wardcat-mcp
An MCP server that exposes wardcat's on-prem PII detection and anonymization as tools any agent can call — Claude Desktop, Cursor, a self-hosted bot, a RAG pipeline. Use it as a guardrail: sanitize inputs before they reach an LLM, or gate them with a semantic "is this sensitive?" check.
Runs locally, stays local. The server runs on your machine over stdio; the text, the models, and all detection stay on-prem — nothing is sent anywhere. Publishing this package ships code you run yourself, not a hosted service.
Tools
Tool | Description |
| Detect PII and return the sanitized text plus a PII-free summary — entity types, actions, confidence. The summary never carries raw values; |
| Like |
| Holistic LLM yes/no on whether the text contains sensitive information. Requires the LLM layer ( |
| Report the enabled entity types, the default action, and whether the NER / LLM layers are active — so an agent can discover capabilities without trial and error. |
All tools return structured output (a typed schema, not a JSON string) and are annotated read-only.
Threat model — what this protects. wardcat-mcp guards what leaves the agent: it sanitizes text before it is logged, stored, or forwarded to a downstream API. It does not hide anything from the host LLM that is orchestrating the tool call — by the time a model invokes
scan, it has already read the raw text (and it may be retained in that provider's context or logs). To filter text before it reaches any LLM, call the wardcat library in-process instead.
Related MCP server: MCP Presidio
Install & run
Not published to PyPI — run it straight from the repository (its wardcat dependency does come from PyPI, so this needs no other source):
# Run directly from GitHub, no install:
uvx --from git+https://github.com/oguzhantopcu0/wardcat-mcp.git wardcat-mcp
# from a local clone:
uv run wardcat-mcp
# with the SpaCy NER layer (PERSON/ORG/ADDRESS), from a clone:
uv run --extra ner wardcat-mcpDocker
The server talks over stdio, so run the container interactively (-i):
docker build -t wardcat-mcp .
docker run -i --rm -e WARDCAT_SALT=your-secret wardcat-mcp
# with the SpaCy NER layer:
docker build --build-arg EXTRAS='[ner]' -t wardcat-mcp:ner .In an MCP client, point command at docker with args ["run", "-i", "--rm", "-e", "WARDCAT_SALT=your-secret", "wardcat-mcp"].
Add it to an MCP client
Claude Desktop (claude_desktop_config.json), Cursor, Cline, Zed, etc.:
{
"mcpServers": {
"wardcat": {
"command": "uvx",
"args": ["--from", "git+https://github.com/oguzhantopcu0/wardcat-mcp.git", "wardcat-mcp"],
"env": {
"WARDCAT_SALT": "your-secret-salt",
"WARDCAT_ACTION": "redact",
"WARDCAT_LLM_MODEL": "llama3.2:3b"
}
}
}
}Configuration (environment variables)
Var | Default | Meaning |
|
| Hashing salt (required for the |
| broad structural + name set | Comma-separated entity types to enable. |
|
|
|
| — | Enable SpaCy NER with this model (needs the |
| — | Enable the on-prem LLM layer via Ollama (e.g. |
|
| Ollama endpoint. |
Development
uv sync --dev
uv run pytest # deterministic, regex-only — no models or network needed
uv run ruff check .
uv run mypy srcDisclaimer
wardcat is a best-effort PII detector — it does not catch everything and is not legal advice or a substitute for compliance review (e.g. GDPR/KVKK). Validate it against your own data. Provided "as is" (MIT).
License
MIT — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- Alicense-qualityCmaintenanceAn MCP proxy that pseudo-anonymizes PII before data reaches external AI providers like Claude, ChatGPT, or Gemini.17MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables LLMs to detect and anonymize over 25 types of Personally Identifiable Information (PII) using Microsoft Presidio. It supports various redaction strategies and can process both plain text and structured data to help ensure data privacy.10MIT
- Flicense-qualityDmaintenanceMCP server for automatic detection and redaction of PII in text, with anonymization and deanonymization capabilities, all local processing.1
- Alicense-qualityDmaintenanceA local, containerized MCP server that uses a local LLM to sanitize documents by removing or transforming PII before content is sent to public LLM services.MIT
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.
MCP server connecting AI agents to non-custodial staking data across 130+ networks.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/oguzhantopcu0/wardcat-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server