@privacyscrubber/mcp-server 1.7.0 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/install.js ADDED
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import os from 'os';
6
+
7
+ console.log('šŸ›”ļø PrivacyScrubber MCP Server 1-Click Installer');
8
+ console.log('================================================\n');
9
+
10
+ const mcpConfig = {
11
+ command: "npx",
12
+ args: ["-y", "@privacyscrubber/mcp-server"]
13
+ };
14
+
15
+ let claudeConfigPath = '';
16
+ if (process.platform === 'darwin') {
17
+ claudeConfigPath = path.join(os.homedir(), 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json');
18
+ } else if (process.platform === 'win32') {
19
+ claudeConfigPath = path.join(process.env.APPDATA || path.join(os.homedir(), 'AppData', 'Roaming'), 'Claude', 'claude_desktop_config.json');
20
+ } else {
21
+ // Linux fallback, though Claude Desktop is not officially supported on Linux yet, we check common paths
22
+ claudeConfigPath = path.join(os.homedir(), '.config', 'Claude', 'claude_desktop_config.json');
23
+ }
24
+
25
+ // 1. Configure Claude Desktop
26
+ let installedClaude = false;
27
+ try {
28
+ let configDir = path.dirname(claudeConfigPath);
29
+ if (!fs.existsSync(configDir)) {
30
+ fs.mkdirSync(configDir, { recursive: true });
31
+ }
32
+
33
+ let config = {};
34
+ if (fs.existsSync(claudeConfigPath)) {
35
+ const rawData = fs.readFileSync(claudeConfigPath, 'utf8');
36
+ if (rawData.trim() !== '') {
37
+ config = JSON.parse(rawData);
38
+ }
39
+ }
40
+
41
+ if (!config.mcpServers) {
42
+ config.mcpServers = {};
43
+ }
44
+
45
+ config.mcpServers['privacyscrubber'] = mcpConfig;
46
+
47
+ fs.writeFileSync(claudeConfigPath, JSON.stringify(config, null, 2), 'utf8');
48
+ console.log(`āœ… [Claude Desktop] Successfully injected PrivacyScrubber MCP into:`);
49
+ console.log(` ${claudeConfigPath}`);
50
+ installedClaude = true;
51
+ } catch (e) {
52
+ console.log(`āš ļø [Claude Desktop] Could not configure automatically: ${e.message}`);
53
+ }
54
+
55
+ console.log('\n---');
56
+ console.log('\nšŸ”µ [Cursor / Windsurf Users]');
57
+ console.log('To install PrivacyScrubber in Cursor or Windsurf:');
58
+ console.log('1. Open Settings -> Features -> MCP Servers (or type "MCP" in settings).');
59
+ console.log('2. Click "+ Add New MCP Server".');
60
+ console.log('3. Set Name: privacyscrubber');
61
+ console.log('4. Set Type: command');
62
+ console.log('5. Set Command: npx -y @privacyscrubber/mcp-server');
63
+ console.log('\nšŸš€ Installation complete! Restart your IDE or Claude Desktop to start redacting PII locally.');
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "manifest_version": "0.3",
3
3
  "name": "privacyscrubber/pii-masking-mcp",
4
- "version": "1.6.9",
4
+ "version": "1.7.1",
5
5
  "description": "CISO-Approved Zero-Trust PII & Secrets Redaction MCP Server for Cursor, Windsurf, and Claude Desktop. Prevent API leaks and comply with HIPAA/SOC 2 locally.",
6
6
  "author": {
7
7
  "name": "PrivacyScrubber",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privacyscrubber/mcp-server",
3
- "version": "1.7.0",
3
+ "version": "1.7.2",
4
4
  "mcpName": "io.github.moxno/privacyscrubber-mcp",
5
5
  "description": "CISO-Approved Zero-Trust PII & Secrets Redaction MCP Server for Cursor, Windsurf, and Claude Desktop. Prevent API leaks and comply with HIPAA/SOC 2 locally.",
6
6
  "main": "index.js",
@@ -10,6 +10,7 @@
10
10
  },
11
11
  "files": [
12
12
  "index.js",
13
+ "install.js",
13
14
  "pii-masking-run.js",
14
15
  "scrubber-core.cjs",
15
16
  "smithery.yaml",
@@ -21,7 +22,8 @@
21
22
  "bin": {
22
23
  "mcp-server": "index.js",
23
24
  "privacyscrubber-mcp": "index.js",
24
- "pii-masking-run": "pii-masking-run.js"
25
+ "pii-masking-run": "pii-masking-run.js",
26
+ "privacyscrubber-mcp-install": "install.js"
25
27
  },
26
28
  "scripts": {
27
29
  "start": "node index.js"
@@ -57,7 +59,7 @@
57
59
  ],
58
60
  "author": "Ilya Sibiryakov (BrandMeWeb)",
59
61
  "license": "MIT",
60
- "homepage": "https://privacyscrubber.com/pii-mcp/",
62
+ "homepage": "https://privacyscrubber.com/pii-mcp/?utm_source=npm&utm_medium=readme&utm_campaign=mcp_server",
61
63
  "repository": {
62
64
  "type": "git",
63
65
  "url": "git+https://github.com/moxno/privacyscrubber-mcp.git"
@@ -190,12 +190,12 @@ function performSanitization(text) {
190
190
  }
191
191
  if (isSecret) {
192
192
  hasSecrets = true;
193
- result.scrubbedText = result.scrubbedText.replace(token, original);
193
+ result.scrubbedText = result.scrubbedText.replace(token, '[SECRET_BLOCKED_UPGRADE_TO_PRO]');
194
194
  }
195
195
  });
196
196
 
197
197
  if (hasSecrets) {
198
- process.stderr.write(`${colors.yellowBold}āš ļø [PrivacyScrubber] Secrets/Keys detected in output. Redaction skipped (Requires PRO tier).${colors.reset}\n`);
198
+ process.stderr.write(`\x1b[1;31m🚫 [PrivacyScrubber] Secrets/Keys detected in output. Replaced with [SECRET_BLOCKED_UPGRADE_TO_PRO] to protect your data (Requires PRO tier).\x1b[0m\n`);
199
199
  }
200
200
  }
201
201