forked from gregmos/PII-Shield
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmanifest.json
More file actions
72 lines (72 loc) · 3.77 KB
/
manifest.json
File metadata and controls
72 lines (72 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
{
"manifest_version": "0.3",
"name": "pii-shield",
"display_name": "PII Shield",
"version": "6.0.0",
"description": "Anonymize PII in documents. GLiNER zero-shot NER for high-quality entity recognition in legal documents.",
"long_description": "PII Shield provides automated PII detection and anonymization for legal document analysis. v5.5 uses GLiNER (DeBERTa-v3 zero-shot NER) via Presidio's GLiNERRecognizer for high-quality named entity recognition — handles ALL-CAPS names, domain-specific company names, and legal document patterns. SpaCy handles tokenization, GLiNER handles NER. Falls back to SpaCy-only if GLiNER is unavailable. Also includes: fuzzy entity deduplication, prefix support for multi-file workflows, two-pass boundary cleanup with false-positive filtering, 17 EU pattern recognizers. Deanonymized output is written to local files only — PII never flows back through Claude.",
"author": {
"name": "Grigorii Moskalev",
"url": "https://www.linkedin.com/in/grigorii-moskalev/"
},
"server": {
"type": "python",
"entry_point": "server/pii_shield_server.py",
"mcp_config": {
"command": "python",
"args": [
"${__dirname}/server/pii_shield_server.py"
],
"env": {
"PII_MIN_SCORE": "${user_config.pii_min_score}",
"PII_GLINER_MODEL": "${user_config.gliner_model}",
"PII_WORK_DIR": "${user_config.work_dir}"
}
}
},
"tools": [
{"name": "find_file", "description": "Find a file on the host by filename. Searches the configured working directory only."},
{"name": "anonymize_text", "description": "Anonymize PII in text"},
{"name": "anonymize_file", "description": "Anonymize PII in a file (.pdf, .docx, .txt, .md, .csv). PREFERRED — PII stays on host. Pass review_session_id for HITL re-anonymization (server applies overrides internally)."},
{"name": "anonymize_docx", "description": "Anonymize PII in .docx preserving formatting"},
{"name": "deanonymize_text", "description": "Restore PII to local .docx file (never returns PII to Claude)"},
{"name": "deanonymize_docx", "description": "Restore PII in .docx preserving formatting (file only)"},
{"name": "get_mapping", "description": "Get placeholder keys and types (no real PII values)"},
{"name": "scan_text", "description": "Detect PII without anonymizing (preview mode)"},
{"name": "list_entities", "description": "Show status, supported types, and recent sessions"},
{"name": "start_review", "description": "Start local review server and return URL for HITL verification. Does NOT open browser. PII stays on your machine."},
{"name": "get_review_status", "description": "Check if user approved the HITL review. Returns status and has_changes only (no PII or override details)."}
],
"keywords": ["pii", "anonymize", "gdpr", "privacy", "legal", "presidio", "ner", "gliner", "zero-shot"],
"license": "MIT",
"user_config": {
"pii_min_score": {
"type": "string",
"title": "Minimum NER score",
"description": "Minimum confidence threshold (0.0-1.0)",
"default": "0.50",
"required": false
},
"gliner_model": {
"type": "string",
"title": "GLiNER NER model",
"description": "HuggingFace GLiNER model name for zero-shot NER",
"default": "urchade/gliner_small-v2.1",
"required": false
},
"work_dir": {
"type": "string",
"title": "Working directory",
"description": "Folder path where your documents are stored (e.g. C:\\Users\\You\\Documents\\contracts). Used by find_file and anonymize_file for automatic path resolution.",
"default": "",
"required": false
}
},
"compatibility": {
"claude_desktop": ">=0.10.0",
"platforms": ["win32", "darwin", "linux"],
"runtimes": {
"python": ">=3.10.0 <4"
}
}
}