pseudonym-mcp 0.2.0 → 0.2.1
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 +55 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -140,6 +140,61 @@ Polish (--lang pl):
|
|
|
140
140
|
|
|
141
141
|
The mapping is stored in a session-scoped in-memory store. Each `mask_text` call returns a `session_id`; pass it back to `unmask_text` to restore originals.
|
|
142
142
|
|
|
143
|
+
## Real-world example
|
|
144
|
+
|
|
145
|
+
### Meeting note in Claude Code / Obsidian
|
|
146
|
+
|
|
147
|
+
You have a note:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Meeting with Jan Kowalski (PESEL: 90010112318) from Acme sp. z o.o.
|
|
151
|
+
We discussed a contract for 45 000 zł. Contact: jan.kowalski@acme.pl
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
In Claude Code you type:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
Use mask_text on this note, then summarize the key points of the meeting.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**pseudonym-mcp replaces PII locally before sending to Claude:**
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Meeting with [PERSON:1] ([PESEL:1]) from [ORG:1].
|
|
164
|
+
We discussed a contract for 45 000 zł. Contact: [EMAIL:1]
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Claude responds (sees tokens only):**
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
Meeting with [PERSON:1] from [ORG:1] covered a contract
|
|
171
|
+
for 45 000 zł. Follow up via [EMAIL:1].
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**pseudonym-mcp restores originals locally:**
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
Meeting with Jan Kowalski from Acme sp. z o.o. covered
|
|
178
|
+
a contract for 45 000 zł. Follow up via jan.kowalski@acme.pl
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Anthropic / OpenAI never saw any real data. The entire swap happens on your machine.
|
|
182
|
+
|
|
183
|
+
### Obsidian vault with `session_id`
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
# mask the entire vault once — save the session_id
|
|
187
|
+
Use mask_text on my notes — remember the session_id
|
|
188
|
+
|
|
189
|
+
# ask Claude anything across multiple prompts
|
|
190
|
+
Summarize all meetings from Q1
|
|
191
|
+
|
|
192
|
+
# Claude replies with tokens; restore originals
|
|
193
|
+
Use unmask_text with session_id abc123 on the response
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The `session_id` keeps the token map alive for the entire session — the same `[PERSON:1]` always refers to the same person, no matter how many times they appear across different notes.
|
|
197
|
+
|
|
143
198
|
## Quick Start
|
|
144
199
|
|
|
145
200
|
**Step 1** — Install the package:
|