@privacyscrubber/mcp-server 2.0.3 β†’ 2.1.0

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/README.md CHANGED
@@ -2,11 +2,16 @@
2
2
 
3
3
  [![NPM Version](https://img.shields.io/npm/v/@privacyscrubber/mcp-server?color=blue)](https://www.npmjs.com/package/@privacyscrubber/mcp-server)
4
4
  [![NPM Downloads](https://img.shields.io/npm/dm/@privacyscrubber/mcp-server?color=3b82f6)](https://www.npmjs.com/package/@privacyscrubber/mcp-server)
5
+ [![NPM SDK](https://img.shields.io/npm/v/@privacyscrubber/sdk?label=%40privacyscrubber%2Fsdk&color=10b981)](https://www.npmjs.com/package/@privacyscrubber/sdk)
5
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
6
7
  [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.22058770.svg)](https://zenodo.org/records/22058770)
7
8
  [![OSF DOI](https://img.shields.io/badge/OSF%20DOI-10.17605%2FOSF.IO%2F5BYJF-blue.svg)](https://osf.io/5byjf/)
8
9
  [![SSRN](https://img.shields.io/badge/SSRN-7335581-darkred.svg)](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=7335581)
9
10
  [![smithery badge](https://smithery.ai/badge/privacyscrubber/pii-masking-mcp)](https://smithery.ai/servers/privacyscrubber/pii-masking-mcp)
11
+ [![Cursor Directory](https://img.shields.io/badge/Cursor%20Directory-Verified%20Plugin-000000.svg)](https://cursor.directory/plugins/privacyscrubber-mcp)
12
+ [![Glama.ai](https://glama.ai/mcp/servers/moxno/privacyscrubber-mcp/badge)](https://glama.ai/mcp/servers/moxno/privacyscrubber-mcp)
13
+ [![TensorBlock MCP Index](https://img.shields.io/badge/TensorBlock-Indexed%20MCP-FF6B6B.svg)](https://github.com/TensorBlock/awesome-mcp-servers)
14
+ [![There's An AI For That](https://img.shields.io/badge/There's_An_AI_For_That-Live-06b6d4.svg)](https://theresanaiforthat.com/ai/privacy-scrubber/)
10
15
  [![Security: 100% Local](https://img.shields.io/badge/Security-100%25%20Local-emerald)](https://privacyscrubber.com)
11
16
  [![Parity: 100% Core Match](https://img.shields.io/badge/Parity-100%25%20Core%20Match-blueviolet)](https://privacyscrubber.com)
12
17
 
@@ -43,6 +48,23 @@ Run the server directly without local installation:
43
48
  npx -y @privacyscrubber/mcp-server
44
49
  ```
45
50
 
51
+ ### 3. Programmatic Node.js / TypeScript SDK
52
+ Need direct, in-memory zero-trust PII sanitization in your backend microservice or custom AI agent rather than an MCP server? Use our official zero-dependency SDK:
53
+
54
+ ```bash
55
+ npm install @privacyscrubber/sdk
56
+ ```
57
+
58
+ ```javascript
59
+ import OpenAI from 'openai';
60
+ import { wrapOpenAI } from '@privacyscrubber/sdk';
61
+
62
+ // Transparently masks PII before sending to LLM and rehydrates responses:
63
+ const openai = wrapOpenAI(new OpenAI({ apiKey: process.env.OPENAI_API_KEY }));
64
+ ```
65
+
66
+ πŸ‘‰ [View @privacyscrubber/sdk on NPM](https://www.npmjs.com/package/@privacyscrubber/sdk) | Includes `wrapOpenAI()` middleware, TypeScript definitions, and 25 compliance profiles.
67
+
46
68
  ---
47
69
 
48
70
  ## βš™οΈ Client Integrations
@@ -155,7 +177,7 @@ Looking for real-time protection directly inside your web browser?
155
177
 
156
178
  ## πŸ“„ License & Commercial Upgrade
157
179
 
158
- By default, the server runs under the **Free Tier** (restricted to 50,000 characters per request and the basic `General` PII profile). To unlock advanced engineering, medical, legal, and financial PII profiles, as well as team-wide custom rules, you can purchase a commercial license.
180
+ By default, the server runs under the **Free Tier** (restricted to 15,000 characters per request and the basic `General` PII profile). To unlock 25 specialized engineering, medical, legal, and financial PII profiles, as well as team-wide custom rules, you can purchase a commercial license.
159
181
 
160
182
  ### Feature Comparison
161
183
 
@@ -163,8 +185,8 @@ By default, the server runs under the **Free Tier** (restricted to 50,000 charac
163
185
  | :--- | :--- | :--- | :--- |
164
186
  | **Volatile Tokenization** | βœ… Yes | βœ… Yes | βœ… Yes |
165
187
  | **Standard PII Masking** | βœ… Yes | βœ… Yes | βœ… Yes |
166
- | **Max Character Length** | 50,000 chars | ♾️ Unlimited | ♾️ Unlimited |
167
- | **Industry Profiles** | General Only | 22+ Profiles | 22+ Profiles |
188
+ | **Max Character Length** | 15,000 chars | ♾️ Unlimited | ♾️ Unlimited |
189
+ | **Industry Profiles** | General Only | 25 Profiles | 25 Profiles |
168
190
  | **Custom Regex Rules** | ❌ Locked | ♾️ Unlimited | ♾️ Unlimited |
169
191
  | **Team Rules Sync (GPO)** | ❌ No | ❌ No | βœ… Yes (Shared Link) |
170
192
  | **Licensing Cost** | $0 | **$110 Lifetime** | **$99/mo Flat Rate** |
@@ -188,13 +210,13 @@ Returns a visual dashboard showing your current tier, session request count, act
188
210
  * **Response Example (Free Tier):**
189
211
  ```
190
212
  ╔══════════════════════════════════════════════════╗
191
- β•‘ PrivacyScrubber MCP Server v1.6.6 β•‘
213
+ β•‘ PrivacyScrubber MCP Server v1.7.1 β•‘
192
214
  ╠══════════════════════════════════════════════════╣
193
215
  β•‘ πŸ”“ Tier: FREE β•‘
194
216
  β•‘ πŸ“Š Session requests: 5 β•‘
195
- β•‘ πŸ“ Input size limit: 50,000 characters per requestβ•‘
217
+ β•‘ πŸ“ Input size limit: 15,000 characters/request β•‘
196
218
  ╠══════════════════════════════════════════════════╣
197
- β•‘ 🏷️ Profiles: General only β€” PRO unlocks 22 more β•‘
219
+ β•‘ 🏷️ Profiles: General only β€” PRO unlocks 25 more β•‘
198
220
  β•‘ πŸ“‹ Custom rules: πŸ”’ Locked β€” requires PRO β•‘
199
221
  ╠══════════════════════════════════════════════════╣
200
222
  β•‘ πŸ’³ Upgrade to PRO β€” $110 Lifetime β•‘
package/bundle.mcpb ADDED
Binary file
package/index.js CHANGED
@@ -144,6 +144,9 @@ function checkFreeTierLimit(isPro) {
144
144
 
145
145
  const count = incrementDailyUsage();
146
146
  // Feedback / Growth loop triggers
147
+ if (count === 2) {
148
+ mcpLog(`${colors.cyan}πŸ› οΈ [PrivacyScrubber] Need programmatic in-code redaction in your Node/TS backend or RAG pipeline? Try our official SDK: npm install @privacyscrubber/sdk${colors.reset}\n`);
149
+ }
147
150
  if (count === 3) {
148
151
  mcpLog(`${colors.cyan}πŸ’¬ We are building the ultimate privacy tool for developers. What feature should we add next? Let us know: https://privacyscrubber.com/feedback${colors.reset}\n`);
149
152
  }
@@ -254,7 +257,7 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
254
257
  tools: [
255
258
  {
256
259
  name: "sanitize_text",
257
- description: "STEP 1: Call this first. You MUST NOT process raw user data before calling this. Locally scrubs PII, secrets, and credentials (like API keys, passwords, emails, phones, names) from code, logs, or text. Replaces them with safe placeholders (e.g., [EMAIL_1], [API_KEY_1]). Keep your data secure before passing it to any LLM.",
260
+ description: "STEP 1: Call this first. You MUST NOT process raw user data before calling this. Locally scrubs PII, secrets, and credentials (like API keys, passwords, emails, phones, names) from code, logs, or text. Replaces them with safe placeholders (e.g., [EMAIL_1], [API_KEY_1]). Keep your data secure before passing it to any LLM. (For in-code backend services or RAG vector pipelines outside of MCP, use '@privacyscrubber/sdk': npm i @privacyscrubber/sdk)",
258
261
  inputSchema: {
259
262
  type: "object",
260
263
  properties: {
@@ -1407,8 +1410,9 @@ function truncateIfFree(text, isPro, charLimit = 15000) {
1407
1410
  // Start the server transport
1408
1411
  const transport = new StdioServerTransport();
1409
1412
  server.connect(transport).then(() => {
1410
- mcpLog(`${colors.greenBold}βœ… PrivacyScrubber ZTDS MCP Server started successfully.${colors.reset}\n`);
1411
- mcpLog(`${colors.cyan}⭐ Star us on GitHub: https://github.com/moxno/privacyscrubber-mcp${colors.reset}\n`);
1413
+ mcpLog(`${colors.greenBold}βœ… PrivacyScrubber ZTDS MCP Server v${MCP_VERSION} started successfully.${colors.reset}\n`);
1414
+ mcpLog(`${colors.cyan}πŸ“¦ Need programmatic in-code redaction? Try: npm install @privacyscrubber/sdk${colors.reset}\n`);
1415
+ mcpLog(`${colors.yellowBold}⭐ Star us on GitHub: https://github.com/moxno/privacyscrubber-mcp${colors.reset}\n`);
1412
1416
  }).catch((error) => {
1413
1417
  console.error("Failed to connect MCP server transport:", error);
1414
1418
  process.exit(1);
package/manifest.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "manifest_version": "0.3",
3
3
  "name": "privacyscrubber/pii-masking-mcp",
4
- "version": "2.0.3",
4
+ "version": "2.1.0",
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",
8
- "email": "legal@privacyscrubber.com"
8
+ "email": "support@privacyscrubber.com"
9
9
  },
10
10
  "server": {
11
11
  "type": "node",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@privacyscrubber/mcp-server",
3
- "version": "2.0.3",
3
+ "version": "2.1.0",
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",