live
MCP (Model Context Protocol) is how AI agents — Claude Desktop, Cursor, Copilot — call external tools and servers. That makes every tool call a new data-egress path: sensitive data can leave in the arguments an agent sends and the results it gets back — and most DLP inspects only HTTP response bodies, missing the request side entirely.
This is a real, live MCP server. Point any client at it and call its tools to push synthetic PII / PCI / PHI through genuine AI-agent traffic, then check whether your DLP, CASB, or proxy caught it. Everything is fake and discarded — nothing is stored.
This server probes two blind spots: (1) tool-call arguments — the data your agent sends out, which response-only DLP never inspects; and (2) the egress itself — an outbound connection to an unapproved MCP endpoint, which your CASB / network policy should flag. Connect a client, exercise the tools below, and watch both. Stateless Streamable-HTTP, no auth; everything synthetic and discarded.
1 · Connect your MCP client
Claude Code (CLI)
$ claude mcp add --transport http dlpprobe https://dlpprobe.com/mcp
Claude Desktop / Cursor — mcpServers
{
"mcpServers": {
"dlpprobe": { "type": "http", "url": "https://dlpprobe.com/mcp" }
}
}
Claude Desktop: claude_desktop_config.json. Cursor: .cursor/mcp.json (drop the "type"). VS Code: .vscode/mcp.json with "type":"http".
2 · Tools on this server (…)
3 · Or drive it with curl
bash / macOS / Linux — initialize → list → call
U=https://dlpprobe.com/mcp
H='-H content-type:application/json -H accept:application/json'
# 1) handshake
curl -s $U $H -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
# 2) list tools
curl -s $U $H -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
# 3) call one (generate fake PII/PCI)
curl -s $U $H -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"generate_sample_data","arguments":{"dataset":"ssn_ccn","count":5,"format":"csv"}}}'
Windows (CMD) — one line each (quotes escaped)
curl -s https://dlpprobe.com/mcp -H "content-type: application/json" -H "accept: application/json" -d "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"initialize\",\"params\":{\"protocolVersion\":\"2025-06-18\",\"capabilities\":{},\"clientInfo\":{\"name\":\"curl\",\"version\":\"1\"}}}"
curl -s https://dlpprobe.com/mcp -H "content-type: application/json" -H "accept: application/json" -d "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/list\"}"
curl -s https://dlpprobe.com/mcp -H "content-type: application/json" -H "accept: application/json" -d "{\"jsonrpc\":\"2.0\",\"id\":3,\"method\":\"tools/call\",\"params\":{\"name\":\"generate_sample_data\",\"arguments\":{\"dataset\":\"ssn_ccn\",\"count\":5,\"format\":\"csv\"}}}"
4 · What your DLP should catch
- Synthetic SSNs / cards / IBANs in the tool results —
generate_sample_data.
- Sensitive data in the tool arguments (request side) —
echo_sensitive_data / submit_test_data.
- PII in prose, not just tables —
generate_sample_data with format: "prose".
- The outbound connection to
dlpprobe.com and the tools/list handshake — your CASB / network policy flagging an unapproved MCP endpoint.