The Developer's Dilemma
You are debugging a production issue. The stack trace has customer email addresses in it. The fastest fix? Paste it into Claude and ask for help.
But that data is now:
- Stored in Anthropic's systems
- Possibly used for model training, depending on your plan
- Visible to anyone who can access your chat history
77% of developers paste sensitive data into AI tools. Most do not notice the problem until later.
How the Proxy Fixes This
The Model Context Protocol (MCP) lets a server sit between you and any AI tool. The anonym.legal MCP server uses that position to strip PII before your text hits any model.
It works in four steps:
- You type a prompt as normal
- The proxy catches it before sending
- PII is found and swapped for reversible tokens
- The AI only sees clean, anonymized text
The AI's reply comes back with real values restored. Your workflow does not change.
Setting Up the Integration
What You Need
- Node.js 18 or later
- Claude Desktop, Cursor, or VS Code with the Claude extension
- An anonym.legal API key — get one free
Step 1: Get Your API Key
- Sign up at anonym.legal/auth/signup
- Go to Settings → API Tokens
- Create a new token
- Copy it — you only see it once
Step 2: Configure Claude Desktop
Edit the config file for your OS:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Add the anonym.legal server:
{
"mcpServers": {
"anonym-legal": {
"command": "npx",
"args": ["-y", "@anonym-legal/mcp-server"],
"env": {
"ANONYM_API_KEY": "your-api-key-here"
}
}
}
}
Step 3: Restart Claude Desktop
Close and reopen the app. You will see "anonym-legal" listed under active servers.
Cursor IDE Setup
Cursor uses the same protocol. Add this to .cursor/mcp.json:
{
"mcpServers": {
"anonym-legal": {
"url": "https://anonym.legal/mcp",
"transport": "sse",
"headers": {
"Authorization": "Bearer your-api-key-here"
}
}
}
}
What Gets Anonymized
The server catches 285+ entity types across 48 languages:
| Category | Examples |
|---|---|
| Personal | Names, emails, phone numbers, DOB |
| Financial | Credit cards, bank accounts, IBANs |
| Government | SSNs, passport numbers, driver's licenses |
| Technical | IP addresses, API keys, tokens |
| Healthcare | Patient IDs, insurance numbers |
| Corporate | Employee IDs, account numbers |
Example Transformation
Your prompt:
Debug this error from user john.smith@acme.com:
Payment failed for card 4532-1234-5678-9012
Customer ID: CUST-12345, IP: 192.168.1.100
What the model sees:
Debug this error from user [EMAIL_1]:
Payment failed for card [CREDIT_CARD_1]
Customer ID: [CUSTOMER_ID_1], IP: [IP_ADDRESS_1]
The reply you see:
The error for john.smith@acme.com suggests card
4532-1234-5678-9012 may have low funds...
You see real values. The model only ever saw tokens.
Advanced Options
Custom patterns — add your own regex to the CUSTOM_PATTERNS env var:
"CUSTOM_PATTERNS": "JIRA-[0-9]+,TICKET-[A-Z0-9]+"
Allowlist — keep public names from being masked:
"ALLOWLIST": "Anthropic,Claude,anonym.legal"
Disable entity types — let certain categories pass through:
"DISABLED_ENTITIES": "PHONE_NUMBER,URL"
Where Processing Happens
| Component | Location |
|---|---|
| MCP server | Your machine |
| PII detection | anonym.legal servers (Germany) |
| AI model | Anthropic / OpenAI servers |
The proxy runs on your machine. Only the detection call goes to anonym.legal. Your prompts are not stored. See the privacy policy for details.
Pricing
The integration is included in all plans:
| Plan | Tokens/cycle | Price |
|---|---|---|
| Free | 200 | €0 |
| Basic | 1,000 | €3/month |
| Pro | 4,000 | €15/month |
| Business | 10,000 | €29/month |
Most developers stay on Basic at €3/month.
Conclusion
AI tools are now part of daily dev work. They do not need to see your customers' data to be useful. The proxy handles that for you.
The integration:
- Needs no workflow changes
- Works with Claude Desktop, Cursor, and VS Code
- Guards PII on every prompt, every time
- Costs €3/month for most developers
Set it up once. Your data stays safe by default.