-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathmanifest.json
More file actions
83 lines (83 loc) · 4.22 KB
/
manifest.json
File metadata and controls
83 lines (83 loc) · 4.22 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
73
74
75
76
77
78
79
80
81
82
83
{
"dxt_version": "0.3",
"name": "pii-shield",
"display_name": "PII Shield",
"version": "1.0.0",
"description": "Anonymize PII in documents. GLiNER zero-shot NER for high-quality entity recognition in legal documents.",
"long_description": "MCP server that anonymizes documents before Claude sees them and restores real data after analysis. PII never enters the API — only file paths and session IDs are exchanged. Uses GLiNER zero-shot NER for high-quality entity recognition in legal documents, with Human-in-the-Loop review via local web UI. Supports PDF, DOCX (with tracked changes), and plain text. Includes 17 EU pattern recognizers, entity deduplication, chunked processing for large documents, and full local audit logging.",
"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}"
},
"platform_overrides": {
"darwin": {
"command": "python3"
},
"linux": {
"command": "python3"
}
}
}
},
"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)."},
{"name": "anonymize_next_chunk", "description": "Process next chunk of a chunked anonymization session. Returns progress and partial result."},
{"name": "get_full_anonymized_text", "description": "Assemble all processed chunks and finalize the anonymization. Returns output_path and session_id."},
{"name": "resolve_path", "description": "Zero-config file path resolution. Finds a marker file on host via BFS to map VM paths to host paths."}
],
"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": "knowledgator/gliner-pii-base-v1.0",
"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"
}
}
}