Skip to main content

Zero-egress PII protection for Claude AI workflows via MCP stdio

Project description

Ocultar PII Refinery — Claude MCP Extension

PyPI

mcp-name: io.github.Edu963/ocultar-pii

Zero-egress PII protection for Claude AI workflows. Runs entirely in your infrastructure — no data ever leaves your environment.

Tools

Tool Description
refine_text Redacts PII before sending text to Claude. Returns clean text + token map.
reveal_tokens De-tokenizes tokens back to plaintext (auditor-only, requires OCULTAR_AUDITOR_TOKEN).

Prerequisites

  • Ocultar Refinery running locally:
    docker compose -f docker-compose.community.yml up
    
  • Python 3.10+

Installation

pip install ocultar-claude-mcp

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "ocultar-pii": {
      "command": "ocultar-claude-mcp",
      "env": {
        "OCULTAR_URL": "http://localhost:8080",
        "OCULTAR_API_KEY": "your-api-key"
      }
    }
  }
}

Claude Code (CLI)

claude mcp add ocultar-pii -- ocultar-claude-mcp

Or add to .claude/settings.json:

{
  "mcpServers": {
    "ocultar-pii": {
      "command": "ocultar-claude-mcp",
      "env": {
        "OCULTAR_URL": "http://localhost:8080",
        "OCULTAR_API_KEY": "your-api-key"
      }
    }
  }
}

Environment Variables

Variable Required Description
OCULTAR_URL Yes URL of your local Ocultar Refinery (default: http://localhost:8080)
OCULTAR_API_KEY No Bearer token for Refinery auth
OCULTAR_AUDITOR_TOKEN No Enables reveal_tokens — must match OCU_AUDITOR_TOKEN on the server

Usage

Once connected, Claude will automatically call refine_text when you ask it to handle sensitive data. You can also ask explicitly:

"Refine this before processing: John Smith's email is john@example.com, SSN 123-45-6789"

Claude returns:

{
  "cleanText": "John [NAME_a1b2c3d4]'s email is [EMAIL_9c8f7a1b], SSN [SSN_3a1b2c4d]",
  "tokenMap": {
    "[NAME_a1b2c3d4]": "NAME",
    "[EMAIL_9c8f7a1b]": "EMAIL",
    "[SSN_3a1b2c4d]": "SSN"
  }
}

For authorized workflows that need to restore PII after AI processing:

"Reveal these tokens: [EMAIL_9c8f7a1b], [SSN_3a1b2c4d]"

This call is recorded in the immutable Ed25519-signed audit log.

Why Zero-Egress?

The Ocultar Refinery runs entirely on your machine. The MCP server communicates only with localhost — no telemetry, no cloud calls, no supply chain attack surface. If the Refinery is unreachable, both tools fail closed: raw PII is never forwarded.

Security Model

  • refine_text is safe to expose to any Claude session
  • reveal_tokens requires OCULTAR_AUDITOR_TOKEN and every call is logged with actor, timestamp, and Ed25519 signature in the audit trail
  • The Refinery's vault uses AES-256-GCM with HKDF-SHA256 key derivation — tokens are useless without the master key

License

Apache 2.0 — see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ocultar_claude_mcp-0.1.2.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ocultar_claude_mcp-0.1.2-py3-none-any.whl (16.6 kB view details)

Uploaded Python 3

File details

Details for the file ocultar_claude_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: ocultar_claude_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for ocultar_claude_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f07451804dd91fd72bf1592a35feb1f1e448f41c3f6f3101113feb122b892184
MD5 bc376784098151b7162ae50ce1f01dfd
BLAKE2b-256 d7f656121338989d548261318bd47a2de6e536b03fb98c6c46a78dd2ef8c6a66

See more details on using hashes here.

File details

Details for the file ocultar_claude_mcp-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for ocultar_claude_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 26a17c3147ae41834d1b6866fe1a1ffc66e4284239662f38ccdef8540ddb45ee
MD5 1fde12dd8824b102a990d4818d766085
BLAKE2b-256 8117dc811909b649dfb55c378a11c1ea609a1921690da66ff97f896d15559fab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page